]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/assets/iD/iD/mapillary-js/mapillary.min.js
Update to iD v2.9.0
[rails.git] / vendor / assets / iD / iD / mapillary-js / mapillary.min.js
index 744702c3178cc518fd687ef4c588e831be0e7cc8..e3edf1a0f468cb0b5206134efdf0f21780659690 100644 (file)
@@ -1 +1 @@
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Mapillary=e()}}(function(){return function e(t,r,n){function i(a,s){if(!r[a]){if(!t[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var h=r[a]={exports:{}};t[a][0].call(h.exports,function(e){var r=t[a][1][e];return i(r||e)},h,h.exports,e,t,r,n)}return r[a].exports}for(var o="function"==typeof require&&require,a=0;a<n.length;a++)i(n[a]);return i}({1:[function(e,t,r){"use strict";function n(e,t,r){t=t||1;for(var n,s,c,u,h=0;h<e[0].length;h++){var l=e[0][h];(!h||l[0]<n)&&(n=l[0]),(!h||l[1]<s)&&(s=l[1]),(!h||l[0]>c)&&(c=l[0]),(!h||l[1]>u)&&(u=l[1])}var p=c-n,d=u-s,f=Math.min(p,d),m=f/2,v=new a(null,i);if(0===f)return[n,s];for(var g=n;g<c;g+=f)for(var y=s;y<u;y+=f)v.push(new o(g+m,y+m,m,e));var b=function(e){for(var t=0,r=0,n=0,i=e[0],a=0,s=i.length,c=s-1;a<s;c=a++){var u=i[a],h=i[c],l=u[0]*h[1]-h[0]*u[1];r+=(u[0]+h[0])*l,n+=(u[1]+h[1])*l,t+=3*l}return 0===t?new o(i[0][0],i[0][1],0,e):new o(r/t,n/t,0,e)}(e),_=new o(n+p/2,s+d/2,0,e);_.d>b.d&&(b=_);for(var x=v.length;v.length;){var w=v.pop();w.d>b.d&&(b=w,r&&console.log("found best %d after %d probes",Math.round(1e4*w.d)/1e4,x)),w.max-b.d<=t||(m=w.h/2,v.push(new o(w.x-m,w.y-m,m,e)),v.push(new o(w.x+m,w.y-m,m,e)),v.push(new o(w.x-m,w.y+m,m,e)),v.push(new o(w.x+m,w.y+m,m,e)),x+=4)}return r&&(console.log("num probes: "+x),console.log("best distance: "+b.d)),[b.x,b.y]}function i(e,t){return t.max-e.max}function o(e,t,r,n){this.x=e,this.y=t,this.h=r,this.d=function(e,t,r){for(var n=!1,i=1/0,o=0;o<r.length;o++)for(var a=r[o],s=0,c=a.length,u=c-1;s<c;u=s++){var h=a[s],l=a[u];h[1]>t!=l[1]>t&&e<(l[0]-h[0])*(t-h[1])/(l[1]-h[1])+h[0]&&(n=!n),i=Math.min(i,function(e,t,r,n){var i=r[0],o=r[1],a=n[0]-i,s=n[1]-o;if(0!==a||0!==s){var c=((e-i)*a+(t-o)*s)/(a*a+s*s);c>1?(i=n[0],o=n[1]):c>0&&(i+=a*c,o+=s*c)}return a=e-i,s=t-o,a*a+s*s}(e,t,h,l))}return(n?1:-1)*Math.sqrt(i)}(e,t,n),this.max=this.d+this.h*Math.SQRT2}var a=e("tinyqueue");t.exports=n,t.exports.default=n},{tinyqueue:242}],2:[function(e,t,r){function n(e,t,r,n){this.cx=3*e,this.bx=3*(r-e)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*t,this.by=3*(n-t)-this.cy,this.ay=1-this.cy-this.by,this.p1x=e,this.p1y=n,this.p2x=r,this.p2y=n}t.exports=n,n.prototype.sampleCurveX=function(e){return((this.ax*e+this.bx)*e+this.cx)*e},n.prototype.sampleCurveY=function(e){return((this.ay*e+this.by)*e+this.cy)*e},n.prototype.sampleCurveDerivativeX=function(e){return(3*this.ax*e+2*this.bx)*e+this.cx},n.prototype.solveCurveX=function(e,t){void 0===t&&(t=1e-6);var r,n,i,o,a;for(i=e,a=0;a<8;a++){if(o=this.sampleCurveX(i)-e,Math.abs(o)<t)return i;var s=this.sampleCurveDerivativeX(i);if(Math.abs(s)<1e-6)break;i-=o/s}if(r=0,n=1,(i=e)<r)return r;if(i>n)return n;for(;r<n;){if(o=this.sampleCurveX(i),Math.abs(o-e)<t)return i;e>o?r=i:n=i,i=.5*(n-r)+r}return i},n.prototype.solve=function(e,t){return this.sampleCurveY(this.solveCurveX(e,t))}},{}],3:[function(e,t,r){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return a[e>>18&63]+a[e>>12&63]+a[e>>6&63]+a[63&e]}function o(e,t,r){for(var n,o=[],a=t;a<r;a+=3)n=(e[a]<<16)+(e[a+1]<<8)+e[a+2],o.push(i(n));return o.join("")}r.byteLength=function(e){return 3*e.length/4-n(e)},r.toByteArray=function(e){var t,r,i,o,a,u=e.length;o=n(e),a=new c(3*u/4-o),r=o>0?u-4:u;var h=0;for(t=0;t<r;t+=4)i=s[e.charCodeAt(t)]<<18|s[e.charCodeAt(t+1)]<<12|s[e.charCodeAt(t+2)]<<6|s[e.charCodeAt(t+3)],a[h++]=i>>16&255,a[h++]=i>>8&255,a[h++]=255&i;return 2===o?(i=s[e.charCodeAt(t)]<<2|s[e.charCodeAt(t+1)]>>4,a[h++]=255&i):1===o&&(i=s[e.charCodeAt(t)]<<10|s[e.charCodeAt(t+1)]<<4|s[e.charCodeAt(t+2)]>>2,a[h++]=i>>8&255,a[h++]=255&i),a},r.fromByteArray=function(e){for(var t,r=e.length,n=r%3,i="",s=[],c=0,u=r-n;c<u;c+=16383)s.push(o(e,c,c+16383>u?u:c+16383));return 1===n?(t=e[r-1],i+=a[t>>2],i+=a[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=a[t>>10],i+=a[t>>4&63],i+=a[t<<2&63],i+="="),s.push(i),s.join("")};for(var a=[],s=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0,l=u.length;h<l;++h)a[h]=u[h],s[u.charCodeAt(h)]=h;s["-".charCodeAt(0)]=62,s["_".charCodeAt(0)]=63},{}],4:[function(e,t,r){},{}],5:[function(e,t,r){t.exports=function(e){var t=String.prototype.split,r=/()??/.exec("")[1]===e;return function(n,i,o){if("[object RegExp]"!==Object.prototype.toString.call(i))return t.call(n,i,o);var a,s,c,u,h=[],l=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.extended?"x":"")+(i.sticky?"y":""),p=0,i=new RegExp(i.source,l+"g");for(n+="",r||(a=new RegExp("^"+i.source+"$(?!\\s)",l)),o=o===e?-1>>>0:o>>>0;(s=i.exec(n))&&!((c=s.index+s[0].length)>p&&(h.push(n.slice(p,s.index)),!r&&s.length>1&&s[0].replace(a,function(){for(var t=1;t<arguments.length-2;t++)arguments[t]===e&&(s[t]=e)}),s.length>1&&s.index<n.length&&Array.prototype.push.apply(h,s.slice(1)),u=s[0].length,p=c,h.length>=o));)i.lastIndex===s.index&&i.lastIndex++;return p===n.length?!u&&i.test("")||h.push(""):h.push(n.slice(p)),h.length>o?h.slice(0,o):h}}()},{}],6:[function(e,t,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function o(e){if(h===setTimeout)return setTimeout(e,0);if((h===n||!h)&&setTimeout)return h=setTimeout,setTimeout(e,0);try{return h(e,0)}catch(t){try{return h.call(null,e,0)}catch(t){return h.call(this,e,0)}}}function a(){m&&d&&(m=!1,d.length?f=d.concat(f):v=-1,f.length&&s())}function s(){if(!m){var e=o(a);m=!0;for(var t=f.length;t;){for(d=f,f=[];++v<t;)d&&d[v].run();v=-1,t=f.length}d=null,m=!1,function(e){if(l===clearTimeout)return clearTimeout(e);if((l===i||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(e);try{l(e)}catch(t){try{return l.call(null,e)}catch(t){return l.call(this,e)}}}(e)}}function c(e,t){this.fun=e,this.array=t}function u(){}var h,l,p=t.exports={};!function(){try{h="function"==typeof setTimeout?setTimeout:n}catch(e){h=n}try{l="function"==typeof clearTimeout?clearTimeout:i}catch(e){l=i}}();var d,f=[],m=!1,v=-1;p.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];f.push(new c(e,t)),1!==f.length||m||o(s)},c.prototype.run=function(){this.fun.apply(null,this.array)},p.title="browser",p.browser=!0,p.env={},p.argv=[],p.version="",p.versions={},p.on=u,p.addListener=u,p.once=u,p.off=u,p.removeListener=u,p.removeAllListeners=u,p.emit=u,p.prependListener=u,p.prependOnceListener=u,p.listeners=function(e){return[]},p.binding=function(e){throw new Error("process.binding is not supported")},p.cwd=function(){return"/"},p.chdir=function(e){throw new Error("process.chdir is not supported")},p.umask=function(){return 0}},{}],7:[function(e,t,r){"use strict";function n(e){if(e>I)throw new RangeError("Invalid typed array length");var t=new Uint8Array(e);return t.__proto__=i.prototype,t}function i(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return s(e)}return o(e,t,r)}function o(e,t,r){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return j(e)?function(e,t,r){if(t<0||e.byteLength<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(r||0))throw new RangeError("'length' is out of bounds");var n;n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r);return n.__proto__=i.prototype,n}(e,t,r):"string"==typeof e?function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!i.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var r=0|h(e,t),o=n(r),a=o.write(e,t);a!==r&&(o=o.slice(0,a));return o}(e,t):function(e){if(i.isBuffer(e)){var t=0|u(e.length),r=n(t);return 0===r.length?r:(e.copy(r,0,0,t),r)}if(e){if(A(e)||"length"in e)return"number"!=typeof e.length||R(e.length)?n(0):c(e);if("Buffer"===e.type&&Array.isArray(e.data))return c(e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e)}function a(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function s(e){return a(e),n(e<0?0:0|u(e))}function c(e){for(var t=e.length<0?0:0|u(e.length),r=n(t),i=0;i<t;i+=1)r[i]=255&e[i];return r}function u(e){if(e>=I)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+I.toString(16)+" bytes");return 0|e}function h(e,t){if(i.isBuffer(e))return e.length;if(A(e)||j(e))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return T(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return O(e).length;default:if(n)return T(e).length;t=(""+t).toLowerCase(),n=!0}}function l(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,r){var n=e.length;(!t||t<0)&&(t=0);(!r||r<0||r>n)&&(r=n);for(var i="",o=t;o<r;++o)i+=function(e){return e<16?"0"+e.toString(16):e.toString(16)}(e[o]);return i}(this,t,r);case"utf8":case"utf-8":return x(this,t,r);case"ascii":return function(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}(this,t,r);case"latin1":case"binary":return function(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}(this,t,r);case"base64":return function(e,t,r){return 0===t&&r===e.length?L.fromByteArray(e):L.fromByteArray(e.slice(t,r))}(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return function(e,t,r){for(var n=e.slice(t,r),i="",o=0;o<n.length;o+=2)i+=String.fromCharCode(n[o]+256*n[o+1]);return i}(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function p(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function d(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,R(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=i.from(t,n)),i.isBuffer(t))return 0===t.length?-1:f(e,t,r,n,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):f(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function f(e,t,r,n,i){function o(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,s=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,r/=2}var u;if(i){var h=-1;for(u=r;u<s;u++)if(o(e,u)===o(t,-1===h?0:u-h)){if(-1===h&&(h=u),u-h+1===c)return h*a}else-1!==h&&(u-=u-h),h=-1}else for(r+c>s&&(r=s-c),u=r;u>=0;u--){for(var l=!0,p=0;p<c;p++)if(o(e,u+p)!==o(t,p)){l=!1;break}if(l)return u}return-1}function m(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a<n;++a){var s=parseInt(t.substr(2*a,2),16);if(R(s))return a;e[r+a]=s}return a}function v(e,t,r,n){return P(T(t,e.length-r),e,r,n)}function g(e,t,r,n){return P(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function y(e,t,r,n){return g(e,t,r,n)}function b(e,t,r,n){return P(O(t),e,r,n)}function _(e,t,r,n){return P(function(e,t){for(var r,n,i,o=[],a=0;a<e.length&&!((t-=2)<0);++a)r=e.charCodeAt(a),n=r>>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function x(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var o=e[i],a=null,s=o>239?4:o>223?3:o>191?2:1;if(i+s<=r){var c,u,h,l;switch(s){case 1:o<128&&(a=o);break;case 2:128==(192&(c=e[i+1]))&&(l=(31&o)<<6|63&c)>127&&(a=l);break;case 3:c=e[i+1],u=e[i+2],128==(192&c)&&128==(192&u)&&(l=(15&o)<<12|(63&c)<<6|63&u)>2047&&(l<55296||l>57343)&&(a=l);break;case 4:c=e[i+1],u=e[i+2],h=e[i+3],128==(192&c)&&128==(192&u)&&128==(192&h)&&(l=(15&o)<<18|(63&c)<<12|(63&u)<<6|63&h)>65535&&l<1114112&&(a=l)}}null===a?(a=65533,s=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=s}return function(e){var t=e.length;if(t<=D)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=D));return r}(n)}function w(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function S(e,t,r,n,o,a){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<a)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function M(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function E(e,t,r,n,i){return t=+t,r>>>=0,i||M(e,0,r,4),N.write(e,t,r,n,23,4),r+4}function C(e,t,r,n,i){return t=+t,r>>>=0,i||M(e,0,r,8),N.write(e,t,r,n,52,8),r+8}function T(e,t){t=t||1/0;for(var r,n=e.length,i=null,o=[],a=0;a<n;++a){if((r=e.charCodeAt(a))>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function O(e){return L.toByteArray(function(e){if((e=e.trim().replace(k,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function P(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function j(e){return e instanceof ArrayBuffer||null!=e&&null!=e.constructor&&"ArrayBuffer"===e.constructor.name&&"number"==typeof e.byteLength}function A(e){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(e)}function R(e){return e!=e}var L=e("base64-js"),N=e("ieee754");r.Buffer=i,r.SlowBuffer=function(e){return+e!=e&&(e=0),i.alloc(+e)},r.INSPECT_MAX_BYTES=50;var I=2147483647;r.kMaxLength=I,(i.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()}catch(e){return!1}}())||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),i.poolSize=8192,i.from=function(e,t,r){return o(e,t,r)},i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,i.alloc=function(e,t,r){return function(e,t,r){return a(e),e<=0?n(e):void 0!==t?"string"==typeof r?n(e).fill(t,r):n(e).fill(t):n(e)}(e,t,r)},i.allocUnsafe=function(e){return s(e)},i.allocUnsafeSlow=function(e){return s(e)},i.isBuffer=function(e){return null!=e&&!0===e._isBuffer},i.compare=function(e,t){if(!i.isBuffer(e)||!i.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,o=0,a=Math.min(r,n);o<a;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0},i.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return i.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=i.allocUnsafe(t),o=0;for(r=0;r<e.length;++r){var a=e[r];if(!i.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,o),o+=a.length}return n},i.byteLength=h,i.prototype._isBuffer=!0,i.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)p(this,t,t+1);return this},i.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)p(this,t,t+3),p(this,t+1,t+2);return this},i.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)p(this,t,t+7),p(this,t+1,t+6),p(this,t+2,t+5),p(this,t+3,t+4);return this},i.prototype.toString=function(){var e=this.length;return 0===e?"":0===arguments.length?x(this,0,e):l.apply(this,arguments)},i.prototype.equals=function(e){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===i.compare(this,e)},i.prototype.inspect=function(){var e="",t=r.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},i.prototype.compare=function(e,t,r,n,o){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,o>>>=0,this===e)return 0;for(var a=o-n,s=r-t,c=Math.min(a,s),u=this.slice(n,o),h=e.slice(t,r),l=0;l<c;++l)if(u[l]!==h[l]){a=u[l],s=h[l];break}return a<s?-1:s<a?1:0},i.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},i.prototype.indexOf=function(e,t,r){return d(this,e,t,r,!0)},i.prototype.lastIndexOf=function(e,t,r){return d(this,e,t,r,!1)},i.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return m(this,e,t,r);case"utf8":case"utf-8":return v(this,e,t,r);case"ascii":return g(this,e,t,r);case"latin1":case"binary":return y(this,e,t,r);case"base64":return b(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;i.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e);var n=this.subarray(e,t);return n.__proto__=i.prototype,n},i.prototype.readUIntLE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=this[e],i=1,o=0;++o<t&&(i*=256);)n+=this[e+o]*i;return n},i.prototype.readUIntBE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},i.prototype.readUInt8=function(e,t){return e>>>=0,t||w(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return e>>>=0,t||w(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return e>>>=0,t||w(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return e>>>=0,t||w(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},i.prototype.readUInt32BE=function(e,t){return e>>>=0,t||w(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=this[e],i=1,o=0;++o<t&&(i*=256);)n+=this[e+o]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*t)),n},i.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},i.prototype.readInt8=function(e,t){return e>>>=0,t||w(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){e>>>=0,t||w(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt16BE=function(e,t){e>>>=0,t||w(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt32LE=function(e,t){return e>>>=0,t||w(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,t){return e>>>=0,t||w(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readFloatLE=function(e,t){return e>>>=0,t||w(e,4,this.length),N.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return e>>>=0,t||w(e,4,this.length),N.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return e>>>=0,t||w(e,8,this.length),N.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return e>>>=0,t||w(e,8,this.length),N.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){S(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,o=0;for(this[t]=255&e;++o<r&&(i*=256);)this[t+o]=e/i&255;return t+r},i.prototype.writeUIntBE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){S(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=r-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r},i.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,1,255,0),this[t]=255&e,t+1},i.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},i.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);S(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o<r&&(a*=256);)e<0&&0===s&&0!==this[t+o-1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},i.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);S(this,e,t,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},i.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},i.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},i.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeFloatLE=function(e,t,r){return E(this,e,t,!0,r)},i.prototype.writeFloatBE=function(e,t,r){return E(this,e,t,!1,r)},i.prototype.writeDoubleLE=function(e,t,r){return C(this,e,t,!0,r)},i.prototype.writeDoubleBE=function(e,t,r){return C(this,e,t,!1,r)},i.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var i,o=n-r;if(this===e&&r<t&&t<n)for(i=o-1;i>=0;--i)e[i+t]=this[i+r];else if(o<1e3)for(i=0;i<o;++i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+o),t);return o},i.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!i.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;a<r;++a)this[a]=e;else{var s=i.isBuffer(e)?e:new i(e,n),c=s.length;for(a=0;a<r-t;++a)this[a+t]=s[a%c]}return this};var k=/[^+/0-9A-Za-z-_]/g},{"base64-js":3,ieee754:17}],8:[function(e,t,r){"use strict";function n(e,t,r){r=r||2;var n=t&&t.length,c=n?t[0]*r:e.length,h=i(e,0,c,r,!0),l=[];if(!h)return l;var p,m,v,g,y,b,_;if(n&&(h=function(e,t,r,n){var a,c,h,l,p,m=[];for(a=0,c=t.length;a<c;a++)h=t[a]*n,l=a<c-1?t[a+1]*n:e.length,(p=i(e,h,l,n,!1))===p.next&&(p.steiner=!0),m.push(function(e){var t=e,r=e;do{t.x<r.x&&(r=t),t=t.next}while(t!==e);return r}(p));for(m.sort(s),a=0;a<m.length;a++)!function(e,t){if(t=function(e,t){var r,n=t,i=e.x,o=e.y,a=-1/0;do{if(o<=n.y&&o>=n.next.y&&n.next.y!==n.y){var s=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>a){if(a=s,s===i){if(o===n.y)return n;if(o===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==t);if(!r)return null;if(i===a)return r.prev;var c,h=r,l=r.x,p=r.y,f=1/0;for(n=r.next;n!==h;)i>=n.x&&n.x>=l&&i!==n.x&&u(o<p?i:a,o,l,p,o<p?a:i,o,n.x,n.y)&&((c=Math.abs(o-n.y)/(i-n.x))<f||c===f&&n.x>r.x)&&d(n,e)&&(r=n,f=c),n=n.next;return r}(e,t)){var r=f(t,e);o(r,r.next)}}(m[a],r),r=o(r,r.next);return r}(e,t,h,r)),e.length>80*r){p=v=e[0],m=g=e[1];for(var x=r;x<c;x+=r)y=e[x],b=e[x+1],y<p&&(p=y),b<m&&(m=b),y>v&&(v=y),b>g&&(g=b);_=0!==(_=Math.max(v-p,g-m))?1/_:0}return a(h,l,r,p,m,_),l}function i(e,t,r,n,i){var o,a;if(i===y(e,t,r,n)>0)for(o=t;o<r;o+=n)a=m(o,e[o],e[o+1],a);else for(o=r-n;o>=t;o-=n)a=m(o,e[o],e[o+1],a);return a&&l(a,a.next)&&(v(a),a=a.next),a}function o(e,t){if(!e)return e;t||(t=e);var r,n=e;do{if(r=!1,n.steiner||!l(n,n.next)&&0!==h(n.prev,n,n.next))n=n.next;else{if(v(n),(n=t=n.prev)===n.next)break;r=!0}}while(r||n!==t);return t}function a(e,t,r,n,i,s,m){if(e){!m&&s&&function(e,t,r,n){var i=e;do{null===i.z&&(i.z=c(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){var t,r,n,i,o,a,s,c,u=1;do{for(r=e,e=null,o=null,a=0;r;){for(a++,n=r,s=0,t=0;t<u&&(s++,n=n.nextZ);t++);for(c=u;s>0||c>0&&n;)0!==s&&(0===c||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,c--),o?o.nextZ=i:e=i,i.prevZ=o,o=i;r=n}o.nextZ=null,u*=2}while(a>1)}(i)}(e,n,i,s);for(var g,y,b=e;e.prev!==e.next;)if(g=e.prev,y=e.next,s?function(e,t,r,n){var i=e.prev,o=e,a=e.next;if(h(i,o,a)>=0)return!1;var s=i.x<o.x?i.x<a.x?i.x:a.x:o.x<a.x?o.x:a.x,l=i.y<o.y?i.y<a.y?i.y:a.y:o.y<a.y?o.y:a.y,p=i.x>o.x?i.x>a.x?i.x:a.x:o.x>a.x?o.x:a.x,d=i.y>o.y?i.y>a.y?i.y:a.y:o.y>a.y?o.y:a.y,f=c(s,l,t,r,n),m=c(p,d,t,r,n),v=e.nextZ;for(;v&&v.z<=m;){if(v!==e.prev&&v!==e.next&&u(i.x,i.y,o.x,o.y,a.x,a.y,v.x,v.y)&&h(v.prev,v,v.next)>=0)return!1;v=v.nextZ}v=e.prevZ;for(;v&&v.z>=f;){if(v!==e.prev&&v!==e.next&&u(i.x,i.y,o.x,o.y,a.x,a.y,v.x,v.y)&&h(v.prev,v,v.next)>=0)return!1;v=v.prevZ}return!0}(e,n,i,s):function(e){var t=e.prev,r=e,n=e.next;if(h(t,r,n)>=0)return!1;var i=e.next.next;for(;i!==e.prev;){if(u(t.x,t.y,r.x,r.y,n.x,n.y,i.x,i.y)&&h(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}(e))t.push(g.i/r),t.push(e.i/r),t.push(y.i/r),v(e),e=y.next,b=y.next;else if((e=y)===b){m?1===m?a(e=function(e,t,r){var n=e;do{var i=n.prev,o=n.next.next;!l(i,o)&&p(i,n,n.next,o)&&d(i,o)&&d(o,i)&&(t.push(i.i/r),t.push(n.i/r),t.push(o.i/r),v(n),v(n.next),n=e=o),n=n.next}while(n!==e);return n}(e,t,r),t,r,n,i,s,2):2===m&&function(e,t,r,n,i,s){var c=e;do{for(var u=c.next.next;u!==c.prev;){if(c.i!==u.i&&function(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&p(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}(e,t)&&d(e,t)&&d(t,e)&&function(e,t){var r=e,n=!1,i=(e.x+t.x)/2,o=(e.y+t.y)/2;do{r.y>o!=r.next.y>o&&r.next.y!==r.y&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==e);return n}(e,t)}(c,u)){var h=f(c,u);return c=o(c,c.next),h=o(h,h.next),a(c,t,r,n,i,s),void a(h,t,r,n,i,s)}u=u.next}c=c.next}while(c!==e)}(e,t,r,n,i,s):a(o(e),t,r,n,i,s,1);break}}}function s(e,t){return e.x-t.x}function c(e,t,r,n,i){return e=32767*(e-r)*i,t=32767*(t-n)*i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function u(e,t,r,n,i,o,a,s){return(i-a)*(t-s)-(e-a)*(o-s)>=0&&(e-a)*(n-s)-(r-a)*(t-s)>=0&&(r-a)*(o-s)-(i-a)*(n-s)>=0}function h(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function l(e,t){return e.x===t.x&&e.y===t.y}function p(e,t,r,n){return!!(l(e,t)&&l(r,n)||l(e,n)&&l(r,t))||h(e,t,r)>0!=h(e,t,n)>0&&h(r,n,e)>0!=h(r,n,t)>0}function d(e,t){return h(e.prev,e,e.next)<0?h(e,t,e.next)>=0&&h(e,e.prev,t)>=0:h(e,t,e.prev)<0||h(e,e.next,t)<0}function f(e,t){var r=new g(e.i,e.x,e.y),n=new g(t.i,t.x,t.y),i=e.next,o=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,o.next=n,n.prev=o,n}function m(e,t,r,n){var i=new g(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function v(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function g(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function y(e,t,r,n){for(var i=0,o=t,a=r-n;o<r;o+=n)i+=(e[a]-e[o])*(e[o+1]+e[a+1]),a=o;return i}t.exports=n,t.exports.default=n,n.deviation=function(e,t,r,n){var i=t&&t.length,o=i?t[0]*r:e.length,a=Math.abs(y(e,0,o,r));if(i)for(var s=0,c=t.length;s<c;s++){var u=t[s]*r,h=s<c-1?t[s+1]*r:e.length;a-=Math.abs(y(e,u,h,r))}var l=0;for(s=0;s<n.length;s+=3){var p=n[s]*r,d=n[s+1]*r,f=n[s+2]*r;l+=Math.abs((e[p]-e[f])*(e[d+1]-e[p+1])-(e[p]-e[d])*(e[f+1]-e[p+1]))}return 0===a&&0===l?0:Math.abs((l-a)/a)},n.flatten=function(e){for(var t=e[0][0].length,r={vertices:[],holes:[],dimensions:t},n=0,i=0;i<e.length;i++){for(var o=0;o<e[i].length;o++)for(var a=0;a<t;a++)r.vertices.push(e[i][o][a]);i>0&&(n+=e[i-1].length,r.holes.push(n))}return r}},{}],9:[function(e,t,r){"use strict";e("individual/one-version")("ev-store","7");var n="__EV_STORE_KEY@7";t.exports=function(e){var t=e[n];return t||(t=e[n]={}),t}},{"individual/one-version":19}],10:[function(e,t,r){"use strict";function n(e,t){var r;for(r in t)e[r]=t[r];return e}function i(e,t){if(this._jsongUrl=e,"number"==typeof t){t={timeout:t}}this._config=n({timeout:15e3,headers:{}},t||{})}var o=e("./request"),a=e("./buildQueryObject");Array.isArray;i.prototype={constructor:i,buildQueryObject:a,get:function(e){var t=n(this.buildQueryObject(this._jsongUrl,"GET",{paths:e,method:"get"}),this._config);return o("GET",t,this)},set:function(e){var t=n(this.buildQueryObject(this._jsongUrl,"POST",{jsonGraph:e,method:"set"}),this._config);t.headers["Content-Type"]="application/x-www-form-urlencoded";return o("POST",t,this)},call:function(e,t,r,i){t=t||[],r=r||[],i=i||[];var a=[];a.push("method=call"),a.push("callPath="+encodeURIComponent(JSON.stringify(e))),a.push("arguments="+encodeURIComponent(JSON.stringify(t))),a.push("pathSuffixes="+encodeURIComponent(JSON.stringify(r))),a.push("paths="+encodeURIComponent(JSON.stringify(i)));var s=n(this.buildQueryObject(this._jsongUrl,"POST",a.join("&")),this._config);s.headers["Content-Type"]="application/x-www-form-urlencoded";return o("POST",s,this)}},i.XMLHttpSource=i,i.default=i,t.exports=i},{"./buildQueryObject":11,"./request":14}],11:[function(e,t,r){"use strict";t.exports=function(e,t,r){var n=[],i={url:e},o=-1!==e.indexOf("?")?"&":"?";return"string"==typeof r?n.push(r):Object.keys(r).forEach(function(e){var t="object"==typeof r[e]?JSON.stringify(r[e]):r[e];n.push(e+"="+encodeURIComponent(t))}),"GET"===t?i.url+=o+n.join("&"):i.data=n.join("&"),i}},{}],12:[function(e,t,r){(function(e){"use strict";t.exports=function(){var t=new e.XMLHttpRequest;if("withCredentials"in t)return t;if(e.XDomainRequest)return new XDomainRequest;throw new Error("CORS is not supported by your browser")}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],13:[function(e,t,r){(function(e){"use strict";t.exports=function(){var t,r,n;if(e.XMLHttpRequest)return new e.XMLHttpRequest;try{for(r=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],n=0;n<3;n++)try{if(t=r[n],new e.ActiveXObject(t))break}catch(e){}return new e.ActiveXObject(t)}catch(e){throw new Error("XMLHttpRequest is not supported by your browser")}}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],14:[function(e,t,r){"use strict";function n(){}function i(e,t,r){return n.create(function(n){var i,u,h,l,p,d={method:e||"GET",crossDomain:!1,async:!0,headers:{},responseType:"json"};for(p in t)c.call(t,p)&&(d[p]=t[p]);d.crossDomain||d.headers["X-Requested-With"]||(d.headers["X-Requested-With"]="XMLHttpRequest"),null!=r.onBeforeRequest&&r.onBeforeRequest(d);try{i=d.crossDomain?s():a()}catch(e){n.onError(e)}try{d.user?i.open(d.method,d.url,d.async,d.user,d.password):i.open(d.method,d.url,d.async),i.timeout=d.timeout,i.withCredentials=!1!==d.withCredentials,h=d.headers;for(l in h)c.call(h,l)&&i.setRequestHeader(l,h[l]);if(d.responseType)try{i.responseType=d.responseType}catch(e){if("json"!==d.responseType)throw e}i.onreadystatechange=function(e){4===i.readyState&&(u||(u=!0,function(e,t,r){var n,i;if(t&&e){i=t.responseType,n="response"in t?t.response:t.responseText;var a=1223===t.status?204:t.status;if(a>=200&&a<=399){try{"json"!==i&&(n=JSON.parse(n||"")),"string"==typeof n&&(n=JSON.parse(n||""))}catch(r){o(e,"invalid json",r)}return e.onNext(n),void e.onCompleted()}401===a||403===a||407===a?o(e,n):410===a?o(e,n):408===a||504===a?o(e,n):o(e,n||"Response code "+a)}}(n,i)))},i.ontimeout=function(e){u||(u=!0,function(e,t,r,n){o(e,"timeout error"||t.statusText||"request error",n)}(n,i,0,e))},i.send(d.data)}catch(e){n.onError(e)}return function(){u||4===i.readyState||(u=!0,i.abort())}})}function o(e,t,r){r||(r=new Error(t)),e.onError(r)}var a=e("./getXMLHttpRequest"),s=e("./getCORSRequest"),c=Object.prototype.hasOwnProperty,u=function(){};n.create=function(e){var t=new n;return t.subscribe=function(t,r,n){var i,o;return i="function"==typeof t?{onNext:t,onError:r||u,onCompleted:n||u}:t,"function"==typeof(o=e(i))?{dispose:o}:o},t},t.exports=i},{"./getCORSRequest":12,"./getXMLHttpRequest":13}],15:[function(e,t,r){(function(n){!function(e){if("object"==typeof r&&void 0!==t)t.exports=e();else{("undefined"!=typeof window?window:void 0!==n?n:"undefined"!=typeof self?self:this).falcor=e()}}(function(){return function t(r,n,i){function o(s,c){if(!n[s]){if(!r[s]){var u="function"==typeof e&&e;if(!c&&u)return u(s,!0);if(a)return a(s,!0);var h=new Error("Cannot find module '"+s+"'");throw h.code="MODULE_NOT_FOUND",h}var l=n[s]={exports:{}};r[s][0].call(l.exports,function(e){var t=r[s][1][e];return o(t||e)},l,l.exports,t,r,n,i)}return n[s].exports}for(var a="function"==typeof e&&e,s=0;s<i.length;s++)o(i[s]);return o}({1:[function(e,t,r){var n=e(32),i=e(130);n.atom=i.atom,n.ref=i.ref,n.error=i.error,n.pathValue=i.pathValue,n.HttpDataSource=e(125),t.exports=n},{125:125,130:130,32:32}],2:[function(e,t,r){function n(e){var t=e||{};this._root=t._root||new i(t),this._path=t.path||t._path||[],this._scheduler=t.scheduler||t._scheduler||new d,this._source=t.source||t._source,this._request=t.request||t._request||new a(this,this._scheduler),this._ID=T++,"number"==typeof t.maxSize?this._maxSize=t.maxSize:this._maxSize=t._maxSize||n.prototype._maxSize,"number"==typeof t.collectRatio?this._collectRatio=t.collectRatio:this._collectRatio=t._collectRatio||n.prototype._collectRatio,(t.boxed||t.hasOwnProperty("_boxed"))&&(this._boxed=t.boxed||t._boxed),(t.materialized||t.hasOwnProperty("_materialized"))&&(this._materialized=t.materialized||t._materialized),"boolean"==typeof t.treatErrorsAsValues?this._treatErrorsAsValues=t.treatErrorsAsValues:t.hasOwnProperty("_treatErrorsAsValues")&&(this._treatErrorsAsValues=t._treatErrorsAsValues),t.cache&&this.setCache(t.cache)}var i=e(4),o=e(3),a=e(55),s=e(64),c=e(65),u=e(61),h=e(63),l=e(73),p=e(75),d=e(74),f=e(81),m=e(84),v=e(49),g=e(134),y=e(88),b=e(100),_=e(96),x=e(102),w=e(98),S=e(99),M=e(77),E=e(76),C=e(130),T=0,O=e(116),P=function(){},j=e(14),A=e(19),R={pathValue:!0,pathSyntax:!0,json:!0,jsonGraph:!0},L=e(72);t.exports=n,n.ref=C.ref,n.atom=C.atom,n.error=C.error,n.pathValue=C.pathValue,n.prototype.constructor=n,n.prototype._materialized=!1,n.prototype._boxed=!1,n.prototype._progressive=!1,n.prototype._treatErrorsAsValues=!1,n.prototype._maxSize=Math.pow(2,53)-1,n.prototype._collectRatio=.75,n.prototype.get=e(71),n.prototype._getWithPaths=e(70),n.prototype.set=function(){var e=O(arguments,R,"set");return!0!==e?new s(function(t){t.onError(e)}):this._set.apply(this,arguments)},n.prototype.preload=function(){var e=O(arguments,L,"preload");if(!0!==e)return new s(function(t){t.onError(e)});var t=Array.prototype.slice.call(arguments),r=this;return new s(function(e){return r.get.apply(r,t).subscribe(function(){},function(t){e.onError(t)},function(){e.onCompleted()})})},n.prototype._set=function(){var e,t=-1,r=arguments.length,n=arguments[r-1];for(_(n)?r-=1:n=void 0,e=new Array(r);++t<r;)e[t]=arguments[t];return c.create(this,e,n)},n.prototype.call=function(){var e,t=-1,r=arguments.length;for(e=new Array(r);++t<r;){var n=arguments[t];e[t]=n;var i=typeof n;if(t>1&&!Array.isArray(n)||0===t&&!Array.isArray(n)&&"string"!==i||1===t&&!Array.isArray(n)&&!x(n))return new s(function(e){e.onError(new Error("Invalid argument"))})}return u.create(this,e)},n.prototype.invalidate=function(){var e,t=-1,r=arguments.length,n=arguments[r-1];for(e=new Array(r);++t<r;)if(e[t]=g.fromPath(arguments[t]),"object"!=typeof e[t])throw new Error("Invalid argument");h.create(this,e,n).subscribe(P,function(e){throw e})},n.prototype.deref=e(5),n.prototype.getValue=e(16),n.prototype.setValue=e(79),n.prototype._getValueSync=e(24),n.prototype._setValueSync=e(80),n.prototype._derefSync=e(6),n.prototype.setCache=function(e){var t=this._root.cache;if(e!==t){var r=this._root,n=this._path;this._path=[],this._root.cache={},void 0!==t&&v(r,r.expired,y(t),0),S(e)?E(this,[e]):w(e)?M(this,[e]):b(e)&&M(this,[{json:e}]),this._path=n}else void 0===t&&(this._root.cache={});return this},n.prototype.getCache=function(){var e=m(arguments);if(0===e.length)return j(this._root.cache);var t=[{}],r=this._path;return A.getWithPathsAsJSONGraph(this,e,t),this._path=r,t[0].jsonGraph},n.prototype.getVersion=function(e){var t=e&&g.fromPath(e)||[];if(!1===Array.isArray(t))throw new Error("Model#getVersion must be called with an Array path.");return this._path.length&&(t=this._path.concat(t)),this._getVersion(this,t)},n.prototype._syncCheck=function(e){if(Boolean(this._source)&&this._root.syncRefCount<=0&&!1===this._root.unsafeMode)throw new Error("Model#"+e+" may only be called within the context of a request selector.");return!0},n.prototype._clone=function(e){var t=new n(this);for(var r in e){var i=e[r];"delete"===i?delete t[r]:t[r]=i}return t.setCache=void 0,t},n.prototype.batch=function(e){var t=e;"number"==typeof t?t=new p(Math.round(Math.abs(t))):t&&t.schedule||(t=new l);var r=this._clone();return r._request=new a(r,t),r},n.prototype.unbatch=function(){var e=this._clone();return e._request=new a(e,new d),e},n.prototype.treatErrorsAsValues=function(){return this._clone({_treatErrorsAsValues:!0})},n.prototype.asDataSource=function(){return new o(this)},n.prototype._materialize=function(){return this._clone({_materialized:!0})},n.prototype._dematerialize=function(){return this._clone({_materialized:"delete"})},n.prototype.boxValues=function(){return this._clone({_boxed:!0})},n.prototype.unboxValues=function(){return this._clone({_boxed:"delete"})},n.prototype.withoutDataSource=function(){return this._clone({_source:"delete"})},n.prototype.toJSON=function(){return{$type:"ref",value:this._path}},n.prototype.getPath=function(){return f(this._path)},n.prototype._getBoundValue=e(13),n.prototype._getVersion=e(18),n.prototype._getValueSync=e(17),n.prototype._getPathValuesAsPathMap=A.getWithPathsAsPathMap,n.prototype._getPathValuesAsJSONG=A.getWithPathsAsJSONGraph,n.prototype._setPathValuesAsJSON=e(78),n.prototype._setPathValuesAsJSONG=e(78),n.prototype._setPathValuesAsPathMap=e(78),n.prototype._setPathValuesAsValues=e(78),n.prototype._setPathMapsAsJSON=e(77),n.prototype._setPathMapsAsJSONG=e(77),n.prototype._setPathMapsAsPathMap=e(77),n.prototype._setPathMapsAsValues=e(77),n.prototype._setJSONGsAsJSON=e(76),n.prototype._setJSONGsAsJSONG=e(76),n.prototype._setJSONGsAsPathMap=e(76),n.prototype._setJSONGsAsValues=e(76),n.prototype._setCache=e(77),n.prototype._invalidatePathValuesAsJSON=e(48),n.prototype._invalidatePathMapsAsJSON=e(47)},{100:100,102:102,116:116,13:13,130:130,134:134,14:14,16:16,17:17,18:18,19:19,24:24,3:3,4:4,47:47,48:48,49:49,5:5,55:55,6:6,61:61,63:63,64:64,65:65,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,81:81,84:84,88:88,96:96,98:98,99:99}],3:[function(e,t,r){function n(e){this._model=e._materialize().treatErrorsAsValues()}n.prototype.get=function(e){return this._model.get.apply(this._model,e)._toJSONG()},n.prototype.set=function(e){return this._model.set(e)._toJSONG()},n.prototype.call=function(e,t,r,n){var i=[e,t,r].concat(n);return this._model.call.apply(this._model,i)._toJSONG()},t.exports=n},{}],4:[function(e,t,r){function n(e){var t=e||{};this.syncRefCount=0,this.expired=t.expired||[],this.unsafeMode=t.unsafeMode||!1,this.collectionScheduler=t.collectionScheduler||new a,this.cache={},i(t.comparator)&&(this.comparator=t.comparator),i(t.errorSelector)&&(this.errorSelector=t.errorSelector),i(t.onChange)&&(this.onChange=t.onChange)}var i=e(96),o=e(91),a=e(74);n.prototype.errorSelector=function(e,t){return t},n.prototype.comparator=function(e,t){return o(e,"value")&&o(t,"value")?e.value===t.value&&e.$type===t.$type&&e.$expires===t.$expires:e===t},t.exports=n},{74:74,91:91,96:96}],5:[function(e,t,r){function n(e,t){var r,n=!1;try{++e._root.syncRefCount,r=e._derefSync(t)}catch(e){r=e,n=!0}finally{--e._root.syncRefCount}return n?i.Observable.throw(r):i.Observable.return(r)}var i=e(159),o=e(134);t.exports=function(e){for(var t=this,r=-1,a=arguments.length-1,s=new Array(a),c=o.fromPath(e);++r<a;)s[r]=o.fromPath(arguments[r+1]);if(0===a)throw new Error("Model#deref requires at least one value path.");return i.Observable.defer(function(){return n(t,c)}).flatMap(function(e){if(Boolean(e)){if(a>0){var r=i.Observable.of(e);return e.get.apply(e,s).catch(i.Observable.empty()).concat(r).last().flatMap(function(){return n(t,c)}).filter(function(e){return e})}return i.Observable.return(e)}if(a>0){var o=s.map(function(e){return c.concat(e)});return t.get.apply(t,o).concat(i.Observable.defer(function(){return n(t,c)})).last().filter(function(e){return e})}return i.Observable.empty()})}},{134:134,159:159}],6:[function(e,t,r){var n=e(134),i=e(13),o=e(8),a=e(118);t.exports=function(e){var t=n.fromPath(e);if(!Array.isArray(t))throw new Error("Model#derefSync must be called with an Array path.");var r=i(this,this._path.concat(t),!1),s=r.path,c=r.value;if(r.found&&void 0!==c&&(c.$type!==a||void 0!==c.value)){if(c.$type)throw new o;return this._clone({_path:s})}}},{118:118,13:13,134:134,8:8}],7:[function(e,t,r){function n(){this.message=n.message,this.stack=(new Error).stack}(n.prototype=new Error).name="BoundJSONGraphModelError",n.message="It is not legal to use the JSON Graph format from a bound Model. JSON Graph format can only be used from a root model.",t.exports=n},{}],8:[function(e,t,r){function n(e,t){this.message=i,this.stack=(new Error).stack,this.boundPath=e,this.shortedPath=t}var i="The boundPath of the model is not valid since a value or error was found before the path end.";(n.prototype=new Error).name="InvalidModelError",n.message=i,t.exports=n},{}],9:[function(e,t,r){function n(e){this.message="An exception was thrown when making a request.",this.stack=(new Error).stack,this.innerError=e}var i="InvalidSourceError";(n.prototype=new Error).name=i,n.is=function(e){return e&&e.name===i},t.exports=n},{}],10:[function(e,t,r){function n(){this.message="The allowed number of retries have been exceeded.",this.stack=(new Error).stack}var i="MaxRetryExceededError";(n.prototype=new Error).name=i,n.is=function(e){return e&&e.name===i},t.exports=n},{}],11:[function(e,t,r){var n=e(26).create,i=e(22),o=e(27),a=e(120),s=e(33),c=e(29).promote;t.exports=function(e,t,r,u,h,l,p){for(var d,f,m=r,v=h,g=u,y=0;;){if(0===y&&g[s]?(y=v.length,f=g[s]):(d=v[y++],f=m[d]),f){var b=f.$type,_=b&&f.value||f;if(y<v.length){if(b){m=f;break}m=f;continue}if(m=f,b&&o(f))break;if(g[s]||n(g,f),b===a){p?i(e,f,l,null,null,null,v,v.length,p):c(e,f),y=0,v=_,g=f,m=t;continue}break}m=void 0;break}if(y<v.length&&void 0!==m){for(var x=[],w=0;y>w;w++)x[w]=v[w];v=x}return[m,v]}},{120:120,22:22,26:26,27:27,29:29,33:33}],12:[function(e,t,r){var n=e(15),i=e(8),o=e(7);t.exports=function(e,t){return function(r,a,s){var c,u,h,l=s[0],p={values:s,optimizedPaths:[]},d=r._root.cache,f=r._path,m=d,v=f.length,g=[];if(v){if(t)return{criticalError:new o};if((m=n(r,f)).$type)return{criticalError:new i(f,f)};for(c=[],u=0;v>u;++u)c[u]=f[u]}else c=[],v=0;for(u=0,h=a.length;h>u;u++)e(r,d,m,a[u],0,l,p,g,c,v,t);return p}}},{15:15,7:7,8:8}],13:[function(e,t,r){var n=e(17),i=e(8);t.exports=function(e,t,r){var o,a,s,c,u,h=t,l=t;for(o=e._boxed,r=e._materialized,a=e._treatErrorsAsValues,e._boxed=!0,e._materialized=void 0===r||r,e._treatErrorsAsValues=!0,s=n(e,h.concat(null),!0),e._boxed=o,e._materialized=r,e._treatErrorsAsValues=a,h=s.optimizedPath,c=s.shorted,u=s.found,s=s.value;h.length&&null===h[h.length-1];)h.pop();if(u&&c)throw new i(l,h);return{path:h,value:s,shorted:c,found:u}}},{17:17,8:8}],14:[function(e,t,r){function n(e){var t,r,n,i={},o=Object.keys(e);for(r=0,n=o.length;n>r;r++)t=o[r],a(t)||(i[t]=e[t]);return i}function i(e,t,r){Object.keys(e).filter(function(t){return!a(t)&&e[t]}).forEach(function(r){var a=e[r],s=t[r];if(s||(s=t[r]={}),a.$type){var c,u=a.value&&"object"==typeof a.value,h=!e[o];return c=u||h?n(a):a.value,void(t[r]=c)}i(a,s,r)})}var o=e(37),a=e(97);t.exports=function(e){var t={};return i(e,t),t}},{37:37,97:97}],15:[function(e,t,r){t.exports=function(e,t){for(var r=e._root.cache,n=-1,i=t.length;++n<i&&r&&!r.$type;)r=r[t[n]];return r}},{}],16:[function(e,t,r){var n=e(64),i=e(134);t.exports=function(e){for(var t=i.fromPath(e),r=0,o=t.length;++r<o;)if("object"==typeof t[r])return new n(function(e){e.onError(new Error("Paths must be simple paths"))});var a=this;return new n(function(e){return a.get(t).subscribe(function(r){for(var n=r.json,i=-1,o=t.length;n&&++i<o;)n=n[t[i]];e.onNext(n)},function(t){e.onError(t)},function(){e.onCompleted()})})}},{134:134,64:64}],17:[function(e,t,r){var n=e(11),i=e(25),o=e(27),a=e(29).promote,s=e(120),c=e(118),u=e(119);t.exports=function(e,t,r){for(var h,l,p,d,f,m=e._root.cache,v=t.length,g=[],y=!1,b=!1,_=0,x=m,w=m,S=m,M=!0,E=!1;x&&v>_;){if(null!==(h=t[_++])&&(x=w[h],g[g.length]=h),!x){S=void 0,y=!0,M=!1;break}if((p=x.$type)===c&&void 0===x.value){S=void 0,M=!1,y=v>_;break}if(v>_){if(p===s){if(o(x)){E=!0,S=void 0,M=!1;break}if(d=n(e,m,m,x,x.value),!(f=d[0])){S=void 0,x=void 0,M=!1;break}p=f.$type,x=f,g=d[1].slice(0)}if(p)break}else S=x;w=x}if(v>_&&!E){for(l=_;v>l;++l)if(null!==t[_]){b=!0;break}for(b?(y=!0,S=void 0):S=x,l=_;v>l;++l)null!==t[l]&&(g[g.length]=t[l])}if(S&&p&&(o(S)?S=void 0:a(e,S)),S&&p===u&&!e._treatErrorsAsValues)throw{path:_===v?t:t.slice(0,_),value:S.value};return S&&e._boxed?S=Boolean(p)&&!r?i(S):S:!S&&e._materialized?S={$type:c}:S&&(S=S.value),{value:S,shorted:y,optimizedPath:g,found:M}}},{11:11,118:118,119:119,120:120,25:25,27:27,29:29}],18:[function(e,t,r){var n=e(46);t.exports=function(e,t){var r=e._getValueSync({_boxed:!0,_root:e._root,_treatErrorsAsValues:e._treatErrorsAsValues},t,!0).value,i=r&&r[n];return null==i?-1:i}},{46:46}],19:[function(e,t,r){var n=e(12),i=e(31),o=n(i,!1),a=n(i,!0);t.exports={getValueSync:e(17),getBoundValue:e(13),getWithPathsAsPathMap:o,getWithPathsAsJSONGraph:a}},{12:12,13:13,17:17,31:31}],20:[function(e,t,r){var n=e(29),i=e(25),o=n.promote;t.exports=function(e,t,r,n,a){var s=t.value;a.errors||(a.errors=[]),e._boxed&&(s=i(t)),a.errors.push({path:n.slice(0,r+1),value:s}),o(e,t)}},{25:25,29:29}],21:[function(e,t,r){var n=e(30).fastCopy;t.exports=function(e,t,r,i,o,a,s){i.requestedMissingPaths||(i.requestedMissingPaths=[],i.optimizedMissingPaths=[]),function(e,t,r,n,i,o,a){a.requestedMissingPaths.push(n.slice(0,r).concat(t)),a.optimizedMissingPaths.push(i.slice(0,o).concat(t))}(0,r<t.length?n(t,r):[],r,o,a,s,i)}},{30:30}],22:[function(e,t,r){var n=e(29),i=e(25),o=n.promote,a=e(120),s=e(118),c=e(119),u=e(37);t.exports=function(e,t,r,n,h,l,p,d,f,m){if(r){var v,g,y,b,_,x,w,S,M=!1;if(t&&o(e,t),t&&void 0!==t.value||(M=e._materialized),M)S={$type:s};else if(e._boxed)S=i(t);else if(t.$type===a||t.$type===c)S=f?i(t):t.value;else if(f){var E=t.value&&"object"==typeof t.value,C=!t[u];S=E||C?i(t):t.value}else S=t.value;if(h&&(h.hasValue=!0),f){for((_=r.jsonGraph)||(_=r.jsonGraph={},r.paths=[]),v=0,g=d-1;g>v;v++)b=p[v],_[b]||(_[b]={}),_=_[b];_[b=p[v]]=M?{$type:s}:S,l&&r.paths.push(l.slice(0,n))}else if(0===n)r.json=S;else{for((_=r.json)||(_=r.json={}),v=0;n-1>v;v++)y=l[v],_[y]||(_[y]={}),x=_,w=y,_=_[y];null!==(y=l[v])?_[y]=S:x[w]=S}}}},{118:118,119:119,120:120,25:25,29:29,37:37}],23:[function(e,t,r){var n=e(27),i=e(26),o=e(29),a=i.remove,s=o.splice,c=e(119),u=e(20),h=e(22),l=e(21),p=e(28),d=e(35);t.exports=function(e,t,r,i,o,f,m,v,g,y,b){var _=t&&t.$type,x=t&&void 0===t.value;return t&&_?void(n(t)?(t[d]||(s(e,t),a(t)),l(e,r,i,f,m,v,g)):_===c?(b&&(m[i]=null),y||e._treatErrorsAsValues?h(e,t,o,i,f,m,v,g,y,b):u(e,t,i,m,f)):(b&&(m[i]=null),(!x||x&&e._materialized)&&h(e,t,o,i,f,m,v,g,y,b))):void(p(e)?h(e,t,o,i,f,m,v,g,y,b):l(e,r,i,f,m,v,g))}},{119:119,20:20,21:21,22:22,26:26,27:27,28:28,29:29,35:35}],24:[function(e,t,r){var n=e(134);t.exports=function(e){var t=n.fromPath(e);if(!1===Array.isArray(t))throw new Error("Model#getValueSync must be called with an Array path.");return this._path.length&&(t=this._path.concat(t)),this._syncCheck("getValueSync")&&this._getValueSync(this,t).value}},{134:134}],25:[function(e,t,r){var n=e(40);t.exports=function(e){var t,r,i,o=Object.keys(e);for(t={},r=0,i=o.length;i>r;r++){var a=o[r];a[0]!==n&&(t[a]=e[a])}return t}},{40:40}],26:[function(e,t,r){var n=e(43),i=e(33),o=e(42),a=e(44);t.exports={create:function(e,t){var r=t[a]||0;t[n+r]=e,t[a]=r+1,e[o]=r,e[i]=t},remove:function(e){var t=e[i];if(t){for(var r=e[o],s=t[a];s>r;)t[n+r]=t[n+r+1],++r;t[a]=s-1,e[i]=void 0,e[o]=void 0}}}},{33:33,42:42,43:43,44:44}],27:[function(e,t,r){var n=e(106);t.exports=function(e){var t=void 0===e.$expires&&-1||e.$expires;return-1!==t&&1!==t&&(0===t||t<n())}},{106:106}],28:[function(e,t,r){t.exports=function(e){return e._materialized&&!e._source}},{}],29:[function(e,t,r){var n=e(34),i=e(45),o=e(38),a=e(41),s=e(35);t.exports={promote:function(e,t){var r=e._root,i=r[n];if(i!==t){var s=t[a],c=t[o];c&&(c[a]=s),s&&(s[o]=c),t[a]=void 0,r[n]=t,t[o]=i,i[a]=t}},splice:function(e,t){var r=e._root,c=t[a],u=t[o];u&&(u[a]=c),c&&(c[o]=u),t[a]=void 0,t===r[n]&&(r[n]=void 0),t===r[i]&&(r[i]=void 0),t[s]=!0,r.expired.push(t)}}},{34:34,35:35,38:38,41:41,45:45}],30:[function(e,t,r){t.exports={fastCat:function(e,t){var r,n,i,o=[];for(r=0,n=e.length;n>r;r++)o[r]=e[r];for(i=0,n=t.length;n>i;i++)o[r++]=t[i];return o},fastCatSkipNulls:function(e,t){var r,n,i,o=[];for(r=0,n=e.length;n>r;r++)o[r]=e[r];for(i=0,n=t.length;n>i;i++)null!==t[i]&&(o[r++]=t[i]);return o},fastCopy:function(e,t){var r,n,i,o=[];for(n=0,i=t||0,r=e.length;r>i;n++,i++)o[n]=e[i];return o}}},{}],31:[function(e,t,r){var n=e(11),i=e(23),o=e(27),a=e(143).iterateKeySet,s=e(120),c=e(29).promote;t.exports=function e(t,r,u,h,l,p,d,f,m,v,g,y){var b=y,_=m;if(!u||u&&u.$type||l===h.length)i(t,u,h,l,p,d,f,_,v,g,b);else{var x,w,S=l+1,M=!1,E=x=h[l];if("object"==typeof x&&(M={},E=a(x,M)),void 0!==E||!M.done){var C=v+1;do{b=!1;var T;null===E?T=u:(T=u[E],_[v]=E,f[l]=E);var O=_,P=C;if(T){var j=T.$type,A=j&&T.value||T;if(S<h.length&&j&&j===s&&!o(T)){g&&i(t,T,h,S,p,d,null,_,P,g,b),c(t,T);var R=n(t,r,r,T,A,p,g);b=!0,T=R[0];var L=R[1];for(O=[],P=L.length,w=0;P>w;++w)O[w]=L[w]}}e(t,r,T,h,S,p,d,f,O,P,g,b),M&&!M.done&&(E=a(x,M))}while(M&&!M.done)}}}},{11:11,120:120,143:143,23:23,27:27,29:29}],32:[function(e,t,r){"use strict";function n(e){return new n.Model(e)}n.Promise="function"==typeof Promise?Promise:e(151),t.exports=n,n.Model=e(2)},{151:151,2:2}],33:[function(e,t,r){t.exports=e(40)+"context"},{40:40}],34:[function(e,t,r){t.exports=e(40)+"head"},{40:40}],35:[function(e,t,r){t.exports=e(40)+"invalidated"},{40:40}],36:[function(e,t,r){t.exports=e(40)+"key"},{40:40}],37:[function(e,t,r){t.exports="$modelCreated"},{}],38:[function(e,t,r){t.exports=e(40)+"next"},{40:40}],39:[function(e,t,r){t.exports=e(40)+"parent"},{40:40}],40:[function(e,t,r){t.exports=String.fromCharCode(30)},{}],41:[function(e,t,r){t.exports=e(40)+"prev"},{40:40}],42:[function(e,t,r){t.exports=e(40)+"ref-index"},{40:40}],43:[function(e,t,r){t.exports=e(40)+"ref"},{40:40}],44:[function(e,t,r){t.exports=e(40)+"refs-length"},{40:40}],45:[function(e,t,r){t.exports=e(40)+"tail"},{40:40}],46:[function(e,t,r){t.exports=e(40)+"version"},{40:40}],47:[function(e,t,r){function n(e,t,r,i,a,s,u,h,l,p){if(!w(e)&&!e.$type)for(var d in e)if(d[0]!==c&&"$"!==d[0]&&y(e,d)){var f=e[d],m=b(f)&&!f.$type,v=o(r,i,a,d,f,m,!1,s,u,h,l,p),_=v[0],x=v[1];_&&(m?n(f,t+1,r,x,_,s,u,h,l,p):C(_,x,d,h)&&E(x,g(_),h,s))}}function i(e,t,r,n,i,a,c,l){if(_(r))return S(r,i,a),[void 0,t];v(a,r);var f=r,m=r.value,g=t;if(null!=(r=r[h]))g=r[u]||t;else{var y=0,b=m.length-1;g=r=t;do{var x=o(t,g,r,m[y],e,b>y,!0,n,i,a,c,l);if(r=x[0],w(r))return x;g=x[1]}while(y++<b);if(f[h]!==r){var M=r[d]||0;r[d]=M+1,r[s+M]=f,f[h]=r,f[p]=M}}return[r,g]}function o(e,t,r,n,o,s,c,u,h,l,p,d){for(var m=r.$type;m===f;){var v=i(o,e,r,u,h,l,p,d);if(r=v[0],w(r))return v;t=v[1],m=r&&r.$type}if(void 0!==m)return[r,t];if(null==n){if(s)throw new Error("`null` is not allowed in branch key positions.");r&&(n=r[a])}else t=r,r=t[n];return[r,t]}var a=e(36),s=e(43),c=e(40),u=e(39),h=e(33),l=e(46),p=e(42),d=e(44),f=e(120),m=e(13),v=e(50),g=e(88),y=e(91),b=e(100),_=e(95),x=e(96),w=e(102),S=e(86),M=e(92),E=e(115),C=e(109);t.exports=function(e,t){for(var r=e._root,i=r,o=r.expired,a=M(),s=r._comparator,c=r._errorSelector,h=e._path,p=r.cache,d=h.length?m(e,h).value:p,f=d[u]||p,v=p[l],g=-1,y=t.length;++g<y;){n(t[g].json,0,p,f,d,a,o,i,s,c)}var b=p[l],_=r.onChange;x(_)&&v!==b&&_()}},{100:100,102:102,109:109,115:115,120:120,13:13,33:33,36:36,39:39,40:40,42:42,43:43,44:44,46:46,50:50,86:86,88:88,91:91,92:92,95:95,96:96}],48:[function(e,t,r){function n(e,t,r,i,a,s,c,u){var h={},l=t<e.length-1,p=e[t],d=x(p,h);do{var f=o(r,i,a,d,l,!1,s,c,u),m=f[0],g=f[1];m&&(l?n(e,t+1,r,g,m,s,c,u):M(m,g,d,u)&&S(g,v(m),u,s)),d=x(p,h)}while(!h.done)}function i(e,t,r,n,i){if(g(t))return _(t,n,i),[void 0,e];m(i,t);var a=t,h=t.value,d=e;if(null!=(t=t[u]))d=t[c]||e;else{var f=0,v=h.length-1;d=t=e;do{var y=o(e,d,t,h[f],v>f,!0,r,n,i);if(t=y[0],b(t))return y;d=y[1]}while(f++<v);if(a[u]!==t){var x=t[p]||0;t[p]=x+1,t[s+x]=a,a[u]=t,a[l]=x}}return[t,d]}function o(e,t,r,n,o,s,c,u,h){for(var l=r.$type;l===d;){var p=i(e,r,c,u,h);if(r=p[0],b(r))return p;t=p[1],l=r.$type}if(void 0!==l)return[r,t];if(null==n){if(o)throw new Error("`null` is not allowed in branch key positions.");r&&(n=r[a])}else t=r,r=t[n];return[r,t]}var a=e(36),s=e(43),c=e(39),u=e(33),h=e(46),l=e(42),p=e(44),d=e(120),f=e(13),m=e(50),v=e(88),g=e(95),y=e(96),b=e(102),_=e(86),x=e(143).iterateKeySet,w=e(92),S=e(115),M=e(109);t.exports=function(e,t){for(var r=e._root,i=r,o=r.expired,a=w(),s=e._path,u=r.cache,l=s.length?f(e,s).value:u,p=l[c]||u,d=u[h],m=-1,v=t.length;++m<v;){n(t[m],0,u,p,l,a,o,i)}var g=u[h],b=r.onChange;y(b)&&d!==g&&b()}},{102:102,109:109,115:115,120:120,13:13,143:143,33:33,36:36,39:39,42:42,43:43,44:44,46:46,50:50,86:86,88:88,92:92,95:95,96:96}],49:[function(e,t,r){var n=e(36),i=e(39),o=e(34),a=e(45),s=e(38),c=e(41),u=e(108),h=e(115);t.exports=function(e,t,r,l,p,d){var f=r,m=p;"number"!=typeof m&&(m=.75);var v,g,y,b="number"==typeof d,_=l*m;for(g=t.pop();g;)y=g.$size||0,f-=y,!0===b?h(g,y,e,d):(v=g[i])&&u(g,v,g[n],e),g=t.pop();if(f>=l){var x=e[a];for(g=x;f>=_&&g;)x=x[c],y=g.$size||0,f-=y,!0===b&&h(g,y,e,d),g=x;e[a]=e[c]=g,null==g?e[o]=e[s]=void 0:g[s]=void 0}}},{108:108,115:115,34:34,36:36,38:38,39:39,41:41,45:45}],50:[function(e,t,r){var n=e(121),i=e(34),o=e(45),a=e(38),s=e(41),c=e(100);t.exports=function(e,t){if(c(t)&&t.$expires!==n){var r=e[i],u=e[o],h=t[a],l=t[s];t!==r&&(null!=h&&"object"==typeof h&&(h[s]=l),null!=l&&"object"==typeof l&&(l[a]=h),h=r,null!=r&&"object"==typeof r&&(r[s]=t),e[i]=e[a]=r=t,r[a]=h,r[s]=void 0),null!=u&&t!==u||(e[o]=e[s]=u=l||t)}return t}},{100:100,121:121,34:34,38:38,41:41,45:45}],51:[function(e,t,r){var n=e(34),i=e(45),o=e(38),a=e(41);t.exports=function(e,t){var r=e[n],s=e[i],c=t[o],u=t[a];null!=c&&"object"==typeof c&&(c[a]=u),null!=u&&"object"==typeof u&&(u[o]=c),t===r&&(e[n]=e[o]=c),t===s&&(e[i]=e[a]=u),t[o]=t[a]=void 0,r=s=c=u=void 0}},{34:34,38:38,41:41,45:45}],52:[function(e,t,r){function n(e,t){var r=!1;return function(){if(!r&&!e._disposed){r=!0,e._callbacks[t]=null,e._optimizedPaths[t]=[],e._requestedPaths[t]=[];0!==--e._count||e.sent||(e._disposable.dispose(),e.requestQueue.removeRequest(e))}}}var i=e(59),o=e(60),a=0,s=e(57).GetRequest,c=e(76),u=e(78),h=e(119),l=[],p=function(e,t){this.sent=!1,this.scheduled=!1,this.requestQueue=t,this.id=++a,this.type=s,this._scheduler=e,this._pathMap={},this._optimizedPaths=[],this._requestedPaths=[],this._callbacks=[],this._count=0,this._disposable=null,this._collapsed=null,this._disposed=!1};p.prototype={batch:function(e,t,r){var i=this,a=i._optimizedPaths,s=i._requestedPaths,c=i._callbacks,u=a.length;return a[u]=t,s[u]=e,c[u]=r,++i._count,i.scheduled||(i.scheduled=!0,i._disposable=i._scheduler.schedule(function(){o(i,a,function(e,t){if(i.requestQueue.removeRequest(i),i._disposed=!0,i._count){i._merge(s,e,t);for(var r=0,n=c.length;n>r;++r){var o=c[r];o&&o(e,t)}}})})),n(i,u)},add:function(e,t,r){var o,a,s=this,c=i(e,t,s._pathMap);c?(a=c[2],o=c[1]):(a=e,o=t);var u=!1,h=!1;if(o.length<t.length){u=!0;var l=s._callbacks.length;s._callbacks[l]=r,s._requestedPaths[l]=c[0],s._optimizedPaths[l]=[],++s._count,h=n(s,l)}return[u,a,o,h]},_merge:function(e,t,r){var n=this.requestQueue.model,i=n._root,o=i.errorSelector,a=i.comparator,s=n._path;n._path=l;var p=function(e){for(var t=[],r=-1,n=0,i=e.length;i>n;++n)for(var o=e[n],a=0,s=o.length;s>a;++a)t[++r]=o[a];return t}(e);if(t){var d=t;d instanceof Error&&(d={message:d.message}),d.$type||(d={$type:h,value:d});var f=p.map(function(e){return{path:e,value:d}});u(n,f,null,o,a)}else c(n,[{paths:p,jsonGraph:r.jsonGraph}],null,o,a);n._path=s}},t.exports=p},{119:119,57:57,59:59,60:60,76:76,78:78}],53:[function(e,t,r){function n(){this.length=0,this.pending=!1,this.pathmaps=[],a.call(this,this._subscribe)}var i=e(159),o=i.Observer,a=i.Observable,s=i.Disposable,c=i.SerialDisposable,u=i.CompositeDisposable,h=e(9),l=e(143).iterateKeySet;n.create=function(e,t,r){var n=new this;return n.queue=e,n.model=t,n.index=r,n},(n.prototype=Object.create(a.prototype)).constructor=n,n.prototype.insertPath=function(e,t,r,n,i){var o=n||0,a=i||e.length-1,s=r||this.pathmaps[a+1]||(this.pathmaps[a+1]=Object.create(null));if(void 0===s||null===s)return!1;var c,u,h=e[o],p={};c=l(h,p);do{if(u=s[c],a>o){if(null==u){if(t)return!1;u=s[c]=Object.create(null)}if(!1===this.insertPath(e,t,u,o+1,a))return!1}else s[c]=(u||0)+1,this.length+=1;p.done||(c=l(h,p))}while(!p.done);return!0},n.prototype.removePath=function(e,t,r,n){var i=r||0,o=n||e.length-1,a=t||this.pathmaps[o+1];if(void 0===a||null===a)return!0;var s,c,u=0,h=e[i],p={};s=l(h,p);do{if(void 0!==(c=a[s])&&null!==c){if(o>i){u+=this.removePath(e,c,i+1,o);var d=void 0;for(d in c)break;void 0===d&&delete a[s]}else 0===(c=a[s]=(c||1)-1)&&delete a[s],u+=1,this.length-=1;p.done||(s=l(h,p))}}while(!p.done);return u},n.prototype.getSourceObserver=function(e){var t=this;return o.create(function(r){r.jsonGraph=r.jsonGraph||r.jsong||r.values||r.value,r.index=t.index,e.onNext(r)},function(t){e.onError(t)},function(){e.onCompleted()})},n.prototype._subscribe=function(e){var t=this,r=this.queue;t.pending=!0;var n=!1,i=new c,o=s.create(function(){n||(n=!0,r&&r._remove(t))}),a=new u(i,o);try{i.setDisposable(this.model._source[this.method](this.getSourceArgs()).subscribe(this.getSourceObserver(e)))}catch(e){throw new h(e)}return a},t.exports=n},{143:143,159:159,9:9}],54:[function(e,t,r){function n(e,t){this.total=0,this.model=e,this.requests=[],this.scheduler=t}var i=e(58),o=e(40),a=e(90),s=e(100),c=e(143);n.prototype.set=function(e){return e.paths=c.collapse(e.paths),i.create(this.model,e)},n.prototype._remove=function(e){var t=this.requests,r=t.indexOf(e);-1!==r&&t.splice(r,1)},n.prototype.distributePaths=function(e,t,r){var n,i,o=this.model,a=-1,s=e.length,c=-1,u=t.length,h=[];e:for(;++a<s;){var l=e[a];for(c=-1;++c<u;)if((i=t[c]).insertPath(l,i.pending)){h[c]=i;continue e}n||(n=r.create(this,o,this.total++),t[c]=n,h[u++]=n),n.insertPath(l,!1)}var p=[],d=-1;for(c=-1;++c<u;)null!=(i=h[c])&&(p[++d]=i);return p},n.prototype.mergeJSONGraphs=function(e,t){var r=0,n=[],i=[],c=[],u=e.index,h=t.index;e.index=Math.max(u,h),n[-1]=e.jsonGraph||{},i[-1]=t.jsonGraph||{};e:for(;r>-1;){for(var l=n[r-1],p=i[r-1],d=c[r-1]||(c[r-1]=Object.keys(p));d.length>0;){var f=d.pop();if(f[0]!==o)if(l.hasOwnProperty(f)){var m=l[f],v=a(m),g=p[f],y=a(g);if(s(m)&&s(g)&&!v&&!y){n[r]=m,i[r]=g,r+=1;continue e}h>u&&(l[f]=g)}else l[f]=p[f]}r-=1}return e},t.exports=n},{100:100,143:143,40:40,58:58,90:90}],55:[function(e,t,r){function n(e,t){this.model=e,this.scheduler=t,this.requests=this._requests=[]}var i=e(54),o=e(56);n.prototype.get=o.prototype.get,n.prototype.removeRequest=o.prototype.removeRequest,n.prototype.set=i.prototype.set,n.prototype.call=i.prototype.call,t.exports=n},{54:54,56:56}],56:[function(e,t,r){function n(e,t){this.model=e,this.scheduler=t,this.requests=this._requests=[]}var i=e(57),o=e(52);n.prototype={setScheduler:function(e){this.scheduler=e},get:function(e,t,r){function n(){m||0==--l&&r()}var a,s,c,u=this,h=[],l=0,p=u._requests,d=t,f=e,m=!1;for(a=0,s=p.length;s>a;++a)if((c=p[a]).type===i.GetRequest){if(c.sent){var v=c.add(f,d,n);v[0]&&(f=v[1],d=v[2],h[h.length]=v[3],++l)}else c.batch(f,d,n),d=[],f=[],++l;if(!d.length)break}if(d.length){c=new o(u.scheduler,u),p[p.length]=c,++l;var g=c.batch(f,d,n);h[h.length]=g}return function(){if(!m&&0!==l){m=!0;for(var e=h.length,t=0;e>t;++t)h[t]()}}},removeRequest:function(e){for(var t=this._requests,r=t.length;--r>=0;)if(t[r].id===e.id){t.splice(r,1);break}}},t.exports=n},{52:52,57:57}],57:[function(e,t,r){t.exports={GetRequest:"GET"}},{}],58:[function(e,t,r){function n(){o.call(this)}var i=e(159).Observer,o=e(53),a=e(83),s=e(76),c=e(78),u=new Array(0);n.create=function(e,t){var r=new n;return r.model=e,r.jsonGraphEnvelope=t,r},(n.prototype=Object.create(o.prototype)).constructor=n,n.prototype.method="set",n.prototype.insertPath=function(){return!1},n.prototype.removePath=function(){return 0},n.prototype.getSourceArgs=function(){return this.jsonGraphEnvelope},n.prototype.getSourceObserver=function(e){var t=this.model,r=t._path,n=this.jsonGraphEnvelope.paths,h=t._root,l=h.errorSelector,p=h.comparator;return o.prototype.getSourceObserver.call(this,i.create(function(i){t._path=u;var o=s(t,[{paths:n,jsonGraph:i.jsonGraph}],null,l,p);i.paths=o[1],t._path=r,e.onNext(i)},function(i){t._path=u,c(t,a(n,function(e){return{path:e,value:i}}),null,l,p),t._path=r,e.onError(i)},function(){e.onCompleted()}))},t.exports=n},{159:159,53:53,76:76,78:78,83:83}],59:[function(e,t,r){var n=e(143).hasIntersection,i=e(84);t.exports=function(e,t,r){for(var o=[],a=[],s=[],c=-1,u=-1,h=!1,l=0,p=t.length;p>l;++l){var d=t[l],f=r[d.length];f&&n(f,d,0)?(!h&&l>0&&(a=i(e,0,l),o=i(t,0,l)),s[++c]=e[l],h=!0):h&&(o[++u]=d,a[u]=e[l])}return h?[s,o,a]:null}},{143:143,84:84}],60:[function(e,t,r){var n=e(143),i=n.toTree,o=n.toPaths;t.exports=function(e,t,r){if(0!==e._count){e.sent=!0,e.scheduled=!1;for(var n=e._pathMap,a=0,s=Object.keys(t).length;s>a;++a)for(var c=t[a],u=0,h=c.length;h>u;++u){var l=c[u],p=l.length;if(n[p]){var d=n[p];d[d.length]=l}else n[p]=[l]}for(var f=Object.keys(n),m=0,v=f.length;v>m;++m){var g=f[m];n[g]=i(n[g])}var y,b=e._collasped=o(n);e.requestQueue.model._source.get(b).subscribe(function(e){y=e},function(e){r(e,y)},function(){r(null,y)})}else e.requestQueue.removeRequest(e)}},{143:143}],61:[function(e,t,r){function n(e){a.call(this,e||function(e){function t(e){return b.concat(e)}var r=this.args,n=this.model,c=h.fromPath(r[0]),p=r[1]||[],d=(r[2]||[]).map(h.fromPath),f=(r[3]||[]).map(h.fromPath),m=n._clone({_path:[]}),v=m.withoutDataSource(),g=n._path,y=g.concat(c),b=y.slice(0,-1),_=i(n.withoutDataSource().get(c)).map(function(e){for(var t=e.json,r=-1,n=c.length;t&&++r<n;)t=t[c[r]];return{model:m._derefSync(b).boxValues(),localFn:t}}).flatMap(function(e){function r(e,t){var r=t.path;return e.push.apply(e,d.map(function(e){return r.concat(e)})),e}function n(e){return e.path}var o=e&&e.localFn;if("function"==typeof o){var s=e.model,c=s._path,u=o.apply(s,p).reduce(function(e,r){if(Boolean(r.invalidated))e.invalidations.push(e.localThisPath.concat(r.path));else{var n=r.path,i=r.value;Boolean(i)&&"object"==typeof i&&i.$type===l?e.references.push({path:t(n),value:r.value}):e.values.push({path:t(n),value:r.value})}return e},{values:[],references:[],invalidations:[],localThisPath:c}).flatMap(function(e){var t=e.values.concat(e.references);return t.length>0?i(v.set.apply(v,t)._toJSONG()).map(function(t){return{results:e,envelope:t}}):a.return({results:e,envelope:{jsonGraph:{},paths:[]}})}).flatMap(function(e){var o,s=e.envelope,c=e.results,u=c.values,h=c.references,l=c.invalidations,p=u.map(n).map(t),d=h.reduce(r,[]),v=f.map(t),g=d.concat(v);return(o=g.length>0?i(m.get.apply(m,p.concat(g))._toJSONG()):a.return(s)).doAction(function(e){e.invalidated=l})});return a.return(u)}return a.empty()}).defaultIfEmpty(function(e){return e&&"object"==typeof e?o.Observable.defer(function(){var t;try{t=e.call(y,p,d,f)}catch(e){t=a.throw(new u(e))}return t}).map(function(e){var t=e.invalidated;return t&&t.length&&m.invalidate.apply(m,t),e}):a.empty()}(n._source)).mergeAll().flatMap(function(e){return i(v.set(e)).reduce(function(e){return e},null).map(function(){return{invalidated:e.invalidated,paths:e.paths.map(function(e){return e.slice(g.length)})}})}),x=new s;return x.add(_.subscribe(function(t){var r=t.paths,o=t.invalidated,a=n.get.apply(n,r);"AsJSONG"===e.outputFormat&&(a=i(a._toJSONG()).doAction(function(e){e.invalidated=o})),x.add(a.subscribe(e))},function(t){e.onError(t)})),x})}function i(e){return o.Observable.defer(function(){return e})}var o=e(159)&&e(158),a=o.Observable,s=o.CompositeDisposable,c=e(64),u=e(9),h=e(134),l=e(120);n.create=c.create,(n.prototype=Object.create(a.prototype)).constructor=n,n.prototype.invokeSourceRequest=function(e){return this},n.prototype.ensureCollect=function(e){return this},n.prototype.initialize=function(){return this},t.exports=n},{120:120,134:134,158:158,159:159,64:64,9:9}],62:[function(e,t,r){function n(e){i.call(this,e)}var i=e(159).Observable,o=e(64),a=e(134),s=e(88),c=e(49),u=e(81),h=e(46),l=Array.isArray,p=e(101),d=e(98),f=e(99);n.create=o.create,(n.prototype=Object.create(i.prototype)).constructor=n,n.prototype.subscribeCount=0,n.prototype.subscribeLimit=10,n.prototype.initialize=function(){for(var e,t,r=this.model,n=this.outputFormat||"AsPathMap",i=this.isProgressive,o=[{}],s=[],c=this.args,h=-1,m=c.length;++h<m;){var v,g=c[h];l(g)||"string"==typeof g?(g=a.fromPath(g),v="PathValues"):p(g)?(g.path=a.fromPath(g.path),v="PathValues"):f(g)?v="JSONGs":d(g)&&(v="PathMaps"),t!==v&&(t=v,e={inputType:v,arguments:[]},s.push(e),e.values=o),e.arguments.push(g)}return this.boundPath=u(r._path),this.groups=s,this.outputFormat=n,this.isProgressive=i,this.isCompleted=!1,this.isMaster=null==r._source,this.values=o,this},n.prototype.invokeSourceRequest=function(e){return this},n.prototype.ensureCollect=function(e){var t=this.finally(function(){var t=e._root,r=t.cache;t.collectionScheduler.schedule(function(){c(t,t.expired,s(r),e._maxSize,e._collectRatio,r[h])})});return new this.constructor(function(e){return t.subscribe(e)})},t.exports=n},{101:101,134:134,159:159,46:46,49:49,64:64,81:81,88:88,98:98,99:99}],63:[function(e,t,r){function n(e){o.call(this,e||function(e){for(var t=this.model,r=this.method,n=this.groups,o=-1,a=n.length;++o<a;){var s=n[o],c=s.inputType,u=s.arguments;if(u.length>0){(0,t["_"+r+c+"AsJSON"])(t,u)}}return e.onCompleted(),i.empty})}var i=e(159).Disposable,o=e(62);n.create=o.create,(n.prototype=Object.create(o.prototype)).method="invalidate",n.prototype.constructor=n,t.exports=n},{159:159,62:62}],64:[function(e,t,r){function n(e){this._subscribe=e}function i(e){var t=this.model,r=new this.type;return r.model=t,r.args=this.args,r.outputFormat=e.outputFormat||"AsPathMap",r.isProgressive=e.isProgressive||!1,r.subscribeCount=0,r.subscribeLimit=e.retryLimit||10,r.initialize().invokeSourceRequest(t).ensureCollect(t).subscribe(e)}var o=e(32),a=(e(159)&&e(158)).Observable,s=e(84),c=e(105),u={outputFormat:{value:"AsJSONG"}},h={isProgressive:{value:!0}};n.create=function(e,t){var r=new n(i);return r.args=t,r.type=this,r.model=e,r},(n.prototype=Object.create(a.prototype)).constructor=n,n.prototype._mixin=function(){var e=this,t=s(arguments);return new e.constructor(function(r){return e.subscribe(t.reduce(function(e,t){return Object.create(e,t)},r))})},n.prototype._toJSONG=function(){return this._mixin(u)},n.prototype.progressively=function(){return this._mixin(h)},n.prototype.subscribe=function(e,t,r){var n=e;n&&"object"==typeof n||(n={onNext:e||c,onError:t||c,onCompleted:r||c});var i=this._subscribe(n);switch(typeof i){case"function":return{dispose:i};case"object":return i||{dispose:c};default:return{dispose:c}}},n.prototype.then=function(e,t){var r=this;return new o.Promise(function(e,t){var n,i=!1;r.toArray().subscribe(function(e){n=e.length<=1?e[0]:e},function(e){i=!0,t(e)},function(){!1===i&&e(n)})}).then(e,t)},t.exports=n},{105:105,158:158,159:159,32:32,84:84}],65:[function(e,t,r){function n(e){p.call(this,e||function(e){return this.isCompleted?o.call(this,e):function(e){if(this.subscribeCount++>this.subscribeLimit)return e.onError("Loop kill switch thrown."),h.empty;for(var t=[],r=[],n=this.model,i=this.isMaster,c=n._root,u=this.outputFormat,l=c.errorSelector,p=this.method,d=this.groups,m=-1,v=d.length;++m<v;){var g=d[m],y=g.inputType,b=g.arguments;if(b.length>0){var _=(0,n["_"+p+y+u])(n,b,null,l);r.push.apply(r,_[1]),"PathValues"===y?t.push.apply(t,b.map(a)):"JSONGs"===y?t.push.apply(t,f(b,s)):t.push.apply(t,_[0])}}return this.requestedPaths=t,i?(this.isCompleted=!0,o.call(this,e)):void e.onError({method:p,optimizedPaths:r,invokeSourceRequest:!0})}.call(this,e)})}function i(e){if(this.subscribeCount++>this.subscribeLimit)return e.onError("Loop kill switch thrown."),h.empty;for(var t=[],r=[],n=this.model,i=this.isMaster,c=n._root,u=this.outputFormat,l=c.errorSelector,p=this.method,d=this.groups,m=-1,v=d.length;++m<v;){var g=d[m],y=g.inputType,b=g.arguments;if(b.length>0){var _=(0,n["_"+p+y+u])(n,b,null,l);r.push.apply(r,_[1]),"PathValues"===y?t.push.apply(t,b.map(a)):"JSONGs"===y?t.push.apply(t,f(b,s)):t.push.apply(t,_[0])}}return this.requestedPaths=t,i?(this.isCompleted=!0,o.call(this,e)):void e.onError({method:p,optimizedPaths:r,invokeSourceRequest:!0})}function o(e){var t=new l(this.model,this.requestedPaths);return"AsJSONG"===this.outputFormat&&(t=t._toJSONG()),this.isProgressive&&(t=t.progressively()),t.subscribe(e)}function a(e){return e.path}function s(e){return e.paths}var c=e(159),u=c.Observable,h=c.Disposable,l=e(67),p=e(62),d=e(9),f=e(82),m=new Array(0);n.create=p.create,(n.prototype=Object.create(p.prototype)).method="set",n.prototype.constructor=n,n.prototype.invokeSourceRequest=function(e){var t=this,r=this.catch(function(n){var i;if(n&&!0===n.invokeSourceRequest){var o={},a=e._path,s=n.optimizedPaths;e._path=m,e._getPathValuesAsJSONG(e._materialize().withoutDataSource(),s,[o]),e._path=a,i=e._request.set(o).do(function(e){t.isCompleted=s.length===e.paths.length},function(){t.isCompleted=!0}).materialize().flatMap(function(e){if("C"===e.kind)return u.empty();if("E"===e.kind){var t=e.exception;if(d.is(t))return u.throw(e.exception)}return r})}else i=u.throw(n);return i});return new this.constructor(function(e){return r.subscribe(e)})},t.exports=n},{159:159,62:62,67:67,82:82,9:9}],66:[function(e,t,r){var n=function(e){this.disposed=!1,this.currentDisposable=e};n.prototype={dispose:function(){if(!this.disposed&&this.currentDisposable){this.disposed=!0;var e=this.currentDisposable;e.dispose?e.dispose():e()}}},t.exports=n},{}],67:[function(e,t,r){var n=e(64),i=e(68),o=e(69),a={dispose:function(){}},s=e(159).Observable,c=t.exports=function(e,t,r,n){this.model=e,this.currentRemainingPaths=t,this.isJSONGraph=r||!1,this.isProgressive=n||!1};c.prototype=Object.create(s.prototype),c.prototype.subscribe=n.prototype.subscribe,c.prototype.then=n.prototype.then,c.prototype._toJSONG=function(){return new c(this.model,this.currentRemainingPaths,!0,this.isProgressive)},c.prototype.progressively=function(){return new c(this.model,this.currentRemainingPaths,this.isJSONGraph,!0)},c.prototype._subscribe=function(e){var t=[{}],r=[],n=e.isJSONG=this.isJSONGraph,s=this.isProgressive,c=i(this.model,this.currentRemainingPaths,e,s,n,t,r);return c?o(this,this.model,c,e,t,r,1):a}},{159:159,64:64,68:68,69:69}],68:[function(e,t,r){var n=e(19),i=n.getWithPathsAsJSONGraph,o=n.getWithPathsAsPathMap;t.exports=function(e,t,r,n,a,s,c){var u;if((u=a?i(e,t,s):o(e,t,s)).criticalError)return r.onError(u.criticalError),null;var h=u.hasValue,l=!u.requestedMissingPaths||!e._source,p=s[0].json||s[0].jsonGraph;if(u.errors)for(var d=u.errors,f=c.length,m=0,v=d.length;v>m;++m,++f)c[f]=d[m];if(h&&n||p&&l)try{++e._root.syncRefCount,r.onNext(s[0])}catch(e){throw e}finally{--e._root.syncRefCount}return l?(c.length?r.onError(c):r.onCompleted(),null):u}},{19:19}],69:[function(e,t,r){var n=e(68),i=e(10),o=e(30).fastCat,a=e(49),s=e(88),c=e(66),u=e(46);t.exports=function e(t,r,h,l,p,d,f){if(10===f)throw new i;var m=r._request,v=h.requestedMissingPaths,g=h.optimizedMissingPaths,y=new c,b=[],_=r._path;if(_.length)for(var x=0,w=v.length;w>x;++x)b[x]=o(_,v[x]);else b=v;var S=m.get(b,g,function(){var i=n(r,v,l,t.isProgressive,t.isJSONGraph,p,d);if(i)y.currentDisposable=e(t,r,i,l,p,d,f+1);else{var o=r._root,c=o.cache,h=c[u];a(o,o.expired,s(c),r._maxSize,r._collectRatio,h)}});return y.currentDisposable=S,y}},{10:10,30:30,46:46,49:49,66:66,68:68,88:88}],70:[function(e,t,r){var n=e(67);t.exports=function(e){return new n(this,e)}},{67:67}],71:[function(e,t,r){var n=e(134),i=e(64),o=e(72),a=e(116),s=e(67);t.exports=function(){var e=a(arguments,o,"get");if(!0!==e)return new i(function(t){t.onError(e)});var t=n.fromPathsOrPathValues(arguments);return new s(this,t)}},{116:116,134:134,64:64,67:67,72:72}],72:[function(e,t,r){t.exports={path:!0,pathSyntax:!0}},{}],73:[function(e,t,r){function n(){}var i=e(123),o=e(159).Disposable;n.prototype.schedule=function(e){return i(e),o.empty},n.prototype.scheduleWithState=function(e,t){var r=this;return i(function(){t(r,e)}),o.empty},t.exports=n},{123:123,159:159}],74:[function(e,t,r){function n(){}var i=e(159).Disposable;n.prototype.schedule=function(e){return e(),i.empty},n.prototype.scheduleWithState=function(e,t){return t(this,e),i.empty},t.exports=n},{159:159}],75:[function(e,t,r){function n(e){this.delay=e}var i=e(159).Disposable;n.prototype.schedule=function(e){var t=setTimeout(e,this.delay);return i.create(function(){void 0!==t&&(clearTimeout(t),t=void 0)})},n.prototype.scheduleWithState=function(e,t){var r=this,n=setTimeout(function(){t(r,e)},this.delay);return i.create(function(){void 0!==n&&(clearTimeout(n),n=void 0)})},t.exports=n},{159:159}],76:[function(e,t,r){function n(e,t,r,i,a,s,c,u,h,l,p,f,m,v,g,b,_){for(var x={},w=t<e.length-1,S=e[t],M=y(S,x),E=f.index;;){p.depth=t;var C=o(r,i,a,s,c,u,M,w,!1,p,f,m,v,g,b,_);p[t]=M,p.index=t,f[f.index++]=M;var T=C[0],O=C[1];if(T&&(w?n(e,t+1,r,O,T,s,C[3],C[2],h,l,p,f,m,v,g,b,_):(d(g,T),h.push(p.slice(0,p.index+1)),l.push(f.slice(0,f.index)))),M=y(S,x),x.done)break;f.index=E}}function i(e,t,r,n,i,a,u,p,m,y,b){var _=t.value;if(a.splice(0,a.length),a.push.apply(a,_),f(t))return a.index=_.length,g(t,p,m),[void 0,e,n,r];d(m,t);var x=0,w=t,S=_.length-1,M=t=e,E=n=r;do{var C=o(e,M,t,r,E,n,_[x],S>x,!0,i,a,u,p,m,y,b);if(t=C[0],v(t))return a.index=x,C;M=C[1],n=C[2],E=C[3]}while(x++<S);if(a.index=x,w[c]!==t){var T=t[l]||0;t[l]=T+1,t[s+T]=w,w[c]=t,w[h]=T}return[t,M,n,E]}function o(e,t,r,n,o,s,c,u,h,l,d,f,m,g,y,b){for(var x=r.$type;x===p;){var w=i(e,r,n,s,l,d,f,m,g,y,b);if(r=w[0],v(r))return w;t=w[1],s=w[2],o=w[3],x=r.$type}if(void 0!==x)return[r,t,s,o];if(null==c){if(u)throw new Error("`null` is not allowed in branch key positions.");r&&(c=r[a])}else t=r,o=s,r=t[c],s=o&&o[c];return r=_(t,r,s,c,l,d,f,m,g,y,b),[r,t,s,o]}var a=e(36),s=e(43),c=e(33),u=e(46),h=e(42),l=e(44),p=e(120),d=e(50),f=e(94),m=e(96),v=e(102),g=e(86),y=e(143).iterateKeySet,b=e(92),_=e(103);t.exports=function(e,t,r,i,o){for(var a=e._root,s=a,c=a.expired,h=b(),l=a.cache,p=l[u],d=[],f=[],v=[],g=[],y=-1,_=t.length;++y<_;)for(var x=t[y],w=x.paths,S=x.jsonGraph,M=-1,E=w.length;++M<E;){var C=w[M];f.index=0,n(C,0,l,l,l,S,S,S,v,g,d,f,h,c,s,o,i)}var T=l[u],O=a.onChange;return m(O)&&p!==T&&O(),[v,g]}},{102:102,103:103,120:120,143:143,33:33,36:36,42:42,43:43,44:44,46:46,50:50,86:86,92:92,94:94,96:96}],77:[function(e,t,r){function n(e,t,r,i,s,c,u,h,l,p,d,f,m,v){var g=a(e);if(g&&g.length)for(var b=0,x=g.length,w=l.index;;){var S=g[b],M=e[S],E=_(M)&&!M.$type;h.depth=t;var C=o(r,i,s,S,M,E,!1,h,l,p,d,f,m,v);h[t]=S,h.index=t,l[l.index++]=S;var T=C[0],O=C[1];if(T&&(E?n(M,t+1,r,O,T,c,u,h,l,p,d,f,m,v):(y(f,T),c.push(h.slice(0,h.index+1)),u.push(l.slice(0,l.index)))),++b>=x)break;l.index=w}}function i(e,t,r,n,i,a,s,u,p,m){var v=r.value;if(i.splice(0,i.length),i.push.apply(i,v),x(r))return i.index=v.length,M(r,s,u),[void 0,t];y(u,r);var g=r,b=t;if(null!=(r=r[l]))b=r[h]||t,i.index=v.length;else{var _=0,w=v.length-1;b=r=t;do{var E=o(t,b,r,v[_],e,w>_,!0,n,i,a,s,u,p,m);if(r=E[0],S(r))return i.index=_,E;b=E[1]}while(_++<w);if(i.index=_,g[l]!==r){var C=r[f]||0;r[f]=C+1,r[c+C]=g,g[l]=r,g[d]=C}}return[r,b]}function o(e,t,r,n,o,a,c,u,h,l,p,d,f,v){for(var g=r.$type;g===m;){var y=i(o,e,r,u,h,l,p,d,f,v);if(r=y[0],S(r))return y;t=y[1],g=r&&r.$type}if(void 0!==g)return[r,t];if(null==n){if(a)throw new Error("`null` is not allowed in branch key positions.");r&&(n=r[s])}else t=r,r=t[n];return r=C(t,r,n,o,a,c,u,h,l,p,d,f,v),[r,t]}function a(e){if(_(e)&&!e.$type){var t=[],r=0;g(e)&&(t[r++]="length");for(var n in e)n[0]!==u&&"$"!==n[0]&&b(e,n)&&(t[r++]=n);return t}}var s=e(36),c=e(43),u=e(40),h=e(39),l=e(33),p=e(46),d=e(42),f=e(44),m=e(120),v=e(13),g=Array.isArray,y=e(50),b=e(91),_=e(100),x=e(95),w=e(96),S=e(102),M=e(86),E=e(92),C=e(104);t.exports=function(e,t,r,i,o){for(var a=e._root,s=a,c=a.expired,u=E(),l=e._path,d=a.cache,f=l.length?v(e,l).value:d,m=f[h]||d,g=d[p],y=[],b=[],_=[],x=l.length,S=-1,M=t.length;++S<M;){var C=t[S],T=l.slice(0);T.index=x,n(C.json,0,d,m,f,b,_,y,T,u,c,s,o,i)}var O=d[p],P=a.onChange;return w(P)&&g!==O&&P(),[b,_]}},{100:100,102:102,104:104,120:120,13:13,33:33,36:36,39:39,40:40,42:42,43:43,44:44,46:46,50:50,86:86,91:91,92:92,95:95,96:96}],78:[function(e,t,r){function n(e,t,r,i,a,s,c,u,h,l,p,d,f,v,g){for(var y={},b=r<t.length-1,x=t[r],w=_(x,y),S=l.index;;){h.depth=r;var M=o(i,a,s,w,e,b,!1,h,l,p,d,f,v,g);h[r]=w,h.index=r,l[l.index++]=w;var E=M[0],C=M[1];if(E&&(b?n(e,t,r+1,i,C,E,c,u,h,l,p,d,f,v,g):(m(f,E),c.push(h.slice(0,h.index+1)),u.push(l.slice(0,l.index)))),w=_(x,y),y.done)break;l.index=S}}function i(e,t,r,n,i,a,h,d,f,g){var _=r.value;if(i.splice(0,i.length),i.push.apply(i,_),v(r))return i.index=_.length,b(r,h,d),[void 0,t];m(d,r);var x=r,w=t;if(null!=(r=r[u]))w=r[c]||t,i.index=_.length;else{var S=0,M=_.length-1;w=r=t;do{var E=o(t,w,r,_[S],e,M>S,!0,n,i,a,h,d,f,g);if(r=E[0],y(r))return i.index=S,E;w=E[1]}while(S++<M);if(i.index=S,x[u]!==r){var C=r[p]||0;r[p]=C+1,r[s+C]=x,x[u]=r,x[l]=C}}return[r,w]}function o(e,t,r,n,o,s,c,u,h,l,p,f,m,v){for(var g=r.$type;g===d;){var b=i(o,e,r,u,h,l,p,f,m,v);if(r=b[0],y(r))return b;t=b[1],g=r.$type}if(void 0!==g)return[r,t];if(null==n){if(s)throw new Error("`null` is not allowed in branch key positions.");r&&(n=r[a])}else t=r,r=t[n];return r=w(t,r,n,o,s,c,u,h,l,p,f,m,v),[r,t]}var a=e(36),s=e(43),c=e(39),u=e(33),h=e(46),l=e(42),p=e(44),d=e(120),f=e(13),m=e(50),v=e(95),g=e(96),y=e(102),b=e(86),_=e(143).iterateKeySet,x=e(92),w=e(104);t.exports=function(e,t,r,i,o){for(var a=e._root,s=a,u=a.expired,l=x(),p=e._path,d=a.cache,m=p.length?f(e,p).value:d,v=m[c]||d,y=d[h],b=[],_=[],w=[],S=p.length,M=-1,E=t.length;++M<E;){var C=t[M],T=C.path,O=C.value,P=p.slice(0);P.index=S,n(O,T,0,d,v,m,_,w,b,P,l,u,s,o,i)}var j=d[h],A=a.onChange;return g(A)&&y!==j&&A(),[_,w]}},{102:102,104:104,120:120,13:13,143:143,33:33,36:36,39:39,42:42,43:43,44:44,46:46,50:50,86:86,92:92,95:95,96:96}],79:[function(e,t,r){var n=e(130),i=e(64),o=e(101);t.exports=function(e,t){for(var r=o(e)?e:n.pathValue(e,t),a=0,s=r.path,c=s.length;++a<c;)if("object"==typeof s[a])return new i(function(e){e.onError(new Error("Paths must be simple paths"))});var u=this;return new i(function(e){return u._set(r).subscribe(function(t){for(var r=t.json,n=-1,i=s.length;r&&++n<i;)r=r[s[n]];e.onNext(r)},function(t){e.onError(t)},function(){e.onCompleted()})})}},{101:101,130:130,64:64}],80:[function(e,t,r){var n=e(134),i=e(101),o=e(78);t.exports=function(e,t,r,a){var s=n.fromPath(e),c=t,u=r,h=a;if(i(s)?(h=u,u=c,c=s):c={path:s,value:c},!1===i(c))throw new Error("Model#setValueSync must be called with an Array path.");return"function"!=typeof u&&(u=this._root._errorSelector),"function"!=typeof h&&(h=this._root._comparator),this._syncCheck("setValueSync")?(o(this,[c]),this._getValueSync(this,c.path).value):void 0}},{101:101,134:134,78:78}],81:[function(e,t,r){t.exports=function(e){if(!e)return e;for(var t=-1,r=e.length,n=[];++t<r;)n[t]=e[t];return n}},{}],82:[function(e,t,r){t.exports=function(e,t){for(var r=-1,n=-1,i=e.length,o=[];++n<i;)for(var a=t(e[n],n,e),s=-1,c=a.length;++s<c;)o[++r]=a[s];return o}},{}],83:[function(e,t,r){t.exports=function(e,t){for(var r=-1,n=e.length,i=new Array(n);++r<n;)i[r]=t(e[r],r,e);return i}},{}],84:[function(e,t,r){t.exports=function(e,t,r){var n=t||0,i=-1,o=e.length-n;0>o&&(o=0),r>0&&o>r&&(o=r);for(var a=new Array(o);++i<o;)a[i]=e[i+n];return a}},{}],85:[function(e,t,r){var n=e(40),i=e(91),o=Array.isArray,a=e(100);t.exports=function(e){var t=e;if(a(t)){t=o(e)?[]:{};var r=e;for(var s in r)s[0]!==n&&i(r,s)&&(t[s]=r[s])}return t}},{100:100,40:40,91:91}],86:[function(e,t,r){var n=e(51),i=e(35);t.exports=function(e,t,r){return e[i]||(e[i]=!0,t.push(e),n(r,e)),e}},{35:35,51:51}],87:[function(e,t,r){var n=e(100);t.exports=function(e){return n(e)&&e.$expires||void 0}},{100:100}],88:[function(e,t,r){var n=e(100);t.exports=function(e){return n(e)&&e.$size||0}},{100:100}],89:[function(e,t,r){var n=e(100);t.exports=function(e){return n(e)&&e.$timestamp||void 0}},{100:100}],90:[function(e,t,r){var n=e(100);t.exports=function(e,t){var r=n(e)&&e.$type||void 0;return t&&r?"branch":r}},{100:100}],91:[function(e,t,r){var n=e(100),i=Object.prototype.hasOwnProperty;t.exports=function(e,t){return n(e)&&i.call(e,t)}},{100:100}],92:[function(e,t,r){var n=1;t.exports=function(){return n++}},{}],93:[function(e,t,r){var n=e(36),i=e(39),o=e(46);t.exports=function(e,t,r,a){return e[n]=r,e[i]=t,e[o]=a,t[r]=e,e}},{36:36,39:39,46:46}],94:[function(e,t,r){var n=e(106),i=e(122),o=e(121);t.exports=function(e){var t=e.$expires;return null!=t&&t!==o&&t!==i&&t<n()}},{106:106,121:121,122:122}],95:[function(e,t,r){var n=e(106),i=e(122),o=e(121);t.exports=function(e){var t=e.$expires;return null!=t&&t!==o&&(t===i||t<n())}},{106:106,121:121,122:122}],96:[function(e,t,r){t.exports=function(e){return Boolean(e)&&"function"==typeof e}},{}],97:[function(e,t,r){var n=e(40);t.exports=function(e){return"$size"===e||e&&e.charAt(0)===n}},{40:40}],98:[function(e,t,r){var n=e(100);t.exports=function(e){return n(e)&&"json"in e}},{100:100}],99:[function(e,t,r){var n=Array.isArray,i=e(100);t.exports=function(e){return i(e)&&n(e.paths)&&(i(e.jsonGraph)||i(e.jsong)||i(e.json)||i(e.values)||i(e.value))}},{100:100}],100:[function(e,t,r){t.exports=function(e){return null!==e&&"object"==typeof e}},{}],101:[function(e,t,r){var n=Array.isArray,i=e(100);t.exports=function(e){return i(e)&&(n(e.path)||"string"==typeof e.path)}},{100:100}],102:[function(e,t,r){t.exports=function(e){return null==e||"object"!=typeof e}},{}],103:[function(e,t,r){var n=e(36),i=e(39),o=e(120),a=e(119),s=e(88),c=e(89),u=e(100),h=e(95),l=e(96),p=e(50),d=e(117),f=e(93),m=e(86),v=e(110),g=e(115),y=e(107);t.exports=function(e,t,r,b,_,x,w,S,M,E,C){var T,O,P,j,A,R,L;if(t===r){if(null===r)return t=d(r,void 0,r),e=g(e,-t.$size,M,w),t=f(t,e,b),p(M,t),t;if(void 0===r)return r;if((j=u(t))&&null==(O=t.$type))return null==t[i]&&(t[n]=b,t[i]=e),t}else(j=u(t))&&(O=t.$type);if(O!==o){if((A=u(r))&&(P=r.$type),j&&!O&&(null==r||A&&!P))return t}else{if(null==r)return h(t)?void m(t,S,M):t;if((A=u(r))&&(P=r.$type)===o)if(t===r){if(null!=t[i])return t}else if(R=t.$timestamp,L=r.$timestamp,!h(t)&&!h(r)&&R>L)return}if(O&&A&&!P)return f(v(t,r,e,b,M),e,b);if(P||!A){if(P===a&&l(C)&&(r=C(y(_,b),r)),P&&t===r)null==t[i]&&(t=d(t,O,t.value),e=g(e,-t.$size,M,w),t=f(t,e,b,w));else{var N=!0;!O&&j||(N=c(r)<c(t)==0,(O||P)&&l(E)&&(N=!E(t,r,x.slice(0,x.index)))),N&&(r=d(r,P,P?r.value:r),T=s(t)-s(r),t=v(t,r,e,b,M),e=g(e,T,M,w),t=f(t,e,b,w))}h(t)?m(t,S,M):p(M,t)}else null==t&&(t=f(r,e,b));return t}},{100:100,107:107,110:110,115:115,117:117,119:119,120:120,36:36,39:39,50:50,86:86,88:88,89:89,93:93,95:95,96:96}],104:[function(e,t,r){var n=e(120),i=e(119),o=e(90),a=e(88),s=e(89),c=e(95),u=e(102),h=e(96),l=e(117),p=e(86),d=e(93),f=e(110),m=e(115),v=e(114),g=e(107);t.exports=function(e,t,r,y,b,_,x,w,S,M,E,C,T){var O=o(t,_);if(b||_)O&&c(t)&&(O="expired",p(t,M,E)),(O&&O!==n||u(t))&&(t=f(t,{},e,r,E),t=d(t,e,r,S),t=v(t,S));else{var P=y,j=o(P),A=s(P)<s(t)==0;if((O||j)&&h(C)&&(A=!C(t,P,w.slice(0,w.index))),A){j===i&&h(T)&&(P=T(g(x,r),P)),P=l(P,j,j?P.value:P);var R=a(t)-a(P);t=f(t,P,e,r,E),e=m(e,R,E,S),t=d(t,e,r,S)}}return t}},{102:102,107:107,110:110,114:114,115:115,117:117,119:119,120:120,86:86,88:88,89:89,90:90,93:93,95:95,96:96}],105:[function(e,t,r){t.exports=function(){}},{}],106:[function(e,t,r){t.exports=Date.now},{}],107:[function(e,t,r){t.exports=function(e,t){var r=e.slice(0,e.depth);return r[r.length]=t,r}},{}],108:[function(e,t,r){var n=e(120),i=e(39),o=e(51),a=e(100),s=e(112),c=e(113);t.exports=function(e,t,r,u){if(a(e)){var h=e.$type;return Boolean(h)&&(h===n&&c(e),o(u,e)),s(e),t[r]=e[i]=void 0,!0}return!1}},{100:100,112:112,113:113,120:120,39:39,51:51}],109:[function(e,t,r){var n=e(91),i=e(40),o=e(108);t.exports=function e(t,r,a,s){if(o(t,r,a,s)){if(null==t.$type)for(var c in t)c[0]!==i&&"$"!==c[0]&&n(t,c)&&e(t[c],t,c,s);return!0}return!1}},{108:108,40:40,91:91}],110:[function(e,t,r){var n=e(100),i=e(111),o=e(109);t.exports=function(e,t,r,a,s){return e===t?e:(n(e)&&(i(e,t),o(e,r,a,s)),r[a]=t,t)}},{100:100,109:109,111:111}],111:[function(e,t,r){var n=e(43),i=e(33),o=e(44);t.exports=function(e,t){for(var r=e[o]||0,a=t[o]||0,s=-1;++s<r;){var c=e[n+s];void 0!==c&&(c[i]=t,t[n+(a+s)]=c,e[n+s]=void 0)}return t[o]=r+a,e[o]=void 0,t}},{33:33,43:43,44:44}],112:[function(e,t,r){var n=e(43),i=e(33),o=e(42),a=e(44);t.exports=function(e){for(var t=-1,r=e[a]||0;++t<r;){var s=e[n+t];null!=s&&(s[i]=s[o]=e[n+t]=void 0)}return e[a]=void 0,e}},{33:33,42:42,43:43,44:44}],113:[function(e,t,r){var n=e(43),i=e(33),o=e(42),a=e(44);t.exports=function(e){var t=e[i];if(t){for(var r=(e[o]||0)-1,s=(t[a]||0)-1;++r<=s;)t[n+r]=t[n+(r+1)];t[a]=s,e[o]=e[i]=t=void 0}return e}},{33:33,42:42,43:43,44:44}],114:[function(e,t,r){var n=e(43),i=e(39),o=e(46),a=e(44);t.exports=function(e,t){var r=[e],s=0;do{var c=r[s--];if(c&&c[o]!==t){c[o]=t,r[s++]=c[i];for(var u=-1,h=c[a]||0;++u<h;)r[s++]=c[n+u]}}while(s>-1);return e}},{39:39,43:43,44:44,46:46}],115:[function(e,t,r){var n=e(36),i=e(46),o=e(39),a=e(108),s=e(114);t.exports=function(e,t,r,c){var u=e;do{var h=u[o];0>=(u.$size=(u.$size||0)-t)&&null!=h?a(u,h,u[n],r):u[i]!==c&&s(u,c),u=h}while(u);return e}},{108:108,114:114,36:36,39:39,46:46}],116:[function(e,t,r){var n=Array.isArray,i=e(101),o=e(99),a=e(98),s=e(134);t.exports=function(e,t,r){for(var c=0,u=e.length;u>c;++c){var h=e[c],l=!1;if(n(h)&&t.path?l=!0:"string"==typeof h&&t.pathSyntax?l=!0:i(h)&&t.pathValue?(h.path=s.fromPath(h.path),l=!0):o(h)&&t.jsonGraph?l=!0:a(h)&&t.json?l=!0:"function"==typeof h&&c+1===u&&t.selector&&(l=!0),!l)return new Error("Unrecognized argument "+typeof h+" ["+String(h)+"] to Model#"+r)}return!0}},{101:101,134:134,98:98,99:99}],117:[function(e,t,r){var n=e(130).atom,i=e(106),o=e(122),a=e(37),s=e(85),c=Array.isArray,u=e(88),h=e(87);t.exports=function(e,t,r){var l=0,p=e,d=t;if(d?(p=s(p),l=u(p),p.$type=d):(p=n(r),d=p.$type,p[a]=!0),null==r)l=51;else if(null==l||0>=l)switch(typeof r){case"object":l=c(r)?50+r.length:51;break;case"string":l=50+r.length;break;default:l=51}var f=h(p);return"number"==typeof f&&o>f&&(p.$expires=i()+-1*f),p.$size=l,p}},{106:106,122:122,130:130,37:37,85:85,87:87,88:88}],118:[function(e,t,r){t.exports="atom"},{}],119:[function(e,t,r){t.exports="error"},{}],120:[function(e,t,r){t.exports="ref"},{}],121:[function(e,t,r){t.exports=1},{}],122:[function(e,t,r){t.exports=0},{}],123:[function(e,t,r){"use strict";function n(e){var t;(t=a.length?a.pop():new i).task=e,o(t)}function i(){this.task=null}var o=e(124),a=[],s=[],c=o.makeRequestCallFromTimer(function(){if(s.length)throw s.shift()});t.exports=n,i.prototype.call=function(){try{this.task.call()}catch(e){n.onerror?n.onerror(e):(s.push(e),c())}finally{this.task=null,a[a.length]=this}}},{124:124}],124:[function(e,t,r){(function(e){"use strict";function r(e){a.length||(o(),s=!0),a[a.length]=e}function n(){for(;c<a.length;){var e=c;if(c+=1,a[e].call(),c>u){for(var t=0,r=a.length-c;r>t;t++)a[t]=a[t+c];a.length-=c,c=0}}a.length=0,c=0,s=!1}function i(e){return function(){function t(){clearTimeout(r),clearInterval(n),e()}var r=setTimeout(t,0),n=setInterval(t,50)}}t.exports=r;var o,a=[],s=!1,c=0,u=1024,h=e.MutationObserver||e.WebKitMutationObserver;o="function"==typeof h?function(e){var t=1,r=new h(e),n=document.createTextNode("");return r.observe(n,{characterData:!0}),function(){t=-t,n.data=t}}(n):i(n),r.requestFlush=o,r.makeRequestCallFromTimer=i}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],125:[function(e,t,r){"use strict";function n(e,t){var r;for(r in t)e[r]=t[r];return e}function i(e,t){if(this._jsongUrl=e,"number"==typeof t){t={timeout:t}}this._config=n({timeout:15e3,headers:{}},t||{})}var o=e(129),a=e(126);Array.isArray,i.prototype={constructor:i,buildQueryObject:a,get:function(e){var t=n(this.buildQueryObject(this._jsongUrl,"GET",{paths:e,method:"get"}),this._config);return o("GET",t,this)},set:function(e){var t="POST",r=n(this.buildQueryObject(this._jsongUrl,t,{jsonGraph:e,method:"set"}),this._config);r.headers["Content-Type"]="application/x-www-form-urlencoded";return o(t,r,this)},call:function(e,t,r,i){t=t||[],r=r||[],i=i||[];var a="POST",s=[];s.push("method=call"),s.push("callPath="+encodeURIComponent(JSON.stringify(e))),s.push("arguments="+encodeURIComponent(JSON.stringify(t))),s.push("pathSuffixes="+encodeURIComponent(JSON.stringify(r))),s.push("paths="+encodeURIComponent(JSON.stringify(i)));var c=n(this.buildQueryObject(this._jsongUrl,a,s.join("&")),this._config);c.headers["Content-Type"]="application/x-www-form-urlencoded";return o(a,c,this)}},i.XMLHttpSource=i,i.default=i,t.exports=i},{126:126,129:129}],126:[function(e,t,r){"use strict";t.exports=function(e,t,r){var n=[],i={url:e},o=-1!==e.indexOf("?")?"&":"?";return"string"==typeof r?n.push(r):Object.keys(r).forEach(function(e){var t="object"==typeof r[e]?JSON.stringify(r[e]):r[e];n.push(e+"="+encodeURIComponent(t))}),"GET"===t?i.url+=o+n.join("&"):i.data=n.join("&"),i}},{}],127:[function(e,t,r){(function(e){"use strict";t.exports=function(){var t=new e.XMLHttpRequest;if("withCredentials"in t)return t;if(e.XDomainRequest)return new XDomainRequest;throw new Error("CORS is not supported by your browser")}}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],128:[function(e,t,r){(function(e){"use strict";t.exports=function(){var t,r,n;if(e.XMLHttpRequest)return new e.XMLHttpRequest;try{for(r=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],n=0;3>n;n++)try{if(t=r[n],new e.ActiveXObject(t))break}catch(e){}return new e.ActiveXObject(t)}catch(e){throw new Error("XMLHttpRequest is not supported by your browser")}}}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],129:[function(e,t,r){"use strict";function n(){}function i(e,t,r){r||(r=new Error(t)),e.onError(r)}function o(e,t,r){var n,o;if(t&&e){o=t.responseType,n="response"in t?t.response:t.responseText;var a=1223===t.status?204:t.status;if(a>=200&&399>=a){try{"json"!==o&&(n=JSON.parse(n||"")),"string"==typeof n&&(n=JSON.parse(n||""))}catch(r){i(e,"invalid json",r)}return e.onNext(n),void e.onCompleted()}return 401===a||403===a||407===a?i(e,n):410===a?i(e,n):408===a||504===a?i(e,n):i(e,n||"Response code "+a)}}function a(e,t,r,n){i(e,r||t.statusText||"request error",n)}var s=e(128),c=e(127),u=Object.prototype.hasOwnProperty,h=function(){};n.create=function(e){var t=new n;return t.subscribe=function(t,r,n){var i,o;return i="function"==typeof t?{onNext:t,onError:r||h,onCompleted:n||h}:t,"function"==typeof(o=e(i))?{dispose:o}:o},t},t.exports=function(e,t,r){return n.create(function(n){var i,h,l,p,d,f={method:e||"GET",crossDomain:!1,async:!0,headers:{},responseType:"json"};for(d in t)u.call(t,d)&&(f[d]=t[d]);f.crossDomain||f.headers["X-Requested-With"]||(f.headers["X-Requested-With"]="XMLHttpRequest"),null!=r.onBeforeRequest&&r.onBeforeRequest(f);try{i=f.crossDomain?c():s()}catch(e){n.onError(e)}try{f.user?i.open(f.method,f.url,f.async,f.user,f.password):i.open(f.method,f.url,f.async),i.timeout=f.timeout,i.withCredentials=!1!==f.withCredentials,l=f.headers;for(p in l)u.call(l,p)&&i.setRequestHeader(p,l[p]);if(f.responseType)try{i.responseType=f.responseType}catch(e){if("json"!==f.responseType)throw e}i.onreadystatechange=function(e){4===i.readyState&&(h||(h=!0,o(n,i)))},i.ontimeout=function(e){h||(h=!0,a(n,i,"timeout error",e))},i.send(f.data)}catch(e){n.onError(e)}return function(){h||4===i.readyState||(h=!0,i.abort())}})}},{127:127,128:128}],130:[function(e,t,r){function n(e,t,r){var n=Object.create(null);if(null!=r){for(var i in r)n[i]=r[i];return n.$type=e,n.value=t,n}return{$type:e,value:t}}var i=e(134);t.exports={ref:function(e,t){return n("ref",i.fromPath(e),t)},atom:function(e,t){return n("atom",e,t)},undefined:function(){return n("atom")},error:function(e,t){return n("error",e,t)},pathValue:function(e,t){return{path:i.fromPath(e),value:t}},pathInvalidation:function(e){return{path:i.fromPath(e),invalidated:!0}}}},{134:134}],131:[function(e,t,r){t.exports={integers:"integers",ranges:"ranges",keys:"keys"}},{}],132:[function(e,t,r){t.exports={token:"token",dotSeparator:".",commaSeparator:",",openingBracket:"[",closingBracket:"]",openingBrace:"{",closingBrace:"}",escape:"\\",space:" ",colon:":",quote:"quote",unknown:"unknown"}},{}],133:[function(e,t,r){t.exports={indexer:{nested:"Indexers cannot be nested.",needQuotes:"unquoted indexers must be numeric.",empty:"cannot have empty indexers.",leadingDot:"Indexers cannot have leading dots.",leadingComma:"Indexers cannot have leading comma.",requiresComma:"Indexers require commas between indexer args.",routedTokens:"Only one token can be used per indexer when specifying routed tokens."},range:{precedingNaN:"ranges must be preceded by numbers.",suceedingNaN:"ranges must be suceeded by numbers."},routed:{invalid:"Invalid routed token.  only integers|ranges|keys are supported."},quote:{empty:"cannot have empty quoted keys.",illegalEscape:"Invalid escape character.  Only quotes are escapable."},unexpectedToken:"Unexpected token.",invalidIdentifier:"Invalid Identifier.",invalidPath:"Please provide a valid path.",throwError:function(e,t,r){if(r)throw e+" -- "+t.parseString+" with next token: "+r;throw e+" -- "+t.parseString}}},{}],134:[function(e,t,r){var n=e(140),i=e(135),o=e(131),a=function(e,t){return i(new n(e,t))};t.exports=a,a.fromPathsOrPathValues=function(e,t){if(!e)return[];for(var r=[],n=0,i=e.length;i>n;n++)"string"==typeof e[n]?r[n]=a(e[n],t):"string"==typeof e[n].path?r[n]={path:a(e[n].path,t),value:e[n].value}:r[n]=e[n];return r},a.fromPath=function(e,t){return e?"string"==typeof e?a(e,t):e:[]},a.RoutedTokens=o},{131:131,135:135,140:140}],135:[function(e,t,r){var n=e(132),i=e(133),o=e(136);t.exports=function(e){for(var t=e.next(),r={},a=[];!t.done;){switch(t.type){case n.token:var s=+t.token[0];isNaN(s)||i.throwError(i.invalidIdentifier,e),a[a.length]=t.token;break;case n.dotSeparator:0===a.length&&i.throwError(i.unexpectedToken,e);break;case n.space:break;case n.openingBracket:o(e,t,r,a);break;default:i.throwError(i.unexpectedToken,e)}t=e.next()}return 0===a.length&&i.throwError(i.invalidPath,e),a}},{132:132,133:133,136:136}],136:[function(e,t,r){var n=e(132),i=e(133),o=i.indexer,a=e(138),s=e(137),c=e(139);t.exports=function(e,t,r,u){var h=e.next(),l=!1,p=1,d=!1;for(r.indexer=[];!h.done;){switch(h.type){case n.token:case n.quote:r.indexer.length===p&&i.throwError(o.requiresComma,e)}switch(h.type){case n.openingBrace:d=!0,c(e,h,r,u);break;case n.token:var f=+h.token;isNaN(f)&&i.throwError(o.needQuotes,e),r.indexer[r.indexer.length]=f;break;case n.dotSeparator:r.indexer.length||i.throwError(o.leadingDot,e),a(e,h,r,u);break;case n.space:break;case n.closingBracket:l=!0;break;case n.quote:s(e,h,r,u);break;case n.openingBracket:i.throwError(o.nested,e);break;case n.commaSeparator:++p;break;default:i.throwError(i.unexpectedToken,e)}if(l)break;h=e.next()}0===r.indexer.length&&i.throwError(o.empty,e),r.indexer.length>1&&d&&i.throwError(o.routedTokens,e),1===r.indexer.length&&(r.indexer=r.indexer[0]),u[u.length]=r.indexer,r.indexer=void 0}},{132:132,133:133,137:137,138:138,139:139}],137:[function(e,t,r){var n=e(132),i=e(133),o=i.quote;t.exports=function(e,t,r,a){for(var s=e.next(),c="",u=t.token,h=!1,l=!1;!s.done;){switch(s.type){case n.token:case n.space:case n.dotSeparator:case n.commaSeparator:case n.openingBracket:case n.closingBracket:case n.openingBrace:case n.closingBrace:h&&i.throwError(o.illegalEscape,e),c+=s.token;break;case n.quote:h?(c+=s.token,h=!1):s.token!==u?c+=s.token:l=!0;break;case n.escape:h=!0;break;default:i.throwError(i.unexpectedToken,e)}if(l)break;s=e.next()}0===c.length&&i.throwError(o.empty,e),r.indexer[r.indexer.length]=c}},{132:132,133:133}],138:[function(e,t,r){var n=e(140),i=e(132),o=e(133);t.exports=function(e,t,r,a){var s,c=e.peek(),u=1,h=!1,l=!0,p=r.indexer.length-1,d=n.toNumber(r.indexer[p]);for(isNaN(d)&&o.throwError(o.range.precedingNaN,e);!h&&!c.done;){switch(c.type){case i.dotSeparator:3===u&&o.throwError(o.unexpectedToken,e),3===++u&&(l=!1);break;case i.token:s=n.toNumber(e.next().token),isNaN(s)&&o.throwError(o.range.suceedingNaN,e),h=!0;break;default:h=!0}if(h)break;e.next(),c=e.peek()}r.indexer[p]={from:d,to:l?s:s-1}}},{132:132,133:133,140:140}],139:[function(e,t,r){var n=e(132),i=e(131),o=e(133),a=o.routed;t.exports=function(e,t,r,s){var c=e.next(),u=!1,h="";switch(c.token){case i.integers:case i.ranges:case i.keys:break;default:o.throwError(a.invalid,e)}var l=e.next();if(l.type===n.colon&&(u=!0,(l=e.next()).type!==n.token&&o.throwError(a.invalid,e),h=l.token,l=e.next()),l.type===n.closingBrace){var p={type:c.token,named:u,name:h};r.indexer[r.indexer.length]=p}else o.throwError(a.invalid,e)}},{131:131,132:132,133:133}],140:[function(e,t,r){function n(e,t,r){return{token:e,done:r,type:t}}function i(e,t,r){var i,b=!1,_="",x=r?y:g;do{if(i=t+1>=e.length)break;var w=e[t+1];if(void 0===w||-1!==x.indexOf(w)){if(_.length)break;++t;var S;switch(w){case a:S=o.dotSeparator;break;case s:S=o.commaSeparator;break;case c:S=o.openingBracket;break;case u:S=o.closingBracket;break;case h:S=o.openingBrace;break;case l:S=o.closingBrace;break;case v:S=o.space;break;case f:case m:S=o.quote;break;case d:S=o.escape;break;case p:S=o.colon;break;default:S=o.unknown}b=n(w,S,!1);break}_+=w,++t}while(!i);return!b&&_.length&&(b=n(_,o.token,!1)),b||(b={done:!0}),{token:b,idx:t}}var o=e(132),a=".",s=",",c="[",u="]",h="{",l="}",p=":",d="\\",f='"',m="'",v=" ",g="\\'\"[]., ",y="\\{}'\"[]., :",b=t.exports=function(e,t){this._string=e,this._idx=-1,this._extended=t,this.parseString=""};b.prototype={next:function(){var e=this._nextToken?this._nextToken:i(this._string,this._idx,this._extended);return this._idx=e.idx,this._nextToken=!1,this.parseString+=e.token.token,e.token},peek:function(){var e=this._nextToken?this._nextToken:i(this._string,this._idx,this._extended);return this._nextToken=e,e.token}},b.toNumber=function(e){return isNaN(+e)?NaN:+e}},{132:132}],141:[function(e,t,r){var n=e(147),i=e(148);t.exports=function(e){var t=e.reduce(function(e,t){var r=t.length;return e[r]||(e[r]=[]),e[r].push(t),e},{});return Object.keys(t).forEach(function(e){t[e]=i(t[e])}),n(t)}},{147:147,148:148}],142:[function(e,t,r){var n=e(144);t.exports=function e(t,r,i){for(var o=t,a=!0;a&&i<r.length;++i){var s=r[i];if(s&&"object"===typeof s){var c={},u=n(s,c),h=i+1;do{var l=o[u];(a=void 0!==l)&&(a=e(l,r,h)),u=n(s,c)}while(a&&!c.done);break}a=void 0!==(o=o[s])}return a}},{144:144}],143:[function(e,t,r){t.exports={iterateKeySet:e(144),toTree:e(148),toTreeWithUnion:e(149),pathsComplementFromTree:e(146),pathsComplementFromLengthTree:e(145),hasIntersection:e(142),toPaths:e(147),collapse:e(141)}},{141:141,142:142,144:144,145:145,146:146,147:147,148:148,149:149}],144:[function(e,t,r){function n(e,t){var r=t.from=e.from||0,n=t.to=e.to||"number"==typeof e.length&&t.from+e.length-1||0;t.rangeOffset=t.from,t.loaded=!0,r>n&&(t.empty=!0)}function i(e,t){t.done=!1;var r=t.isObject=!(!e||"object"!=typeof e);t.isArray=r&&o(e),t.arrayOffset=0}var o=Array.isArray;t.exports=function(e,t){if(void 0===t.isArray&&i(e,t),t.isArray){var r;do{t.loaded&&t.rangeOffset>t.to&&(++t.arrayOffset,t.loaded=!1);if(t.arrayOffset>=e.length){t.done=!0;break}var o=e[t.arrayOffset];if("object"===typeof o){if(t.loaded||n(o,t),t.empty)continue;r=t.rangeOffset++}else++t.arrayOffset,r=o}while(void 0===r);return r}return t.isObject?(t.loaded||n(e,t),t.rangeOffset>t.to?void(t.done=!0):t.rangeOffset++):(t.done=!0,e)}},{}],145:[function(e,t,r){var n=e(142);t.exports=function(e,t){for(var r=[],i=-1,o=0,a=e.length;a>o;++o){var s=e[o];n(t[s.length],s,0)||(r[++i]=s)}return r}},{142:142}],146:[function(e,t,r){var n=e(142);t.exports=function(e,t){for(var r=[],i=-1,o=0,a=e.length;a>o;++o)n(t,e[o],0)||(r[++i]=e[o]);return r}},{142:142}],147:[function(e,t,r){function n(e){return null!==e&&typeof e===l}function i(e,t,r){var n,o,a,h,l,p,d,f,m,v,g,y,b,_,x=c(String(t)),w=Object.create(null),S=[],M=-1,E=0,C=[],T=0;if(h=[],l=-1,r-1>t){for(p=s(e,h);++l<p;)n=h[l],o=i(e[n],t+1,r),a=o.code,w[a]?o=w[a]:(S[E++]=a,o=w[a]={keys:[],sets:o.sets}),x=c(x+n+a),u(n)&&o.keys.push(parseInt(n,10))||o.keys.push(n);for(;++M<E;)if(n=S[M],o=w[n],h=o.keys,(p=h.length)>0)for(d=o.sets,f=-1,m=d.length,b=h[0];++f<m;){for(g=-1,y=(v=d[f]).length,(_=new Array(y+1))[0]=p>1&&h||b;++g<y;)_[g+1]=v[g];C[T++]=_}}else for(p=s(e,h),C[T++]=p>1?[h]:h;++l<p;)x=c(x+h[l]);return{code:x,sets:C}}function o(e){for(var t=-1,r=e.length;++t<r;){var n=e[t];h(n)&&(e[t]=function(e){for(var t=-1,r=e.length-1,n=r>0;++t<=r;){var i=e[t];if(!u(i)){n=!1;break}e[t]=parseInt(i,10)}if(!0===n){e.sort(a);var o=e[0],s=e[r];if(r>=s-o)return{from:o,to:s}}return e}(n))}return e}function a(e,t){return e-t}function s(e,t,r){var n=0;for(var i in e)t[n++]=i;return n>1&&t.sort(r),n}function c(e){for(var t=5381,r=-1,n=e.length;++r<n;)t=(t<<5)+t+e.charCodeAt(r);return String(t)}function u(e){return!h(e)&&e-parseFloat(e)+1>=0}var h=Array.isArray,l="object";t.exports=function(e){var t,r=[],a=0;for(var s in e)if(u(s)&&n(t=e[s]))for(var c=i(t,0,parseInt(s,10)).sets,h=-1,l=c.length;++h<l;)r[a++]=o(c[h]);return r}},{}],148:[function(e,t,r){function n(e,t,r){var o,a=t[r],s={},c=r+1;o=i(a,s);do{var u=e[o];u||(c===t.length?e[o]=null:u=e[o]={}),c<t.length&&n(u,t,c),s.done||(o=i(a,s))}while(!s.done)}var i=e(144);Array.isArray,t.exports=function(e){return e.reduce(function(e,t){return n(e,t,0),e},{})}},{144:144}],149:[function(e,t,r){},{}],150:[function(e,t,r){function n(){h=!1,s.length?u=s.concat(u):l=-1,u.length&&i()}function i(){if(!h){var e=setTimeout(n);h=!0;for(var t=u.length;t;){for(s=u,u=[];++l<t;)s&&s[l].run();l=-1,t=u.length}s=null,h=!1,clearTimeout(e)}}function o(e,t){this.fun=e,this.array=t}function a(){}var s,c=t.exports={},u=[],h=!1,l=-1;c.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];u.push(new o(e,t)),1!==u.length||h||setTimeout(i,0)},o.prototype.run=function(){this.fun.apply(null,this.array)},c.title="browser",c.browser=!0,c.env={},c.argv=[],c.version="",c.versions={},c.on=a,c.addListener=a,c.once=a,c.off=a,c.removeListener=a,c.removeAllListeners=a,c.emit=a,c.binding=function(e){throw new Error("process.binding is not supported")},c.cwd=function(){return"/"},c.chdir=function(e){throw new Error("process.chdir is not supported")},c.umask=function(){return 0}},{}],151:[function(e,t,r){"use strict";t.exports=e(156)},{156:156}],152:[function(e,t,r){"use strict";function n(){}function i(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._37=0,this._12=null,this._59=[],e!==n&&h(e,this)}function o(e,t){for(;3===e._37;)e=e._12;return 0===e._37?void e._59.push(t):void l(function(){var r=1===e._37?t.onFulfilled:t.onRejected;if(null!==r){var n=function(e,t){try{return e(t)}catch(e){return p=e,d}}(r,e._12);n===d?s(t.promise,p):a(t.promise,n)}else 1===e._37?a(t.promise,e._12):s(t.promise,e._12)})}function a(e,t){if(t===e)return s(e,new TypeError("A promise cannot be resolved with itself."));if(t&&("object"==typeof t||"function"==typeof t)){var r=function(e){try{return e.then}catch(e){return p=e,d}}(t);if(r===d)return s(e,p);if(r===e.then&&t instanceof i)return e._37=3,e._12=t,void c(e);if("function"==typeof r)return void h(r.bind(t),e)}e._37=1,e._12=t,c(e)}function s(e,t){e._37=2,e._12=t,c(e)}function c(e){for(var t=0;t<e._59.length;t++)o(e,e._59[t]);e._59=null}function u(e,t,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=r}function h(e,t){var r=!1,n=function(e,t,r){try{e(t,r)}catch(e){return p=e,d}}(e,function(e){r||(r=!0,a(t,e))},function(e){r||(r=!0,s(t,e))});r||n!==d||(r=!0,s(t,p))}var l=e(124),p=null,d={};t.exports=i,i._99=n,i.prototype.then=function(e,t){if(this.constructor!==i)return function(e,t,r){return new e.constructor(function(a,s){var c=new i(n);c.then(a,s),o(e,new u(t,r,c))})}(this,e,t);var r=new i(n);return o(this,new u(e,t,r)),r}},{124:124}],153:[function(e,t,r){"use strict";var n=e(152);t.exports=n,n.prototype.done=function(e,t){(arguments.length?this.then.apply(this,arguments):this).then(null,function(e){setTimeout(function(){throw e},0)})}},{152:152}],154:[function(e,t,r){"use strict";function n(e){var t=new i(i._99);return t._37=1,t._12=e,t}var i=e(152);t.exports=i;var o=n(!0),a=n(!1),s=n(null),c=n(void 0),u=n(0),h=n("");i.resolve=function(e){if(e instanceof i)return e;if(null===e)return s;if(void 0===e)return c;if(!0===e)return o;if(!1===e)return a;if(0===e)return u;if(""===e)return h;if("object"==typeof e||"function"==typeof e)try{var t=e.then;if("function"==typeof t)return new i(t.bind(e))}catch(e){return new i(function(t,r){r(e)})}return n(e)},i.all=function(e){var t=Array.prototype.slice.call(e);return new i(function(e,r){function n(a,s){if(s&&("object"==typeof s||"function"==typeof s)){if(s instanceof i&&s.then===i.prototype.then){for(;3===s._37;)s=s._12;return 1===s._37?n(a,s._12):(2===s._37&&r(s._12),void s.then(function(e){n(a,e)},r))}var c=s.then;if("function"==typeof c){return void new i(c.bind(s)).then(function(e){n(a,e)},r)}}t[a]=s,0==--o&&e(t)}if(0===t.length)return e([]);for(var o=t.length,a=0;a<t.length;a++)n(a,t[a])})},i.reject=function(e){return new i(function(t,r){r(e)})},i.race=function(e){return new i(function(t,r){e.forEach(function(e){i.resolve(e).then(t,r)})})},i.prototype.catch=function(e){return this.then(null,e)}},{152:152}],155:[function(e,t,r){"use strict";var n=e(152);t.exports=n,n.prototype.finally=function(e){return this.then(function(t){return n.resolve(e()).then(function(){return t})},function(t){return n.resolve(e()).then(function(){throw t})})}},{152:152}],156:[function(e,t,r){"use strict";t.exports=e(152),e(153),e(155),e(154),e(157)},{152:152,153:153,154:154,155:155,157:157}],157:[function(e,t,r){"use strict";var n=e(152),i=e(123);t.exports=n,n.denodeify=function(e,t){return t=t||1/0,function(){var r=this,i=Array.prototype.slice.call(arguments,0,t>0?t:0);return new n(function(t,n){i.push(function(e,r){e?n(e):t(r)});var o=e.apply(r,i);!o||"object"!=typeof o&&"function"!=typeof o||"function"!=typeof o.then||t(o)})}},n.nodeify=function(e){return function(){var t=Array.prototype.slice.call(arguments),r="function"==typeof t[t.length-1]?t.pop():null,o=this;try{return e.apply(this,arguments).nodeify(r,o)}catch(e){if(null===r||void 0===r)return new n(function(t,r){r(e)});i(function(){r.call(o,e)})}}},n.prototype.nodeify=function(e,t){return"function"!=typeof e?this:void this.then(function(r){i(function(){e.call(t,null,r)})},function(r){i(function(){e.call(t,r)})})}},{123:123,152:152}],158:[function(e,t,r){(function(n){(function(i){var o={boolean:!1,function:!0,object:!0,number:!1,string:!1,undefined:!1},a=o[typeof window]&&window||this,s=o[typeof r]&&r&&!r.nodeType&&r,c=o[typeof t]&&t&&!t.nodeType&&t,u=(c&&c.exports,o[typeof n]&&n);!u||u.global!==u&&u.window!==u||(a=u),"object"==typeof t&&t&&t.exports===s?t.exports=i(a,t.exports,e(159)):a.Rx=i(a,{},a.Rx)}).call(this,function(e,t,r,n){function i(e){if(!S(e))throw new TypeError("fn must be a function");return p=e,function(){try{return p.apply(this,arguments)}catch(e){return N.e=e,N}}}function o(e,t,r){return new v(function(n){var i=!1,o=null,a=[];return e.subscribe(function(e){var s,c;try{c=t(e)}catch(e){return void n.onError(e)}if(s=0,i)try{s=r(c,o)}catch(e){return void n.onError(e)}else i=!0,o=c;s>0&&(o=c,a=[]),s>=0&&a.push(e)},function(e){n.onError(e)},function(){n.onNext(a),n.onCompleted()})},e)}function a(e){if(0===e.length)throw new A;return e[0]}function s(e,t,r,n){if(0>t)throw new L;return new v(function(i){var o=t;return e.subscribe(function(e){0==o--&&(i.onNext(e),i.onCompleted())},function(e){i.onError(e)},function(){r?(i.onNext(n),i.onCompleted()):i.onError(new L)})},e)}function c(e,t,r){return new v(function(n){var i=r,o=!1;return e.subscribe(function(e){o?n.onError(new Error("Sequence contains more than one element")):(i=e,o=!0)},function(e){n.onError(e)},function(){o||t?(n.onNext(i),n.onCompleted()):n.onError(new A)})},e)}function u(e,t,r){return new v(function(n){return e.subscribe(function(e){n.onNext(e),n.onCompleted()},function(e){n.onError(e)},function(){t?(n.onNext(r),n.onCompleted()):n.onError(new A)})},e)}function h(e,t,r){return new v(function(n){var i=r,o=!1;return e.subscribe(function(e){i=e,o=!0},function(e){n.onError(e)},function(){o||t?(n.onNext(i),n.onCompleted()):n.onError(new A)})},e)}function l(e,t,r,i){var o=j(t,r,3);return new v(function(t){var r=0;return e.subscribe(function(n){var a;try{a=o(n,r,e)}catch(e){return void t.onError(e)}a?(t.onNext(i?r:n),t.onCompleted()):r++},function(e){t.onError(e)},function(){t.onNext(i?-1:n),t.onCompleted()})},e)}var p,d=r.Observable,f=d.prototype,m=r.CompositeDisposable,v=r.AnonymousObservable,g=r.Disposable.empty,y=(r.internals.isEqual,r.helpers),b=y.not,_=y.defaultComparer,x=y.identity,w=y.defaultSubComparer,S=y.isFunction,M=y.isPromise,E=y.isArrayLike,C=y.isIterable,T=r.internals.inherits,O=d.fromPromise,P=d.from,j=r.internals.bindCallback,A=r.EmptyError,R=r.ObservableBase,L=r.ArgumentOutOfRangeError,N={e:{}};f.aggregate=function(){var e,t,r=!1,n=this;return 2===arguments.length?(r=!0,t=arguments[0],e=arguments[1]):e=arguments[0],new v(function(i){var o,a,s;return n.subscribe(function(n){!s&&(s=!0);try{o?a=e(a,n):(a=r?e(t,n):n,o=!0)}catch(e){return i.onError(e)}},function(e){i.onError(e)},function(){s&&i.onNext(a),!s&&r&&i.onNext(t),!s&&!r&&i.onError(new A),i.onCompleted()})},n)};var I=function(e){function t(t,r,n,i){this.source=t,this.acc=r,this.hasSeed=n,this.seed=i,e.call(this)}function r(e,t){this.o=e,this.acc=t.acc,this.hasSeed=t.hasSeed,this.seed=t.seed,this.hasAccumulation=!1,this.result=null,this.hasValue=!1,this.isStopped=!1}return T(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e,this))},r.prototype.onNext=function(e){this.isStopped||(!this.hasValue&&(this.hasValue=!0),this.hasAccumulation?this.result=i(this.acc)(this.result,e):(this.result=this.hasSeed?i(this.acc)(this.seed,e):e,this.hasAccumulation=!0),this.result===N&&this.o.onError(this.result.e))},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.hasValue&&this.o.onNext(this.result),!this.hasValue&&this.hasSeed&&this.o.onNext(this.seed),!this.hasValue&&!this.hasSeed&&this.o.onError(new A),this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(R);return f.reduce=function(e){var t=!1;if(2===arguments.length){t=!0;var r=arguments[1]}return new I(this,e,t,r)},f.some=function(e,t){var r=this;return e?r.filter(e,t).some():new v(function(e){return r.subscribe(function(){e.onNext(!0),e.onCompleted()},function(t){e.onError(t)},function(){e.onNext(!1),e.onCompleted()})},r)},f.any=function(){return this.some.apply(this,arguments)},f.isEmpty=function(){return this.any().map(b)},f.every=function(e,t){return this.filter(function(t){return!e(t)},t).some().map(b)},f.all=function(){return this.every.apply(this,arguments)},f.includes=function(e,t){var r=this;return new v(function(n){var i=0,o=+t||0;return Math.abs(o)===1/0&&(o=0),0>o?(n.onNext(!1),n.onCompleted(),g):r.subscribe(function(t){i++>=o&&function(e,t){return 0===e&&0===t||e===t||isNaN(e)&&isNaN(t)}(t,e)&&(n.onNext(!0),n.onCompleted())},function(e){n.onError(e)},function(){n.onNext(!1),n.onCompleted()})},this)},f.contains=function(e,t){f.includes(e,t)},f.count=function(e,t){return e?this.filter(e,t).count():this.reduce(function(e){return e+1},0)},f.indexOf=function(e,t){var r=this;return new v(function(n){var i=0,o=+t||0;return Math.abs(o)===1/0&&(o=0),0>o?(n.onNext(-1),n.onCompleted(),g):r.subscribe(function(t){i>=o&&t===e&&(n.onNext(i),n.onCompleted()),i++},function(e){n.onError(e)},function(){n.onNext(-1),n.onCompleted()})},r)},f.sum=function(e,t){return e&&S(e)?this.map(e,t).sum():this.reduce(function(e,t){return e+t},0)},f.minBy=function(e,t){return t||(t=w),o(this,e,function(e,r){return-1*t(e,r)})},f.min=function(e){return this.minBy(x,e).map(function(e){return a(e)})},f.maxBy=function(e,t){return t||(t=w),o(this,e,t)},f.max=function(e){return this.maxBy(x,e).map(function(e){return a(e)})},f.average=function(e,t){return e&&S(e)?this.map(e,t).average():this.reduce(function(e,t){return{sum:e.sum+t,count:e.count+1}},{sum:0,count:0}).map(function(e){if(0===e.count)throw new A;return e.sum/e.count})},f.sequenceEqual=function(e,t){var r=this;return t||(t=_),new v(function(n){var i=!1,o=!1,a=[],s=[],c=r.subscribe(function(e){var r,i;if(s.length>0){i=s.shift();try{r=t(i,e)}catch(e){return void n.onError(e)}r||(n.onNext(!1),n.onCompleted())}else o?(n.onNext(!1),n.onCompleted()):a.push(e)},function(e){n.onError(e)},function(){i=!0,0===a.length&&(s.length>0?(n.onNext(!1),n.onCompleted()):o&&(n.onNext(!0),n.onCompleted()))});(E(e)||C(e))&&(e=P(e)),M(e)&&(e=O(e));var u=e.subscribe(function(e){var r;if(a.length>0){var o=a.shift();try{r=t(o,e)}catch(e){return void n.onError(e)}r||(n.onNext(!1),n.onCompleted())}else i?(n.onNext(!1),n.onCompleted()):s.push(e)},function(e){n.onError(e)},function(){o=!0,0===s.length&&(a.length>0?(n.onNext(!1),n.onCompleted()):i&&(n.onNext(!0),n.onCompleted()))});return new m(c,u)},r)},f.elementAt=function(e){return s(this,e,!1)},f.elementAtOrDefault=function(e,t){return s(this,e,!0,t)},f.single=function(e,t){return e&&S(e)?this.where(e,t).single():c(this,!1)},f.singleOrDefault=function(e,t,r){return e&&S(e)?this.filter(e,r).singleOrDefault(null,t):c(this,!0,t)},f.first=function(e,t){return e?this.where(e,t).first():u(this,!1)},f.firstOrDefault=function(e,t,r){return e?this.where(e).firstOrDefault(null,t):u(this,!0,t)},f.last=function(e,t){return e?this.where(e,t).last():h(this,!1)},f.lastOrDefault=function(e,t,r){return e?this.where(e,r).lastOrDefault(null,t):h(this,!0,t)},f.find=function(e,t){return l(this,e,t,!1)},f.findIndex=function(e,t){return l(this,e,t,!0)},f.toSet=function(){if(void 0===e.Set)throw new TypeError;var t=this;return new v(function(r){var n=new e.Set;return t.subscribe(function(e){n.add(e)},function(e){r.onError(e)},function(){r.onNext(n),r.onCompleted()})},t)},f.toMap=function(t,r){if(void 0===e.Map)throw new TypeError;var n=this;return new v(function(i){var o=new e.Map;return n.subscribe(function(e){var n;try{n=t(e)}catch(e){return void i.onError(e)}var a=e;if(r)try{a=r(e)}catch(e){return void i.onError(e)}o.set(n,a)},function(e){i.onError(e)},function(){i.onNext(o),i.onCompleted()})},n)},r})}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{159:159}],159:[function(e,t,r){(function(e,n){(function(i){function o(e){for(var t=[],r=0,n=e.length;n>r;r++)t.push(e[r]);return t}function a(e,t){if(K&&t.stack&&"object"==typeof e&&null!==e&&e.stack&&-1===e.stack.indexOf(Q)){for(var r=[],n=t;n;n=n.source)n.stack&&r.unshift(n.stack);r.unshift(e.stack);var i=r.join("\n"+Q+"\n");e.stack=function(e){for(var t=e.split("\n"),r=[],n=0,i=t.length;i>n;n++){var o=t[n];(function(e){var t=u(e);if(!t)return!1;var r=t[0],n=t[1];return r===Z&&n>=J&&br>=n})(o)||function(e){return-1!==e.indexOf("(module.js:")||-1!==e.indexOf("(node.js:")}(o)||!o||r.push(o)}return r.join("\n")}(i)}}function c(){if(K)try{throw new Error}catch(r){var e=r.stack.split("\n"),t=u(e[0].indexOf("@")>0?e[1]:e[2]);if(!t)return;return Z=t[0],t[1]}}function u(e){var t=/at .+ \((.+):(\d+):(?:\d+)\)$/.exec(e);if(t)return[t[1],Number(t[2])];var r=/at ([^ ]+):(\d+):(?:\d+)$/.exec(e);if(r)return[r[1],Number(r[2])];var n=/.*@(.+):(\d+)$/.exec(e);return n?[n[1],Number(n[2])]:void 0}function h(e){var t=[];if(!Ae(e))return t;je.nonEnumArgs&&e.length&&Re(e)&&(e=Ie.call(e));var r=je.enumPrototypes&&"function"==typeof e,n=je.enumErrorProps&&(e===Ee||e instanceof Error);for(var i in e)r&&"prototype"==i||n&&("message"==i||"name"==i)||t.push(i);if(je.nonEnumShadows&&e!==Ce){var o=e.constructor,a=-1,s=pe;if(e===(o&&o.prototype))var c=e===Te?xe:e===Ee?ge:we.call(e),u=Pe[c];for(;++a<s;)i=le[a],u&&u[i]||!Se.call(e,i)||t.push(i)}return t}function l(e,t){return function(e,t,r){for(var n=-1,i=r(e),o=i.length;++n<o;){var a=i[n];if(!1===t(e[a],a,e))break}return e}(e,t,h)}function p(e){return"function"!=typeof e.toString&&"string"==typeof(e+"")}function d(e,t,r,n){if(e===t)return 0!==e||1/e==1/t;var i=typeof e,o=typeof t;if(e==e&&(null==e||null==t||"function"!=i&&"object"!=i&&"function"!=o&&"object"!=o))return!1;var a=we.call(e),s=we.call(t);if(a==de&&(a=be),s==de&&(s=be),a!=s)return!1;switch(a){case me:case ve:return+e==+t;case ye:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case _e:case xe:return e==String(t)}var c=a==fe;if(!c){if(a!=be||!je.nodeClass&&(p(e)||p(t)))return!1;var u=!je.argsObject&&Re(e)?Object:e.constructor,h=!je.argsObject&&Re(t)?Object:t.constructor;if(!(u==h||Se.call(e,"constructor")&&Se.call(t,"constructor")||Y(u)&&u instanceof u&&Y(h)&&h instanceof h)&&("constructor"in e&&"constructor"in t))return!1}r||(r=[]),n||(n=[]);for(var f=r.length;f--;)if(r[f]==e)return n[f]==t;var m=0,v=!0;if(r.push(e),n.push(t),c){if(f=e.length,m=t.length,v=m==f)for(;m--;){var g=t[m];if(!(v=d(e[m],g,r,n)))break}}else l(t,function(t,i,o){return Se.call(o,i)?(m++,v=Se.call(e,i)&&d(e[i],t,r,n)):void 0}),v&&l(e,function(e,t,r){return Se.call(r,t)?v=--m>-1:void 0});return r.pop(),n.pop(),v}function f(e,t){for(var r=new Array(e),n=0;e>n;n++)r[n]=t();return r}function m(e){if(!Y(e))throw new TypeError("fn must be a function");return Le=e,function(){try{return Le.apply(this,arguments)}catch(e){return Fe.e=e,Fe}}}function v(e){throw e}function g(e,t){this.id=e,this.value=t}function y(e,t){this.scheduler=e,this.disposable=t,this.isDisposed=!1}function b(e,t){t.isDisposed||(t.isDisposed=!0,t.disposable.dispose())}function _(e){this._s=s}function x(e){this._s=s,this._l=s.length,this._i=0}function w(e){this._a=e}function S(e){this._a=e,this._l=function(e){var t=+e.length;return isNaN(t)?0:0!==t&&function(e){return"number"==typeof e&&D.isFinite(e)}(t)?0>=(t=function(e){var t=+e;return 0===t?t:isNaN(t)?t:0>t?-1:1}(t)*Math.floor(Math.abs(t)))?0:t>kt?kt:t:t}(e),this._i=0}function M(e,t){this.observer=e,this.parent=t}function E(e,t){return tt(e)||(e=ot),new Ft(t,e)}function C(e,t){this.observer=e,this.parent=t}function T(e,t){this.observer=e,this.parent=t}function O(){return!1}function O(){return!1}function P(){return[]}function O(){return!1}function j(){return[]}function A(e,t){this.observer=e,this.accumulator=t.accumulator,this.hasSeed=t.hasSeed,this.seed=t.seed,this.hasAccumulation=!1,this.accumulation=null,this.hasValue=!1,this.isStopped=!1}function R(e,t,r){var n=he(t,r,3);return e.map(function(t,r){var i=n(t,r,e);return X(i)&&(i=At(i)),(ue(i)||ce(i))&&(i=Bt(i)),i}).concatAll()}function L(e){this.comparer=e,this.set=[]}function N(e,t,r){var n=he(t,r,3);return e.map(function(t,r){var i=n(t,r,e);return X(i)&&(i=At(i)),(ue(i)||ce(i))&&(i=Bt(i)),i}).mergeAll()}var I={boolean:!1,function:!0,object:!0,number:!1,string:!1,undefined:!1},D=I[typeof window]&&window||this,k=I[typeof r]&&r&&!r.nodeType&&r,B=I[typeof t]&&t&&!t.nodeType&&t,F=B&&B.exports===k&&k,U=I[typeof n]&&n;!U||U.global!==U&&U.window!==U||(D=U);var $={internals:{},config:{Promise:D.Promise},helpers:{}},z=$.helpers.noop=function(){},G=($.helpers.notDefined=function(e){return void 0===e},$.helpers.identity=function(e){return e}),V=($.helpers.pluck=function(e){return function(t){return t[e]}},$.helpers.just=function(e){return function(){return e}},$.helpers.defaultNow=Date.now),H=$.helpers.defaultComparer=function(e,t){return Ne(e,t)},q=$.helpers.defaultSubComparer=function(e,t){return e>t?1:t>e?-1:0},W=($.helpers.defaultKeySerializer=function(e){return e.toString()},$.helpers.defaultError=function(e){throw e}),X=$.helpers.isPromise=function(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then},Y=($.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},$.helpers.not=function(e){return!e},$.helpers.isFunction=function(){var e=function(e){return"function"==typeof e||!1};return e(/x/)&&(e=function(e){return"function"==typeof e&&"[object Function]"==we.call(e)}),e}());$.config.longStackSupport=!1;var K=!1;try{throw new Error}catch(e){K=!!e.stack}var Z,J=c(),Q="From previous event:";($.EmptyError=function(){this.message="Sequence contains no elements.",Error.call(this)}).prototype=Error.prototype;var ee=$.ObjectDisposedError=function(){this.message="Object has been disposed",Error.call(this)};ee.prototype=Error.prototype;var te=$.ArgumentOutOfRangeError=function(){this.message="Argument out of range",Error.call(this)};te.prototype=Error.prototype;var re=$.NotSupportedError=function(e){this.message=e||"This operation is not supported",Error.call(this)};re.prototype=Error.prototype;var ne=$.NotImplementedError=function(e){this.message=e||"This operation is not implemented",Error.call(this)};ne.prototype=Error.prototype;var ie=$.helpers.notImplemented=function(){throw new ne},oe=$.helpers.notSupported=function(){throw new re},ae="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";D.Set&&"function"==typeof(new D.Set)["@@iterator"]&&(ae="@@iterator");var se=$.doneEnumerator={done:!0,value:i},ce=$.helpers.isIterable=function(e){return e[ae]!==i},ue=$.helpers.isArrayLike=function(e){return e&&e.length!==i};$.helpers.iterator=ae;var he=$.internals.bindCallback=function(e,t,r){if(void 0===t)return e;switch(r){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,i){return e.call(t,r,n,i)}}return function(){return e.apply(t,arguments)}},le=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],pe=le.length,de="[object Arguments]",fe="[object Array]",me="[object Boolean]",ve="[object Date]",ge="[object Error]",ye="[object Number]",be="[object Object]",_e="[object RegExp]",xe="[object String]",we=Object.prototype.toString,Se=Object.prototype.hasOwnProperty,Me=we.call(arguments)==de,Ee=Error.prototype,Ce=Object.prototype,Te=String.prototype,Oe=Ce.propertyIsEnumerable;try{!(we.call(document)==be&&!({toString:0}+""))}catch(e){!0}var Pe={};Pe[fe]=Pe[ve]=Pe[ye]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},Pe[me]=Pe[xe]={constructor:!0,toString:!0,valueOf:!0},Pe[ge]=Pe["[object Function]"]=Pe[_e]={constructor:!0,toString:!0},Pe[be]={constructor:!0};var je={};!function(){var e=function(){this.x=1},t=[];e.prototype={valueOf:1,y:1};for(var r in new e)t.push(r);for(r in arguments);je.enumErrorProps=Oe.call(Ee,"message")||Oe.call(Ee,"name"),je.enumPrototypes=Oe.call(e,"prototype"),je.nonEnumArgs=0!=r,je.nonEnumShadows=!/valueOf/.test(t)}(1);var Ae=$.internals.isObject=function(e){var t=typeof e;return e&&("function"==t||"object"==t)||!1},Re=function(e){return!(!e||"object"!=typeof e)&&we.call(e)==de};Me||(Re=function(e){return!(!e||"object"!=typeof e)&&Se.call(e,"callee")});var Le,Ne=$.internals.isEqual=function(e,t){return d(e,t,[],[])},Ie=Array.prototype.slice,De=this.inherits=$.internals.inherits=function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r},ke=$.internals.addProperties=function(e){for(var t=[],r=1,n=arguments.length;n>r;r++)t.push(arguments[r]);for(var i=0,o=t.length;o>i;i++){var a=t[i];for(var s in a)e[s]=a[s]}},Be=$.internals.addRef=function(e,t){return new fr(function(r){return new ze(t.getDisposable(),e.subscribe(r))})},Fe={e:{}};g.prototype.compareTo=function(e){var t=this.value.compareTo(e.value);return 0===t&&(t=this.id-e.id),t};var Ue=$.internals.PriorityQueue=function(e){this.items=new Array(e),this.length=0},$e=Ue.prototype;$e.isHigherPriority=function(e,t){return this.items[e].compareTo(this.items[t])<0},$e.percolate=function(e){if(!(e>=this.length||0>e)){var t=e-1>>1;if(!(0>t||t===e)&&this.isHigherPriority(e,t)){var r=this.items[e];this.items[e]=this.items[t],this.items[t]=r,this.percolate(t)}}},$e.heapify=function(e){if(+e||(e=0),!(e>=this.length||0>e)){var t=2*e+1,r=2*e+2,n=e;if(t<this.length&&this.isHigherPriority(t,n)&&(n=t),r<this.length&&this.isHigherPriority(r,n)&&(n=r),n!==e){var i=this.items[e];this.items[e]=this.items[n],this.items[n]=i,this.heapify(n)}}},$e.peek=function(){return this.items[0].value},$e.removeAt=function(e){this.items[e]=this.items[--this.length],this.items[this.length]=i,this.heapify()},$e.dequeue=function(){var e=this.peek();return this.removeAt(0),e},$e.enqueue=function(e){var t=this.length++;this.items[t]=new g(Ue.count++,e),this.percolate(t)},$e.remove=function(e){for(var t=0;t<this.length;t++)if(this.items[t].value===e)return this.removeAt(t),!0;return!1},Ue.count=0;var ze=$.CompositeDisposable=function(){var e,t,r=[];if(Array.isArray(arguments[0]))r=arguments[0],t=r.length;else for(t=arguments.length,r=new Array(t),e=0;t>e;e++)r[e]=arguments[e];for(e=0;t>e;e++)if(!We(r[e]))throw new TypeError("Not a disposable");this.disposables=r,this.isDisposed=!1,this.length=r.length},Ge=ze.prototype;Ge.add=function(e){this.isDisposed?e.dispose():(this.disposables.push(e),this.length++)},Ge.remove=function(e){var t=!1;if(!this.isDisposed){var r=this.disposables.indexOf(e);-1!==r&&(t=!0,this.disposables.splice(r,1),this.length--,e.dispose())}return t},Ge.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;for(var e=this.disposables.length,t=new Array(e),r=0;e>r;r++)t[r]=this.disposables[r];for(this.disposables=[],this.length=0,r=0;e>r;r++)t[r].dispose()}};var Ve=$.Disposable=function(e){this.isDisposed=!1,this.action=e||z};Ve.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var He=Ve.create=function(e){return new Ve(e)},qe=Ve.empty={dispose:z},We=Ve.isDisposable=function(e){return e&&Y(e.dispose)},Xe=Ve.checkDisposed=function(e){if(e.isDisposed)throw new ee},Ye=$.SingleAssignmentDisposable=function(){this.isDisposed=!1,this.current=null};Ye.prototype.getDisposable=function(){return this.current},Ye.prototype.setDisposable=function(e){if(this.current)throw new Error("Disposable has already been assigned");var t=this.isDisposed;!t&&(this.current=e),t&&e&&e.dispose()},Ye.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var e=this.current;this.current=null}e&&e.dispose()};var Ke=$.SerialDisposable=function(){this.isDisposed=!1,this.current=null};Ke.prototype.getDisposable=function(){return this.current},Ke.prototype.setDisposable=function(e){var t=this.isDisposed;if(!t){var r=this.current;this.current=e}r&&r.dispose(),t&&e&&e.dispose()},Ke.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var e=this.current;this.current=null}e&&e.dispose()};var Ze=$.RefCountDisposable=function(){function e(e){this.disposable=e,this.disposable.count++,this.isInnerDisposed=!1}function t(e){this.underlyingDisposable=e,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return e.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},t.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},t.prototype.getDisposable=function(){return this.isDisposed?qe:new e(this)},t}();y.prototype.dispose=function(){this.scheduler.scheduleWithState(this,b)};var Je=$.internals.ScheduledItem=function(e,t,r,n,i){this.scheduler=e,this.state=t,this.action=r,this.dueTime=n,this.comparer=i||q,this.disposable=new Ye};Je.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Je.prototype.compareTo=function(e){return this.comparer(this.dueTime,e.dueTime)},Je.prototype.isCancelled=function(){return this.disposable.isDisposed},Je.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var Qe=$.Scheduler=function(){function e(e,t,r,n){this.now=e,this._schedule=t,this._scheduleRelative=r,this._scheduleAbsolute=n}function t(e,t){return t(),qe}e.isScheduler=function(t){return t instanceof e};var r=e.prototype;return r.schedule=function(e){return this._schedule(e,t)},r.scheduleWithState=function(e,t){return this._schedule(e,t)},r.scheduleWithRelative=function(e,r){return this._scheduleRelative(r,e,t)},r.scheduleWithRelativeAndState=function(e,t,r){return this._scheduleRelative(e,t,r)},r.scheduleWithAbsolute=function(e,r){return this._scheduleAbsolute(r,e,t)},r.scheduleWithAbsoluteAndState=function(e,t,r){return this._scheduleAbsolute(e,t,r)},e.now=V,e.normalize=function(e){return 0>e&&(e=0),e},e}(),et=Qe.normalize,tt=Qe.isScheduler;!function(e){function t(e,t){function r(t){i(t,function(t){var n=!1,i=!1,a=e.scheduleWithState(t,function(e,t){return n?o.remove(a):i=!0,r(t),qe});i||(o.add(a),n=!0)})}var n=t[0],i=t[1],o=new ze;return r(n),o}function r(e,t,r){function n(t){o(t,function(t,i){var o=!1,s=!1,c=e[r](t,i,function(e,t){return o?a.remove(c):s=!0,n(t),qe});s||(a.add(c),o=!0)})}var i=t[0],o=t[1],a=new ze;return n(i),a}function n(e,t){e(function(r){t(e,r)})}e.scheduleRecursive=function(e){return this.scheduleRecursiveWithState(e,n)},e.scheduleRecursiveWithState=function(e,r){return this.scheduleWithState([e,r],t)},e.scheduleRecursiveWithRelative=function(e,t){return this.scheduleRecursiveWithRelativeAndState(t,e,n)},e.scheduleRecursiveWithRelativeAndState=function(e,t,n){return this._scheduleRelative([e,n],t,function(e,t){return r(e,t,"scheduleWithRelativeAndState")})},e.scheduleRecursiveWithAbsolute=function(e,t){return this.scheduleRecursiveWithAbsoluteAndState(t,e,n)},e.scheduleRecursiveWithAbsoluteAndState=function(e,t,n){return this._scheduleAbsolute([e,n],t,function(e,t){return r(e,t,"scheduleWithAbsoluteAndState")})}}(Qe.prototype),Qe.prototype,Qe.prototype.schedulePeriodic=function(e,t){return this.schedulePeriodicWithState(null,e,t)},Qe.prototype.schedulePeriodicWithState=function(e,t,r){if(void 0===D.setInterval)throw new re;t=et(t);var n=e,i=D.setInterval(function(){n=r(n)},t);return He(function(){D.clearInterval(i)})},function(e){e.catchError=e.catch=function(e){return new ut(this,e)}}(Qe.prototype);var rt,nt,it=($.internals.SchedulePeriodicRecursive=function(){function e(e,t,r,n){this._scheduler=e,this._state=t,this._period=r,this._action=n}return e.prototype.start=function(){var e=new Ye;return this._cancel=e,e.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,function(e,t){t(0,this._period);try{this._state=this._action(this._state)}catch(e){throw this._cancel.dispose(),e}}.bind(this))),e},e}(),Qe.immediate=function(){return new Qe(V,function(e,t){return t(this,e)},oe,oe)}()),ot=Qe.currentThread=function(){function e(){for(;t.length>0;){var e=t.dequeue();!e.isCancelled()&&e.invoke()}}var t,r=new Qe(V,function(r,n){var i=new Je(this,r,n,this.now());if(t)t.enqueue(i);else{(t=new Ue(4)).enqueue(i);var o=m(e)();if(t=null,o===Fe)return v(o.e)}return i.disposable},oe,oe);return r.scheduleRequired=function(){return!t},r}(),at=function(){var e,t=z;if(D.setTimeout)e=D.setTimeout,t=D.clearTimeout;else{if(!D.WScript)throw new re;e=function(e,t){D.WScript.Sleep(t),e()}}return{setTimeout:e,clearTimeout:t}}(),st=at.setTimeout,ct=at.clearTimeout;!function(){function t(e){if(o)st(function(){t(e)},0);else{var r=i[e];if(r){o=!0;var n=m(r)();if(nt(e),o=!1,n===Fe)return v(n.e)}}}function r(e){"string"==typeof e.data&&e.data.substring(0,c.length)===c&&t(e.data.substring(c.length))}var n=1,i={},o=!1;nt=function(e){delete i[e]};var a=RegExp("^"+String(we).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),s="function"==typeof(s=U&&F&&U.setImmediate)&&!a.test(s)&&s;if(Y(s))rt=function(e){var r=n++;return i[r]=e,s(function(){t(r)}),r};else if(void 0!==e&&"[object process]"==={}.toString.call(e))rt=function(r){var o=n++;return i[o]=r,e.nextTick(function(){t(o)}),o};else if(function(){if(!D.postMessage||D.importScripts)return!1;var e=!1,t=D.onmessage;return D.onmessage=function(){e=!0},D.postMessage("","*"),D.onmessage=t,e}()){var c="ms.rx.schedule"+Math.random();D.addEventListener?D.addEventListener("message",r,!1):D.attachEvent?D.attachEvent("onmessage",r):D.onmessage=r,rt=function(e){var t=n++;return i[t]=e,D.postMessage(c+currentId,"*"),t}}else if(D.MessageChannel){var u=new D.MessageChannel;u.port1.onmessage=function(e){t(e.data)},rt=function(e){var t=n++;return i[t]=e,u.port2.postMessage(t),t}}else rt="document"in D&&"onreadystatechange"in D.document.createElement("script")?function(e){var r=D.document.createElement("script"),o=n++;return i[o]=e,r.onreadystatechange=function(){t(o),r.onreadystatechange=null,r.parentNode.removeChild(r),r=null},D.document.documentElement.appendChild(r),o}:function(e){var r=n++;return i[r]=e,st(function(){t(r)},0),r}}();var ut=(Qe.timeout=Qe.default=function(){return new Qe(V,function(e,t){var r=this,n=new Ye,i=rt(function(){!n.isDisposed&&n.setDisposable(t(r,e))});return new ze(n,He(function(){nt(i)}))},function(e,t,r){var n=this,i=Qe.normalize(t),o=new Ye;if(0===i)return n.scheduleWithState(e,r);var a=st(function(){!o.isDisposed&&o.setDisposable(r(n,e))},i);return new ze(o,He(function(){ct(a)}))},function(e,t,r){return this.scheduleWithRelativeAndState(e,t-this.now(),r)})}(),function(e){function t(e,t){return this._scheduler.scheduleWithState(e,this._wrap(t))}function r(e,t,r){return this._scheduler.scheduleWithRelativeAndState(e,t,this._wrap(r))}function n(e,t,r){return this._scheduler.scheduleWithAbsoluteAndState(e,t,this._wrap(r))}function i(i,o){this._scheduler=i,this._handler=o,this._recursiveOriginal=null,this._recursiveWrapper=null,e.call(this,this._scheduler.now.bind(this._scheduler),t,r,n)}return De(i,e),i.prototype._clone=function(e){return new i(e,this._handler)},i.prototype._wrap=function(e){var t=this;return function(r,n){try{return e(t._getRecursiveWrapper(r),n)}catch(e){if(!t._handler(e))throw e;return qe}}},i.prototype._getRecursiveWrapper=function(e){if(this._recursiveOriginal!==e){this._recursiveOriginal=e;var t=this._clone(e);t._recursiveOriginal=e,t._recursiveWrapper=t,this._recursiveWrapper=t}return this._recursiveWrapper},i.prototype.schedulePeriodicWithState=function(e,t,r){var n=this,i=!1,o=new Ye;return o.setDisposable(this._scheduler.schedulePeriodicWithState(e,t,function(e){if(i)return null;try{return r(e)}catch(e){if(i=!0,!n._handler(e))throw e;return o.dispose(),null}})),o},i}(Qe)),ht=$.Notification=function(){function e(e,t,r,n,i,o){this.kind=e,this.value=t,this.exception=r,this._accept=n,this._acceptObservable=i,this.toString=o}return e.prototype.accept=function(e,t,r){return e&&"object"==typeof e?this._acceptObservable(e):this._accept(e,t,r)},e.prototype.toObservable=function(e){var t=this;return tt(e)||(e=it),new fr(function(r){return e.scheduleWithState(t,function(e,t){t._acceptObservable(r),"N"===t.kind&&r.onCompleted()})})},e}(),lt=ht.createOnNext=function(){function e(e){return e(this.value)}function t(e){return e.onNext(this.value)}function r(){return"OnNext("+this.value+")"}return function(n){return new ht("N",n,null,e,t,r)}}(),pt=ht.createOnError=function(){function e(e,t){return t(this.exception)}function t(e){return e.onError(this.exception)}function r(){return"OnError("+this.exception+")"}return function(n){return new ht("E",null,n,e,t,r)}}(),dt=ht.createOnCompleted=function(){function e(e,t,r){return r()}function t(e){return e.onCompleted()}function r(){return"OnCompleted()"}return function(){return new ht("C",null,null,e,t,r)}}(),ft=$.Observer=function(){};ft.prototype.toNotifier=function(){var e=this;return function(t){return t.accept(e)}},ft.prototype.asObserver=function(){return new yt(this.onNext.bind(this),this.onError.bind(this),this.onCompleted.bind(this))},ft.prototype.checked=function(){return new bt(this)};var mt=ft.create=function(e,t,r){return e||(e=z),t||(t=W),r||(r=z),new yt(e,t,r)};ft.fromNotifier=function(e,t){return new yt(function(r){return e.call(t,lt(r))},function(r){return e.call(t,pt(r))},function(){return e.call(t,dt())})},ft.prototype.notifyOn=function(e){return new _t(e,this)},ft.prototype.makeSafe=function(e){return new AnonymousSafeObserver(this._onNext,this._onError,this._onCompleted,e)};var vt,gt=$.internals.AbstractObserver=function(e){function t(){this.isStopped=!1,e.call(this)}return De(t,e),t.prototype.next=ie,t.prototype.error=ie,t.prototype.completed=ie,t.prototype.onNext=function(e){this.isStopped||this.next(e)},t.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.error(e))},t.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.completed())},t.prototype.dispose=function(){this.isStopped=!0},t.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.error(e),!0)},t}(ft),yt=$.AnonymousObserver=function(e){function t(t,r,n){e.call(this),this._onNext=t,this._onError=r,this._onCompleted=n}return De(t,e),t.prototype.next=function(e){this._onNext(e)},t.prototype.error=function(e){this._onError(e)},t.prototype.completed=function(){this._onCompleted()},t}(gt),bt=function(e){function t(t){e.call(this),this._observer=t,this._state=0}De(t,e);var r=t.prototype;return r.onNext=function(e){this.checkAccess();var t=m(this._observer.onNext).call(this._observer,e);this._state=0,t===Fe&&v(t.e)},r.onError=function(e){this.checkAccess();var t=m(this._observer.onError).call(this._observer,e);this._state=2,t===Fe&&v(t.e)},r.onCompleted=function(){this.checkAccess();var e=m(this._observer.onCompleted).call(this._observer);this._state=2,e===Fe&&v(e.e)},r.checkAccess=function(){if(1===this._state)throw new Error("Re-entrancy detected");if(2===this._state)throw new Error("Observer completed");0===this._state&&(this._state=1)},t}(ft),_t=function(e){function t(t,r,n){e.call(this,t,r),this._cancel=n}return De(t,e),t.prototype.next=function(t){e.prototype.next.call(this,t),this.ensureActive()},t.prototype.error=function(t){e.prototype.error.call(this,t),this.ensureActive()},t.prototype.completed=function(){e.prototype.completed.call(this),this.ensureActive()},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._cancel&&this._cancel.dispose(),this._cancel=null},t}($.internals.ScheduledObserver=function(e){function t(t,r){e.call(this),this.scheduler=t,this.observer=r,this.isAcquired=!1,this.hasFaulted=!1,this.queue=[],this.disposable=new Ke}return De(t,e),t.prototype.next=function(e){var t=this;this.queue.push(function(){t.observer.onNext(e)})},t.prototype.error=function(e){var t=this;this.queue.push(function(){t.observer.onError(e)})},t.prototype.completed=function(){var e=this;this.queue.push(function(){e.observer.onCompleted()})},t.prototype.ensureActive=function(){var e=!1,t=this;!this.hasFaulted&&this.queue.length>0&&(e=!this.isAcquired,this.isAcquired=!0),e&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(e){var r;if(t.queue.length>0){r=t.queue.shift();try{r()}catch(e){throw t.queue=[],t.hasFaulted=!0,e}e()}else t.isAcquired=!1}))},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.disposable.dispose()},t}(gt)),xt=$.Observable=function(){function e(e){if($.config.longStackSupport&&K){try{throw new Error}catch(e){this.stack=e.stack.substring(e.stack.indexOf("\n")+1)}var t=this;this._subscribe=function(r){var n=r.onError.bind(r);return r.onError=function(e){a(e,t),n(e)},e.call(t,r)}}else this._subscribe=e}return vt=e.prototype,vt.subscribe=vt.forEach=function(e,t,r){return this._subscribe("object"==typeof e?e:mt(e,t,r))},vt.subscribeOnNext=function(e,t){return this._subscribe(mt(void 0!==t?function(r){e.call(t,r)}:e))},vt.subscribeOnError=function(e,t){return this._subscribe(mt(null,void 0!==t?function(r){e.call(t,r)}:e))},vt.subscribeOnCompleted=function(e,t){return this._subscribe(mt(null,null,void 0!==t?function(){e.call(t)}:e))},e}(),wt=$.ObservableBase=function(e){function t(e,t){var r=t[0],n=t[1],i=m(n.subscribeCore).call(n,r);return i!==Fe||r.fail(Fe.e)?void r.setDisposable(function(e){return e&&Y(e.dispose)?e:Y(e)?He(e):qe}(i)):v(Fe.e)}function r(e){var r=new mr(e),n=[r,this];return ot.scheduleRequired()?ot.scheduleWithState(n,t):t(0,n),r}function n(){e.call(this,r)}return De(n,e),n.prototype.subscribeCore=ie,n}(xt),St=$.internals.Enumerable=function(){},Mt=function(e){function t(t){this.sources=t,e.call(this)}function r(e,t,r){this.o=e,this.s=t,this.e=r,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){var t,n=new Ke,i=it.scheduleRecursiveWithState(this.sources[ae](),function(i,o){if(!t){var a=m(i.next).call(i);if(a===Fe)return e.onError(a.e);if(a.done)return e.onCompleted();var s=a.value;X(s)&&(s=At(s));var c=new Ye;n.setDisposable(c),c.setDisposable(s.subscribe(new r(e,o,i)))}});return new ze(n,i,He(function(){t=!0}))},r.prototype.onNext=function(e){this.isStopped||this.o.onNext(e)},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.s(this.e))},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);St.prototype.concat=function(){return new Mt(this)};var Et=function(e){function t(t){this.sources=t,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){var t,r=this.sources[ae](),n=new Ke,i=it.scheduleRecursiveWithState(null,function(i,o){if(!t){var a=m(r.next).call(r);if(a===Fe)return e.onError(a.e);if(a.done)return null!==i?e.onError(i):e.onCompleted();var s=a.value;X(s)&&(s=At(s));var c=new Ye;n.setDisposable(c),c.setDisposable(s.subscribe(function(t){e.onNext(t)},o,function(){e.onCompleted()}))}});return new ze(n,i,He(function(){t=!0}))},t}(wt);St.prototype.catchError=function(){return new Et(this)},St.prototype.catchErrorWhen=function(e){var t=this;return new fr(function(r){var n,i=new gr,o=new gr,a=e(i).subscribe(o),s=t[ae](),c=new Ke,u=it.scheduleRecursive(function(e){if(!n){var t=m(s.next).call(s);if(t===Fe)return r.onError(t.e);if(t.done)return void r.onCompleted();var a=t.value;X(a)&&(a=At(a));var u=new Ye,h=new Ye;c.setDisposable(new ze(h,u)),u.setDisposable(a.subscribe(function(e){r.onNext(e)},function(t){h.setDisposable(o.subscribe(e,function(e){r.onError(e)},function(){r.onCompleted()})),i.onNext(t)},function(){r.onCompleted()}))}});return new ze(a,c,u,He(function(){n=!0}))})};var Ct=function(e){function t(e,t){this.v=e,this.c=null==t?-1:t}function r(e){this.v=e.v,this.l=e.c}return De(t,St),t.prototype[ae]=function(){return new r(this)},r.prototype.next=function(){return 0===this.l?se:(this.l>0&&this.l--,{done:!1,value:this.v})},t}(),Tt=St.repeat=function(e,t){return new Ct(e,t)},Ot=function(e){function t(e,t,r){this.s=e,this.fn=t?he(t,r,3):null}function r(e){this.i=-1,this.s=e.s,this.l=this.s.length,this.fn=e.fn}return De(t,St),t.prototype[ae]=function(){return new r(this)},r.prototype.next=function(){return++this.i<this.l?{done:!1,value:this.fn?this.fn(this.s[this.i],this.i,this.s):this.s[this.i]}:se},t}(),Pt=St.of=function(e,t,r){return new Ot(e,t,r)};vt.observeOn=function(e){var t=this;return new fr(function(r){return t.subscribe(new _t(e,r))},t)},vt.subscribeOn=function(e){var t=this;return new fr(function(r){var n=new Ye,i=new Ke;return i.setDisposable(n),n.setDisposable(e.schedule(function(){i.setDisposable(new y(e,t.subscribe(r)))})),i},t)};var jt=function(e){function t(t){this.p=t,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return this.p.then(function(t){e.onNext(t),e.onCompleted()},function(t){e.onError(t)}),qe},t}(wt),At=xt.fromPromise=function(e){return new jt(e)};vt.toPromise=function(e){if(e||(e=$.config.Promise),!e)throw new re("Promise type not provided nor in Rx.config.Promise");var t=this;return new e(function(e,r){var n,i=!1;t.subscribe(function(e){n=e,i=!0},r,function(){i&&e(n)})})};var Rt=function(e){function t(t){this.source=t,e.call(this)}function r(e){this.o=e,this.a=[],this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e))},r.prototype.onNext=function(e){this.isStopped||this.a.push(e)},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onNext(this.a),this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.toArray=function(){return new Rt(this)},xt.create=xt.createWithDisposable=function(e,t){return new fr(e,t)};var Lt=(xt.defer=function(e){return new fr(function(t){var r;try{r=e()}catch(e){return Yt(e).subscribe(t)}return X(r)&&(r=At(r)),r.subscribe(t)})},function(e){function t(t){this.scheduler=t,e.call(this)}function r(e,t){this.observer=e,this.parent=t}function n(e,t){t.onCompleted()}return De(t,e),t.prototype.subscribeCore=function(e){return new r(e,this).run()},r.prototype.run=function(){return this.parent.scheduler.scheduleWithState(this.observer,n)},t}(wt)),Nt=xt.empty=function(e){return tt(e)||(e=it),new Lt(e)},It=function(e){function t(t,r,n){this.iterable=t,this.mapper=r,this.scheduler=n,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return new Dt(e,this).run()},t}(wt),Dt=function(){function e(e,t){this.observer=e,this.parent=t}return e.prototype.run=function(){var e=function(e){var t=e[ae];if(!t&&"string"==typeof e)return new _(e)[ae]();if(!t&&e.length!==i)return new w(e)[ae]();if(!t)throw new TypeError("Object is not iterable");return e[ae]()}(Object(this.parent.iterable)),t=this.observer,r=this.parent.mapper;return this.parent.scheduler.scheduleRecursiveWithState(0,function(n,i){try{var o=e.next()}catch(e){return t.onError(e)}if(o.done)return t.onCompleted();var a=o.value;if(r)try{a=r(a,n)}catch(e){return t.onError(e)}t.onNext(a),i(n+1)})},e}(),kt=Math.pow(2,53)-1;_.prototype[ae]=function(){return new x(this._s)},x.prototype[ae]=function(){return this},x.prototype.next=function(){return this._i<this._l?{done:!1,value:this._s.charAt(this._i++)}:se},w.prototype[ae]=function(){return new S(this._a)},S.prototype[ae]=function(){return this},S.prototype.next=function(){return this._i<this._l?{done:!1,value:this._a[this._i++]}:se};var Bt=xt.from=function(e,t,r,n){if(null==e)throw new Error("iterable cannot be null.");if(t&&!Y(t))throw new Error("mapFn when provided must be a function");if(t)var i=he(t,r,2);return tt(n)||(n=ot),new It(e,i,n)},Ft=function(e){function t(t,r){this.args=t,this.scheduler=r,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return new M(e,this).run()},t}(wt);M.prototype.run=function(){var e=this.observer,t=this.parent.args,r=t.length;return this.parent.scheduler.scheduleRecursiveWithState(0,function(n,i){r>n?(e.onNext(t[n]),i(n+1)):e.onCompleted()})};var Ut=xt.fromArray=function(e,t){return tt(t)||(t=ot),new Ft(e,t)};xt.generate=function(e,t,r,n,i){return tt(i)||(i=ot),new fr(function(o){var a=!0;return i.scheduleRecursiveWithState(e,function(e,i){var s,c;try{a?a=!1:e=r(e),(s=t(e))&&(c=n(e))}catch(e){return o.onError(e)}s?(o.onNext(c),i(e)):o.onCompleted()})})};var $t=function(e){function t(){e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return qe},t}(wt),zt=xt.never=function(){return new $t};xt.of=function(){for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];return new Ft(t,ot)},xt.ofWithScheduler=function(e){for(var t=arguments.length,r=new Array(t-1),n=1;t>n;n++)r[n-1]=arguments[n];return new Ft(r,e)};var Gt=function(e){function t(t,r){this.obj=t,this.keys=Object.keys(t),this.scheduler=r,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return new C(e,this).run()},t}(wt);C.prototype.run=function(){var e=this.observer,t=this.parent.obj,r=this.parent.keys,n=r.length;return this.parent.scheduler.scheduleRecursiveWithState(0,function(i,o){if(n>i){var a=r[i];e.onNext([a,t[a]]),o(i+1)}else e.onCompleted()})},xt.pairs=function(e,t){return t||(t=ot),new Gt(e,t)};var Vt=function(e){function t(t,r,n){this.start=t,this.rangeCount=r,this.scheduler=n,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return new Ht(e,this).run()},t}(wt),Ht=function(){function e(e,t){this.observer=e,this.parent=t}return e.prototype.run=function(){var e=this.parent.start,t=this.parent.rangeCount,r=this.observer;return this.parent.scheduler.scheduleRecursiveWithState(0,function(n,i){t>n?(r.onNext(e+n),i(n+1)):r.onCompleted()})},e}();xt.range=function(e,t,r){return tt(r)||(r=ot),new Vt(e,t,r)};var qt=function(e){function t(t,r,n){this.value=t,this.repeatCount=null==r?-1:r,this.scheduler=n,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return new T(e,this).run()},t}(wt);T.prototype.run=function(){var e=this.observer,t=this.parent.value;return this.parent.scheduler.scheduleRecursiveWithState(this.parent.repeatCount,function(r,n){return(-1===r||r>0)&&(e.onNext(t),r>0&&r--),0===r?e.onCompleted():void n(r)})},xt.repeat=function(e,t,r){return tt(r)||(r=ot),new qt(e,t,r)};var Wt=function(e){function t(t,r){this.value=t,this.scheduler=r,e.call(this)}function r(e,t){this.observer=e,this.parent=t}function n(e,t){var r=t[0],n=t[1];n.onNext(r),n.onCompleted()}return De(t,e),t.prototype.subscribeCore=function(e){return new r(e,this).run()},r.prototype.run=function(){return this.parent.scheduler.scheduleWithState([this.parent.value,this.observer],n)},t}(wt),Xt=(xt.return=xt.just=xt.returnValue=function(e,t){return tt(t)||(t=it),new Wt(e,t)},function(e){function t(t,r){this.error=t,this.scheduler=r,e.call(this)}function r(e,t){this.o=e,this.p=t}function n(e,t){var r=t[0];t[1].onError(r)}return De(t,e),t.prototype.subscribeCore=function(e){return new r(e,this).run()},r.prototype.run=function(){return this.p.scheduler.scheduleWithState([this.p.error,this.o],n)},t}(wt)),Yt=xt.throw=xt.throwError=xt.throwException=function(e,t){return tt(t)||(t=it),new Xt(e,t)};xt.using=function(e,t){return new fr(function(r){var n,i,o=qe;try{(n=e())&&(o=n),i=t(n)}catch(e){return new ze(Yt(e).subscribe(r),o)}return new ze(i.subscribe(r),o)})},vt.amb=function(e){var t=this;return new fr(function(r){function n(){o||(o=a,u.dispose())}function i(){o||(o=s,c.dispose())}var o,a="L",s="R",c=new Ye,u=new Ye;return X(e)&&(e=At(e)),c.setDisposable(t.subscribe(function(e){n(),o===a&&r.onNext(e)},function(e){n(),o===a&&r.onError(e)},function(){n(),o===a&&r.onCompleted()})),u.setDisposable(e.subscribe(function(e){i(),o===s&&r.onNext(e)},function(e){i(),o===s&&r.onError(e)},function(){i(),o===s&&r.onCompleted()})),new ze(c,u)})},xt.amb=function(){function e(e,t){return e.amb(t)}var t=zt(),r=[];if(Array.isArray(arguments[0]))r=arguments[0];else for(var n=0,i=arguments.length;i>n;n++)r.push(arguments[n]);for(var n=0,i=r.length;i>n;n++)t=e(t,r[n]);return t},vt.catch=vt.catchError=vt.catchException=function(e){return"function"==typeof e?function(e,t){return new fr(function(r){var n=new Ye,i=new Ke;return i.setDisposable(n),n.setDisposable(e.subscribe(function(e){r.onNext(e)},function(e){try{var n=t(e)}catch(e){return r.onError(e)}X(n)&&(n=At(n));var o=new Ye;i.setDisposable(o),o.setDisposable(n.subscribe(r))},function(e){r.onCompleted(e)})),i},e)}(this,e):Kt([this,e])};var Kt=xt.catchError=xt.catch=xt.catchException=function(){var e=[];if(Array.isArray(arguments[0]))e=arguments[0];else for(var t=0,r=arguments.length;r>t;t++)e.push(arguments[t]);return Pt(e).catchError()};vt.combineLatest=function(){for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];return Array.isArray(t[0])?t[0].unshift(this):t.unshift(this),Zt.apply(this,t)};var Zt=xt.combineLatest=function(){for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];var n=t.pop();return Array.isArray(t[0])&&(t=t[0]),new fr(function(e){function r(t){if(s[t]=!0,c||(c=s.every(G))){try{var r=n.apply(null,h)}catch(t){return e.onError(t)}e.onNext(r)}else u.filter(function(e,r){return r!==t}).every(G)&&e.onCompleted()}function i(t){u[t]=!0,u.every(G)&&e.onCompleted()}for(var o=t.length,a=function(){return!1},s=f(o,a),c=!1,u=f(o,a),h=new Array(o),l=new Array(o),p=0;o>p;p++)!function(n){var o=t[n],a=new Ye;X(o)&&(o=At(o)),a.setDisposable(o.subscribe(function(e){h[n]=e,r(n)},function(t){e.onError(t)},function(){i(n)})),l[n]=a}(p);return new ze(l)},this)};vt.concat=function(){for(var e=[],t=0,r=arguments.length;r>t;t++)e.push(arguments[t]);return e.unshift(this),Qt.apply(null,e)};var Jt=function(e){function t(t){this.sources=t,e.call(this)}function r(e,t){this.sources=e,this.o=t}return De(t,e),t.prototype.subscribeCore=function(e){return new r(this.sources,e).run()},r.prototype.run=function(){var e,t=new Ke,r=this.sources,n=r.length,i=this.o,o=it.scheduleRecursiveWithState(0,function(o,a){if(!e){if(o===n)return i.onCompleted();var s=r[o];X(s)&&(s=At(s));var c=new Ye;t.setDisposable(c),c.setDisposable(s.subscribe(function(e){i.onNext(e)},function(e){i.onError(e)},function(){a(o+1)}))}});return new ze(t,o,He(function(){e=!0}))},t}(wt),Qt=xt.concat=function(){var e;if(Array.isArray(arguments[0]))e=arguments[0];else{e=new Array(arguments.length);for(var t=0,r=arguments.length;r>t;t++)e[t]=arguments[t]}return new Jt(e)};vt.concatAll=vt.concatObservable=function(){return this.merge(1)};var er=function(e){function t(t,r){this.source=t,this.maxConcurrent=r,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){var t=new ze;return t.add(this.source.subscribe(new tr(e,this.maxConcurrent,t))),t},t}(wt),tr=function(){function e(e,t,r){this.o=e,this.max=t,this.g=r,this.done=!1,this.q=[],this.activeCount=0,this.isStopped=!1}function t(e,t){this.parent=e,this.sad=t,this.isStopped=!1}return e.prototype.handleSubscribe=function(e){var r=new Ye;this.g.add(r),X(e)&&(e=At(e)),r.setDisposable(e.subscribe(new t(this,r)))},e.prototype.onNext=function(e){this.isStopped||(this.activeCount<this.max?(this.activeCount++,this.handleSubscribe(e)):this.q.push(e))},e.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},e.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.done=!0,0===this.activeCount&&this.o.onCompleted())},e.prototype.dispose=function(){this.isStopped=!0},e.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t.prototype.onNext=function(e){this.isStopped||this.parent.o.onNext(e)},t.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.parent.o.onError(e))},t.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=!0;var e=this.parent;e.g.remove(this.sad),e.q.length>0?e.handleSubscribe(e.q.shift()):(e.activeCount--,e.done&&0===e.activeCount&&e.o.onCompleted())}},t.prototype.dispose=function(){this.isStopped=!0},t.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.parent.o.onError(e),!0)},e}();vt.merge=function(e){return"number"!=typeof e?rr(this,e):new er(this,e)};var rr=xt.merge=function(){var e,t,r=[],n=arguments.length;if(arguments[0])if(tt(arguments[0]))for(e=arguments[0],t=1;n>t;t++)r.push(arguments[t]);else for(e=it,t=0;n>t;t++)r.push(arguments[t]);else for(e=it,t=1;n>t;t++)r.push(arguments[t]);return Array.isArray(r[0])&&(r=r[0]),E(e,r).mergeAll()},nr=$.CompositeError=function(e){this.name="NotImplementedError",this.innerErrors=e,this.message="This contains multiple errors. Check the innerErrors",Error.call(this)};nr.prototype=Error.prototype,xt.mergeDelayError=function(){var e;if(Array.isArray(arguments[0]))e=arguments[0];else{var t=arguments.length;e=new Array(t);for(var r=0;t>r;r++)e[r]=arguments[r]}var n=E(null,e);return new fr(function(e){function t(){0===a.length?e.onCompleted():1===a.length?e.onError(a[0]):e.onError(new nr(a))}var r=new ze,i=new Ye,o=!1,a=[];return r.add(i),i.setDisposable(n.subscribe(function(n){var i=new Ye;r.add(i),X(n)&&(n=At(n)),i.setDisposable(n.subscribe(function(t){e.onNext(t)},function(e){a.push(e),r.remove(i),o&&1===r.length&&t()},function(){r.remove(i),o&&1===r.length&&t()}))},function(e){a.push(e),o=!0,1===r.length&&t()},function(){o=!0,1===r.length&&t()})),r})};var ir=function(e){function t(t){this.source=t,e.call(this)}function r(e,t){this.o=e,this.g=t,this.isStopped=!1,this.done=!1}function n(e,t,r){this.parent=e,this.g=t,this.sad=r,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){var t=new ze,n=new Ye;return t.add(n),n.setDisposable(this.source.subscribe(new r(e,t))),t},r.prototype.onNext=function(e){if(!this.isStopped){var t=new Ye;this.g.add(t),X(e)&&(e=At(e)),t.setDisposable(e.subscribe(new n(this,this.g,t)))}},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.done=!0,1===this.g.length&&this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},n.prototype.onNext=function(e){this.isStopped||this.parent.o.onNext(e)},n.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.parent.o.onError(e))},n.prototype.onCompleted=function(){if(!this.isStopped){var e=this.parent;this.isStopped=!0,e.g.remove(this.sad),e.done&&1===e.g.length&&e.o.onCompleted()}},n.prototype.dispose=function(){this.isStopped=!0},n.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.parent.o.onError(e),!0)},t}(wt);vt.mergeAll=vt.mergeObservable=function(){return new ir(this)},vt.onErrorResumeNext=function(e){if(!e)throw new Error("Second observable is required");return or([this,e])};var or=xt.onErrorResumeNext=function(){var e=[];if(Array.isArray(arguments[0]))e=arguments[0];else for(var t=0,r=arguments.length;r>t;t++)e.push(arguments[t]);return new fr(function(t){var r=0,n=new Ke,i=it.scheduleRecursive(function(i){var o,a;r<e.length?(o=e[r++],X(o)&&(o=At(o)),a=new Ye,n.setDisposable(a),a.setDisposable(o.subscribe(t.onNext.bind(t),i,i))):t.onCompleted()});return new ze(n,i)})};vt.skipUntil=function(e){var t=this;return new fr(function(r){var n=!1,i=new ze(t.subscribe(function(e){n&&r.onNext(e)},function(e){r.onError(e)},function(){n&&r.onCompleted()}));X(e)&&(e=At(e));var o=new Ye;return i.add(o),o.setDisposable(e.subscribe(function(){n=!0,o.dispose()},function(e){r.onError(e)},function(){o.dispose()})),i},t)};var ar=function(e){function t(t){this.source=t,e.call(this)}function r(e,t){this.o=e,this.inner=t,this.stopped=!1,this.latest=0,this.hasLatest=!1,this.isStopped=!1}function n(e,t){this.parent=e,this.id=t,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){var t=new Ke,n=this.source.subscribe(new r(e,t));return new ze(n,t)},r.prototype.onNext=function(e){if(!this.isStopped){var t=new Ye,r=++this.latest;this.hasLatest=!0,this.inner.setDisposable(t),X(e)&&(e=At(e)),t.setDisposable(e.subscribe(new n(this,r)))}},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.stopped=!0,!this.hasLatest&&this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},n.prototype.onNext=function(e){this.isStopped||this.parent.latest===this.id&&this.parent.o.onNext(e)},n.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.parent.latest===this.id&&this.parent.o.onError(e))},n.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.parent.latest===this.id&&(this.parent.hasLatest=!1,this.parent.isStopped&&this.parent.o.onCompleted()))},n.prototype.dispose=function(){this.isStopped=!0},n.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.parent.o.onError(e),!0)},t}(wt);vt.switch=vt.switchLatest=function(){return new ar(this)};var sr=function(e){function t(t,r){this.source=t,this.other=X(r)?At(r):r,e.call(this)}function r(e){this.o=e,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return new ze(this.source.subscribe(e),this.other.subscribe(new r(e)))},r.prototype.onNext=function(e){this.isStopped||this.o.onCompleted()},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){!this.isStopped&&(this.isStopped=!0)},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.takeUntil=function(e){return new sr(this,e)},vt.withLatestFrom=function(){for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];var n=t.pop(),i=this;return Array.isArray(t[0])&&(t=t[0]),new fr(function(e){for(var r=t.length,o=f(r,O),a=!1,s=new Array(r),c=new Array(r+1),u=0;r>u;u++)!function(r){var n=t[r],i=new Ye;X(n)&&(n=At(n)),i.setDisposable(n.subscribe(function(e){s[r]=e,o[r]=!0,a=o.every(G)},function(t){e.onError(t)},z)),c[r]=i}(u);var h=new Ye;return h.setDisposable(i.subscribe(function(t){var r=[t].concat(s);if(a){var i=m(n).apply(null,r);return i===Fe?e.onError(i.e):void e.onNext(i)}},function(t){e.onError(t)},function(){e.onCompleted()})),c[r]=h,new ze(c)},this)},vt.zip=function(){if(Array.isArray(arguments[0]))return function(e,t){var r=this;return new fr(function(n){var i=0,o=e.length;return r.subscribe(function(r){if(o>i){var a=e[i++],s=m(t)(r,a);if(s===Fe)return n.onError(s.e);n.onNext(s)}else n.onCompleted()},function(e){n.onError(e)},function(){n.onCompleted()})},r)}.apply(this,arguments);for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];var n=this,i=t.pop();return t.unshift(n),new fr(function(e){for(var r=t.length,o=f(r,P),a=f(r,O),s=new Array(r),c=0;r>c;c++)!function(r){var c=t[r],u=new Ye;X(c)&&(c=At(c)),u.setDisposable(c.subscribe(function(t){if(o[r].push(t),o.every(function(e){return e.length>0})){var s=o.map(function(e){return e.shift()}),c=m(i).apply(n,s);if(c===Fe)return e.onError(c.e);e.onNext(c)}else a.filter(function(e,t){return t!==r}).every(G)&&e.onCompleted()},function(t){e.onError(t)},function(){a[r]=!0,a.every(G)&&e.onCompleted()})),s[r]=u}(c);return new ze(s)},n)},xt.zip=function(){for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];var n=t.shift();return n.zip.apply(n,t)},xt.zipArray=function(){var e;if(Array.isArray(arguments[0]))e=arguments[0];else{var t=arguments.length;e=new Array(t);for(var r=0;t>r;r++)e[r]=arguments[r]}return new fr(function(t){for(var r=e.length,n=f(r,j),i=f(r,O),o=new Array(r),a=0;r>a;a++)!function(r){o[r]=new Ye,o[r].setDisposable(e[r].subscribe(function(e){if(n[r].push(e),n.every(function(e){return e.length>0})){var o=n.map(function(e){return e.shift()});t.onNext(o)}else if(i.filter(function(e,t){return t!==r}).every(G))return t.onCompleted()},function(e){t.onError(e)},function(){i[r]=!0,i.every(G)&&t.onCompleted()}))}(a);return new ze(o)})},vt.asObservable=function(){var e=this;return new fr(function(t){return e.subscribe(t)},e)},vt.bufferWithCount=function(e,t){return"number"!=typeof t&&(t=e),this.windowWithCount(e,t).selectMany(function(e){return e.toArray()}).where(function(e){return e.length>0})},vt.dematerialize=function(){var e=this;return new fr(function(t){return e.subscribe(function(e){return e.accept(t)},function(e){t.onError(e)},function(){t.onCompleted()})},this)},vt.distinctUntilChanged=function(e,t){var r=this;return t||(t=H),new fr(function(n){var i,o=!1;return r.subscribe(function(r){var a=r;if(e&&(a=m(e)(r))===Fe)return n.onError(a.e);if(o){var s=m(t)(i,a);if(s===Fe)return n.onError(s.e)}o&&s||(o=!0,i=a,n.onNext(r))},function(e){n.onError(e)},function(){n.onCompleted()})},this)};var cr=function(e){function t(t,r,n,i){this.source=t,this.t=!r||Y(r)?mt(r||z,n||z,i||z):r,e.call(this)}function r(e,t){this.o=e,this.t=t,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e,this.t))},r.prototype.onNext=function(e){if(!this.isStopped){var t=m(this.t.onNext).call(this.t,e);t===Fe&&this.o.onError(t.e),this.o.onNext(e)}},r.prototype.onError=function(e){if(!this.isStopped){this.isStopped=!0;var t=m(this.t.onError).call(this.t,e);if(t===Fe)return this.o.onError(t.e);this.o.onError(e)}},r.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=!0;var e=m(this.t.onCompleted).call(this.t);if(e===Fe)return this.o.onError(e.e);this.o.onCompleted()}},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.do=vt.tap=vt.doAction=function(e,t,r){return new cr(this,e,t,r)},vt.doOnNext=vt.tapOnNext=function(e,t){return this.tap(void 0!==t?function(r){e.call(t,r)}:e)},vt.doOnError=vt.tapOnError=function(e,t){return this.tap(z,void 0!==t?function(r){e.call(t,r)}:e)},vt.doOnCompleted=vt.tapOnCompleted=function(e,t){return this.tap(z,null,void 0!==t?function(){e.call(t)}:e)},vt.finally=vt.ensure=function(e){var t=this;return new fr(function(r){var n;try{n=t.subscribe(r)}catch(t){throw e(),t}return He(function(){try{n.dispose()}catch(e){throw e}finally{e()}})},this)},vt.finallyAction=function(e){return this.ensure(e)};var ur=function(e){function t(t){this.source=t,e.call(this)}function r(e){this.o=e,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e))},r.prototype.onNext=z,r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.observer.onError(e),!0)},t}(wt);vt.ignoreElements=function(){return new ur(this)},vt.materialize=function(){var e=this;return new fr(function(t){return e.subscribe(function(e){t.onNext(lt(e))},function(e){t.onNext(pt(e)),t.onCompleted()},function(){t.onNext(dt()),t.onCompleted()})},e)},vt.repeat=function(e){return Tt(this,e).concat()},vt.retry=function(e){return Tt(this,e).catchError()},vt.retryWhen=function(e){return Tt(this).catchErrorWhen(e)};var hr=function(e){function t(t,r,n,i){this.source=t,this.accumulator=r,this.hasSeed=n,this.seed=i,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new A(e,this))},t}(wt);A.prototype.onNext=function(e){if(!this.isStopped){!this.hasValue&&(this.hasValue=!0);try{this.hasAccumulation?this.accumulation=this.accumulator(this.accumulation,e):(this.accumulation=this.hasSeed?this.accumulator(this.seed,e):e,this.hasAccumulation=!0)}catch(e){return this.observer.onError(e)}this.observer.onNext(this.accumulation)}},A.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.observer.onError(e))},A.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,!this.hasValue&&this.hasSeed&&this.observer.onNext(this.seed),this.observer.onCompleted())},A.prototype.dispose=function(){this.isStopped=!0},A.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.observer.onError(e),!0)},vt.scan=function(){var e,t,r=!1;return 2===arguments.length?(r=!0,e=arguments[0],t=arguments[1]):t=arguments[0],new hr(this,t,r,e)},vt.skipLast=function(e){if(0>e)throw new te;var t=this;return new fr(function(r){var n=[];return t.subscribe(function(t){n.push(t),n.length>e&&r.onNext(n.shift())},function(e){r.onError(e)},function(){r.onCompleted()})},t)},vt.startWith=function(){var e,t=0;arguments.length&&tt(arguments[0])?(e=arguments[0],t=1):e=it;for(var r=[],n=t,i=arguments.length;i>n;n++)r.push(arguments[n]);return Pt([Ut(r,e),this]).concat()},vt.takeLast=function(e){if(0>e)throw new te;var t=this;return new fr(function(r){var n=[];return t.subscribe(function(t){n.push(t),n.length>e&&n.shift()},function(e){r.onError(e)},function(){for(;n.length>0;)r.onNext(n.shift());r.onCompleted()})},t)},vt.takeLastBuffer=function(e){var t=this;return new fr(function(r){var n=[];return t.subscribe(function(t){n.push(t),n.length>e&&n.shift()},function(e){r.onError(e)},function(){r.onNext(n),r.onCompleted()})},t)},vt.windowWithCount=function(e,t){var r=this;if(+e||(e=0),Math.abs(e)===1/0&&(e=0),0>=e)throw new te;if(null==t&&(t=e),+t||(t=0),Math.abs(t)===1/0&&(t=0),0>=t)throw new te;return new fr(function(n){function i(){var e=new gr;c.push(e),n.onNext(Be(e,a))}var o=new Ye,a=new Ze(o),s=0,c=[];return i(),o.setDisposable(r.subscribe(function(r){for(var n=0,o=c.length;o>n;n++)c[n].onNext(r);var a=s-e+1;a>=0&&a%t==0&&c.shift().onCompleted(),++s%t==0&&i()},function(e){for(;c.length>0;)c.shift().onError(e);n.onError(e)},function(){for(;c.length>0;)c.shift().onCompleted();n.onCompleted()})),a},r)},vt.selectConcat=vt.concatMap=function(e,t,r){return Y(e)&&Y(t)?this.concatMap(function(r,n){var i=e(r,n);return X(i)&&(i=At(i)),(ue(i)||ce(i))&&(i=Bt(i)),i.map(function(e,i){return t(r,e,n,i)})}):Y(e)?R(this,e,r):R(this,function(){return e})},vt.concatMapObserver=vt.selectConcatObserver=function(e,t,r,n){var i=this,o=he(e,n,2),a=he(t,n,1),s=he(r,n,0);return new fr(function(e){var t=0;return i.subscribe(function(r){var n;try{n=o(r,t++)}catch(t){return void e.onError(t)}X(n)&&(n=At(n)),e.onNext(n)},function(t){var r;try{r=a(t)}catch(t){return void e.onError(t)}X(r)&&(r=At(r)),e.onNext(r),e.onCompleted()},function(){var t;try{t=s()}catch(t){return void e.onError(t)}X(t)&&(t=At(t)),e.onNext(t),e.onCompleted()})},this).concatAll()},vt.defaultIfEmpty=function(e){var t=this;return e===i&&(e=null),new fr(function(r){var n=!1;return t.subscribe(function(e){n=!0,r.onNext(e)},function(e){r.onError(e)},function(){!n&&r.onNext(e),r.onCompleted()})},t)},L.prototype.push=function(e){var t=-1===function(e,t,r){for(var n=0,i=e.length;i>n;n++)if(r(e[n],t))return n;return-1}(this.set,e,this.comparer);return t&&this.set.push(e),t},vt.distinct=function(e,t){var r=this;return t||(t=H),new fr(function(n){var i=new L(t);return r.subscribe(function(t){var r=t;if(e)try{r=e(t)}catch(e){return void n.onError(e)}i.push(r)&&n.onNext(t)},function(e){n.onError(e)},function(){n.onCompleted()})},this)};var lr=function(e){function t(t,r,n){this.source=t,this.selector=he(r,n,3),e.call(this)}function r(e,t,r){this.o=e,this.selector=t,this.source=r,this.i=0,this.isStopped=!1}return De(t,e),t.prototype.internalMap=function(e,r){return new t(this.source,function(e,t){return function(r,n,i){return e.call(this,t.selector(r,n,i),n,i)}}(e,this),r)},t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e,this.selector,this))},r.prototype.onNext=function(e){if(!this.isStopped){var t=m(this.selector)(e,this.i++,this.source);return t===Fe?this.o.onError(t.e):void this.o.onNext(t)}},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.map=vt.select=function(e,t){var r="function"==typeof e?e:function(){return e};return this instanceof lr?this.internalMap(r,t):new lr(this,r,t)},vt.pluck=function(){var e=arguments,t=arguments.length;if(0===t)throw new Error("List of properties cannot be empty.");return this.map(function(r){for(var n=r,o=0;t>o;o++){var a=n[e[o]];if(void 0===a)return i;n=a}return n})},vt.flatMapObserver=vt.selectManyObserver=function(e,t,r,n){var i=this;return new fr(function(o){var a=0;return i.subscribe(function(t){var r;try{r=e.call(n,t,a++)}catch(e){return void o.onError(e)}X(r)&&(r=At(r)),o.onNext(r)},function(e){var r;try{r=t.call(n,e)}catch(e){return void o.onError(e)}X(r)&&(r=At(r)),o.onNext(r),o.onCompleted()},function(){var e;try{e=r.call(n)}catch(e){return void o.onError(e)}X(e)&&(e=At(e)),o.onNext(e),o.onCompleted()})},i).mergeAll()},vt.selectMany=vt.flatMap=function(e,t,r){return Y(e)&&Y(t)?this.flatMap(function(r,n){var i=e(r,n);return X(i)&&(i=At(i)),(ue(i)||ce(i))&&(i=Bt(i)),i.map(function(e,i){return t(r,e,n,i)})},r):Y(e)?N(this,e,r):N(this,function(){return e})},vt.selectSwitch=vt.flatMapLatest=vt.switchMap=function(e,t){return this.select(e,t).switchLatest()};var pr=function(e){function t(t,r){this.source=t,this.skipCount=r,e.call(this)}function r(e,t){this.c=t,this.r=t,this.o=e,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e,this.skipCount))},r.prototype.onNext=function(e){this.isStopped||(this.r<=0?this.o.onNext(e):this.r--)},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.skip=function(e){if(0>e)throw new te;return new pr(this,e)},vt.skipWhile=function(e,t){var r=this,n=he(e,t,3);return new fr(function(e){var t=0,i=!1;return r.subscribe(function(o){if(!i)try{i=!n(o,t++,r)}catch(t){return void e.onError(t)}i&&e.onNext(o)},function(t){e.onError(t)},function(){e.onCompleted()})},r)},vt.take=function(e,t){if(0>e)throw new te;if(0===e)return Nt(t);var r=this;return new fr(function(t){var n=e;return r.subscribe(function(e){n-- >0&&(t.onNext(e),0>=n&&t.onCompleted())},function(e){t.onError(e)},function(){t.onCompleted()})},r)},vt.takeWhile=function(e,t){var r=this,n=he(e,t,3);return new fr(function(e){var t=0,i=!0;return r.subscribe(function(o){if(i){try{i=n(o,t++,r)}catch(t){return void e.onError(t)}i?e.onNext(o):e.onCompleted()}},function(t){e.onError(t)},function(){e.onCompleted()})},r)};var dr=function(e){function t(t,r,n){this.source=t,this.predicate=he(r,n,3),e.call(this)}function r(e,t,r){this.o=e,this.predicate=t,this.source=r,this.i=0,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e,this.predicate,this))},t.prototype.internalFilter=function(e,r){return new t(this.source,function(e,t){return function(r,n,i){return t.predicate(r,n,i)&&e.call(this,r,n,i)}}(e,this),r)},r.prototype.onNext=function(e){if(!this.isStopped){var t=m(this.predicate)(e,this.i++,this.source);return t===Fe?this.o.onError(t.e):void(t&&this.o.onNext(e))}},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.filter=vt.where=function(e,t){return this instanceof dr?this.internalFilter(e,t):new dr(this,e,t)},vt.transduce=function(e){var t=this;return new fr(function(r){var n=e(function(e){return{"@@transducer/init":function(){return e},"@@transducer/step":function(e,t){return e.onNext(t)},"@@transducer/result":function(e){return e.onCompleted()}}}(r));return t.subscribe(function(e){try{n["@@transducer/step"](r,e)}catch(e){r.onError(e)}},function(e){r.onError(e)},function(){n["@@transducer/result"](r)})},t)};var fr=$.AnonymousObservable=function(e){function t(e,t){var r=t[0],n=m(t[1])(r);return n!==Fe||r.fail(Fe.e)?void r.setDisposable(function(e){return e&&Y(e.dispose)?e:Y(e)?He(e):qe}(n)):v(Fe.e)}function r(r,n){this.source=n,e.call(this,function(e){var n=new mr(e),i=[n,r];return ot.scheduleRequired()?ot.scheduleWithState(i,t):t(0,i),n})}return De(r,e),r}(xt),mr=function(e){function t(t){e.call(this),this.observer=t,this.m=new Ye}De(t,e);var r=t.prototype;return r.next=function(e){var t=m(this.observer.onNext).call(this.observer,e);t===Fe&&(this.dispose(),v(t.e))},r.error=function(e){var t=m(this.observer.onError).call(this.observer,e);this.dispose(),t===Fe&&v(t.e)},r.completed=function(){var e=m(this.observer.onCompleted).call(this.observer);this.dispose(),e===Fe&&v(e.e)},r.setDisposable=function(e){this.m.setDisposable(e)},r.getDisposable=function(){return this.m.getDisposable()},r.dispose=function(){e.prototype.dispose.call(this),this.m.dispose()},t}(gt),vr=function(e,t){this.subject=e,this.observer=t};vr.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var e=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(e,1),this.observer=null}};var gr=$.Subject=function(e){function t(e){return Xe(this),this.isStopped?this.hasError?(e.onError(this.error),qe):(e.onCompleted(),qe):(this.observers.push(e),new vr(this,e))}function r(){e.call(this,t),this.isDisposed=!1,this.isStopped=!1,this.observers=[],this.hasError=!1}return De(r,e),ke(r.prototype,ft.prototype,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(Xe(this),!this.isStopped){this.isStopped=!0;for(var e=0,t=o(this.observers),r=t.length;r>e;e++)t[e].onCompleted();this.observers.length=0}},onError:function(e){if(Xe(this),!this.isStopped){this.isStopped=!0,this.error=e,this.hasError=!0;for(var t=0,r=o(this.observers),n=r.length;n>t;t++)r[t].onError(e);this.observers.length=0}},onNext:function(e){if(Xe(this),!this.isStopped)for(var t=0,r=o(this.observers),n=r.length;n>t;t++)r[t].onNext(e)},dispose:function(){this.isDisposed=!0,this.observers=null}}),r.create=function(e,t){return new yr(e,t)},r}(xt),yr=($.AsyncSubject=function(e){function t(e){return Xe(this),this.isStopped?(this.hasError?e.onError(this.error):this.hasValue?(e.onNext(this.value),e.onCompleted()):e.onCompleted(),qe):(this.observers.push(e),new vr(this,e))}function r(){e.call(this,t),this.isDisposed=!1,this.isStopped=!1,this.hasValue=!1,this.observers=[],this.hasError=!1}return De(r,e),ke(r.prototype,ft,{hasObservers:function(){return Xe(this),this.observers.length>0},onCompleted:function(){var e;if(Xe(this),!this.isStopped){this.isStopped=!0;var t=o(this.observers),r=t.length;if(this.hasValue)for(e=0;r>e;e++){var n=t[e];n.onNext(this.value),n.onCompleted()}else for(e=0;r>e;e++)t[e].onCompleted();this.observers.length=0}},onError:function(e){if(Xe(this),!this.isStopped){this.isStopped=!0,this.hasError=!0,this.error=e;for(var t=0,r=o(this.observers),n=r.length;n>t;t++)r[t].onError(e);this.observers.length=0}},onNext:function(e){Xe(this),this.isStopped||(this.value=e,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),r}(xt),$.AnonymousSubject=function(e){function t(e){return this.observable.subscribe(e)}function r(r,n){this.observer=r,this.observable=n,e.call(this,t)}return De(r,e),ke(r.prototype,ft.prototype,{onCompleted:function(){this.observer.onCompleted()},onError:function(e){this.observer.onError(e)},onNext:function(e){this.observer.onNext(e)}}),r}(xt));k&&B?F?(B.exports=$).Rx=$:k.Rx=$:D.Rx=$;var br=c()}).call(this)}).call(this,e(150),void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{150:150}]},{},[1])(1)})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],16:[function(e,t,r){(function(r){var n,i=void 0!==r?r:"undefined"!=typeof window?window:{},o=e("min-document");"undefined"!=typeof document?n=document:(n=i["__GLOBAL_DOCUMENT_CACHE@4"])||(n=i["__GLOBAL_DOCUMENT_CACHE@4"]=o),t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"min-document":4}],17:[function(e,t,r){r.read=function(e,t,r,n,i){var o,a,s=8*i-n-1,c=(1<<s)-1,u=c>>1,h=-7,l=r?i-1:0,p=r?-1:1,d=e[t+l];for(l+=p,o=d&(1<<-h)-1,d>>=-h,h+=s;h>0;o=256*o+e[t+l],l+=p,h-=8);for(a=o&(1<<-h)-1,o>>=-h,h+=n;h>0;a=256*a+e[t+l],l+=p,h-=8);if(0===o)o=1-u;else{if(o===c)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),o-=u}return(d?-1:1)*a*Math.pow(2,o-n)},r.write=function(e,t,r,n,i,o){var a,s,c,u=8*o-i-1,h=(1<<u)-1,l=h>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,f=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=h):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+l>=1?p/c:p*Math.pow(2,1-l))*c>=2&&(a++,c/=2),a+l>=h?(s=0,a=h):a+l>=1?(s=(t*c-1)*Math.pow(2,i),a+=l):(s=t*Math.pow(2,l-1)*Math.pow(2,i),a=0));i>=8;e[r+d]=255&s,d+=f,s/=256,i-=8);for(a=a<<i|s,u+=i;u>0;e[r+d]=255&a,d+=f,a/=256,u-=8);e[r+d-f]|=128*m}},{}],18:[function(e,t,r){(function(e){"use strict";var r="undefined"!=typeof window?window:void 0!==e?e:{};t.exports=function(e,t){return e in r?r[e]:(r[e]=t,t)}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],19:[function(e,t,r){"use strict";var n=e("./index.js");t.exports=function(e,t,r){var i="__INDIVIDUAL_ONE_VERSION_"+e,o=n(i+"_ENFORCE_SINGLETON",t);if(o!==t)throw new Error("Can only have one copy of "+e+".\nYou already have version "+o+" installed.\nThis means you cannot install version "+t);return n(i,r)}},{"./index.js":18}],20:[function(e,t,r){"use strict";t.exports=function(e){return"object"==typeof e&&null!==e}},{}],21:[function(e,t,r){"use strict";var n={};n.base32="0123456789bcdefghjkmnpqrstuvwxyz",n.encode=function(e,t,r){if(void 0===r){for(var i=1;i<=12;i++){var o=n.encode(e,t,i),a=n.decode(o);if(a.lat==e&&a.lon==t)return o}r=12}if(e=Number(e),t=Number(t),r=Number(r),isNaN(e)||isNaN(t)||isNaN(r))throw new Error("Invalid geohash");for(var s=0,c=0,u=!0,h="",l=-90,p=90,d=-180,f=180;h.length<r;){if(u){var m=(d+f)/2;t>=m?(s=2*s+1,d=m):(s*=2,f=m)}else{var v=(l+p)/2;e>=v?(s=2*s+1,l=v):(s*=2,p=v)}u=!u,5==++c&&(h+=n.base32.charAt(s),c=0,s=0)}return h},n.decode=function(e){var t=n.bounds(e),r=t.sw.lat,i=t.sw.lon,o=t.ne.lat,a=t.ne.lon,s=(r+o)/2,c=(i+a)/2;return s=s.toFixed(Math.floor(2-Math.log(o-r)/Math.LN10)),c=c.toFixed(Math.floor(2-Math.log(a-i)/Math.LN10)),{lat:Number(s),lon:Number(c)}},n.bounds=function(e){if(0===e.length)throw new Error("Invalid geohash");e=e.toLowerCase();for(var t=!0,r=-90,i=90,o=-180,a=180,s=0;s<e.length;s++){var c=e.charAt(s),u=n.base32.indexOf(c);if(-1==u)throw new Error("Invalid geohash");for(var h=4;h>=0;h--){var l=u>>h&1;if(t){var p=(o+a)/2;1==l?o=p:a=p}else{var d=(r+i)/2;1==l?r=d:i=d}t=!t}}return{sw:{lat:r,lon:o},ne:{lat:i,lon:a}}},n.adjacent=function(e,t){if(e=e.toLowerCase(),t=t.toLowerCase(),0===e.length)throw new Error("Invalid geohash");if(-1=="nsew".indexOf(t))throw new Error("Invalid direction");var r=e.slice(-1),i=e.slice(0,-1),o=e.length%2;return-1!={n:["prxz","bcfguvyz"],s:["028b","0145hjnp"],e:["bcfguvyz","prxz"],w:["0145hjnp","028b"]}[t][o].indexOf(r)&&""!==i&&(i=n.adjacent(i,t)),i+n.base32.charAt({n:["p0r21436x8zb9dcf5h7kjnmqesgutwvy","bc01fg45238967deuvhjyznpkmstqrwx"],s:["14365h7k9dcfesgujnmqp0r2twvyx8zb","238967debc01fg45kmstqrwxuvhjyznp"],e:["bc01fg45238967deuvhjyznpkmstqrwx","p0r21436x8zb9dcf5h7kjnmqesgutwvy"],w:["238967debc01fg45kmstqrwxuvhjyznp","14365h7k9dcfesgujnmqp0r2twvyx8zb"]}[t][o].indexOf(r))},n.neighbours=function(e){return{n:n.adjacent(e,"n"),ne:n.adjacent(n.adjacent(e,"n"),"e"),e:n.adjacent(e,"e"),se:n.adjacent(n.adjacent(e,"s"),"e"),s:n.adjacent(e,"s"),sw:n.adjacent(n.adjacent(e,"s"),"w"),w:n.adjacent(e,"w"),nw:n.adjacent(n.adjacent(e,"n"),"w")}},void 0!==t&&t.exports&&(t.exports=n)},{}],22:[function(e,t,r){(function(e){function t(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}function n(e,t){if(e.filter)return e.filter(t);for(var r=[],n=0;n<e.length;n++)t(e[n],n,e)&&r.push(e[n]);return r}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,o=function(e){return i.exec(e).slice(1)};r.resolve=function(){for(var r="",i=!1,o=arguments.length-1;o>=-1&&!i;o--){var a=o>=0?arguments[o]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(r=a+"/"+r,i="/"===a.charAt(0))}return r=t(n(r.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+r||"."},r.normalize=function(e){var i=r.isAbsolute(e),o="/"===a(e,-1);return(e=t(n(e.split("/"),function(e){return!!e}),!i).join("/"))||i||(e="."),e&&o&&(e+="/"),(i?"/":"")+e},r.isAbsolute=function(e){return"/"===e.charAt(0)},r.join=function(){var e=Array.prototype.slice.call(arguments,0);return r.normalize(n(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},r.relative=function(e,t){function n(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=r.resolve(e).substr(1),t=r.resolve(t).substr(1);for(var i=n(e.split("/")),o=n(t.split("/")),a=Math.min(i.length,o.length),s=a,c=0;c<a;c++)if(i[c]!==o[c]){s=c;break}for(var u=[],c=s;c<i.length;c++)u.push("..");return(u=u.concat(o.slice(s))).join("/")},r.sep="/",r.delimiter=":",r.dirname=function(e){var t=o(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},r.basename=function(e,t){var r=o(e)[2];return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r},r.extname=function(e){return o(e)[3]};var a="b"==="ab".substr(-1)?function(e,t,r){return e.substr(t,r)}:function(e,t,r){return t<0&&(t=e.length+t),e.substr(t,r)}}).call(this,e("_process"))},{_process:6}],23:[function(e,t,r){"use strict";function n(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}function i(e){return e.type===n.Bytes?e.readVarint()+e.pos:e.pos+1}function o(e,t,r){return r?4294967296*t+(e>>>0):4294967296*(t>>>0)+(e>>>0)}function a(e,t,r){var n=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.ceil(Math.log(t)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=e;i--)r.buf[i+n]=r.buf[i]}function s(e,t){for(var r=0;r<e.length;r++)t.writeVarint(e[r])}function c(e,t){for(var r=0;r<e.length;r++)t.writeSVarint(e[r])}function u(e,t){for(var r=0;r<e.length;r++)t.writeFloat(e[r])}function h(e,t){for(var r=0;r<e.length;r++)t.writeDouble(e[r])}function l(e,t){for(var r=0;r<e.length;r++)t.writeBoolean(e[r])}function p(e,t){for(var r=0;r<e.length;r++)t.writeFixed32(e[r])}function d(e,t){for(var r=0;r<e.length;r++)t.writeSFixed32(e[r])}function f(e,t){for(var r=0;r<e.length;r++)t.writeFixed64(e[r])}function m(e,t){for(var r=0;r<e.length;r++)t.writeSFixed64(e[r])}function v(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+16777216*e[t+3]}function g(e,t,r){e[r]=t,e[r+1]=t>>>8,e[r+2]=t>>>16,e[r+3]=t>>>24}function y(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+(e[t+3]<<24)}t.exports=n;var b=e("ieee754");n.Varint=0,n.Fixed64=1,n.Bytes=2,n.Fixed32=5;n.prototype={destroy:function(){this.buf=null},readFields:function(e,t,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),i=n>>3,o=this.pos;this.type=7&n,e(i,t,this),this.pos===o&&this.skip(n)}return t},readMessage:function(e,t){return this.readFields(e,t,this.readVarint()+this.pos)},readFixed32:function(){var e=v(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=y(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=v(this.buf,this.pos)+4294967296*v(this.buf,this.pos+4);return this.pos+=8,e},readSFixed64:function(){var e=v(this.buf,this.pos)+4294967296*y(this.buf,this.pos+4);return this.pos+=8,e},readFloat:function(){var e=b.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=b.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var t,r,n=this.buf;return r=n[this.pos++],t=127&r,r<128?t:(r=n[this.pos++],t|=(127&r)<<7,r<128?t:(r=n[this.pos++],t|=(127&r)<<14,r<128?t:(r=n[this.pos++],t|=(127&r)<<21,r<128?t:(r=n[this.pos],t|=(15&r)<<28,function(e,t,r){var n,i,a=r.buf;if(i=a[r.pos++],n=(112&i)>>4,i<128)return o(e,n,t);if(i=a[r.pos++],n|=(127&i)<<3,i<128)return o(e,n,t);if(i=a[r.pos++],n|=(127&i)<<10,i<128)return o(e,n,t);if(i=a[r.pos++],n|=(127&i)<<17,i<128)return o(e,n,t);if(i=a[r.pos++],n|=(127&i)<<24,i<128)return o(e,n,t);if(i=a[r.pos++],n|=(1&i)<<31,i<128)return o(e,n,t);throw new Error("Expected varint not more than 10 bytes")}(t,e,this)))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2==1?(e+1)/-2:e/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var e=this.readVarint()+this.pos,t=function(e,t,r){for(var n="",i=t;i<r;){var o=e[i],a=null,s=o>239?4:o>223?3:o>191?2:1;if(i+s>r)break;var c,u,h;1===s?o<128&&(a=o):2===s?128==(192&(c=e[i+1]))&&(a=(31&o)<<6|63&c)<=127&&(a=null):3===s?(c=e[i+1],u=e[i+2],128==(192&c)&&128==(192&u)&&((a=(15&o)<<12|(63&c)<<6|63&u)<=2047||a>=55296&&a<=57343)&&(a=null)):4===s&&(c=e[i+1],u=e[i+2],h=e[i+3],128==(192&c)&&128==(192&u)&&128==(192&h)&&((a=(15&o)<<18|(63&c)<<12|(63&u)<<6|63&h)<=65535||a>=1114112)&&(a=null)),null===a?(a=65533,s=1):a>65535&&(a-=65536,n+=String.fromCharCode(a>>>10&1023|55296),a=56320|1023&a),n+=String.fromCharCode(a),i+=s}return n}(this.buf,this.pos,e);return this.pos=e,t},readBytes:function(){var e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t},readPackedVarint:function(e,t){var r=i(this);for(e=e||[];this.pos<r;)e.push(this.readVarint(t));return e},readPackedSVarint:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readBoolean());return e},readPackedFloat:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readFloat());return e},readPackedDouble:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readDouble());return e},readPackedFixed32:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed64());return e},skip:function(e){var t=7&e;if(t===n.Varint)for(;this.buf[this.pos++]>127;);else if(t===n.Bytes)this.pos=this.readVarint()+this.pos;else if(t===n.Fixed32)this.pos+=4;else{if(t!==n.Fixed64)throw new Error("Unimplemented type: "+t);this.pos+=8}},writeTag:function(e,t){this.writeVarint(e<<3|t)},realloc:function(e){for(var t=this.length||16;t<this.pos+e;)t*=2;if(t!==this.length){var r=new Uint8Array(t);r.set(this.buf),this.buf=r,this.length=t}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),g(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),g(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),g(this.buf,-1&e,this.pos),g(this.buf,Math.floor(e*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),g(this.buf,-1&e,this.pos),g(this.buf,Math.floor(e*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(e){(e=+e||0)>268435455||e<0?function(e,t){var r,n;if(e>=0?(r=e%4294967296|0,n=e/4294967296|0):(n=~(-e/4294967296),4294967295^(r=~(-e%4294967296))?r=r+1|0:(r=0,n=n+1|0)),e>=0x10000000000000000||e<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");t.realloc(10),function(e,t,r){r.buf[r.pos++]=127&e|128,e>>>=7,r.buf[r.pos++]=127&e|128,e>>>=7,r.buf[r.pos++]=127&e|128,e>>>=7,r.buf[r.pos++]=127&e|128,e>>>=7,r.buf[r.pos]=127&e}(r,0,t),function(e,t){var r=(7&e)<<4;t.buf[t.pos++]|=r|((e>>>=3)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e)))))}(n,t)}(e,this):(this.realloc(4),this.buf[this.pos++]=127&e|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=e>>>7&127))))},writeSVarint:function(e){this.writeVarint(e<0?2*-e-1:2*e)},writeBoolean:function(e){this.writeVarint(Boolean(e))},writeString:function(e){e=String(e),this.realloc(4*e.length),this.pos++;var t=this.pos;this.pos=function(e,t,r){for(var n,i,o=0;o<t.length;o++){if((n=t.charCodeAt(o))>55295&&n<57344){if(!i){n>56319||o+1===t.length?(e[r++]=239,e[r++]=191,e[r++]=189):i=n;continue}if(n<56320){e[r++]=239,e[r++]=191,e[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(e[r++]=239,e[r++]=191,e[r++]=189,i=null);n<128?e[r++]=n:(n<2048?e[r++]=n>>6|192:(n<65536?e[r++]=n>>12|224:(e[r++]=n>>18|240,e[r++]=n>>12&63|128),e[r++]=n>>6&63|128),e[r++]=63&n|128)}return r}(this.buf,e,this.pos);var r=this.pos-t;r>=128&&a(t,r,this),this.pos=t-1,this.writeVarint(r),this.pos+=r},writeFloat:function(e){this.realloc(4),b.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),b.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var t=e.length;this.writeVarint(t),this.realloc(t);for(var r=0;r<t;r++)this.buf[this.pos++]=e[r]},writeRawMessage:function(e,t){this.pos++;var r=this.pos;e(t,this);var n=this.pos-r;n>=128&&a(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(e,t,r){this.writeTag(e,n.Bytes),this.writeRawMessage(t,r)},writePackedVarint:function(e,t){this.writeMessage(e,s,t)},writePackedSVarint:function(e,t){this.writeMessage(e,c,t)},writePackedBoolean:function(e,t){this.writeMessage(e,l,t)},writePackedFloat:function(e,t){this.writeMessage(e,u,t)},writePackedDouble:function(e,t){this.writeMessage(e,h,t)},writePackedFixed32:function(e,t){this.writeMessage(e,p,t)},writePackedSFixed32:function(e,t){this.writeMessage(e,d,t)},writePackedFixed64:function(e,t){this.writeMessage(e,f,t)},writePackedSFixed64:function(e,t){this.writeMessage(e,m,t)},writeBytesField:function(e,t){this.writeTag(e,n.Bytes),this.writeBytes(t)},writeFixed32Field:function(e,t){this.writeTag(e,n.Fixed32),this.writeFixed32(t)},writeSFixed32Field:function(e,t){this.writeTag(e,n.Fixed32),this.writeSFixed32(t)},writeFixed64Field:function(e,t){this.writeTag(e,n.Fixed64),this.writeFixed64(t)},writeSFixed64Field:function(e,t){this.writeTag(e,n.Fixed64),this.writeSFixed64(t)},writeVarintField:function(e,t){this.writeTag(e,n.Varint),this.writeVarint(t)},writeSVarintField:function(e,t){this.writeTag(e,n.Varint),this.writeSVarint(t)},writeStringField:function(e,t){this.writeTag(e,n.Bytes),this.writeString(t)},writeFloatField:function(e,t){this.writeTag(e,n.Fixed32),this.writeFloat(t)},writeDoubleField:function(e,t){this.writeTag(e,n.Fixed64),this.writeDouble(t)},writeBooleanField:function(e,t){this.writeVarintField(e,Boolean(t))}}},{ieee754:17}],24:[function(e,t,r){"use strict";function n(e,t,r,o,a){for(r=r||0,o=o||e.length-1,a=a||function(e,t){return e<t?-1:e>t?1:0};o>r;){if(o-r>600){var s=o-r+1,c=t-r+1,u=Math.log(s),h=.5*Math.exp(2*u/3),l=.5*Math.sqrt(u*h*(s-h)/s)*(c-s/2<0?-1:1);n(e,t,Math.max(r,Math.floor(t-c*h/s+l)),Math.min(o,Math.floor(t+(s-c)*h/s+l)),a)}var p=e[t],d=r,f=o;for(i(e,r,t),a(e[o],p)>0&&i(e,r,o);d<f;){for(i(e,d,f),d++,f--;a(e[d],p)<0;)d++;for(;a(e[f],p)>0;)f--}0===a(e[r],p)?i(e,r,f):i(e,++f,o),f<=t&&(r=f+1),t<=f&&(o=f-1)}}function i(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}t.exports=n},{}],25:[function(e,t,r){"use strict";function n(e,t){if(!(this instanceof n))return new n(e,t);this._maxEntries=Math.max(4,e||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),t&&this._initFormat(t),this.clear()}function i(e,t){o(e,0,e.children.length,t,e)}function o(e,t,r,n,i){i||(i=d(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(var o,s=t;s<r;s++)o=e.children[s],a(i,e.leaf?n(o):o);return i}function a(e,t){return e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY),e}function s(e,t){return e.minX-t.minX}function c(e,t){return e.minY-t.minY}function u(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function h(e){return e.maxX-e.minX+(e.maxY-e.minY)}function l(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function p(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function d(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function f(e,t,r,n,i){for(var o,a=[t,r];a.length;)(r=a.pop())-(t=a.pop())<=n||(o=t+Math.ceil((r-t)/n/2)*n,m(e,o,t,r,i),a.push(t,o,o,r))}t.exports=n;var m=e("quickselect");n.prototype={all:function(){return this._all(this.data,[])},search:function(e){var t=this.data,r=[],n=this.toBBox;if(!p(e,t))return r;for(var i,o,a,s,c=[];t;){for(i=0,o=t.children.length;i<o;i++)a=t.children[i],p(e,s=t.leaf?n(a):a)&&(t.leaf?r.push(a):l(e,s)?this._all(a,r):c.push(a));t=c.pop()}return r},collides:function(e){var t=this.data,r=this.toBBox;if(!p(e,t))return!1;for(var n,i,o,a,s=[];t;){for(n=0,i=t.children.length;n<i;n++)if(o=t.children[n],a=t.leaf?r(o):o,p(e,a)){if(t.leaf||l(e,a))return!0;s.push(o)}t=s.pop()}return!1},load:function(e){if(!e||!e.length)return this;if(e.length<this._minEntries){for(var t=0,r=e.length;t<r;t++)this.insert(e[t]);return this}var n=this._build(e.slice(),0,e.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this._splitRoot(this.data,n);else{if(this.data.height<n.height){var i=this.data;this.data=n,n=i}this._insert(n,this.data.height-n.height-1,!0)}else this.data=n;return this},insert:function(e){return e&&this._insert(e,this.data.height-1),this},clear:function(){return this.data=d([]),this},remove:function(e,t){if(!e)return this;for(var r,n,i,o,a=this.data,s=this.toBBox(e),c=[],u=[];a||c.length;){if(a||(a=c.pop(),n=c[c.length-1],r=u.pop(),o=!0),a.leaf&&-1!==(i=function(e,t,r){if(!r)return t.indexOf(e);for(var n=0;n<t.length;n++)if(r(e,t[n]))return n;return-1}(e,a.children,t)))return a.children.splice(i,1),c.push(a),this._condense(c),this;o||a.leaf||!l(a,s)?n?(r++,a=n.children[r],o=!1):a=null:(c.push(a),u.push(r),r=0,n=a,a=a.children[0])}return this},toBBox:function(e){return e},compareMinX:s,compareMinY:c,toJSON:function(){return this.data},fromJSON:function(e){return this.data=e,this},_all:function(e,t){for(var r=[];e;)e.leaf?t.push.apply(t,e.children):r.push.apply(r,e.children),e=r.pop();return t},_build:function(e,t,r,n){var o,a=r-t+1,s=this._maxEntries;if(a<=s)return o=d(e.slice(t,r+1)),i(o,this.toBBox),o;n||(n=Math.ceil(Math.log(a)/Math.log(s)),s=Math.ceil(a/Math.pow(s,n-1))),(o=d([])).leaf=!1,o.height=n;var c,u,h,l,p=Math.ceil(a/s),m=p*Math.ceil(Math.sqrt(s));for(f(e,t,r,m,this.compareMinX),c=t;c<=r;c+=m)for(f(e,c,h=Math.min(c+m-1,r),p,this.compareMinY),u=c;u<=h;u+=p)l=Math.min(u+p-1,h),o.children.push(this._build(e,u,l,n-1));return i(o,this.toBBox),o},_chooseSubtree:function(e,t,r,n){for(var i,o,a,s,c,h,l,p;;){if(n.push(t),t.leaf||n.length-1===r)break;for(l=p=1/0,i=0,o=t.children.length;i<o;i++)c=u(a=t.children[i]),(h=function(e,t){return(Math.max(t.maxX,e.maxX)-Math.min(t.minX,e.minX))*(Math.max(t.maxY,e.maxY)-Math.min(t.minY,e.minY))}(e,a)-c)<p?(p=h,l=c<l?c:l,s=a):h===p&&c<l&&(l=c,s=a);t=s||t.children[0]}return t},_insert:function(e,t,r){var n=this.toBBox,i=r?e:n(e),o=[],s=this._chooseSubtree(i,this.data,t,o);for(s.children.push(e),a(s,i);t>=0&&o[t].children.length>this._maxEntries;)this._split(o,t),t--;this._adjustParentBBoxes(i,o,t)},_split:function(e,t){var r=e[t],n=r.children.length,o=this._minEntries;this._chooseSplitAxis(r,o,n);var a=this._chooseSplitIndex(r,o,n),s=d(r.children.splice(a,r.children.length-a));s.height=r.height,s.leaf=r.leaf,i(r,this.toBBox),i(s,this.toBBox),t?e[t-1].children.push(s):this._splitRoot(r,s)},_splitRoot:function(e,t){this.data=d([e,t]),this.data.height=e.height+1,this.data.leaf=!1,i(this.data,this.toBBox)},_chooseSplitIndex:function(e,t,r){var n,i,a,s,c,h,l,p;for(h=l=1/0,n=t;n<=r-t;n++)s=function(e,t){var r=Math.max(e.minX,t.minX),n=Math.max(e.minY,t.minY),i=Math.min(e.maxX,t.maxX),o=Math.min(e.maxY,t.maxY);return Math.max(0,i-r)*Math.max(0,o-n)}(i=o(e,0,n,this.toBBox),a=o(e,n,r,this.toBBox)),c=u(i)+u(a),s<h?(h=s,p=n,l=c<l?c:l):s===h&&c<l&&(l=c,p=n);return p},_chooseSplitAxis:function(e,t,r){var n=e.leaf?this.compareMinX:s,i=e.leaf?this.compareMinY:c;this._allDistMargin(e,t,r,n)<this._allDistMargin(e,t,r,i)&&e.children.sort(n)},_allDistMargin:function(e,t,r,n){e.children.sort(n);var i,s,c=this.toBBox,u=o(e,0,t,c),l=o(e,r-t,r,c),p=h(u)+h(l);for(i=t;i<r-t;i++)s=e.children[i],a(u,e.leaf?c(s):s),p+=h(u);for(i=r-t-1;i>=t;i--)s=e.children[i],a(l,e.leaf?c(s):s),p+=h(l);return p},_adjustParentBBoxes:function(e,t,r){for(var n=r;n>=0;n--)a(t[n],e)},_condense:function(e){for(var t,r=e.length-1;r>=0;r--)0===e[r].children.length?r>0?(t=e[r-1].children).splice(t.indexOf(e[r]),1):this.clear():i(e[r],this.toBBox)},_initFormat:function(e){var t=["return a"," - b",";"];this.compareMinX=new Function("a","b",t.join(e[0])),this.compareMinY=new Function("a","b",t.join(e[1])),this.toBBox=new Function("a","return {minX: a"+e[0]+", minY: a"+e[1]+", maxX: a"+e[2]+", maxY: a"+e[3]+"};")}}},{quickselect:24}],26:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("./Subject"),o=e("./util/ObjectUnsubscribedError"),a=function(e){function t(t){e.call(this),this._value=t}return n(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype._subscribe=function(t){var r=e.prototype._subscribe.call(this,t);return r&&!r.closed&&t.next(this._value),r},t.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new o.ObjectUnsubscribedError;return this._value},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(i.Subject);r.BehaviorSubject=a},{"./Subject":34,"./util/ObjectUnsubscribedError":221}],27:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r,n){e.call(this),this.parent=t,this.outerValue=r,this.outerIndex=n,this.index=0}return n(t,e),t.prototype._next=function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)},t.prototype._error=function(e){this.parent.notifyError(e,this),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},t}(e("./Subscriber").Subscriber);r.InnerSubscriber=i},{"./Subscriber":36}],28:[function(e,t,r){"use strict";var n=e("./Observable"),i=function(){function e(e,t,r){this.kind=e,this.value=t,this.error=r,this.hasValue="N"===e}return e.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},e.prototype.do=function(e,t,r){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return r&&r()}},e.prototype.accept=function(e,t,r){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,r)},e.prototype.toObservable=function(){switch(this.kind){case"N":return n.Observable.of(this.value);case"E":return n.Observable.throw(this.error);case"C":return n.Observable.empty()}throw new Error("unexpected notification kind value")},e.createNext=function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}();r.Notification=i},{"./Observable":29}],29:[function(e,t,r){"use strict";var n=e("./util/root"),i=e("./util/toSubscriber"),o=e("./symbol/observable"),a=e("./util/pipe"),s=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(e,t,r){var n=this.operator,o=i.toSubscriber(e,t,r);if(n?n.call(o,this.source):o.add(this.source?this._subscribe(o):this._trySubscribe(o)),o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.syncErrorThrown=!0,e.syncErrorValue=t,e.error(t)}},e.prototype.forEach=function(e,t){var r=this;if(t||(n.root.Rx&&n.root.Rx.config&&n.root.Rx.config.Promise?t=n.root.Rx.config.Promise:n.root.Promise&&(t=n.root.Promise)),!t)throw new Error("no Promise impl found");return new t(function(t,n){var i;i=r.subscribe(function(t){if(i)try{e(t)}catch(e){n(e),i.unsubscribe()}else e(t)},n,t)})},e.prototype._subscribe=function(e){return this.source.subscribe(e)},e.prototype[o.observable]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return 0===e.length?this:a.pipeFromArray(e)(this)},e.prototype.toPromise=function(e){var t=this;if(e||(n.root.Rx&&n.root.Rx.config&&n.root.Rx.config.Promise?e=n.root.Rx.config.Promise:n.root.Promise&&(e=n.root.Promise)),!e)throw new Error("no Promise impl found");return new e(function(e,r){var n;t.subscribe(function(e){return n=e},function(e){return r(e)},function(){return e(n)})})},e.create=function(t){return new e(t)},e}();r.Observable=s},{"./symbol/observable":216,"./util/pipe":236,"./util/root":237,"./util/toSubscriber":239}],30:[function(e,t,r){"use strict";r.empty={closed:!0,next:function(e){},error:function(e){throw e},complete:function(){}}},{}],31:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){e.apply(this,arguments)}return n(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(t)},t.prototype.notifyError=function(e,t){this.destination.error(e)},t.prototype.notifyComplete=function(e){this.destination.complete()},t}(e("./Subscriber").Subscriber);r.OuterSubscriber=i},{"./Subscriber":36}],32:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("./Subject"),o=e("./scheduler/queue"),a=e("./Subscription"),s=e("./operators/observeOn"),c=e("./util/ObjectUnsubscribedError"),u=e("./SubjectSubscription"),h=function(e){function t(t,r,n){void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=Number.POSITIVE_INFINITY),e.call(this),this.scheduler=n,this._events=[],this._bufferSize=t<1?1:t,this._windowTime=r<1?1:r}return n(t,e),t.prototype.next=function(t){var r=this._getNow();this._events.push(new l(r,t)),this._trimBufferThenGetEvents(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){var t,r=this._trimBufferThenGetEvents(),n=this.scheduler;if(this.closed)throw new c.ObjectUnsubscribedError;this.hasError?t=a.Subscription.EMPTY:this.isStopped?t=a.Subscription.EMPTY:(this.observers.push(e),t=new u.SubjectSubscription(this,e)),n&&e.add(e=new s.ObserveOnSubscriber(e,n));for(var i=r.length,o=0;o<i&&!e.closed;o++)e.next(r[o].value);return this.hasError?e.error(this.thrownError):this.isStopped&&e.complete(),t},t.prototype._getNow=function(){return(this.scheduler||o.queue).now()},t.prototype._trimBufferThenGetEvents=function(){for(var e=this._getNow(),t=this._bufferSize,r=this._windowTime,n=this._events,i=n.length,o=0;o<i&&!(e-n[o].time<r);)o++;return i>t&&(o=Math.max(o,i-t)),o>0&&n.splice(0,o),n},t}(i.Subject);r.ReplaySubject=h;var l=function(){return function(e,t){this.time=e,this.value=t}}()},{"./Subject":34,"./SubjectSubscription":35,"./Subscription":37,"./operators/observeOn":182,"./scheduler/queue":214,"./util/ObjectUnsubscribedError":221}],33:[function(e,t,r){"use strict";var n=function(){function e(t,r){void 0===r&&(r=e.now),this.SchedulerAction=t,this.now=r}return e.prototype.schedule=function(e,t,r){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(r,t)},e.now=Date.now?Date.now:function(){return+new Date},e}();r.Scheduler=n},{}],34:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("./Observable"),o=e("./Subscriber"),a=e("./Subscription"),s=e("./util/ObjectUnsubscribedError"),c=e("./SubjectSubscription"),u=e("./symbol/rxSubscriber"),h=function(e){function t(t){e.call(this,t),this.destination=t}return n(t,e),t}(o.Subscriber);r.SubjectSubscriber=h;var l=function(e){function t(){e.call(this),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}return n(t,e),t.prototype[u.rxSubscriber]=function(){return new h(this)},t.prototype.lift=function(e){var t=new p(this,this);return t.operator=e,t},t.prototype.next=function(e){if(this.closed)throw new s.ObjectUnsubscribedError;if(!this.isStopped)for(var t=this.observers,r=t.length,n=t.slice(),i=0;i<r;i++)n[i].next(e)},t.prototype.error=function(e){if(this.closed)throw new s.ObjectUnsubscribedError;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,r=t.length,n=t.slice(),i=0;i<r;i++)n[i].error(e);this.observers.length=0},t.prototype.complete=function(){if(this.closed)throw new s.ObjectUnsubscribedError;this.isStopped=!0;for(var e=this.observers,t=e.length,r=e.slice(),n=0;n<t;n++)r[n].complete();this.observers.length=0},t.prototype.unsubscribe=function(){this.isStopped=!0,this.closed=!0,this.observers=null},t.prototype._trySubscribe=function(t){if(this.closed)throw new s.ObjectUnsubscribedError;return e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){if(this.closed)throw new s.ObjectUnsubscribedError;return this.hasError?(e.error(this.thrownError),a.Subscription.EMPTY):this.isStopped?(e.complete(),a.Subscription.EMPTY):(this.observers.push(e),new c.SubjectSubscription(this,e))},t.prototype.asObservable=function(){var e=new i.Observable;return e.source=this,e},t.create=function(e,t){return new p(e,t)},t}(i.Observable);r.Subject=l;var p=function(e){function t(t,r){e.call(this),this.destination=t,this.source=r}return n(t,e),t.prototype.next=function(e){var t=this.destination;t&&t.next&&t.next(e)},t.prototype.error=function(e){var t=this.destination;t&&t.error&&this.destination.error(e)},t.prototype.complete=function(){var e=this.destination;e&&e.complete&&this.destination.complete()},t.prototype._subscribe=function(e){return this.source?this.source.subscribe(e):a.Subscription.EMPTY},t}(l);r.AnonymousSubject=p},{"./Observable":29,"./SubjectSubscription":35,"./Subscriber":36,"./Subscription":37,"./symbol/rxSubscriber":217,"./util/ObjectUnsubscribedError":221}],35:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r){e.call(this),this.subject=t,this.subscriber=r,this.closed=!1}return n(t,e),t.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var r=t.indexOf(this.subscriber);-1!==r&&t.splice(r,1)}}},t}(e("./Subscription").Subscription);r.SubjectSubscription=i},{"./Subscription":37}],36:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("./util/isFunction"),o=e("./Subscription"),a=e("./Observer"),s=e("./symbol/rxSubscriber"),c=function(e){function t(r,n,i){switch(e.call(this),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=a.empty;break;case 1:if(!r){this.destination=a.empty;break}if("object"==typeof r){r instanceof t?(this.destination=r,this.destination.add(this)):(this.syncErrorThrowable=!0,this.destination=new u(this,r));break}default:this.syncErrorThrowable=!0,this.destination=new u(this,r,n,i)}}return n(t,e),t.prototype[s.rxSubscriber]=function(){return this},t.create=function(e,r,n){var i=new t(e,r,n);return i.syncErrorThrowable=!1,i},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parent,t=this._parents;return this._parent=null,this._parents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parent=e,this._parents=t,this},t}(o.Subscription);r.Subscriber=c;var u=function(e){function t(t,r,n,o){e.call(this),this._parentSubscriber=t;var s,c=this;i.isFunction(r)?s=r:r&&(s=r.next,n=r.error,o=r.complete,r!==a.empty&&(c=Object.create(r),i.isFunction(c.unsubscribe)&&this.add(c.unsubscribe.bind(c)),c.unsubscribe=this.unsubscribe.bind(this))),this._context=c,this._next=s,this._error=n,this._complete=o}return n(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber;if(this._error)t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else{if(!t.syncErrorThrowable)throw this.unsubscribe(),e;t.syncErrorValue=e,t.syncErrorThrown=!0,this.unsubscribe()}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var r=function(){return e._complete.call(e._context)};t.syncErrorThrowable?(this.__tryOrSetError(t,r),this.unsubscribe()):(this.__tryOrUnsub(r),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){throw this.unsubscribe(),e}},t.prototype.__tryOrSetError=function(e,t,r){try{t.call(this._context,r)}catch(t){return e.syncErrorValue=t,e.syncErrorThrown=!0,!0}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(c)},{"./Observer":30,"./Subscription":37,"./symbol/rxSubscriber":217,"./util/isFunction":230}],37:[function(e,t,r){"use strict";function n(e){return e.reduce(function(e,t){return e.concat(t instanceof u.UnsubscriptionError?t.errors:t)},[])}var i=e("./util/isArray"),o=e("./util/isObject"),a=e("./util/isFunction"),s=e("./util/tryCatch"),c=e("./util/errorObject"),u=e("./util/UnsubscriptionError"),h=function(){function e(e){this.closed=!1,this._parent=null,this._parents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var e,t=!1;if(!this.closed){var r=this._parent,h=this._parents,l=this._unsubscribe,p=this._subscriptions;this.closed=!0,this._parent=null,this._parents=null,this._subscriptions=null;for(var d=-1,f=h?h.length:0;r;)r.remove(this),r=++d<f&&h[d]||null;if(a.isFunction(l)){(v=s.tryCatch(l).call(this))===c.errorObject&&(t=!0,e=e||(c.errorObject.e instanceof u.UnsubscriptionError?n(c.errorObject.e.errors):[c.errorObject.e]))}if(i.isArray(p))for(d=-1,f=p.length;++d<f;){var m=p[d];if(o.isObject(m)){var v=s.tryCatch(m.unsubscribe).call(m);if(v===c.errorObject){t=!0,e=e||[];var g=c.errorObject.e;g instanceof u.UnsubscriptionError?e=e.concat(n(g.errors)):e.push(g)}}}if(t)throw new u.UnsubscriptionError(e)}},e.prototype.add=function(t){if(!t||t===e.EMPTY)return e.EMPTY;if(t===this)return this;var r=t;switch(typeof t){case"function":r=new e(t);case"object":if(r.closed||"function"!=typeof r.unsubscribe)return r;if(this.closed)return r.unsubscribe(),r;if("function"!=typeof r._addParent){var n=r;(r=new e)._subscriptions=[n]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}return(this._subscriptions||(this._subscriptions=[])).push(r),r._addParent(this),r},e.prototype.remove=function(e){var t=this._subscriptions;if(t){var r=t.indexOf(e);-1!==r&&t.splice(r,1)}},e.prototype._addParent=function(e){var t=this._parent,r=this._parents;t&&t!==e?r?-1===r.indexOf(e)&&r.push(e):this._parents=[e]:this._parent=e},e.EMPTY=function(e){return e.closed=!0,e}(new e),e}();r.Subscription=h},{"./util/UnsubscriptionError":224,"./util/errorObject":225,"./util/isArray":227,"./util/isFunction":230,"./util/isObject":232,"./util/tryCatch":240}],38:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/combineLatest");n.Observable.combineLatest=i.combineLatest},{"../../Observable":29,"../../observable/combineLatest":104}],39:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/concat");n.Observable.concat=i.concat},{"../../Observable":29,"../../observable/concat":105}],40:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/defer");n.Observable.defer=i.defer},{"../../Observable":29,"../../observable/defer":106}],41:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/empty");n.Observable.empty=i.empty},{"../../Observable":29,"../../observable/empty":107}],42:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/from");n.Observable.from=i.from},{"../../Observable":29,"../../observable/from":108}],43:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/fromEvent");n.Observable.fromEvent=i.fromEvent},{"../../Observable":29,"../../observable/fromEvent":109}],44:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/fromPromise");n.Observable.fromPromise=i.fromPromise},{"../../Observable":29,"../../observable/fromPromise":110}],45:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/merge");n.Observable.merge=i.merge},{"../../Observable":29,"../../observable/merge":111}],46:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/of");n.Observable.of=i.of},{"../../Observable":29,"../../observable/of":112}],47:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/throw");n.Observable.throw=i._throw},{"../../Observable":29,"../../observable/throw":113}],48:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/timer");n.Observable.timer=i.timer},{"../../Observable":29,"../../observable/timer":114}],49:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/zip");n.Observable.zip=i.zip},{"../../Observable":29,"../../observable/zip":115}],50:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/auditTime");n.Observable.prototype.auditTime=i.auditTime},{"../../Observable":29,"../../operator/auditTime":116}],51:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/buffer");n.Observable.prototype.buffer=i.buffer},{"../../Observable":29,"../../operator/buffer":117}],52:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/bufferCount");n.Observable.prototype.bufferCount=i.bufferCount},{"../../Observable":29,"../../operator/bufferCount":118}],53:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/bufferWhen");n.Observable.prototype.bufferWhen=i.bufferWhen},{"../../Observable":29,"../../operator/bufferWhen":119}],54:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/catch");n.Observable.prototype.catch=i._catch,n.Observable.prototype._catch=i._catch},{"../../Observable":29,"../../operator/catch":120}],55:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/combineLatest");n.Observable.prototype.combineLatest=i.combineLatest},{"../../Observable":29,"../../operator/combineLatest":121}],56:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/concat");n.Observable.prototype.concat=i.concat},{"../../Observable":29,"../../operator/concat":122}],57:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/debounceTime");n.Observable.prototype.debounceTime=i.debounceTime},{"../../Observable":29,"../../operator/debounceTime":123}],58:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/delay");n.Observable.prototype.delay=i.delay},{"../../Observable":29,"../../operator/delay":124}],59:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/distinct");n.Observable.prototype.distinct=i.distinct},{"../../Observable":29,"../../operator/distinct":125}],60:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/distinctUntilChanged");n.Observable.prototype.distinctUntilChanged=i.distinctUntilChanged},{"../../Observable":29,"../../operator/distinctUntilChanged":126}],61:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/do");n.Observable.prototype.do=i._do,n.Observable.prototype._do=i._do},{"../../Observable":29,"../../operator/do":127}],62:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/expand");n.Observable.prototype.expand=i.expand},{"../../Observable":29,"../../operator/expand":128}],63:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/filter");n.Observable.prototype.filter=i.filter},{"../../Observable":29,"../../operator/filter":129}],64:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/finally");n.Observable.prototype.finally=i._finally,n.Observable.prototype._finally=i._finally},{"../../Observable":29,"../../operator/finally":130}],65:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/first");n.Observable.prototype.first=i.first},{"../../Observable":29,"../../operator/first":131}],66:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/last");n.Observable.prototype.last=i.last},{"../../Observable":29,"../../operator/last":132}],67:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/map");n.Observable.prototype.map=i.map},{"../../Observable":29,"../../operator/map":133}],68:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/merge");n.Observable.prototype.merge=i.merge},{"../../Observable":29,"../../operator/merge":134}],69:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/mergeAll");n.Observable.prototype.mergeAll=i.mergeAll},{"../../Observable":29,"../../operator/mergeAll":135}],70:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/mergeMap");n.Observable.prototype.mergeMap=i.mergeMap,n.Observable.prototype.flatMap=i.mergeMap},{"../../Observable":29,"../../operator/mergeMap":136}],71:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/pairwise");n.Observable.prototype.pairwise=i.pairwise},{"../../Observable":29,"../../operator/pairwise":137}],72:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/pluck");n.Observable.prototype.pluck=i.pluck},{"../../Observable":29,"../../operator/pluck":138}],73:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/publish");n.Observable.prototype.publish=i.publish},{"../../Observable":29,"../../operator/publish":139}],74:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/publishReplay");n.Observable.prototype.publishReplay=i.publishReplay},{"../../Observable":29,"../../operator/publishReplay":140}],75:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/reduce");n.Observable.prototype.reduce=i.reduce},{"../../Observable":29,"../../operator/reduce":141}],76:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/retry");n.Observable.prototype.retry=i.retry},{"../../Observable":29,"../../operator/retry":142}],77:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/sample");n.Observable.prototype.sample=i.sample},{"../../Observable":29,"../../operator/sample":143}],78:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/scan");n.Observable.prototype.scan=i.scan},{"../../Observable":29,"../../operator/scan":144}],79:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/share");n.Observable.prototype.share=i.share},{"../../Observable":29,"../../operator/share":145}],80:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/skip");n.Observable.prototype.skip=i.skip},{"../../Observable":29,"../../operator/skip":146}],81:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/skipUntil");n.Observable.prototype.skipUntil=i.skipUntil},{"../../Observable":29,"../../operator/skipUntil":147}],82:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/skipWhile");n.Observable.prototype.skipWhile=i.skipWhile},{"../../Observable":29,"../../operator/skipWhile":148}],83:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/startWith");n.Observable.prototype.startWith=i.startWith},{"../../Observable":29,"../../operator/startWith":149}],84:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/switchMap");n.Observable.prototype.switchMap=i.switchMap},{"../../Observable":29,"../../operator/switchMap":150}],85:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/take");n.Observable.prototype.take=i.take},{"../../Observable":29,"../../operator/take":151}],86:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/takeUntil");n.Observable.prototype.takeUntil=i.takeUntil},{"../../Observable":29,"../../operator/takeUntil":152}],87:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/takeWhile");n.Observable.prototype.takeWhile=i.takeWhile},{"../../Observable":29,"../../operator/takeWhile":153}],88:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/throttleTime");n.Observable.prototype.throttleTime=i.throttleTime},{"../../Observable":29,"../../operator/throttleTime":154}],89:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/timeout");n.Observable.prototype.timeout=i.timeout},{"../../Observable":29,"../../operator/timeout":155}],90:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/withLatestFrom");n.Observable.prototype.withLatestFrom=i.withLatestFrom},{"../../Observable":29,"../../operator/withLatestFrom":156}],91:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/zip");n.Observable.prototype.zip=i.zipProto},{"../../Observable":29,"../../operator/zip":157}],92:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Observable"),o=e("./ScalarObservable"),a=e("./EmptyObservable"),s=function(e){function t(t,r){e.call(this),this.arrayLike=t,this.scheduler=r,r||1!==t.length||(this._isScalar=!0,this.value=t[0])}return n(t,e),t.create=function(e,r){var n=e.length;return 0===n?new a.EmptyObservable:1===n?new o.ScalarObservable(e[0],r):new t(e,r)},t.dispatch=function(e){var t=e.arrayLike,r=e.index,n=e.length,i=e.subscriber;i.closed||(r>=n?i.complete():(i.next(t[r]),e.index=r+1,this.schedule(e)))},t.prototype._subscribe=function(e){var r=this.arrayLike,n=this.scheduler,i=r.length;if(n)return n.schedule(t.dispatch,0,{arrayLike:r,index:0,length:i,subscriber:e});for(var o=0;o<i&&!e.closed;o++)e.next(r[o]);e.complete()},t}(i.Observable);r.ArrayLikeObservable=s},{"../Observable":29,"./EmptyObservable":96,"./ScalarObservable":102}],93:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Observable"),o=e("./ScalarObservable"),a=e("./EmptyObservable"),s=e("../util/isScheduler"),c=function(e){function t(t,r){e.call(this),this.array=t,this.scheduler=r,r||1!==t.length||(this._isScalar=!0,this.value=t[0])}return n(t,e),t.create=function(e,r){return new t(e,r)},t.of=function(){for(var e=[],r=0;r<arguments.length;r++)e[r-0]=arguments[r];var n=e[e.length-1];s.isScheduler(n)?e.pop():n=null;var i=e.length;return i>1?new t(e,n):1===i?new o.ScalarObservable(e[0],n):new a.EmptyObservable(n)},t.dispatch=function(e){var t=e.array,r=e.index,n=e.count,i=e.subscriber;r>=n?i.complete():(i.next(t[r]),i.closed||(e.index=r+1,this.schedule(e)))},t.prototype._subscribe=function(e){var r=this.array,n=r.length,i=this.scheduler;if(i)return i.schedule(t.dispatch,0,{array:r,index:0,count:n,subscriber:e});for(var o=0;o<n&&!e.closed;o++)e.next(r[o]);e.complete()},t}(i.Observable);r.ArrayObservable=c},{"../Observable":29,"../util/isScheduler":234,"./EmptyObservable":96,"./ScalarObservable":102}],94:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subject"),o=e("../Observable"),a=e("../Subscriber"),s=e("../Subscription"),c=e("../operators/refCount"),u=function(e){function t(t,r){e.call(this),this.source=t,this.subjectFactory=r,this._refCount=0,this._isComplete=!1}return n(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype.connect=function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new s.Subscription).add(this.source.subscribe(new l(this.getSubject(),this))),e.closed?(this._connection=null,e=s.Subscription.EMPTY):this._connection=e),e},t.prototype.refCount=function(){return c.refCount()(this)},t}(o.Observable);r.ConnectableObservable=u;var h=u.prototype;r.connectableObservableDescriptor={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:h._subscribe},_isComplete:{value:h._isComplete,writable:!0},getSubject:{value:h.getSubject},connect:{value:h.connect},refCount:{value:h.refCount}};var l=function(e){function t(t,r){e.call(this,t),this.connectable=r}return n(t,e),t.prototype._error=function(t){this._unsubscribe(),e.prototype._error.call(this,t)},t.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}},t}(i.SubjectSubscriber),p=(function(){function e(e){this.connectable=e}e.prototype.call=function(e,t){var r=this.connectable;r._refCount++;var n=new p(e,r),i=t.subscribe(n);return n.closed||(n.connection=r.connect()),i}}(),function(e){function t(t,r){e.call(this,t),this.connectable=r}return n(t,e),t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var r=this.connection,n=e._connection;this.connection=null,!n||r&&n!==r||n.unsubscribe()}}else this.connection=null},t}(a.Subscriber))},{"../Observable":29,"../Subject":34,"../Subscriber":36,"../Subscription":37,"../operators/refCount":188}],95:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Observable"),o=e("../util/subscribeToResult"),a=e("../OuterSubscriber"),s=function(e){function t(t){e.call(this),this.observableFactory=t}return n(t,e),t.create=function(e){return new t(e)},t.prototype._subscribe=function(e){return new c(e,this.observableFactory)},t}(i.Observable);r.DeferObservable=s;var c=function(e){function t(t,r){e.call(this,t),this.factory=r,this.tryDefer()}return n(t,e),t.prototype.tryDefer=function(){try{this._callFactory()}catch(e){this._error(e)}},t.prototype._callFactory=function(){var e=this.factory();e&&this.add(o.subscribeToResult(this,e))},t}(a.OuterSubscriber)},{"../Observable":29,"../OuterSubscriber":31,"../util/subscribeToResult":238}],96:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t){e.call(this),this.scheduler=t}return n(t,e),t.create=function(e){return new t(e)},t.dispatch=function(e){e.subscriber.complete()},t.prototype._subscribe=function(e){var r=this.scheduler;if(r)return r.schedule(t.dispatch,0,{subscriber:e});e.complete()},t}(e("../Observable").Observable);r.EmptyObservable=i},{"../Observable":29}],97:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r){e.call(this),this.error=t,this.scheduler=r}return n(t,e),t.create=function(e,r){return new t(e,r)},t.dispatch=function(e){var t=e.error;e.subscriber.error(t)},t.prototype._subscribe=function(e){var r=this.error,n=this.scheduler;if(e.syncErrorThrowable=!0,n)return n.schedule(t.dispatch,0,{error:r,subscriber:e});e.error(r)},t}(e("../Observable").Observable);r.ErrorObservable=i},{"../Observable":29}],98:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Observable"),o=e("../util/tryCatch"),a=e("../util/isFunction"),s=e("../util/errorObject"),c=e("../Subscription"),u=Object.prototype.toString,h=function(e){function t(t,r,n,i){e.call(this),this.sourceObj=t,this.eventName=r,this.selector=n,this.options=i}return n(t,e),t.create=function(e,r,n,i){return a.isFunction(n)&&(i=n,n=void 0),new t(e,r,i,n)},t.setupSubscription=function(e,r,n,i,o){var a;if(function(e){return!!e&&"[object NodeList]"===u.call(e)}(e)||function(e){return!!e&&"[object HTMLCollection]"===u.call(e)}(e))for(var s=0,h=e.length;s<h;s++)t.setupSubscription(e[s],r,n,i,o);else if(function(e){return!!e&&"function"==typeof e.addEventListener&&"function"==typeof e.removeEventListener}(e)){var l=e;e.addEventListener(r,n,o),a=function(){return l.removeEventListener(r,n)}}else if(function(e){return!!e&&"function"==typeof e.on&&"function"==typeof e.off}(e)){var p=e;e.on(r,n),a=function(){return p.off(r,n)}}else{if(!function(e){return!!e&&"function"==typeof e.addListener&&"function"==typeof e.removeListener}(e))throw new TypeError("Invalid event target");var d=e;e.addListener(r,n),a=function(){return d.removeListener(r,n)}}i.add(new c.Subscription(a))},t.prototype._subscribe=function(e){var r=this.sourceObj,n=this.eventName,i=this.options,a=this.selector;t.setupSubscription(r,n,a?function(){for(var t=[],r=0;r<arguments.length;r++)t[r-0]=arguments[r];var n=o.tryCatch(a).apply(void 0,t);n===s.errorObject?e.error(s.errorObject.e):e.next(n)}:function(t){return e.next(t)},e,i)},t}(i.Observable);r.FromEventObservable=h},{"../Observable":29,"../Subscription":37,"../util/errorObject":225,"../util/isFunction":230,"../util/tryCatch":240}],99:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/isArray"),o=e("../util/isArrayLike"),a=e("../util/isPromise"),s=e("./PromiseObservable"),c=e("./IteratorObservable"),u=e("./ArrayObservable"),h=e("./ArrayLikeObservable"),l=e("../symbol/iterator"),p=e("../Observable"),d=e("../operators/observeOn"),f=e("../symbol/observable"),m=function(e){function t(t,r){e.call(this,null),this.ish=t,this.scheduler=r}return n(t,e),t.create=function(e,r){if(null!=e){if("function"==typeof e[f.observable])return e instanceof p.Observable&&!r?e:new t(e,r);if(i.isArray(e))return new u.ArrayObservable(e,r);if(a.isPromise(e))return new s.PromiseObservable(e,r);if("function"==typeof e[l.iterator]||"string"==typeof e)return new c.IteratorObservable(e,r);if(o.isArrayLike(e))return new h.ArrayLikeObservable(e,r)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")},t.prototype._subscribe=function(e){var t=this.ish,r=this.scheduler;return null==r?t[f.observable]().subscribe(e):t[f.observable]().subscribe(new d.ObserveOnSubscriber(e,r,0))},t}(p.Observable);r.FromObservable=m},{"../Observable":29,"../operators/observeOn":182,"../symbol/iterator":215,"../symbol/observable":216,"../util/isArray":227,"../util/isArrayLike":228,"../util/isPromise":233,"./ArrayLikeObservable":92,"./ArrayObservable":93,"./IteratorObservable":100,"./PromiseObservable":101}],100:[function(e,t,r){"use strict";function n(e){var t=+e.length;return isNaN(t)?0:0!==t&&function(e){return"number"==typeof e&&o.root.isFinite(e)}(t)?(t=function(e){var t=+e;if(0===t)return t;if(isNaN(t))return t;return t<0?-1:1}(t)*Math.floor(Math.abs(t)))<=0?0:t>l?l:t:t}var i=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},o=e("../util/root"),a=e("../Observable"),s=e("../symbol/iterator"),c=function(e){function t(t,r){if(e.call(this),this.scheduler=r,null==t)throw new Error("iterator cannot be null.");this.iterator=function(e){var t=e[s.iterator];if(!t&&"string"==typeof e)return new u(e);if(!t&&void 0!==e.length)return new h(e);if(!t)throw new TypeError("object is not iterable");return e[s.iterator]()}(t)}return i(t,e),t.create=function(e,r){return new t(e,r)},t.dispatch=function(e){var t=e.index,r=e.hasError,n=e.iterator,i=e.subscriber;if(r)i.error(e.error);else{var o=n.next();o.done?i.complete():(i.next(o.value),e.index=t+1,i.closed?"function"==typeof n.return&&n.return():this.schedule(e))}},t.prototype._subscribe=function(e){var r=this.iterator,n=this.scheduler;if(n)return n.schedule(t.dispatch,0,{index:0,iterator:r,subscriber:e});for(;;){var i=r.next();if(i.done){e.complete();break}if(e.next(i.value),e.closed){"function"==typeof r.return&&r.return();break}}},t}(a.Observable);r.IteratorObservable=c;var u=function(){function e(e,t,r){void 0===t&&(t=0),void 0===r&&(r=e.length),this.str=e,this.idx=t,this.len=r}return e.prototype[s.iterator]=function(){return this},e.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.str.charAt(this.idx++)}:{done:!0,value:void 0}},e}(),h=function(){function e(e,t,r){void 0===t&&(t=0),void 0===r&&(r=n(e)),this.arr=e,this.idx=t,this.len=r}return e.prototype[s.iterator]=function(){return this},e.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.arr[this.idx++]}:{done:!0,value:void 0}},e}(),l=Math.pow(2,53)-1},{"../Observable":29,"../symbol/iterator":215,"../util/root":237}],101:[function(e,t,r){"use strict";function n(e){var t=e.value,r=e.subscriber;r.closed||(r.next(t),r.complete())}function i(e){var t=e.err,r=e.subscriber;r.closed||r.error(t)}var o=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},a=e("../util/root"),s=function(e){function t(t,r){e.call(this),this.promise=t,this.scheduler=r}return o(t,e),t.create=function(e,r){return new t(e,r)},t.prototype._subscribe=function(e){var t=this,r=this.promise,o=this.scheduler;if(null==o)this._isScalar?e.closed||(e.next(this.value),e.complete()):r.then(function(r){t.value=r,t._isScalar=!0,e.closed||(e.next(r),e.complete())},function(t){e.closed||e.error(t)}).then(null,function(e){a.root.setTimeout(function(){throw e})});else if(this._isScalar){if(!e.closed)return o.schedule(n,0,{value:this.value,subscriber:e})}else r.then(function(r){t.value=r,t._isScalar=!0,e.closed||e.add(o.schedule(n,0,{value:r,subscriber:e}))},function(t){e.closed||e.add(o.schedule(i,0,{err:t,subscriber:e}))}).then(null,function(e){a.root.setTimeout(function(){throw e})})},t}(e("../Observable").Observable);r.PromiseObservable=s},{"../Observable":29,"../util/root":237}],102:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r){e.call(this),this.value=t,this.scheduler=r,this._isScalar=!0,r&&(this._isScalar=!1)}return n(t,e),t.create=function(e,r){return new t(e,r)},t.dispatch=function(e){var t=e.done,r=e.value,n=e.subscriber;t?n.complete():(n.next(r),n.closed||(e.done=!0,this.schedule(e)))},t.prototype._subscribe=function(e){var r=this.value,n=this.scheduler;if(n)return n.schedule(t.dispatch,0,{done:!1,value:r,subscriber:e});e.next(r),e.closed||e.complete()},t}(e("../Observable").Observable);r.ScalarObservable=i},{"../Observable":29}],103:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/isNumeric"),o=e("../Observable"),a=e("../scheduler/async"),s=e("../util/isScheduler"),c=e("../util/isDate"),u=function(e){function t(t,r,n){void 0===t&&(t=0),e.call(this),this.period=-1,this.dueTime=0,i.isNumeric(r)?this.period=Number(r)<1&&1||Number(r):s.isScheduler(r)&&(n=r),s.isScheduler(n)||(n=a.async),this.scheduler=n,this.dueTime=c.isDate(t)?+t-this.scheduler.now():t}return n(t,e),t.create=function(e,r,n){return void 0===e&&(e=0),new t(e,r,n)},t.dispatch=function(e){var t=e.index,r=e.period,n=e.subscriber;if(n.next(t),!n.closed){if(-1===r)return n.complete();e.index=t+1,this.schedule(e,r)}},t.prototype._subscribe=function(e){var r=this.period,n=this.dueTime;return this.scheduler.schedule(t.dispatch,n,{index:0,period:r,subscriber:e})},t}(o.Observable);r.TimerObservable=u},{"../Observable":29,"../scheduler/async":213,"../util/isDate":229,"../util/isNumeric":231,"../util/isScheduler":234}],104:[function(e,t,r){"use strict";var n=e("../util/isScheduler"),i=e("../util/isArray"),o=e("./ArrayObservable"),a=e("../operators/combineLatest");r.combineLatest=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var r=null,s=null;return n.isScheduler(e[e.length-1])&&(s=e.pop()),"function"==typeof e[e.length-1]&&(r=e.pop()),1===e.length&&i.isArray(e[0])&&(e=e[0]),new o.ArrayObservable(e,s).lift(new a.CombineLatestOperator(r))}},{"../operators/combineLatest":164,"../util/isArray":227,"../util/isScheduler":234,"./ArrayObservable":93}],105:[function(e,t,r){"use strict";var n=e("../util/isScheduler"),i=e("./of"),o=e("./from"),a=e("../operators/concatAll");r.concat=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return 1===e.length||2===e.length&&n.isScheduler(e[1])?o.from(e[0]):a.concatAll()(i.of.apply(void 0,e))}},{"../operators/concatAll":166,"../util/isScheduler":234,"./from":108,"./of":112}],106:[function(e,t,r){"use strict";var n=e("./DeferObservable");r.defer=n.DeferObservable.create},{"./DeferObservable":95}],107:[function(e,t,r){"use strict";var n=e("./EmptyObservable");r.empty=n.EmptyObservable.create},{"./EmptyObservable":96}],108:[function(e,t,r){"use strict";var n=e("./FromObservable");r.from=n.FromObservable.create},{"./FromObservable":99}],109:[function(e,t,r){"use strict";var n=e("./FromEventObservable");r.fromEvent=n.FromEventObservable.create},{"./FromEventObservable":98}],110:[function(e,t,r){"use strict";var n=e("./PromiseObservable");r.fromPromise=n.PromiseObservable.create},{"./PromiseObservable":101}],111:[function(e,t,r){"use strict";var n=e("../operator/merge");r.merge=n.mergeStatic},{"../operator/merge":134}],112:[function(e,t,r){"use strict";var n=e("./ArrayObservable");r.of=n.ArrayObservable.of},{"./ArrayObservable":93}],113:[function(e,t,r){"use strict";var n=e("./ErrorObservable");r._throw=n.ErrorObservable.create},{"./ErrorObservable":97}],114:[function(e,t,r){"use strict";var n=e("./TimerObservable");r.timer=n.TimerObservable.create},{"./TimerObservable":103}],115:[function(e,t,r){"use strict";var n=e("../operators/zip");r.zip=n.zipStatic},{"../operators/zip":207}],116:[function(e,t,r){"use strict";var n=e("../scheduler/async"),i=e("../operators/auditTime");r.auditTime=function(e,t){return void 0===t&&(t=n.async),i.auditTime(e,t)(this)}},{"../operators/auditTime":159,"../scheduler/async":213}],117:[function(e,t,r){"use strict";var n=e("../operators/buffer");r.buffer=function(e){return n.buffer(e)(this)}},{"../operators/buffer":160}],118:[function(e,t,r){"use strict";var n=e("../operators/bufferCount");r.bufferCount=function(e,t){return void 0===t&&(t=null),n.bufferCount(e,t)(this)}},{"../operators/bufferCount":161}],119:[function(e,t,r){"use strict";var n=e("../operators/bufferWhen");r.bufferWhen=function(e){return n.bufferWhen(e)(this)}},{"../operators/bufferWhen":162}],120:[function(e,t,r){"use strict";var n=e("../operators/catchError");r._catch=function(e){return n.catchError(e)(this)}},{"../operators/catchError":163}],121:[function(e,t,r){"use strict";var n=e("../operators/combineLatest");r.combineLatest=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.combineLatest.apply(void 0,e)(this)}},{"../operators/combineLatest":164}],122:[function(e,t,r){"use strict";var n=e("../operators/concat");r.concat=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.concat.apply(void 0,e)(this)}},{"../operators/concat":165}],123:[function(e,t,r){"use strict";var n=e("../scheduler/async"),i=e("../operators/debounceTime");r.debounceTime=function(e,t){return void 0===t&&(t=n.async),i.debounceTime(e,t)(this)}},{"../operators/debounceTime":167,"../scheduler/async":213}],124:[function(e,t,r){"use strict";var n=e("../scheduler/async"),i=e("../operators/delay");r.delay=function(e,t){return void 0===t&&(t=n.async),i.delay(e,t)(this)}},{"../operators/delay":169,"../scheduler/async":213}],125:[function(e,t,r){"use strict";var n=e("../operators/distinct");r.distinct=function(e,t){return n.distinct(e,t)(this)}},{"../operators/distinct":170}],126:[function(e,t,r){"use strict";var n=e("../operators/distinctUntilChanged");r.distinctUntilChanged=function(e,t){return n.distinctUntilChanged(e,t)(this)}},{"../operators/distinctUntilChanged":171}],127:[function(e,t,r){"use strict";var n=e("../operators/tap");r._do=function(e,t,r){return n.tap(e,t,r)(this)}},{"../operators/tap":202}],128:[function(e,t,r){"use strict";var n=e("../operators/expand");r.expand=function(e,t,r){return void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=void 0),t=(t||0)<1?Number.POSITIVE_INFINITY:t,n.expand(e,t,r)(this)}},{"../operators/expand":172}],129:[function(e,t,r){"use strict";var n=e("../operators/filter");r.filter=function(e,t){return n.filter(e,t)(this)}},{"../operators/filter":173}],130:[function(e,t,r){"use strict";var n=e("../operators/finalize");r._finally=function(e){return n.finalize(e)(this)}},{"../operators/finalize":174}],131:[function(e,t,r){"use strict";var n=e("../operators/first");r.first=function(e,t,r){return n.first(e,t,r)(this)}},{"../operators/first":175}],132:[function(e,t,r){"use strict";var n=e("../operators/last");r.last=function(e,t,r){return n.last(e,t,r)(this)}},{"../operators/last":176}],133:[function(e,t,r){"use strict";var n=e("../operators/map");r.map=function(e,t){return n.map(e,t)(this)}},{"../operators/map":177}],134:[function(e,t,r){"use strict";var n=e("../operators/merge"),i=e("../operators/merge");r.mergeStatic=i.mergeStatic,r.merge=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.merge.apply(void 0,e)(this)}},{"../operators/merge":178}],135:[function(e,t,r){"use strict";var n=e("../operators/mergeAll");r.mergeAll=function(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),n.mergeAll(e)(this)}},{"../operators/mergeAll":179}],136:[function(e,t,r){"use strict";var n=e("../operators/mergeMap");r.mergeMap=function(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),n.mergeMap(e,t,r)(this)}},{"../operators/mergeMap":180}],137:[function(e,t,r){"use strict";var n=e("../operators/pairwise");r.pairwise=function(){return n.pairwise()(this)}},{"../operators/pairwise":183}],138:[function(e,t,r){"use strict";var n=e("../operators/pluck");r.pluck=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.pluck.apply(void 0,e)(this)}},{"../operators/pluck":184}],139:[function(e,t,r){"use strict";var n=e("../operators/publish");r.publish=function(e){return n.publish(e)(this)}},{"../operators/publish":185}],140:[function(e,t,r){"use strict";var n=e("../operators/publishReplay");r.publishReplay=function(e,t,r,i){return n.publishReplay(e,t,r,i)(this)}},{"../operators/publishReplay":186}],141:[function(e,t,r){"use strict";var n=e("../operators/reduce");r.reduce=function(e,t){return arguments.length>=2?n.reduce(e,t)(this):n.reduce(e)(this)}},{"../operators/reduce":187}],142:[function(e,t,r){"use strict";var n=e("../operators/retry");r.retry=function(e){return void 0===e&&(e=-1),n.retry(e)(this)}},{"../operators/retry":189}],143:[function(e,t,r){"use strict";var n=e("../operators/sample");r.sample=function(e){return n.sample(e)(this)}},{"../operators/sample":190}],144:[function(e,t,r){"use strict";var n=e("../operators/scan");r.scan=function(e,t){return arguments.length>=2?n.scan(e,t)(this):n.scan(e)(this)}},{"../operators/scan":191}],145:[function(e,t,r){"use strict";var n=e("../operators/share");r.share=function(){return n.share()(this)}},{"../operators/share":192}],146:[function(e,t,r){"use strict";var n=e("../operators/skip");r.skip=function(e){return n.skip(e)(this)}},{"../operators/skip":193}],147:[function(e,t,r){"use strict";var n=e("../operators/skipUntil");r.skipUntil=function(e){return n.skipUntil(e)(this)}},{"../operators/skipUntil":194}],148:[function(e,t,r){"use strict";var n=e("../operators/skipWhile");r.skipWhile=function(e){return n.skipWhile(e)(this)}},{"../operators/skipWhile":195}],149:[function(e,t,r){"use strict";var n=e("../operators/startWith");r.startWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.startWith.apply(void 0,e)(this)}},{"../operators/startWith":196}],150:[function(e,t,r){"use strict";var n=e("../operators/switchMap");r.switchMap=function(e,t){return n.switchMap(e,t)(this)}},{"../operators/switchMap":197}],151:[function(e,t,r){"use strict";var n=e("../operators/take");r.take=function(e){return n.take(e)(this)}},{"../operators/take":198}],152:[function(e,t,r){"use strict";var n=e("../operators/takeUntil");r.takeUntil=function(e){return n.takeUntil(e)(this)}},{"../operators/takeUntil":200}],153:[function(e,t,r){"use strict";var n=e("../operators/takeWhile");r.takeWhile=function(e){return n.takeWhile(e)(this)}},{"../operators/takeWhile":201}],154:[function(e,t,r){"use strict";var n=e("../scheduler/async"),i=e("../operators/throttle"),o=e("../operators/throttleTime");r.throttleTime=function(e,t,r){return void 0===t&&(t=n.async),void 0===r&&(r=i.defaultThrottleConfig),o.throttleTime(e,t,r)(this)}},{"../operators/throttle":203,"../operators/throttleTime":204,"../scheduler/async":213}],155:[function(e,t,r){"use strict";var n=e("../scheduler/async"),i=e("../operators/timeout");r.timeout=function(e,t){return void 0===t&&(t=n.async),i.timeout(e,t)(this)}},{"../operators/timeout":205,"../scheduler/async":213}],156:[function(e,t,r){"use strict";var n=e("../operators/withLatestFrom");r.withLatestFrom=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.withLatestFrom.apply(void 0,e)(this)}},{"../operators/withLatestFrom":206}],157:[function(e,t,r){"use strict";var n=e("../operators/zip");r.zipProto=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.zip.apply(void 0,e)(this)}},{"../operators/zip":207}],158:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/tryCatch"),o=e("../util/errorObject"),a=e("../OuterSubscriber"),s=e("../util/subscribeToResult");r.audit=function(e){return function(t){return t.lift(new c(e))}};var c=function(){function e(e){this.durationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.durationSelector))},e}(),u=function(e){function t(t,r){e.call(this,t),this.durationSelector=r,this.hasValue=!1}return n(t,e),t.prototype._next=function(e){if(this.value=e,this.hasValue=!0,!this.throttled){var t=i.tryCatch(this.durationSelector)(e);if(t===o.errorObject)this.destination.error(o.errorObject.e);else{var r=s.subscribeToResult(this,t);r.closed?this.clearThrottle():this.add(this.throttled=r)}}},t.prototype.clearThrottle=function(){var e=this.value,t=this.hasValue,r=this.throttled;r&&(this.remove(r),this.throttled=null,r.unsubscribe()),t&&(this.value=null,this.hasValue=!1,this.destination.next(e))},t.prototype.notifyNext=function(e,t,r,n){this.clearThrottle()},t.prototype.notifyComplete=function(){this.clearThrottle()},t}(a.OuterSubscriber)},{"../OuterSubscriber":31,"../util/errorObject":225,"../util/subscribeToResult":238,"../util/tryCatch":240}],159:[function(e,t,r){"use strict";var n=e("../scheduler/async"),i=e("./audit"),o=e("../observable/timer");r.auditTime=function(e,t){return void 0===t&&(t=n.async),i.audit(function(){return o.timer(e,t)})}},{"../observable/timer":114,"../scheduler/async":213,"./audit":158}],160:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.buffer=function(e){return function(t){return t.lift(new a(e))}};var a=function(){function e(e){this.closingNotifier=e}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.closingNotifier))},e}(),s=function(e){function t(t,r){e.call(this,t),this.buffer=[],this.add(o.subscribeToResult(this,r))}return n(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.buffer;this.buffer=[],this.destination.next(o)},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],161:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.bufferCount=function(e,t){return void 0===t&&(t=null),function(r){return r.lift(new o(e,t))}};var o=function(){function e(e,t){this.bufferSize=e,this.startBufferEvery=t,this.subscriberClass=t&&e!==t?s:a}return e.prototype.call=function(e,t){return t.subscribe(new this.subscriberClass(e,this.bufferSize,this.startBufferEvery))},e}(),a=function(e){function t(t,r){e.call(this,t),this.bufferSize=r,this.buffer=[]}return n(t,e),t.prototype._next=function(e){var t=this.buffer;t.push(e),t.length==this.bufferSize&&(this.destination.next(t),this.buffer=[])},t.prototype._complete=function(){var t=this.buffer;t.length>0&&this.destination.next(t),e.prototype._complete.call(this)},t}(i.Subscriber),s=function(e){function t(t,r,n){e.call(this,t),this.bufferSize=r,this.startBufferEvery=n,this.buffers=[],this.count=0}return n(t,e),t.prototype._next=function(e){var t=this.bufferSize,r=this.startBufferEvery,n=this.buffers,i=this.count;this.count++,i%r==0&&n.push([]);for(var o=n.length;o--;){var a=n[o];a.push(e),a.length===t&&(n.splice(o,1),this.destination.next(a))}},t.prototype._complete=function(){for(var t=this.buffers,r=this.destination;t.length>0;){var n=t.shift();n.length>0&&r.next(n)}e.prototype._complete.call(this)},t}(i.Subscriber)},{"../Subscriber":36}],162:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscription"),o=e("../util/tryCatch"),a=e("../util/errorObject"),s=e("../OuterSubscriber"),c=e("../util/subscribeToResult");r.bufferWhen=function(e){return function(t){return t.lift(new u(e))}};var u=function(){function e(e){this.closingSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new h(e,this.closingSelector))},e}(),h=function(e){function t(t,r){e.call(this,t),this.closingSelector=r,this.subscribing=!1,this.openBuffer()}return n(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype._complete=function(){var t=this.buffer;t&&this.destination.next(t),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},t.prototype.notifyNext=function(e,t,r,n,i){this.openBuffer()},t.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},t.prototype.openBuffer=function(){var e=this.closingSubscription;e&&(this.remove(e),e.unsubscribe());var t=this.buffer;this.buffer&&this.destination.next(t),this.buffer=[];var r=o.tryCatch(this.closingSelector)();r===a.errorObject?this.error(a.errorObject.e):(e=new i.Subscription,this.closingSubscription=e,this.add(e),this.subscribing=!0,e.add(c.subscribeToResult(this,r)),this.subscribing=!1)},t}(s.OuterSubscriber)},{"../OuterSubscriber":31,"../Subscription":37,"../util/errorObject":225,"../util/subscribeToResult":238,"../util/tryCatch":240}],163:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.catchError=function(e){return function(t){var r=new a(e),n=t.lift(r);return r.caught=n}};var a=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.selector,this.caught))},e}(),s=function(e){function t(t,r,n){e.call(this,t),this.selector=r,this.caught=n}return n(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=void 0;try{r=this.selector(t,this.caught)}catch(t){return void e.prototype.error.call(this,t)}this._unsubscribeAndRecycle(),this.add(o.subscribeToResult(this,r))}},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],164:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../observable/ArrayObservable"),o=e("../util/isArray"),a=e("../OuterSubscriber"),s=e("../util/subscribeToResult"),c={};r.combineLatest=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var r=null;return"function"==typeof e[e.length-1]&&(r=e.pop()),1===e.length&&o.isArray(e[0])&&(e=e[0].slice()),function(t){return t.lift.call(new i.ArrayObservable([t].concat(e)),new u(r))}};var u=function(){function e(e){this.project=e}return e.prototype.call=function(e,t){return t.subscribe(new h(e,this.project))},e}();r.CombineLatestOperator=u;var h=function(e){function t(t,r){e.call(this,t),this.project=r,this.active=0,this.values=[],this.observables=[]}return n(t,e),t.prototype._next=function(e){this.values.push(c),this.observables.push(e)},t.prototype._complete=function(){var e=this.observables,t=e.length;if(0===t)this.destination.complete();else{this.active=t,this.toRespond=t;for(var r=0;r<t;r++){var n=e[r];this.add(s.subscribeToResult(this,n,n,r))}}},t.prototype.notifyComplete=function(e){0==(this.active-=1)&&this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.values,a=o[r],s=this.toRespond?a===c?--this.toRespond:this.toRespond:0;o[r]=t,0===s&&(this.project?this._tryProject(o):this.destination.next(o.slice()))},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(a.OuterSubscriber);r.CombineLatestSubscriber=h},{"../OuterSubscriber":31,"../observable/ArrayObservable":93,"../util/isArray":227,"../util/subscribeToResult":238}],165:[function(e,t,r){"use strict";var n=e("../observable/concat");r.concat=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){return t.lift.call(n.concat.apply(void 0,[t].concat(e)))}}},{"../observable/concat":105}],166:[function(e,t,r){"use strict";var n=e("./mergeAll");r.concatAll=function(){return n.mergeAll(1)}},{"./mergeAll":179}],167:[function(e,t,r){"use strict";function n(e){e.debouncedNext()}var i=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},o=e("../Subscriber"),a=e("../scheduler/async");r.debounceTime=function(e,t){return void 0===t&&(t=a.async),function(r){return r.lift(new s(e,t))}};var s=function(){function e(e,t){this.dueTime=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new c(e,this.dueTime,this.scheduler))},e}(),c=function(e){function t(t,r,n){e.call(this,t),this.dueTime=r,this.scheduler=n,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}return i(t,e),t.prototype._next=function(e){this.clearDebounce(),this.lastValue=e,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(n,this.dueTime,this))},t.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},t.prototype.debouncedNext=function(){this.clearDebounce(),this.hasValue&&(this.destination.next(this.lastValue),this.lastValue=null,this.hasValue=!1)},t.prototype.clearDebounce=function(){var e=this.debouncedSubscription;null!==e&&(this.remove(e),e.unsubscribe(),this.debouncedSubscription=null)},t}(o.Subscriber)},{"../Subscriber":36,"../scheduler/async":213}],168:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.defaultIfEmpty=function(e){return void 0===e&&(e=null),function(t){return t.lift(new o(e))}};var o=function(){function e(e){this.defaultValue=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.defaultValue))},e}(),a=function(e){function t(t,r){e.call(this,t),this.defaultValue=r,this.isEmpty=!0}return n(t,e),t.prototype._next=function(e){this.isEmpty=!1,this.destination.next(e)},t.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()},t}(i.Subscriber)},{"../Subscriber":36}],169:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../scheduler/async"),o=e("../util/isDate"),a=e("../Subscriber"),s=e("../Notification");r.delay=function(e,t){void 0===t&&(t=i.async);var r=o.isDate(e)?+e-t.now():Math.abs(e);return function(e){return e.lift(new c(r,t))}};var c=function(){function e(e,t){this.delay=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.delay,this.scheduler))},e}(),u=function(e){function t(t,r,n){e.call(this,t),this.delay=r,this.scheduler=n,this.queue=[],this.active=!1,this.errored=!1}return n(t,e),t.dispatch=function(e){for(var t=e.source,r=t.queue,n=e.scheduler,i=e.destination;r.length>0&&r[0].time-n.now()<=0;)r.shift().notification.observe(i);if(r.length>0){var o=Math.max(0,r[0].time-n.now());this.schedule(e,o)}else t.active=!1},t.prototype._schedule=function(e){this.active=!0,this.add(e.schedule(t.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))},t.prototype.scheduleNotification=function(e){if(!0!==this.errored){var t=this.scheduler,r=new h(t.now()+this.delay,e);this.queue.push(r),!1===this.active&&this._schedule(t)}},t.prototype._next=function(e){this.scheduleNotification(s.Notification.createNext(e))},t.prototype._error=function(e){this.errored=!0,this.queue=[],this.destination.error(e)},t.prototype._complete=function(){this.scheduleNotification(s.Notification.createComplete())},t}(a.Subscriber),h=function(){return function(e,t){this.time=e,this.notification=t}}()},{"../Notification":28,"../Subscriber":36,"../scheduler/async":213,"../util/isDate":229}],170:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult"),a=e("../util/Set");r.distinct=function(e,t){return function(r){return r.lift(new s(e,t))}};var s=function(){function e(e,t){this.keySelector=e,this.flushes=t}return e.prototype.call=function(e,t){return t.subscribe(new c(e,this.keySelector,this.flushes))},e}(),c=function(e){function t(t,r,n){e.call(this,t),this.keySelector=r,this.values=new a.Set,n&&this.add(o.subscribeToResult(this,n))}return n(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.values.clear()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype._next=function(e){this.keySelector?this._useKeySelector(e):this._finalizeNext(e,e)},t.prototype._useKeySelector=function(e){var t,r=this.destination;try{t=this.keySelector(e)}catch(e){return void r.error(e)}this._finalizeNext(t,e)},t.prototype._finalizeNext=function(e,t){var r=this.values;r.has(e)||(r.add(e),this.destination.next(t))},t}(i.OuterSubscriber);r.DistinctSubscriber=c},{"../OuterSubscriber":31,"../util/Set":222,"../util/subscribeToResult":238}],171:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../util/tryCatch"),a=e("../util/errorObject");r.distinctUntilChanged=function(e,t){return function(r){return r.lift(new s(e,t))}};var s=function(){function e(e,t){this.compare=e,this.keySelector=t}return e.prototype.call=function(e,t){return t.subscribe(new c(e,this.compare,this.keySelector))},e}(),c=function(e){function t(t,r,n){e.call(this,t),this.keySelector=n,this.hasKey=!1,"function"==typeof r&&(this.compare=r)}return n(t,e),t.prototype.compare=function(e,t){return e===t},t.prototype._next=function(e){var t=e;if(this.keySelector&&(t=o.tryCatch(this.keySelector)(e))===a.errorObject)return this.destination.error(a.errorObject.e);var r=!1;if(this.hasKey){if((r=o.tryCatch(this.compare)(this.key,t))===a.errorObject)return this.destination.error(a.errorObject.e)}else this.hasKey=!0;!1===Boolean(r)&&(this.key=t,this.destination.next(e))},t}(i.Subscriber)},{"../Subscriber":36,"../util/errorObject":225,"../util/tryCatch":240}],172:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/tryCatch"),o=e("../util/errorObject"),a=e("../OuterSubscriber"),s=e("../util/subscribeToResult");r.expand=function(e,t,r){return void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=void 0),t=(t||0)<1?Number.POSITIVE_INFINITY:t,function(n){return n.lift(new c(e,t,r))}};var c=function(){function e(e,t,r){this.project=e,this.concurrent=t,this.scheduler=r}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.project,this.concurrent,this.scheduler))},e}();r.ExpandOperator=c;var u=function(e){function t(t,r,n,i){e.call(this,t),this.project=r,this.concurrent=n,this.scheduler=i,this.index=0,this.active=0,this.hasCompleted=!1,n<Number.POSITIVE_INFINITY&&(this.buffer=[])}return n(t,e),t.dispatch=function(e){var t=e.subscriber,r=e.result,n=e.value,i=e.index;t.subscribeToProjection(r,n,i)},t.prototype._next=function(e){var r=this.destination;if(r.closed)this._complete();else{var n=this.index++;if(this.active<this.concurrent){r.next(e);var a=i.tryCatch(this.project)(e,n);if(a===o.errorObject)r.error(o.errorObject.e);else if(this.scheduler){var s={subscriber:this,result:a,value:e,index:n};this.add(this.scheduler.schedule(t.dispatch,0,s))}else this.subscribeToProjection(a,e,n)}else this.buffer.push(e)}},t.prototype.subscribeToProjection=function(e,t,r){this.active++,this.add(s.subscribeToResult(this,e,t,r))},t.prototype._complete=function(){this.hasCompleted=!0,this.hasCompleted&&0===this.active&&this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){this._next(t)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.remove(e),this.active--,t&&t.length>0&&this._next(t.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},t}(a.OuterSubscriber);r.ExpandSubscriber=u},{"../OuterSubscriber":31,"../util/errorObject":225,"../util/subscribeToResult":238,"../util/tryCatch":240}],173:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.filter=function(e,t){return function(r){return r.lift(new o(e,t))}};var o=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.predicate,this.thisArg))},e}(),a=function(e){function t(t,r,n){e.call(this,t),this.predicate=r,this.thisArg=n,this.count=0}return n(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(i.Subscriber)},{"../Subscriber":36}],174:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../Subscription");r.finalize=function(e){return function(t){return t.lift(new a(e))}};var a=function(){function e(e){this.callback=e}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.callback))},e}(),s=function(e){function t(t,r){e.call(this,t),this.add(new o.Subscription(r))}return n(t,e),t}(i.Subscriber)},{"../Subscriber":36,"../Subscription":37}],175:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../util/EmptyError");r.first=function(e,t,r){return function(n){return n.lift(new a(e,t,r,n))}};var a=function(){function e(e,t,r,n){this.predicate=e,this.resultSelector=t,this.defaultValue=r,this.source=n}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.predicate,this.resultSelector,this.defaultValue,this.source))},e}(),s=function(e){function t(t,r,n,i,o){e.call(this,t),this.predicate=r,this.resultSelector=n,this.defaultValue=i,this.source=o,this.index=0,this.hasCompleted=!1,this._emitted=!1}return n(t,e),t.prototype._next=function(e){var t=this.index++;this.predicate?this._tryPredicate(e,t):this._emit(e,t)},t.prototype._tryPredicate=function(e,t){var r;try{r=this.predicate(e,t,this.source)}catch(e){return void this.destination.error(e)}r&&this._emit(e,t)},t.prototype._emit=function(e,t){this.resultSelector?this._tryResultSelector(e,t):this._emitFinal(e)},t.prototype._tryResultSelector=function(e,t){var r;try{r=this.resultSelector(e,t)}catch(e){return void this.destination.error(e)}this._emitFinal(r)},t.prototype._emitFinal=function(e){var t=this.destination;this._emitted||(this._emitted=!0,t.next(e),t.complete(),this.hasCompleted=!0)},t.prototype._complete=function(){var e=this.destination;this.hasCompleted||void 0===this.defaultValue?this.hasCompleted||e.error(new o.EmptyError):(e.next(this.defaultValue),e.complete())},t}(i.Subscriber)},{"../Subscriber":36,"../util/EmptyError":220}],176:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../util/EmptyError");r.last=function(e,t,r){return function(n){return n.lift(new a(e,t,r,n))}};var a=function(){function e(e,t,r,n){this.predicate=e,this.resultSelector=t,this.defaultValue=r,this.source=n}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.predicate,this.resultSelector,this.defaultValue,this.source))},e}(),s=function(e){function t(t,r,n,i,o){e.call(this,t),this.predicate=r,this.resultSelector=n,this.defaultValue=i,this.source=o,this.hasValue=!1,this.index=0,void 0!==i&&(this.lastValue=i,this.hasValue=!0)}return n(t,e),t.prototype._next=function(e){var t=this.index++;if(this.predicate)this._tryPredicate(e,t);else{if(this.resultSelector)return void this._tryResultSelector(e,t);this.lastValue=e,this.hasValue=!0}},t.prototype._tryPredicate=function(e,t){var r;try{r=this.predicate(e,t,this.source)}catch(e){return void this.destination.error(e)}if(r){if(this.resultSelector)return void this._tryResultSelector(e,t);this.lastValue=e,this.hasValue=!0}},t.prototype._tryResultSelector=function(e,t){var r;try{r=this.resultSelector(e,t)}catch(e){return void this.destination.error(e)}this.lastValue=r,this.hasValue=!0},t.prototype._complete=function(){var e=this.destination;this.hasValue?(e.next(this.lastValue),e.complete()):e.error(new o.EmptyError)},t}(i.Subscriber)},{"../Subscriber":36,"../util/EmptyError":220}],177:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.map=function(e,t){return function(r){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return r.lift(new o(e,t))}};var o=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.project,this.thisArg))},e}();r.MapOperator=o;var a=function(e){function t(t,r,n){e.call(this,t),this.project=r,this.count=0,this.thisArg=n||this}return n(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.Subscriber)},{"../Subscriber":36}],178:[function(e,t,r){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var r=Number.POSITIVE_INFINITY,n=null,c=e[e.length-1];return s.isScheduler(c)?(n=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(r=e.pop())):"number"==typeof c&&(r=e.pop()),null===n&&1===e.length&&e[0]instanceof i.Observable?e[0]:a.mergeAll(r)(new o.ArrayObservable(e,n))}var i=e("../Observable"),o=e("../observable/ArrayObservable"),a=e("./mergeAll"),s=e("../util/isScheduler");r.merge=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){return t.lift.call(n.apply(void 0,[t].concat(e)))}},r.mergeStatic=n},{"../Observable":29,"../observable/ArrayObservable":93,"../util/isScheduler":234,"./mergeAll":179}],179:[function(e,t,r){"use strict";var n=e("./mergeMap"),i=e("../util/identity");r.mergeAll=function(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),n.mergeMap(i.identity,null,e)}},{"../util/identity":226,"./mergeMap":180}],180:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/subscribeToResult"),o=e("../OuterSubscriber");r.mergeMap=function(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),function(n){return"number"==typeof t&&(r=t,t=null),n.lift(new a(e,t,r))}};var a=function(){function e(e,t,r){void 0===r&&(r=Number.POSITIVE_INFINITY),this.project=e,this.resultSelector=t,this.concurrent=r}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.project,this.resultSelector,this.concurrent))},e}();r.MergeMapOperator=a;var s=function(e){function t(t,r,n,i){void 0===i&&(i=Number.POSITIVE_INFINITY),e.call(this,t),this.project=r,this.resultSelector=n,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return n(t,e),t.prototype._next=function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)},t.prototype._tryNext=function(e){var t,r=this.index++;try{t=this.project(e,r)}catch(e){return void this.destination.error(e)}this.active++,this._innerSub(t,e,r)},t.prototype._innerSub=function(e,t,r){this.add(i.subscribeToResult(this,e,t,r))},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){this.resultSelector?this._notifyResultSelector(e,t,r,n):this.destination.next(t)},t.prototype._notifyResultSelector=function(e,t,r,n){var i;try{i=this.resultSelector(e,t,r,n)}catch(e){return void this.destination.error(e)}this.destination.next(i)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(o.OuterSubscriber);r.MergeMapSubscriber=s},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],181:[function(e,t,r){"use strict";var n=e("../observable/ConnectableObservable");r.multicast=function(e,t){return function(r){var o;if(o="function"==typeof e?e:function(){return e},"function"==typeof t)return r.lift(new i(o,t));var a=Object.create(r,n.connectableObservableDescriptor);return a.source=r,a.subjectFactory=o,a}};var i=function(){function e(e,t){this.subjectFactory=e,this.selector=t}return e.prototype.call=function(e,t){var r=this.selector,n=this.subjectFactory(),i=r(n).subscribe(e);return i.add(t.subscribe(n)),i},e}();r.MulticastOperator=i},{"../observable/ConnectableObservable":94}],182:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../Notification");r.observeOn=function(e,t){return void 0===t&&(t=0),function(r){return r.lift(new a(e,t))}};var a=function(){function e(e,t){void 0===t&&(t=0),this.scheduler=e,this.delay=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.scheduler,this.delay))},e}();r.ObserveOnOperator=a;var s=function(e){function t(t,r,n){void 0===n&&(n=0),e.call(this,t),this.scheduler=r,this.delay=n}return n(t,e),t.dispatch=function(e){var t=e.notification,r=e.destination;t.observe(r),this.unsubscribe()},t.prototype.scheduleMessage=function(e){this.add(this.scheduler.schedule(t.dispatch,this.delay,new c(e,this.destination)))},t.prototype._next=function(e){this.scheduleMessage(o.Notification.createNext(e))},t.prototype._error=function(e){this.scheduleMessage(o.Notification.createError(e))},t.prototype._complete=function(){this.scheduleMessage(o.Notification.createComplete())},t}(i.Subscriber);r.ObserveOnSubscriber=s;var c=function(){return function(e,t){this.notification=e,this.destination=t}}();r.ObserveOnMessage=c},{"../Notification":28,"../Subscriber":36}],183:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.pairwise=function(){return function(e){return e.lift(new o)}};var o=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new a(e))},e}(),a=function(e){function t(t){e.call(this,t),this.hasPrev=!1}return n(t,e),t.prototype._next=function(e){this.hasPrev?this.destination.next([this.prev,e]):this.hasPrev=!0,this.prev=e},t}(i.Subscriber)},{"../Subscriber":36}],184:[function(e,t,r){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var r=e.length;if(0===r)throw new Error("list of properties cannot be empty.");return function(t){return i.map(function(e,t){return function(r){for(var n=r,i=0;i<t;i++){var o=n[e[i]];if(void 0===o)return;n=o}return n}}(e,r))(t)}}var i=e("./map");r.pluck=n},{"./map":177}],185:[function(e,t,r){"use strict";var n=e("../Subject"),i=e("./multicast");r.publish=function(e){return e?i.multicast(function(){return new n.Subject},e):i.multicast(new n.Subject)}},{"../Subject":34,"./multicast":181}],186:[function(e,t,r){"use strict";var n=e("../ReplaySubject"),i=e("./multicast");r.publishReplay=function(e,t,r,o){r&&"function"!=typeof r&&(o=r);var a="function"==typeof r?r:void 0,s=new n.ReplaySubject(e,t,o);return function(e){return i.multicast(function(){return s},a)(e)}}},{"../ReplaySubject":32,"./multicast":181}],187:[function(e,t,r){"use strict";var n=e("./scan"),i=e("./takeLast"),o=e("./defaultIfEmpty"),a=e("../util/pipe");r.reduce=function(e,t){return arguments.length>=2?function(r){return a.pipe(n.scan(e,t),i.takeLast(1),o.defaultIfEmpty(t))(r)}:function(t){return a.pipe(n.scan(function(t,r,n){return e(t,r,n+1)}),i.takeLast(1))(t)}}},{"../util/pipe":236,"./defaultIfEmpty":168,"./scan":191,"./takeLast":199}],188:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.refCount=function(){return function(e){return e.lift(new o(e))}};var o=function(){function e(e){this.connectable=e}return e.prototype.call=function(e,t){var r=this.connectable;r._refCount++;var n=new a(e,r),i=t.subscribe(n);return n.closed||(n.connection=r.connect()),i},e}(),a=function(e){function t(t,r){e.call(this,t),this.connectable=r}return n(t,e),t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var r=this.connection,n=e._connection;this.connection=null,!n||r&&n!==r||n.unsubscribe()}}else this.connection=null},t}(i.Subscriber)},{"../Subscriber":36}],189:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.retry=function(e){return void 0===e&&(e=-1),function(t){return t.lift(new o(e,t))}};var o=function(){function e(e,t){this.count=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.count,this.source))},e}(),a=function(e){function t(t,r,n){e.call(this,t),this.count=r,this.source=n}return n(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=this.source,n=this.count;if(0===n)return e.prototype.error.call(this,t);n>-1&&(this.count=n-1),r.subscribe(this._unsubscribeAndRecycle())}},t}(i.Subscriber)},{"../Subscriber":36}],190:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.sample=function(e){return function(t){return t.lift(new a(e))}};var a=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){var r=new s(e),n=t.subscribe(r);return n.add(o.subscribeToResult(r,this.notifier)),n},e}(),s=function(e){function t(){e.apply(this,arguments),this.hasValue=!1}return n(t,e),t.prototype._next=function(e){this.value=e,this.hasValue=!0},t.prototype.notifyNext=function(e,t,r,n,i){this.emitValue()},t.prototype.notifyComplete=function(){this.emitValue()},t.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],191:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.scan=function(e,t){var r=!1;return arguments.length>=2&&(r=!0),function(n){return n.lift(new o(e,t,r))}};var o=function(){function e(e,t,r){void 0===r&&(r=!1),this.accumulator=e,this.seed=t,this.hasSeed=r}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.accumulator,this.seed,this.hasSeed))},e}(),a=function(e){function t(t,r,n,i){e.call(this,t),this.accumulator=r,this._seed=n,this.hasSeed=i,this.index=0}return n(t,e),Object.defineProperty(t.prototype,"seed",{get:function(){return this._seed},set:function(e){this.hasSeed=!0,this._seed=e},enumerable:!0,configurable:!0}),t.prototype._next=function(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)},t.prototype._tryNext=function(e){var t,r=this.index++;try{t=this.accumulator(this.seed,e,r)}catch(e){this.destination.error(e)}this.seed=t,this.destination.next(t)},t}(i.Subscriber)},{"../Subscriber":36}],192:[function(e,t,r){"use strict";function n(){return new a.Subject}var i=e("./multicast"),o=e("./refCount"),a=e("../Subject");r.share=function(){return function(e){return o.refCount()(i.multicast(n)(e))}}},{"../Subject":34,"./multicast":181,"./refCount":188}],193:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.skip=function(e){return function(t){return t.lift(new o(e))}};var o=function(){function e(e){this.total=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.total))},e}(),a=function(e){function t(t,r){e.call(this,t),this.total=r,this.count=0}return n(t,e),t.prototype._next=function(e){++this.count>this.total&&this.destination.next(e)},t}(i.Subscriber)},{"../Subscriber":36}],194:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.skipUntil=function(e){return function(t){return t.lift(new a(e))}};var a=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.notifier))},e}(),s=function(e){function t(t,r){e.call(this,t),this.hasValue=!1,this.isInnerStopped=!1,this.add(o.subscribeToResult(this,r))}return n(t,e),t.prototype._next=function(t){this.hasValue&&e.prototype._next.call(this,t)},t.prototype._complete=function(){this.isInnerStopped?e.prototype._complete.call(this):this.unsubscribe()},t.prototype.notifyNext=function(e,t,r,n,i){this.hasValue=!0},t.prototype.notifyComplete=function(){this.isInnerStopped=!0,this.isStopped&&e.prototype._complete.call(this)},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],195:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.skipWhile=function(e){return function(t){return t.lift(new o(e))}};var o=function(){function e(e){this.predicate=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.predicate))},e}(),a=function(e){function t(t,r){e.call(this,t),this.predicate=r,this.skipping=!0,this.index=0}return n(t,e),t.prototype._next=function(e){var t=this.destination;this.skipping&&this.tryCallPredicate(e),this.skipping||t.next(e)},t.prototype.tryCallPredicate=function(e){try{var t=this.predicate(e,this.index++);this.skipping=Boolean(t)}catch(e){this.destination.error(e)}},t}(i.Subscriber)},{"../Subscriber":36}],196:[function(e,t,r){"use strict";var n=e("../observable/ArrayObservable"),i=e("../observable/ScalarObservable"),o=e("../observable/EmptyObservable"),a=e("../observable/concat"),s=e("../util/isScheduler");r.startWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){var r=e[e.length-1];s.isScheduler(r)?e.pop():r=null;var c=e.length;return 1===c?a.concat(new i.ScalarObservable(e[0],r),t):c>1?a.concat(new n.ArrayObservable(e,r),t):a.concat(new o.EmptyObservable(r),t)}}},{"../observable/ArrayObservable":93,"../observable/EmptyObservable":96,"../observable/ScalarObservable":102,"../observable/concat":105,"../util/isScheduler":234}],197:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.switchMap=function(e,t){return function(r){return r.lift(new a(e,t))}};var a=function(){function e(e,t){this.project=e,this.resultSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.project,this.resultSelector))},e}(),s=function(e){function t(t,r,n){e.call(this,t),this.project=r,this.resultSelector=n,this.index=0}return n(t,e),t.prototype._next=function(e){var t,r=this.index++;try{t=this.project(e,r)}catch(e){return void this.destination.error(e)}this._innerSub(t,e,r)},t.prototype._innerSub=function(e,t,r){var n=this.innerSubscription;n&&n.unsubscribe(),this.add(this.innerSubscription=o.subscribeToResult(this,e,t,r))},t.prototype._complete=function(){var t=this.innerSubscription;t&&!t.closed||e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.innerSubscription=null},t.prototype.notifyComplete=function(t){this.remove(t),this.innerSubscription=null,this.isStopped&&e.prototype._complete.call(this)},t.prototype.notifyNext=function(e,t,r,n,i){this.resultSelector?this._tryNotifyNext(e,t,r,n):this.destination.next(t)},t.prototype._tryNotifyNext=function(e,t,r,n){var i;try{i=this.resultSelector(e,t,r,n)}catch(e){return void this.destination.error(e)}this.destination.next(i)},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],198:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../util/ArgumentOutOfRangeError"),a=e("../observable/EmptyObservable");r.take=function(e){return function(t){return 0===e?new a.EmptyObservable:t.lift(new s(e))}};var s=function(){function e(e){if(this.total=e,this.total<0)throw new o.ArgumentOutOfRangeError}return e.prototype.call=function(e,t){return t.subscribe(new c(e,this.total))},e}(),c=function(e){function t(t,r){e.call(this,t),this.total=r,this.count=0}return n(t,e),t.prototype._next=function(e){var t=this.total,r=++this.count;r<=t&&(this.destination.next(e),r===t&&(this.destination.complete(),this.unsubscribe()))},t}(i.Subscriber)},{"../Subscriber":36,"../observable/EmptyObservable":96,"../util/ArgumentOutOfRangeError":219}],199:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../util/ArgumentOutOfRangeError"),a=e("../observable/EmptyObservable");r.takeLast=function(e){return function(t){return 0===e?new a.EmptyObservable:t.lift(new s(e))}};var s=function(){function e(e){if(this.total=e,this.total<0)throw new o.ArgumentOutOfRangeError}return e.prototype.call=function(e,t){return t.subscribe(new c(e,this.total))},e}(),c=function(e){function t(t,r){e.call(this,t),this.total=r,this.ring=new Array,this.count=0}return n(t,e),t.prototype._next=function(e){var t=this.ring,r=this.total,n=this.count++;if(t.length<r)t.push(e);else{t[n%r]=e}},t.prototype._complete=function(){var e=this.destination,t=this.count;if(t>0)for(var r=this.count>=this.total?this.total:this.count,n=this.ring,i=0;i<r;i++){var o=t++%r;e.next(n[o])}e.complete()},t}(i.Subscriber)},{"../Subscriber":36,"../observable/EmptyObservable":96,"../util/ArgumentOutOfRangeError":219}],200:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.takeUntil=function(e){return function(t){return t.lift(new a(e))}};var a=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.notifier))},e}(),s=function(e){function t(t,r){e.call(this,t),this.notifier=r,this.add(o.subscribeToResult(this,r))}return n(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.complete()},t.prototype.notifyComplete=function(){},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],201:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.takeWhile=function(e){return function(t){return t.lift(new o(e))}};var o=function(){function e(e){this.predicate=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.predicate))},e}(),a=function(e){function t(t,r){e.call(this,t),this.predicate=r,this.index=0}return n(t,e),t.prototype._next=function(e){var t,r=this.destination;try{t=this.predicate(e,this.index++)}catch(e){return void r.error(e)}this.nextOrComplete(e,t)},t.prototype.nextOrComplete=function(e,t){var r=this.destination;Boolean(t)?r.next(e):r.complete()},t}(i.Subscriber)},{"../Subscriber":36}],202:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.tap=function(e,t,r){return function(n){return n.lift(new o(e,t,r))}};var o=function(){function e(e,t,r){this.nextOrObserver=e,this.error=t,this.complete=r}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.nextOrObserver,this.error,this.complete))},e}(),a=function(e){function t(t,r,n,o){e.call(this,t);var a=new i.Subscriber(r,n,o);a.syncErrorThrowable=!0,this.add(a),this.safeSubscriber=a}return n(t,e),t.prototype._next=function(e){var t=this.safeSubscriber;t.next(e),t.syncErrorThrown?this.destination.error(t.syncErrorValue):this.destination.next(e)},t.prototype._error=function(e){var t=this.safeSubscriber;t.error(e),t.syncErrorThrown?this.destination.error(t.syncErrorValue):this.destination.error(e)},t.prototype._complete=function(){var e=this.safeSubscriber;e.complete(),e.syncErrorThrown?this.destination.error(e.syncErrorValue):this.destination.complete()},t}(i.Subscriber)},{"../Subscriber":36}],203:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.defaultThrottleConfig={leading:!0,trailing:!1},r.throttle=function(e,t){return void 0===t&&(t=r.defaultThrottleConfig),function(r){return r.lift(new a(e,t.leading,t.trailing))}};var a=function(){function e(e,t,r){this.durationSelector=e,this.leading=t,this.trailing=r}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.durationSelector,this.leading,this.trailing))},e}(),s=function(e){function t(t,r,n,i){e.call(this,t),this.destination=t,this.durationSelector=r,this._leading=n,this._trailing=i,this._hasTrailingValue=!1}return n(t,e),t.prototype._next=function(e){if(this.throttled)this._trailing&&(this._hasTrailingValue=!0,this._trailingValue=e);else{var t=this.tryDurationSelector(e);t&&this.add(this.throttled=o.subscribeToResult(this,t)),this._leading&&(this.destination.next(e),this._trailing&&(this._hasTrailingValue=!0,this._trailingValue=e))}},t.prototype.tryDurationSelector=function(e){try{return this.durationSelector(e)}catch(e){return this.destination.error(e),null}},t.prototype._unsubscribe=function(){var e=this.throttled;this._trailingValue,this._hasTrailingValue,this._trailing;this._trailingValue=null,this._hasTrailingValue=!1,e&&(this.remove(e),this.throttled=null,e.unsubscribe())},t.prototype._sendTrailing=function(){var e=this,t=e.destination,r=e.throttled,n=e._trailing,i=e._trailingValue,o=e._hasTrailingValue;r&&n&&o&&(t.next(i),this._trailingValue=null,this._hasTrailingValue=!1)},t.prototype.notifyNext=function(e,t,r,n,i){this._sendTrailing(),this._unsubscribe()},t.prototype.notifyComplete=function(){this._sendTrailing(),this._unsubscribe()},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],204:[function(e,t,r){"use strict";function n(e){e.subscriber.clearThrottle()}var i=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},o=e("../Subscriber"),a=e("../scheduler/async"),s=e("./throttle");r.throttleTime=function(e,t,r){return void 0===t&&(t=a.async),void 0===r&&(r=s.defaultThrottleConfig),function(n){return n.lift(new c(e,t,r.leading,r.trailing))}};var c=function(){function e(e,t,r,n){this.duration=e,this.scheduler=t,this.leading=r,this.trailing=n}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.duration,this.scheduler,this.leading,this.trailing))},e}(),u=function(e){function t(t,r,n,i,o){e.call(this,t),this.duration=r,this.scheduler=n,this.leading=i,this.trailing=o,this._hasTrailingValue=!1,this._trailingValue=null}return i(t,e),t.prototype._next=function(e){this.throttled?this.trailing&&(this._trailingValue=e,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(n,this.duration,{subscriber:this})),this.leading&&this.destination.next(e))},t.prototype.clearThrottle=function(){var e=this.throttled;e&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),e.unsubscribe(),this.remove(e),this.throttled=null)},t}(o.Subscriber)},{"../Subscriber":36,"../scheduler/async":213,"./throttle":203}],205:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../scheduler/async"),o=e("../util/isDate"),a=e("../Subscriber"),s=e("../util/TimeoutError");r.timeout=function(e,t){void 0===t&&(t=i.async);var r=o.isDate(e),n=r?+e-t.now():Math.abs(e);return function(e){return e.lift(new c(n,r,t,new s.TimeoutError))}};var c=function(){function e(e,t,r,n){this.waitFor=e,this.absoluteTimeout=t,this.scheduler=r,this.errorInstance=n}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.absoluteTimeout,this.waitFor,this.scheduler,this.errorInstance))},e}(),u=function(e){function t(t,r,n,i,o){e.call(this,t),this.absoluteTimeout=r,this.waitFor=n,this.scheduler=i,this.errorInstance=o,this.action=null,this.scheduleTimeout()}return n(t,e),t.dispatchTimeout=function(e){e.error(e.errorInstance)},t.prototype.scheduleTimeout=function(){var e=this.action;e?this.action=e.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(t.dispatchTimeout,this.waitFor,this))},t.prototype._next=function(t){this.absoluteTimeout||this.scheduleTimeout(),e.prototype._next.call(this,t)},t.prototype._unsubscribe=function(){this.action=null,this.scheduler=null,this.errorInstance=null},t}(a.Subscriber)},{"../Subscriber":36,"../scheduler/async":213,"../util/TimeoutError":223,"../util/isDate":229}],206:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.withLatestFrom=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){var r;"function"==typeof e[e.length-1]&&(r=e.pop());var n=e;return t.lift(new a(n,r))}};var a=function(){function e(e,t){this.observables=e,this.project=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.observables,this.project))},e}(),s=function(e){function t(t,r,n){e.call(this,t),this.observables=r,this.project=n,this.toRespond=[];var i=r.length;this.values=new Array(i);for(a=0;a<i;a++)this.toRespond.push(a);for(var a=0;a<i;a++){var s=r[a];this.add(o.subscribeToResult(this,s,s,a))}}return n(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.values[r]=t;var o=this.toRespond;if(o.length>0){var a=o.indexOf(r);-1!==a&&o.splice(a,1)}},t.prototype.notifyComplete=function(){},t.prototype._next=function(e){if(0===this.toRespond.length){var t=[e].concat(this.values);this.project?this._tryProject(t):this.destination.next(t)}},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],207:[function(e,t,r){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var r=e[e.length-1];return"function"==typeof r&&e.pop(),new o.ArrayObservable(e).lift(new l(r))}var i=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},o=e("../observable/ArrayObservable"),a=e("../util/isArray"),s=e("../Subscriber"),c=e("../OuterSubscriber"),u=e("../util/subscribeToResult"),h=e("../symbol/iterator");r.zip=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){return t.lift.call(n.apply(void 0,[t].concat(e)))}},r.zipStatic=n;var l=function(){function e(e){this.project=e}return e.prototype.call=function(e,t){return t.subscribe(new p(e,this.project))},e}();r.ZipOperator=l;var p=function(e){function t(t,r,n){void 0===n&&(n=Object.create(null)),e.call(this,t),this.iterators=[],this.active=0,this.project="function"==typeof r?r:null,this.values=n}return i(t,e),t.prototype._next=function(e){var t=this.iterators;a.isArray(e)?t.push(new f(e)):"function"==typeof e[h.iterator]?t.push(new d(e[h.iterator]())):t.push(new m(this.destination,this,e))},t.prototype._complete=function(){var e=this.iterators,t=e.length;if(0!==t){this.active=t;for(var r=0;r<t;r++){var n=e[r];n.stillUnsubscribed?this.add(n.subscribe(n,r)):this.active--}}else this.destination.complete()},t.prototype.notifyInactive=function(){this.active--,0===this.active&&this.destination.complete()},t.prototype.checkIterators=function(){for(var e=this.iterators,t=e.length,r=this.destination,n=0;n<t;n++){if("function"==typeof(a=e[n]).hasValue&&!a.hasValue())return}for(var i=!1,o=[],n=0;n<t;n++){var a=e[n],s=a.next();if(a.hasCompleted()&&(i=!0),s.done)return void r.complete();o.push(s.value)}this.project?this._tryProject(o):r.next(o),i&&r.complete()},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(s.Subscriber);r.ZipSubscriber=p;var d=function(){function e(e){this.iterator=e,this.nextResult=e.next()}return e.prototype.hasValue=function(){return!0},e.prototype.next=function(){var e=this.nextResult;return this.nextResult=this.iterator.next(),e},e.prototype.hasCompleted=function(){var e=this.nextResult;return e&&e.done},e}(),f=function(){function e(e){this.array=e,this.index=0,this.length=0,this.length=e.length}return e.prototype[h.iterator]=function(){return this},e.prototype.next=function(e){var t=this.index++,r=this.array;return t<this.length?{value:r[t],done:!1}:{value:null,done:!0}},e.prototype.hasValue=function(){return this.array.length>this.index},e.prototype.hasCompleted=function(){return this.array.length===this.index},e}(),m=function(e){function t(t,r,n){e.call(this,t),this.parent=r,this.observable=n,this.stillUnsubscribed=!0,this.buffer=[],this.isComplete=!1}return i(t,e),t.prototype[h.iterator]=function(){return this},t.prototype.next=function(){var e=this.buffer;return 0===e.length&&this.isComplete?{value:null,done:!0}:{value:e.shift(),done:!1}},t.prototype.hasValue=function(){return this.buffer.length>0},t.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},t.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){this.buffer.push(t),this.parent.checkIterators()},t.prototype.subscribe=function(e,t){return u.subscribeToResult(this,this.observable,this,t)},t}(c.OuterSubscriber)},{"../OuterSubscriber":31,"../Subscriber":36,"../observable/ArrayObservable":93,"../symbol/iterator":215,"../util/isArray":227,"../util/subscribeToResult":238}],208:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r){e.call(this)}return n(t,e),t.prototype.schedule=function(e,t){return void 0===t&&(t=0),this},t}(e("../Subscription").Subscription);r.Action=i},{"../Subscription":37}],209:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/root"),o=function(e){function t(t,r){e.call(this,t,r),this.scheduler=t,this.work=r,this.pending=!1}return n(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e,this.pending=!0;var r=this.id,n=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(n,r,t)),this.delay=t,this.id=this.id||this.requestAsyncId(n,this.id,t),this},t.prototype.requestAsyncId=function(e,t,r){return void 0===r&&(r=0),i.root.setInterval(e.flush.bind(e,this),r)},t.prototype.recycleAsyncId=function(e,t,r){return void 0===r&&(r=0),null!==r&&this.delay===r&&!1===this.pending?t:i.root.clearInterval(t)&&void 0||void 0},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var r=this._execute(e,t);if(r)return r;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var r=!1,n=void 0;try{this.work(e)}catch(e){r=!0,n=!!e&&e||new Error(e)}if(r)return this.unsubscribe(),n},t.prototype._unsubscribe=function(){var e=this.id,t=this.scheduler,r=t.actions,n=r.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==n&&r.splice(n,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null},t}(e("./Action").Action);r.AsyncAction=o},{"../util/root":237,"./Action":208}],210:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){e.apply(this,arguments),this.actions=[],this.active=!1,this.scheduled=void 0}return n(t,e),t.prototype.flush=function(e){var t=this.actions;if(this.active)t.push(e);else{var r;this.active=!0;do{if(r=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,r){for(;e=t.shift();)e.unsubscribe();throw r}}},t}(e("../Scheduler").Scheduler);r.AsyncScheduler=i},{"../Scheduler":33}],211:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r){e.call(this,t,r),this.scheduler=t,this.work=r}return n(t,e),t.prototype.schedule=function(t,r){return void 0===r&&(r=0),r>0?e.prototype.schedule.call(this,t,r):(this.delay=r,this.state=t,this.scheduler.flush(this),this)},t.prototype.execute=function(t,r){return r>0||this.closed?e.prototype.execute.call(this,t,r):this._execute(t,r)},t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0?e.prototype.requestAsyncId.call(this,t,r,n):t.flush(this)},t}(e("./AsyncAction").AsyncAction);r.QueueAction=i},{"./AsyncAction":209}],212:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){e.apply(this,arguments)}return n(t,e),t}(e("./AsyncScheduler").AsyncScheduler);r.QueueScheduler=i},{"./AsyncScheduler":210}],213:[function(e,t,r){"use strict";var n=e("./AsyncAction"),i=e("./AsyncScheduler");r.async=new i.AsyncScheduler(n.AsyncAction)},{"./AsyncAction":209,"./AsyncScheduler":210}],214:[function(e,t,r){"use strict";var n=e("./QueueAction"),i=e("./QueueScheduler");r.queue=new i.QueueScheduler(n.QueueAction)},{"./QueueAction":211,"./QueueScheduler":212}],215:[function(e,t,r){"use strict";function n(e){var t=e.Symbol;if("function"==typeof t)return t.iterator||(t.iterator=t("iterator polyfill")),t.iterator;var r=e.Set;if(r&&"function"==typeof(new r)["@@iterator"])return"@@iterator";var n=e.Map;if(n)for(var i=Object.getOwnPropertyNames(n.prototype),o=0;o<i.length;++o){var a=i[o];if("entries"!==a&&"size"!==a&&n.prototype[a]===n.prototype.entries)return a}return"@@iterator"}var i=e("../util/root");r.symbolIteratorPonyfill=n,r.iterator=n(i.root),r.$$iterator=r.iterator},{"../util/root":237}],216:[function(e,t,r){"use strict";function n(e){var t,r=e.Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}var i=e("../util/root");r.getSymbolObservable=n,r.observable=n(i.root),r.$$observable=r.observable},{"../util/root":237}],217:[function(e,t,r){"use strict";var n=e("../util/root").root.Symbol;r.rxSubscriber="function"==typeof n&&"function"==typeof n.for?n.for("rxSubscriber"):"@@rxSubscriber",r.$$rxSubscriber=r.rxSubscriber},{"../util/root":237}],218:[function(e,t,r){"use strict";var n=e("./root"),i=function(){return function(e){e.requestAnimationFrame?(this.cancelAnimationFrame=e.cancelAnimationFrame.bind(e),this.requestAnimationFrame=e.requestAnimationFrame.bind(e)):e.mozRequestAnimationFrame?(this.cancelAnimationFrame=e.mozCancelAnimationFrame.bind(e),this.requestAnimationFrame=e.mozRequestAnimationFrame.bind(e)):e.webkitRequestAnimationFrame?(this.cancelAnimationFrame=e.webkitCancelAnimationFrame.bind(e),this.requestAnimationFrame=e.webkitRequestAnimationFrame.bind(e)):e.msRequestAnimationFrame?(this.cancelAnimationFrame=e.msCancelAnimationFrame.bind(e),this.requestAnimationFrame=e.msRequestAnimationFrame.bind(e)):e.oRequestAnimationFrame?(this.cancelAnimationFrame=e.oCancelAnimationFrame.bind(e),this.requestAnimationFrame=e.oRequestAnimationFrame.bind(e)):(this.cancelAnimationFrame=e.clearTimeout.bind(e),this.requestAnimationFrame=function(t){return e.setTimeout(t,1e3/60)})}}();r.RequestAnimationFrameDefinition=i,r.AnimationFrame=new i(n.root)},{"./root":237}],219:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){var t=e.call(this,"argument out of range");this.name=t.name="ArgumentOutOfRangeError",this.stack=t.stack,this.message=t.message}return n(t,e),t}(Error);r.ArgumentOutOfRangeError=i},{}],220:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){var t=e.call(this,"no elements in sequence");this.name=t.name="EmptyError",this.stack=t.stack,this.message=t.message}return n(t,e),t}(Error);r.EmptyError=i},{}],221:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){var t=e.call(this,"object unsubscribed");this.name=t.name="ObjectUnsubscribedError",this.stack=t.stack,this.message=t.message}return n(t,e),t}(Error);r.ObjectUnsubscribedError=i},{}],222:[function(e,t,r){"use strict";function n(){return function(){function e(){this._values=[]}return e.prototype.add=function(e){this.has(e)||this._values.push(e)},e.prototype.has=function(e){return-1!==this._values.indexOf(e)},Object.defineProperty(e.prototype,"size",{get:function(){return this._values.length},enumerable:!0,configurable:!0}),e.prototype.clear=function(){this._values.length=0},e}()}var i=e("./root");r.minimalSetImpl=n,r.Set=i.root.Set||n()},{"./root":237}],223:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){var t=e.call(this,"Timeout has occurred");this.name=t.name="TimeoutError",this.stack=t.stack,this.message=t.message}return n(t,e),t}(Error);r.TimeoutError=i},{}],224:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t){e.call(this),this.errors=t;var r=Error.call(this,t?t.length+" errors occurred during unsubscription:\n  "+t.map(function(e,t){return t+1+") "+e.toString()}).join("\n  "):"");this.name=r.name="UnsubscriptionError",this.stack=r.stack,this.message=r.message}return n(t,e),t}(Error);r.UnsubscriptionError=i},{}],225:[function(e,t,r){"use strict";r.errorObject={e:{}}},{}],226:[function(e,t,r){"use strict";r.identity=function(e){return e}},{}],227:[function(e,t,r){"use strict";r.isArray=Array.isArray||function(e){return e&&"number"==typeof e.length}},{}],228:[function(e,t,r){"use strict";r.isArrayLike=function(e){return e&&"number"==typeof e.length}},{}],229:[function(e,t,r){"use strict";r.isDate=function(e){return e instanceof Date&&!isNaN(+e)}},{}],230:[function(e,t,r){"use strict";r.isFunction=function(e){return"function"==typeof e}},{}],231:[function(e,t,r){"use strict";var n=e("../util/isArray");r.isNumeric=function(e){return!n.isArray(e)&&e-parseFloat(e)+1>=0}},{"../util/isArray":227}],232:[function(e,t,r){"use strict";r.isObject=function(e){return null!=e&&"object"==typeof e}},{}],233:[function(e,t,r){"use strict";r.isPromise=function(e){return e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}},{}],234:[function(e,t,r){"use strict";r.isScheduler=function(e){return e&&"function"==typeof e.schedule}},{}],235:[function(e,t,r){"use strict";r.noop=function(){}},{}],236:[function(e,t,r){"use strict";function n(e){return e?1===e.length?e[0]:function(t){return e.reduce(function(e,t){return t(e)},t)}:i.noop}var i=e("./noop");r.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n(e)},r.pipeFromArray=n},{"./noop":235}],237:[function(e,t,r){(function(e){"use strict";var t="undefined"!=typeof window&&window,n="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,i=t||void 0!==e&&e||n;r.root=i,function(){if(!i)throw new Error("RxJS could not find any global context (window, self, global)")}()}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],238:[function(e,t,r){"use strict";var n=e("./root"),i=e("./isArrayLike"),o=e("./isPromise"),a=e("./isObject"),s=e("../Observable"),c=e("../symbol/iterator"),u=e("../InnerSubscriber"),h=e("../symbol/observable");r.subscribeToResult=function(e,t,r,l){var p=new u.InnerSubscriber(e,r,l);if(p.closed)return null;if(t instanceof s.Observable)return t._isScalar?(p.next(t.value),p.complete(),null):(p.syncErrorThrowable=!0,t.subscribe(p));if(i.isArrayLike(t)){for(var d=0,f=t.length;d<f&&!p.closed;d++)p.next(t[d]);p.closed||p.complete()}else{if(o.isPromise(t))return t.then(function(e){p.closed||(p.next(e),p.complete())},function(e){return p.error(e)}).then(null,function(e){n.root.setTimeout(function(){throw e})}),p;if(t&&"function"==typeof t[c.iterator])for(var m=t[c.iterator]();;){var v=m.next();if(v.done){p.complete();break}if(p.next(v.value),p.closed)break}else if(t&&"function"==typeof t[h.observable]){var g=t[h.observable]();if("function"==typeof g.subscribe)return g.subscribe(new u.InnerSubscriber(e,r,l));p.error(new TypeError("Provided object does not correctly implement Symbol.observable"))}else{var y="You provided "+(a.isObject(t)?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.";p.error(new TypeError(y))}}return null}},{"../InnerSubscriber":27,"../Observable":29,"../symbol/iterator":215,"../symbol/observable":216,"./isArrayLike":228,"./isObject":232,"./isPromise":233,"./root":237}],239:[function(e,t,r){"use strict";var n=e("../Subscriber"),i=e("../symbol/rxSubscriber"),o=e("../Observer");r.toSubscriber=function(e,t,r){if(e){if(e instanceof n.Subscriber)return e;if(e[i.rxSubscriber])return e[i.rxSubscriber]()}return e||t||r?new n.Subscriber(e,t,r):new n.Subscriber(o.empty)}},{"../Observer":30,"../Subscriber":36,"../symbol/rxSubscriber":217}],240:[function(e,t,r){"use strict";function n(){try{return i.apply(this,arguments)}catch(e){return o.errorObject.e=e,o.errorObject}}var i,o=e("./errorObject");r.tryCatch=function(e){return i=e,n}},{"./errorObject":225}],241:[function(e,t,r){!function(e,n){n("object"==typeof r&&void 0!==t?r:e.THREE=e.THREE||{})}(this,function(e){function t(){}function r(e,t){this.x=e||0,this.y=t||0}function n(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],0<arguments.length&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function i(e,t,r,n){this._x=e||0,this._y=t||0,this._z=r||0,this._w=void 0!==n?n:1}function o(e,t,r){this.x=e||0,this.y=t||0,this.z=r||0}function a(){this.elements=[1,0,0,0,1,0,0,0,1],0<arguments.length&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}function s(e,t,n,i,o,c,u,h,l,p){Object.defineProperty(this,"id",{value:ui++}),this.uuid=ci.generateUUID(),this.name="",this.image=void 0!==e?e:s.DEFAULT_IMAGE,this.mipmaps=[],this.mapping=void 0!==t?t:s.DEFAULT_MAPPING,this.wrapS=void 0!==n?n:1001,this.wrapT=void 0!==i?i:1001,this.magFilter=void 0!==o?o:1006,this.minFilter=void 0!==c?c:1008,this.anisotropy=void 0!==l?l:1,this.format=void 0!==u?u:1023,this.type=void 0!==h?h:1009,this.offset=new r(0,0),this.repeat=new r(1,1),this.center=new r(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new a,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=void 0!==p?p:3e3,this.version=0,this.onUpdate=null}function c(e,t,r,n){this.x=e||0,this.y=t||0,this.z=r||0,this.w=void 0!==n?n:1}function u(e,t,r){this.uuid=ci.generateUUID(),this.width=e,this.height=t,this.scissor=new c(0,0,e,t),this.scissorTest=!1,this.viewport=new c(0,0,e,t),void 0===(r=r||{}).minFilter&&(r.minFilter=1006),this.texture=new s(void 0,void 0,r.wrapS,r.wrapT,r.magFilter,r.minFilter,r.format,r.type,r.anisotropy,r.encoding),this.depthBuffer=void 0===r.depthBuffer||r.depthBuffer,this.stencilBuffer=void 0===r.stencilBuffer||r.stencilBuffer,this.depthTexture=void 0!==r.depthTexture?r.depthTexture:null}function h(e,t,r){u.call(this,e,t,r),this.activeMipMapLevel=this.activeCubeFace=0}function l(e,t,r,n,i,o,a,c,u,h,l,p){s.call(this,null,o,a,c,u,h,n,i,l,p),this.image={data:e,width:t,height:r},this.magFilter=void 0!==u?u:1003,this.minFilter=void 0!==h?h:1003,this.flipY=this.generateMipmaps=!1,this.unpackAlignment=1}function p(e,t,r,n,i,o,a,c,u,h){s.call(this,e=void 0!==e?e:[],void 0!==t?t:301,r,n,i,o,a,c,u,h),this.flipY=!1}function d(e,t,r){var n=e[0];if(0>=n||0<n)return e;var i=t*r,o=pi[i];if(void 0===o&&(o=new Float32Array(i),pi[i]=o),0!==t)for(n.toArray(o,0),n=1,i=0;n!==t;++n)i+=r,e[n].toArray(o,i);return o}function f(e,t){var r=di[t];void 0===r&&(r=new Int32Array(t),di[t]=r);for(var n=0;n!==t;++n)r[n]=e.allocTextureUnit();return r}function m(e,t){e.uniform1f(this.addr,t)}function v(e,t){e.uniform1i(this.addr,t)}function g(e,t){void 0===t.x?e.uniform2fv(this.addr,t):e.uniform2f(this.addr,t.x,t.y)}function y(e,t){void 0!==t.x?e.uniform3f(this.addr,t.x,t.y,t.z):void 0!==t.r?e.uniform3f(this.addr,t.r,t.g,t.b):e.uniform3fv(this.addr,t)}function b(e,t){void 0===t.x?e.uniform4fv(this.addr,t):e.uniform4f(this.addr,t.x,t.y,t.z,t.w)}function _(e,t){e.uniformMatrix2fv(this.addr,!1,t.elements||t)}function x(e,t){void 0===t.elements?e.uniformMatrix3fv(this.addr,!1,t):(mi.set(t.elements),e.uniformMatrix3fv(this.addr,!1,mi))}function w(e,t){void 0===t.elements?e.uniformMatrix4fv(this.addr,!1,t):(fi.set(t.elements),e.uniformMatrix4fv(this.addr,!1,fi))}function S(e,t,r){var n=r.allocTextureUnit();e.uniform1i(this.addr,n),r.setTexture2D(t||hi,n)}function M(e,t,r){var n=r.allocTextureUnit();e.uniform1i(this.addr,n),r.setTextureCube(t||li,n)}function E(e,t){e.uniform2iv(this.addr,t)}function C(e,t){e.uniform3iv(this.addr,t)}function T(e,t){e.uniform4iv(this.addr,t)}function O(e,t){e.uniform1fv(this.addr,t)}function P(e,t){e.uniform1iv(this.addr,t)}function j(e,t){e.uniform2fv(this.addr,d(t,this.size,2))}function A(e,t){e.uniform3fv(this.addr,d(t,this.size,3))}function R(e,t){e.uniform4fv(this.addr,d(t,this.size,4))}function L(e,t){e.uniformMatrix2fv(this.addr,!1,d(t,this.size,4))}function N(e,t){e.uniformMatrix3fv(this.addr,!1,d(t,this.size,9))}function I(e,t){e.uniformMatrix4fv(this.addr,!1,d(t,this.size,16))}function D(e,t,r){var n=t.length,i=f(r,n);for(e.uniform1iv(this.addr,i),e=0;e!==n;++e)r.setTexture2D(t[e]||hi,i[e])}function k(e,t,r){var n=t.length,i=f(r,n);for(e.uniform1iv(this.addr,i),e=0;e!==n;++e)r.setTextureCube(t[e]||li,i[e])}function B(e,t,r){this.id=e,this.addr=r,this.setValue=function(e){switch(e){case 5126:return m;case 35664:return g;case 35665:return y;case 35666:return b;case 35674:return _;case 35675:return x;case 35676:return w;case 35678:case 36198:return S;case 35680:return M;case 5124:case 35670:return v;case 35667:case 35671:return E;case 35668:case 35672:return C;case 35669:case 35673:return T}}(t.type)}function F(e,t,r){this.id=e,this.addr=r,this.size=t.size,this.setValue=function(e){switch(e){case 5126:return O;case 35664:return j;case 35665:return A;case 35666:return R;case 35674:return L;case 35675:return N;case 35676:return I;case 35678:return D;case 35680:return k;case 5124:case 35670:return P;case 35667:case 35671:return E;case 35668:case 35672:return C;case 35669:case 35673:return T}}(t.type)}function U(e){this.id=e,this.seq=[],this.map={}}function $(e,t,r){this.seq=[],this.map={},this.renderer=r,r=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(var n=0;n<r;++n){var i=e.getActiveUniform(t,n),o=e.getUniformLocation(t,i.name),a=this,s=i.name,c=s.length;for(vi.lastIndex=0;;){var u=vi.exec(s),h=vi.lastIndex,l=u[1],p=u[3];if("]"===u[2]&&(l|=0),void 0===p||"["===p&&h+2===c){s=a,i=void 0===p?new B(l,i,o):new F(l,i,o),s.seq.push(i),s.map[i.id]=i;break}void 0===(p=a.map[l])&&(p=new U(l),l=a,a=p,l.seq.push(a),l.map[a.id]=a),a=p}}}function z(e,t,r){return void 0===t&&void 0===r?this.set(e):this.setRGB(e,t,r)}function G(e,t){this.min=void 0!==e?e:new r(1/0,1/0),this.max=void 0!==t?t:new r(-1/0,-1/0)}function V(e,t,n,i,a){var s,c,u,h,l,p,d,f,m,v,g,y,b,_,x,w;this.render=function(e,S,M,E){if(0!==e.length){S=new o;var C=E.w/E.z,T=.5*E.z,O=.5*E.w,P=new r((L=16/E.w)*C,L),j=new o(1,1,0),A=new r(1,1),R=new G;if(R.min.set(E.x,E.y),R.max.set(E.x+(E.z-16),E.y+(E.w-16)),void 0===_){var L=new Float32Array([-1,-1,0,0,1,-1,1,0,1,1,1,1,-1,1,0,1]),N=new Uint16Array([0,1,2,0,2,3]);g=t.createBuffer(),y=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,g),t.bufferData(t.ARRAY_BUFFER,L,t.STATIC_DRAW),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,y),t.bufferData(t.ELEMENT_ARRAY_BUFFER,N,t.STATIC_DRAW),x=t.createTexture(),w=t.createTexture(),n.bindTexture(t.TEXTURE_2D,x),t.texImage2D(t.TEXTURE_2D,0,t.RGB,16,16,0,t.RGB,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),n.bindTexture(t.TEXTURE_2D,w),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,16,16,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST);var L=b={vertexShader:"uniform lowp int renderType;\nuniform vec3 screenPosition;\nuniform vec2 scale;\nuniform float rotation;\nuniform sampler2D occlusionMap;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\n\tvUV = uv;\n\tvec2 pos = position;\n\tif ( renderType == 2 ) {\n\t\tvec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\n\t\tvVisibility =        visibility.r / 9.0;\n\t\tvVisibility *= 1.0 - visibility.g / 9.0;\n\t\tvVisibility *=       visibility.b / 9.0;\n\t\tvVisibility *= 1.0 - visibility.a / 9.0;\n\t\tpos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\n\t\tpos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\n\t}\n\tgl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\n}",fragmentShader:"uniform lowp int renderType;\nuniform sampler2D map;\nuniform float opacity;\nuniform vec3 color;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\n\tif ( renderType == 0 ) {\n\t\tgl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );\n\t} else if ( renderType == 1 ) {\n\t\tgl_FragColor = texture2D( map, vUV );\n\t} else {\n\t\tvec4 texture = texture2D( map, vUV );\n\t\ttexture.a *= opacity * vVisibility;\n\t\tgl_FragColor = texture;\n\t\tgl_FragColor.rgb *= color;\n\t}\n}"},N=t.createProgram(),I=t.createShader(t.FRAGMENT_SHADER),D=t.createShader(t.VERTEX_SHADER),k="precision "+a.precision+" float;\n";t.shaderSource(I,k+L.fragmentShader),t.shaderSource(D,k+L.vertexShader),t.compileShader(I),t.compileShader(D),t.attachShader(N,I),t.attachShader(N,D),t.linkProgram(N),_=N,m=t.getAttribLocation(_,"position"),v=t.getAttribLocation(_,"uv"),s=t.getUniformLocation(_,"renderType"),c=t.getUniformLocation(_,"map"),u=t.getUniformLocation(_,"occlusionMap"),h=t.getUniformLocation(_,"opacity"),l=t.getUniformLocation(_,"color"),p=t.getUniformLocation(_,"scale"),d=t.getUniformLocation(_,"rotation"),f=t.getUniformLocation(_,"screenPosition")}for(n.useProgram(_),n.initAttributes(),n.enableAttribute(m),n.enableAttribute(v),n.disableUnusedAttributes(),t.uniform1i(u,0),t.uniform1i(c,1),t.bindBuffer(t.ARRAY_BUFFER,g),t.vertexAttribPointer(m,2,t.FLOAT,!1,16,0),t.vertexAttribPointer(v,2,t.FLOAT,!1,16,8),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,y),n.disable(t.CULL_FACE),n.buffers.depth.setMask(!1),N=0,I=e.length;N<I;N++)if(L=16/E.w,P.set(L*C,L),D=e[N],S.set(D.matrixWorld.elements[12],D.matrixWorld.elements[13],D.matrixWorld.elements[14]),S.applyMatrix4(M.matrixWorldInverse),S.applyMatrix4(M.projectionMatrix),j.copy(S),A.x=E.x+j.x*T+T-8,A.y=E.y+j.y*O+O-8,!0===R.containsPoint(A)){n.activeTexture(t.TEXTURE0),n.bindTexture(t.TEXTURE_2D,null),n.activeTexture(t.TEXTURE1),n.bindTexture(t.TEXTURE_2D,x),t.copyTexImage2D(t.TEXTURE_2D,0,t.RGB,A.x,A.y,16,16,0),t.uniform1i(s,0),t.uniform2f(p,P.x,P.y),t.uniform3f(f,j.x,j.y,j.z),n.disable(t.BLEND),n.enable(t.DEPTH_TEST),t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0),n.activeTexture(t.TEXTURE0),n.bindTexture(t.TEXTURE_2D,w),t.copyTexImage2D(t.TEXTURE_2D,0,t.RGBA,A.x,A.y,16,16,0),t.uniform1i(s,1),n.disable(t.DEPTH_TEST),n.activeTexture(t.TEXTURE1),n.bindTexture(t.TEXTURE_2D,x),t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0),D.positionScreen.copy(j),D.customUpdateCallback?D.customUpdateCallback(D):D.updateLensFlares(),t.uniform1i(s,2),n.enable(t.BLEND);for(var k=0,B=D.lensFlares.length;k<B;k++){var F=D.lensFlares[k];.001<F.opacity&&.001<F.scale&&(j.x=F.x,j.y=F.y,j.z=F.z,L=F.size*F.scale/E.w,P.x=L*C,P.y=L,t.uniform3f(f,j.x,j.y,j.z),t.uniform2f(p,P.x,P.y),t.uniform1f(d,F.rotation),t.uniform1f(h,F.opacity),t.uniform3f(l,F.color.r,F.color.g,F.color.b),n.setBlending(F.blending,F.blendEquation,F.blendSrc,F.blendDst),i.setTexture2D(F.texture,1),t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}}n.enable(t.CULL_FACE),n.enable(t.DEPTH_TEST),n.buffers.depth.setMask(!0),n.reset()}}}function H(e,t,r,n,i,o,a,c,u){s.call(this,e,t,r,n,i,o,a,c,u),this.needsUpdate=!0}function q(e,t,r,n,a){function s(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:t.id-e.id}var c,u,h,l,p,d,f,m,v,g,y,b,_,x,w,S,M,E,C,T,O,P=new o,j=new i,A=new o;this.render=function(i,o,R){if(0!==i.length){if(void 0===T){var L=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),N=new Uint16Array([0,1,2,0,2,3]);E=t.createBuffer(),C=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,E),t.bufferData(t.ARRAY_BUFFER,L,t.STATIC_DRAW),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,C),t.bufferData(t.ELEMENT_ARRAY_BUFFER,N,t.STATIC_DRAW),L=t.createProgram(),N=t.createShader(t.VERTEX_SHADER);var I=t.createShader(t.FRAGMENT_SHADER);t.shaderSource(N,["precision "+a.precision+" float;","#define SHADER_NAME SpriteMaterial\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform float rotation;\nuniform vec2 scale;\nuniform vec2 uvOffset;\nuniform vec2 uvScale;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvarying float fogDepth;\nvoid main() {\n\tvUV = uvOffset + uv * uvScale;\n\tvec2 alignedPosition = position * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tvec4 mvPosition;\n\tmvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\tfogDepth = - mvPosition.z;\n}"].join("\n")),t.shaderSource(I,["precision "+a.precision+" float;","#define SHADER_NAME SpriteMaterial\nuniform vec3 color;\nuniform sampler2D map;\nuniform float opacity;\nuniform int fogType;\nuniform vec3 fogColor;\nuniform float fogDensity;\nuniform float fogNear;\nuniform float fogFar;\nuniform float alphaTest;\nvarying vec2 vUV;\nvarying float fogDepth;\nvoid main() {\n\tvec4 texture = texture2D( map, vUV );\n\tgl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\n\tif ( gl_FragColor.a < alphaTest ) discard;\n\tif ( fogType > 0 ) {\n\t\tfloat fogFactor = 0.0;\n\t\tif ( fogType == 1 ) {\n\t\t\tfogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t\t} else {\n\t\t\tconst float LOG2 = 1.442695;\n\t\t\tfogFactor = exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 );\n\t\t\tfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n\t\t}\n\t\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n\t}\n}"].join("\n")),t.compileShader(N),t.compileShader(I),t.attachShader(L,N),t.attachShader(L,I),t.linkProgram(L),T=L,S=t.getAttribLocation(T,"position"),M=t.getAttribLocation(T,"uv"),c=t.getUniformLocation(T,"uvOffset"),u=t.getUniformLocation(T,"uvScale"),h=t.getUniformLocation(T,"rotation"),l=t.getUniformLocation(T,"scale"),p=t.getUniformLocation(T,"color"),d=t.getUniformLocation(T,"map"),f=t.getUniformLocation(T,"opacity"),m=t.getUniformLocation(T,"modelViewMatrix"),v=t.getUniformLocation(T,"projectionMatrix"),g=t.getUniformLocation(T,"fogType"),y=t.getUniformLocation(T,"fogDensity"),b=t.getUniformLocation(T,"fogNear"),_=t.getUniformLocation(T,"fogFar"),x=t.getUniformLocation(T,"fogColor"),t.getUniformLocation(T,"fogDepth"),w=t.getUniformLocation(T,"alphaTest"),(L=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")).width=8,L.height=8,(N=L.getContext("2d")).fillStyle="white",N.fillRect(0,0,8,8),O=new H(L)}r.useProgram(T),r.initAttributes(),r.enableAttribute(S),r.enableAttribute(M),r.disableUnusedAttributes(),r.disable(t.CULL_FACE),r.enable(t.BLEND),t.bindBuffer(t.ARRAY_BUFFER,E),t.vertexAttribPointer(S,2,t.FLOAT,!1,16,0),t.vertexAttribPointer(M,2,t.FLOAT,!1,16,8),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,C),t.uniformMatrix4fv(v,!1,R.projectionMatrix.elements),r.activeTexture(t.TEXTURE0),t.uniform1i(d,0),N=L=0,(I=o.fog)?(t.uniform3f(x,I.color.r,I.color.g,I.color.b),I.isFog?(t.uniform1f(b,I.near),t.uniform1f(_,I.far),t.uniform1i(g,1),N=L=1):I.isFogExp2&&(t.uniform1f(y,I.density),t.uniform1i(g,2),N=L=2)):(t.uniform1i(g,0),N=L=0);for(var D=0,k=i.length;D<k;D++)(I=i[D]).modelViewMatrix.multiplyMatrices(R.matrixWorldInverse,I.matrixWorld),I.z=-I.modelViewMatrix.elements[14];i.sort(s);for(var B=[],D=0,k=i.length;D<k;D++){var F=(I=i[D]).material;if(!1!==F.visible){I.onBeforeRender(e,o,R,void 0,F,void 0),t.uniform1f(w,F.alphaTest),t.uniformMatrix4fv(m,!1,I.modelViewMatrix.elements),I.matrixWorld.decompose(P,j,A),B[0]=A.x,B[1]=A.y;var U=0;o.fog&&F.fog&&(U=N),L!==U&&(t.uniform1i(g,U),L=U),null!==F.map?(t.uniform2f(c,F.map.offset.x,F.map.offset.y),t.uniform2f(u,F.map.repeat.x,F.map.repeat.y)):(t.uniform2f(c,0,0),t.uniform2f(u,1,1)),t.uniform1f(f,F.opacity),t.uniform3f(p,F.color.r,F.color.g,F.color.b),t.uniform1f(h,F.rotation),t.uniform2fv(l,B),r.setBlending(F.blending,F.blendEquation,F.blendSrc,F.blendDst,F.blendEquationAlpha,F.blendSrcAlpha,F.blendDstAlpha,F.premultipliedAlpha),r.buffers.depth.setTest(F.depthTest),r.buffers.depth.setMask(F.depthWrite),r.buffers.color.setMask(F.colorWrite),n.setTexture2D(F.map||O,0),t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0),I.onAfterRender(e,o,R,void 0,F,void 0)}}r.enable(t.CULL_FACE),r.reset()}}}function W(){Object.defineProperty(this,"id",{value:wi++}),this.uuid=ci.generateUUID(),this.name="",this.type="Material",this.lights=this.fog=!0,this.blending=1,this.side=0,this.flatShading=!1,this.vertexColors=0,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=100,this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null,this.depthFunc=3,this.depthWrite=this.depthTest=!0,this.clippingPlanes=null,this.clipShadows=this.clipIntersection=!1,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetUnits=this.polygonOffsetFactor=0,this.dithering=!1,this.alphaTest=0,this.premultipliedAlpha=!1,this.overdraw=0,this.visible=!0,this.userData={},this.needsUpdate=!0}function X(e){W.call(this),this.type="MeshDepthMaterial",this.depthPacking=3200,this.morphTargets=this.skinning=!1,this.displacementMap=this.alphaMap=this.map=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.lights=this.fog=!1,this.setValues(e)}function Y(e){W.call(this),this.type="MeshDistanceMaterial",this.referencePosition=new o,this.nearDistance=1,this.farDistance=1e3,this.morphTargets=this.skinning=!1,this.displacementMap=this.alphaMap=this.map=null,this.displacementScale=1,this.displacementBias=0,this.lights=this.fog=!1,this.setValues(e)}function K(e,t){this.min=void 0!==e?e:new o(1/0,1/0,1/0),this.max=void 0!==t?t:new o(-1/0,-1/0,-1/0)}function Z(e,t){this.center=void 0!==e?e:new o,this.radius=void 0!==t?t:0}function J(e,t){this.normal=void 0!==e?e:new o(1,0,0),this.constant=void 0!==t?t:0}function Q(e,t,r,n,i,o){this.planes=[void 0!==e?e:new J,void 0!==t?t:new J,void 0!==r?r:new J,void 0!==n?n:new J,void 0!==i?i:new J,void 0!==o?o:new J]}function ee(e,t,i){function a(t,r,n,i,o,a){var s=t.geometry,c=v,u=t.customDepthMaterial;return n&&(c=g,u=t.customDistanceMaterial),u?c=u:(u=!1,r.morphTargets&&(s&&s.isBufferGeometry?u=s.morphAttributes&&s.morphAttributes.position&&0<s.morphAttributes.position.length:s&&s.isGeometry&&(u=s.morphTargets&&0<s.morphTargets.length)),t.isSkinnedMesh&&!1===r.skinning&&console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",t),t=t.isSkinnedMesh&&r.skinning,s=0,u&&(s|=1),t&&(s|=2),c=c[s]),e.localClippingEnabled&&!0===r.clipShadows&&0!==r.clippingPlanes.length&&(s=c.uuid,u=r.uuid,void 0===(t=y[s])&&(t={},y[s]=t),void 0===(s=t[u])&&(s=c.clone(),t[u]=s),c=s),c.visible=r.visible,c.wireframe=r.wireframe,u=r.side,E.renderSingleSided&&2==u&&(u=0),E.renderReverseSided&&(0===u?u=1:1===u&&(u=0)),c.side=u,c.clipShadows=r.clipShadows,c.clippingPlanes=r.clippingPlanes,c.clipIntersection=r.clipIntersection,c.wireframeLinewidth=r.wireframeLinewidth,c.linewidth=r.linewidth,n&&c.isMeshDistanceMaterial&&(c.referencePosition.copy(i),c.nearDistance=o,c.farDistance=a),c}function s(r,n,i,o){var c;if(!1!==r.visible){if(r.layers.test(n.layers)&&(r.isMesh||r.isLine||r.isPoints)&&r.castShadow&&(!r.frustumCulled||h.intersectsObject(r))){r.modelViewMatrix.multiplyMatrices(i.matrixWorldInverse,r.matrixWorld);var u=t.update(r),l=r.material;if(Array.isArray(l))for(var p=u.groups,d=0,f=p.length;d<f;d++){var v=p[d];(c=l[v.materialIndex])&&c.visible&&(c=a(r,c,o,m,i.near,i.far),e.renderBufferDirect(i,null,u,c,r,v))}else l.visible&&(c=a(r,l,o,m,i.near,i.far),e.renderBufferDirect(i,null,u,c,r,null))}for(u=0,l=(r=r.children).length;u<l;u++)s(r[u],n,i,o)}}var h=new Q,l=new n,p=new r,d=new r(i,i),f=new o,m=new o,v=Array(4),g=Array(4),y={},b=[new o(1,0,0),new o(-1,0,0),new o(0,0,1),new o(0,0,-1),new o(0,1,0),new o(0,-1,0)],_=[new o(0,1,0),new o(0,1,0),new o(0,1,0),new o(0,1,0),new o(0,0,1),new o(0,0,-1)],x=[new c,new c,new c,new c,new c,new c];for(i=0;4!==i;++i){var w=0!=(1&i),S=0!=(2&i),M=new X({depthPacking:3201,morphTargets:w,skinning:S});v[i]=M,w=new Y({morphTargets:w,skinning:S}),g[i]=w}var E=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.renderSingleSided=this.renderReverseSided=!0,this.render=function(t,r,n){if(!1!==E.enabled&&(!1!==E.autoUpdate||!1!==E.needsUpdate)&&0!==t.length){var i=e.state;i.disable(e.context.BLEND),i.buffers.color.setClear(1,1,1,1),i.buffers.depth.setTest(!0),i.setScissorTest(!1);for(var o,a=0,c=t.length;a<c;a++){var v=t[a];o=v.shadow;var g=v&&v.isPointLight;if(void 0===o)console.warn("THREE.WebGLShadowMap:",v,"has no shadow.");else{var y=o.camera;if(p.copy(o.mapSize),p.min(d),g){var w=p.x,S=p.y;x[0].set(2*w,S,w,S),x[1].set(0,S,w,S),x[2].set(3*w,S,w,S),x[3].set(w,S,w,S),x[4].set(3*w,0,w,S),x[5].set(w,0,w,S),p.x*=4,p.y*=2}for(null===o.map&&(o.map=new u(p.x,p.y,{minFilter:1003,magFilter:1003,format:1023}),o.map.texture.name=v.name+".shadowMap",y.updateProjectionMatrix()),o.isSpotLightShadow&&o.update(v),w=o.map,S=o.matrix,m.setFromMatrixPosition(v.matrixWorld),y.position.copy(m),g?(o=6,S.makeTranslation(-m.x,-m.y,-m.z)):(o=1,f.setFromMatrixPosition(v.target.matrixWorld),y.lookAt(f),y.updateMatrixWorld(),S.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),S.multiply(y.projectionMatrix),S.multiply(y.matrixWorldInverse)),e.setRenderTarget(w),e.clear(),v=0;v<o;v++)g&&(f.copy(y.position),f.add(b[v]),y.up.copy(_[v]),y.lookAt(f),y.updateMatrixWorld(),i.viewport(x[v])),l.multiplyMatrices(y.projectionMatrix,y.matrixWorldInverse),h.setFromMatrix(l),s(r,n,y,g)}}E.needsUpdate=!1}}}function te(e,t,r,n){this._x=e||0,this._y=t||0,this._z=r||0,this._order=n||te.DefaultOrder}function re(){this.mask=1}function ne(){Object.defineProperty(this,"id",{value:Si++}),this.uuid=ci.generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=ne.DefaultUp.clone();var e=new o,t=new te,r=new i,s=new o(1,1,1);t.onChange(function(){r.setFromEuler(t,!1)}),r.onChange(function(){t.setFromQuaternion(r,void 0,!1)}),Object.defineProperties(this,{position:{enumerable:!0,value:e},rotation:{enumerable:!0,value:t},quaternion:{enumerable:!0,value:r},scale:{enumerable:!0,value:s},modelViewMatrix:{value:new n},normalMatrix:{value:new a}}),this.matrix=new n,this.matrixWorld=new n,this.matrixAutoUpdate=ne.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new re,this.visible=!0,this.receiveShadow=this.castShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.userData={}}function ie(){ne.call(this),this.type="Camera",this.matrixWorldInverse=new n,this.projectionMatrix=new n}function oe(e,t,r,n,i,o){ie.call(this),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=r,this.bottom=n,this.near=void 0!==i?i:.1,this.far=void 0!==o?o:2e3,this.updateProjectionMatrix()}function ae(e,t,r,n,i,a){this.a=e,this.b=t,this.c=r,this.normal=n&&n.isVector3?n:new o,this.vertexNormals=Array.isArray(n)?n:[],this.color=i&&i.isColor?i:new z,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=void 0!==a?a:0}function se(){Object.defineProperty(this,"id",{value:Mi+=2}),this.uuid=ci.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingSphere=this.boundingBox=null,this.groupsNeedUpdate=this.lineDistancesNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=this.verticesNeedUpdate=this.elementsNeedUpdate=!1}function ce(e,t,r){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.uuid=ci.generateUUID(),this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=!0===r,this.dynamic=!1,this.updateRange={offset:0,count:-1},this.onUploadCallback=function(){},this.version=0}function ue(e,t,r){ce.call(this,new Int8Array(e),t,r)}function he(e,t,r){ce.call(this,new Uint8Array(e),t,r)}function le(e,t,r){ce.call(this,new Uint8ClampedArray(e),t,r)}function pe(e,t,r){ce.call(this,new Int16Array(e),t,r)}function de(e,t,r){ce.call(this,new Uint16Array(e),t,r)}function fe(e,t,r){ce.call(this,new Int32Array(e),t,r)}function me(e,t,r){ce.call(this,new Uint32Array(e),t,r)}function ve(e,t,r){ce.call(this,new Float32Array(e),t,r)}function ge(e,t,r){ce.call(this,new Float64Array(e),t,r)}function ye(){this.indices=[],this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingSphere=this.boundingBox=null,this.groupsNeedUpdate=this.uvsNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.verticesNeedUpdate=!1}function be(e){if(0===e.length)return-1/0;for(var t=e[0],r=1,n=e.length;r<n;++r)e[r]>t&&(t=e[r]);return t}function _e(){Object.defineProperty(this,"id",{value:Ei+=2}),this.uuid=ci.generateUUID(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingSphere=this.boundingBox=null,this.drawRange={start:0,count:1/0}}function xe(e,t,r,n,i,o){se.call(this),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:r,widthSegments:n,heightSegments:i,depthSegments:o},this.fromBufferGeometry(new we(e,t,r,n,i,o)),this.mergeVertices()}function we(e,t,r,n,i,a){function s(e,t,r,n,i,a,s,m,v,g,y){var b=a/v,_=s/g,x=a/2,w=s/2,S=m/2;s=v+1;var M,E,C=g+1,T=a=0,O=new o;for(E=0;E<C;E++){var P=E*_-w;for(M=0;M<s;M++)O[e]=(M*b-x)*n,O[t]=P*i,O[r]=S,h.push(O.x,O.y,O.z),O[e]=0,O[t]=0,O[r]=0<m?1:-1,l.push(O.x,O.y,O.z),p.push(M/v),p.push(1-E/g),a+=1}for(E=0;E<g;E++)for(M=0;M<v;M++)e=d+M+s*(E+1),t=d+(M+1)+s*(E+1),r=d+(M+1)+s*E,u.push(d+M+s*E,e,r),u.push(e,t,r),T+=6;c.addGroup(f,T,y),f+=T,d+=a}_e.call(this),this.type="BoxBufferGeometry",this.parameters={width:e,height:t,depth:r,widthSegments:n,heightSegments:i,depthSegments:a};var c=this;e=e||1,t=t||1,r=r||1,n=Math.floor(n)||1,i=Math.floor(i)||1;var u=[],h=[],l=[],p=[],d=0,f=0;s("z","y","x",-1,-1,r,t,e,a=Math.floor(a)||1,i,0),s("z","y","x",1,-1,r,t,-e,a,i,1),s("x","z","y",1,1,e,r,t,n,a,2),s("x","z","y",1,-1,e,r,-t,n,a,3),s("x","y","z",1,-1,e,t,r,n,i,4),s("x","y","z",-1,-1,e,t,-r,n,i,5),this.setIndex(u),this.addAttribute("position",new ve(h,3)),this.addAttribute("normal",new ve(l,3)),this.addAttribute("uv",new ve(p,2))}function Se(e,t,r,n){se.call(this),this.type="PlaneGeometry",this.parameters={width:e,height:t,widthSegments:r,heightSegments:n},this.fromBufferGeometry(new Me(e,t,r,n)),this.mergeVertices()}function Me(e,t,r,n){_e.call(this),this.type="PlaneBufferGeometry",this.parameters={width:e,height:t,widthSegments:r,heightSegments:n};var i=(e=e||1)/2,o=(t=t||1)/2,a=(r=Math.floor(r)||1)+1,s=(n=Math.floor(n)||1)+1,c=e/r,u=t/n,h=[],l=[],p=[],d=[];for(e=0;e<s;e++){var f=e*u-o;for(t=0;t<a;t++)l.push(t*c-i,-f,0),p.push(0,0,1),d.push(t/r),d.push(1-e/n)}for(e=0;e<n;e++)for(t=0;t<r;t++)i=t+a*(e+1),o=t+1+a*(e+1),s=t+1+a*e,h.push(t+a*e,i,s),h.push(i,o,s);this.setIndex(h),this.addAttribute("position",new ve(l,3)),this.addAttribute("normal",new ve(p,3)),this.addAttribute("uv",new ve(d,2))}function Ee(e){W.call(this),this.type="MeshBasicMaterial",this.color=new z(16777215),this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.envMap=this.alphaMap=this.specularMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinejoin=this.wireframeLinecap="round",this.lights=this.morphTargets=this.skinning=!1,this.setValues(e)}function Ce(e){W.call(this),this.type="ShaderMaterial",this.defines={},this.uniforms={},this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,void 0!==e&&(void 0!==e.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(e))}function Te(e,t){this.origin=void 0!==e?e:new o,this.direction=void 0!==t?t:new o}function Oe(e,t){this.start=void 0!==e?e:new o,this.end=void 0!==t?t:new o}function Pe(e,t,r){this.a=void 0!==e?e:new o,this.b=void 0!==t?t:new o,this.c=void 0!==r?r:new o}function je(e,t){ne.call(this),this.type="Mesh",this.geometry=void 0!==e?e:new _e,this.material=void 0!==t?t:new Ee({color:16777215*Math.random()}),this.drawMode=0,this.updateMorphTargets()}function Ae(e,t,r,n){function i(e,r){t.buffers.color.setClear(e.r,e.g,e.b,r,n)}var o,a,s,c=new z(0),u=0;return{getClearColor:function(){return c},setClearColor:function(e,t){c.set(e),i(c,u=void 0!==t?t:1)},getClearAlpha:function(){return u},setClearAlpha:function(e){i(c,u=e)},render:function(t,n,h,l){null===(n=n.background)?i(c,u):n&&n.isColor&&(i(n,1),l=!0),(e.autoClear||l)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),n&&n.isCubeTexture?(void 0===s&&((s=new je(new we(1,1,1),new Ce({uniforms:xi.cube.uniforms,vertexShader:xi.cube.vertexShader,fragmentShader:xi.cube.fragmentShader,side:1,depthTest:!0,depthWrite:!1,fog:!1}))).geometry.removeAttribute("normal"),s.geometry.removeAttribute("uv"),s.onBeforeRender=function(e,t,r){this.matrixWorld.copyPosition(r.matrixWorld)},r.update(s.geometry)),s.material.uniforms.tCube.value=n,t.push(s,s.geometry,s.material,0,null)):n&&n.isTexture&&(void 0===o&&(o=new oe(-1,1,1,-1,0,1),a=new je(new Me(2,2),new Ee({depthTest:!1,depthWrite:!1,fog:!1})),r.update(a.geometry)),a.material.map=n,e.renderBufferDirect(o,null,a.geometry,a.material,a,null))}}}function Re(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.program&&t.program&&e.program!==t.program?e.program.id-t.program.id:e.material.id!==t.material.id?e.material.id-t.material.id:e.z!==t.z?e.z-t.z:e.id-t.id}function Le(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id-t.id}function Ne(){var e={};return{get:function(t,r){return t=t.id+","+r.id,void 0===(r=e[t])&&(r=new function(){var e=[],t=0,r=[],n=[];return{opaque:r,transparent:n,init:function(){t=0,r.length=0,n.length=0},push:function(i,o,a,s,c){var u=e[t];void 0===u?(u={id:i.id,object:i,geometry:o,material:a,program:a.program,renderOrder:i.renderOrder,z:s,group:c},e[t]=u):(u.id=i.id,u.object=i,u.geometry=o,u.material=a,u.program=a.program,u.renderOrder=i.renderOrder,u.z=s,u.group=c),(!0===a.transparent?n:r).push(u),t++},sort:function(){1<r.length&&r.sort(Re),1<n.length&&n.sort(Le)}}},e[t]=r),r},dispose:function(){e={}}}}function Ie(e,t){return Math.abs(t[1])-Math.abs(e[1])}function De(e,t,r){function n(e){e=e.target;var a=i[e.id];null!==a.index&&t.remove(a.index);for(var s in a.attributes)t.remove(a.attributes[s]);e.removeEventListener("dispose",n),delete i[e.id],(s=o[e.id])&&(t.remove(s),delete o[e.id]),(s=o[a.id])&&(t.remove(s),delete o[a.id]),r.geometries--}var i={},o={};return{get:function(e,t){var o=i[t.id];return o||(t.addEventListener("dispose",n),t.isBufferGeometry?o=t:t.isGeometry&&(void 0===t._bufferGeometry&&(t._bufferGeometry=(new _e).setFromObject(e)),o=t._bufferGeometry),i[t.id]=o,r.geometries++,o)},update:function(r){var n=r.index,i=r.attributes;null!==n&&t.update(n,e.ELEMENT_ARRAY_BUFFER);for(var o in i)t.update(i[o],e.ARRAY_BUFFER);r=r.morphAttributes;for(o in r)for(var n=r[o],i=0,a=n.length;i<a;i++)t.update(n[i],e.ARRAY_BUFFER)},getWireframeAttribute:function(r){var n=o[r.id];if(n)return n;n=[];var i=r.index,a=r.attributes;if(null!==i)for(var s=i.array,c=0,u=s.length;c<u;c+=3){var h=s[c+0];a=s[c+1],i=s[c+2],n.push(h,a,a,i,i,h)}else for(s=a.position.array,c=0,u=s.length/3-1;c<u;c+=3)h=c+0,a=c+1,i=c+2,n.push(h,a,a,i,i,h);return n=new(65535<be(n)?me:de)(n,1),t.update(n,e.ELEMENT_ARRAY_BUFFER),o[r.id]=n}}}function ke(){var e=new function(){var e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];switch(t.type){case"DirectionalLight":var n={direction:new o,color:new z,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new r};break;case"SpotLight":n={position:new o,direction:new o,color:new z,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new r};break;case"PointLight":n={position:new o,color:new z,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new r,shadowCameraNear:1,shadowCameraFar:1e3};break;case"HemisphereLight":n={direction:new o,skyColor:new z,groundColor:new z};break;case"RectAreaLight":n={color:new z,position:new o,halfWidth:new o,halfHeight:new o}}return e[t.id]=n}}},t={hash:"",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},i=new o,a=new n,s=new n;return{setup:function(r,n,o){for(var c,u=0,h=0,l=0,p=0,d=0,f=0,m=0,v=0,g=o.matrixWorldInverse,y=0,b=r.length;y<b;y++){var _=r[y];c=_.color;var x=_.intensity,w=_.distance,S=_.shadow&&_.shadow.map?_.shadow.map.texture:null;_.isAmbientLight?(u+=c.r*x,h+=c.g*x,l+=c.b*x):_.isDirectionalLight?((o=e.get(_)).color.copy(_.color).multiplyScalar(_.intensity),o.direction.setFromMatrixPosition(_.matrixWorld),i.setFromMatrixPosition(_.target.matrixWorld),o.direction.sub(i),o.direction.transformDirection(g),(o.shadow=_.castShadow)&&(c=_.shadow,o.shadowBias=c.bias,o.shadowRadius=c.radius,o.shadowMapSize=c.mapSize),t.directionalShadowMap[p]=S,t.directionalShadowMatrix[p]=_.shadow.matrix,t.directional[p]=o,p++):_.isSpotLight?((o=e.get(_)).position.setFromMatrixPosition(_.matrixWorld),o.position.applyMatrix4(g),o.color.copy(c).multiplyScalar(x),o.distance=w,o.direction.setFromMatrixPosition(_.matrixWorld),i.setFromMatrixPosition(_.target.matrixWorld),o.direction.sub(i),o.direction.transformDirection(g),o.coneCos=Math.cos(_.angle),o.penumbraCos=Math.cos(_.angle*(1-_.penumbra)),o.decay=0===_.distance?0:_.decay,(o.shadow=_.castShadow)&&(c=_.shadow,o.shadowBias=c.bias,o.shadowRadius=c.radius,o.shadowMapSize=c.mapSize),t.spotShadowMap[f]=S,t.spotShadowMatrix[f]=_.shadow.matrix,t.spot[f]=o,f++):_.isRectAreaLight?((o=e.get(_)).color.copy(c).multiplyScalar(x/(_.width*_.height)),o.position.setFromMatrixPosition(_.matrixWorld),o.position.applyMatrix4(g),s.identity(),a.copy(_.matrixWorld),a.premultiply(g),s.extractRotation(a),o.halfWidth.set(.5*_.width,0,0),o.halfHeight.set(0,.5*_.height,0),o.halfWidth.applyMatrix4(s),o.halfHeight.applyMatrix4(s),t.rectArea[m]=o,m++):_.isPointLight?((o=e.get(_)).position.setFromMatrixPosition(_.matrixWorld),o.position.applyMatrix4(g),o.color.copy(_.color).multiplyScalar(_.intensity),o.distance=_.distance,o.decay=0===_.distance?0:_.decay,(o.shadow=_.castShadow)&&(c=_.shadow,o.shadowBias=c.bias,o.shadowRadius=c.radius,o.shadowMapSize=c.mapSize,o.shadowCameraNear=c.camera.near,o.shadowCameraFar=c.camera.far),t.pointShadowMap[d]=S,t.pointShadowMatrix[d]=_.shadow.matrix,t.point[d]=o,d++):_.isHemisphereLight&&((o=e.get(_)).direction.setFromMatrixPosition(_.matrixWorld),o.direction.transformDirection(g),o.direction.normalize(),o.skyColor.copy(_.color).multiplyScalar(x),o.groundColor.copy(_.groundColor).multiplyScalar(x),t.hemi[v]=o,v++)}t.ambient[0]=u,t.ambient[1]=h,t.ambient[2]=l,t.directional.length=p,t.spot.length=f,t.rectArea.length=m,t.point.length=d,t.hemi.length=v,t.hash=p+","+d+","+f+","+m+","+v+","+n.length},state:t}}function Be(e,t,r){var n=e.createShader(t);return e.shaderSource(n,r),e.compileShader(n),!1===e.getShaderParameter(n,e.COMPILE_STATUS)&&console.error("THREE.WebGLShader: Shader couldn't compile."),""!==e.getShaderInfoLog(n)&&console.warn("THREE.WebGLShader: gl.getShaderInfoLog()",t===e.VERTEX_SHADER?"vertex":"fragment",e.getShaderInfoLog(n),function(e){e=e.split("\n");for(var t=0;t<e.length;t++)e[t]=t+1+": "+e[t];return e.join("\n")}(r)),n}function Fe(e){switch(e){case 3e3:return["Linear","( value )"];case 3001:return["sRGB","( value )"];case 3002:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case 3007:return["Gamma","( value, float( GAMMA_FACTOR ) )"];default:throw Error("unsupported encoding: "+e)}}function Ue(e,t){return t=Fe(t),"vec4 "+e+"( vec4 value ) { return "+t[0]+"ToLinear"+t[1]+"; }"}function $e(e){return""!==e}function ze(e,t){return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights)}function Ge(e){return e.replace(/^[ \t]*#include +<([\w\d.]+)>/gm,function(e,t){if(void 0===(e=_i[t]))throw Error("Can not resolve #include <"+t+">");return Ge(e)})}function Ve(e){return e.replace(/for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,function(e,t,r,n){for(e="",t=parseInt(t);t<parseInt(r);t++)e+=n.replace(/\[ i \]/g,"[ "+t+" ]");return e})}function He(e,t,r,n,i,o){var a=e.context,s=n.defines,c=i.vertexShader,u=i.fragmentShader,h="SHADOWMAP_TYPE_BASIC";1===o.shadowMapType?h="SHADOWMAP_TYPE_PCF":2===o.shadowMapType&&(h="SHADOWMAP_TYPE_PCF_SOFT");var l="ENVMAP_TYPE_CUBE",p="ENVMAP_MODE_REFLECTION",d="ENVMAP_BLENDING_MULTIPLY";if(o.envMap){switch(n.envMap.mapping){case 301:case 302:l="ENVMAP_TYPE_CUBE";break;case 306:case 307:l="ENVMAP_TYPE_CUBE_UV";break;case 303:case 304:l="ENVMAP_TYPE_EQUIREC";break;case 305:l="ENVMAP_TYPE_SPHERE"}switch(n.envMap.mapping){case 302:case 304:p="ENVMAP_MODE_REFRACTION"}switch(n.combine){case 0:d="ENVMAP_BLENDING_MULTIPLY";break;case 1:d="ENVMAP_BLENDING_MIX";break;case 2:d="ENVMAP_BLENDING_ADD"}}var f=0<e.gammaFactor?e.gammaFactor:1,m=function(e,t,r){return e=e||{},[e.derivatives||t.envMapCubeUV||t.bumpMap||t.normalMap||t.flatShading?"#extension GL_OES_standard_derivatives : enable":"",(e.fragDepth||t.logarithmicDepthBuffer)&&r.get("EXT_frag_depth")?"#extension GL_EXT_frag_depth : enable":"",e.drawBuffers&&r.get("WEBGL_draw_buffers")?"#extension GL_EXT_draw_buffers : require":"",(e.shaderTextureLOD||t.envMap)&&r.get("EXT_shader_texture_lod")?"#extension GL_EXT_shader_texture_lod : enable":""].filter($e).join("\n")}(n.extensions,o,t),v=function(e){var t,r=[];for(t in e){var n=e[t];!1!==n&&r.push("#define "+t+" "+n)}return r.join("\n")}(s),g=a.createProgram();n.isRawShaderMaterial?(0<(s=[v].filter($e).join("\n")).length&&(s+="\n"),0<(t=[m,v].filter($e).join("\n")).length&&(t+="\n")):(s=["precision "+o.precision+" float;","precision "+o.precision+" int;","#define SHADER_NAME "+i.name,v,o.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+f,"#define MAX_BONES "+o.maxBones,o.useFog&&o.fog?"#define USE_FOG":"",o.useFog&&o.fogExp?"#define FOG_EXP2":"",o.map?"#define USE_MAP":"",o.envMap?"#define USE_ENVMAP":"",o.envMap?"#define "+p:"",o.lightMap?"#define USE_LIGHTMAP":"",o.aoMap?"#define USE_AOMAP":"",o.emissiveMap?"#define USE_EMISSIVEMAP":"",o.bumpMap?"#define USE_BUMPMAP":"",o.normalMap?"#define USE_NORMALMAP":"",o.displacementMap&&o.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",o.specularMap?"#define USE_SPECULARMAP":"",o.roughnessMap?"#define USE_ROUGHNESSMAP":"",o.metalnessMap?"#define USE_METALNESSMAP":"",o.alphaMap?"#define USE_ALPHAMAP":"",o.vertexColors?"#define USE_COLOR":"",o.flatShading?"#define FLAT_SHADED":"",o.skinning?"#define USE_SKINNING":"",o.useVertexTexture?"#define BONE_TEXTURE":"",o.morphTargets?"#define USE_MORPHTARGETS":"",o.morphNormals&&!1===o.flatShading?"#define USE_MORPHNORMALS":"",o.doubleSided?"#define DOUBLE_SIDED":"",o.flipSided?"#define FLIP_SIDED":"","#define NUM_CLIPPING_PLANES "+o.numClippingPlanes,o.shadowMapEnabled?"#define USE_SHADOWMAP":"",o.shadowMapEnabled?"#define "+h:"",o.sizeAttenuation?"#define USE_SIZEATTENUATION":"",o.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",o.logarithmicDepthBuffer&&t.get("EXT_frag_depth")?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter($e).join("\n"),t=[m,"precision "+o.precision+" float;","precision "+o.precision+" int;","#define SHADER_NAME "+i.name,v,o.alphaTest?"#define ALPHATEST "+o.alphaTest:"","#define GAMMA_FACTOR "+f,o.useFog&&o.fog?"#define USE_FOG":"",o.useFog&&o.fogExp?"#define FOG_EXP2":"",o.map?"#define USE_MAP":"",o.envMap?"#define USE_ENVMAP":"",o.envMap?"#define "+l:"",o.envMap?"#define "+p:"",o.envMap?"#define "+d:"",o.lightMap?"#define USE_LIGHTMAP":"",o.aoMap?"#define USE_AOMAP":"",o.emissiveMap?"#define USE_EMISSIVEMAP":"",o.bumpMap?"#define USE_BUMPMAP":"",o.normalMap?"#define USE_NORMALMAP":"",o.specularMap?"#define USE_SPECULARMAP":"",o.roughnessMap?"#define USE_ROUGHNESSMAP":"",o.metalnessMap?"#define USE_METALNESSMAP":"",o.alphaMap?"#define USE_ALPHAMAP":"",o.vertexColors?"#define USE_COLOR":"",o.gradientMap?"#define USE_GRADIENTMAP":"",o.flatShading?"#define FLAT_SHADED":"",o.doubleSided?"#define DOUBLE_SIDED":"",o.flipSided?"#define FLIP_SIDED":"","#define NUM_CLIPPING_PLANES "+o.numClippingPlanes,"#define UNION_CLIPPING_PLANES "+(o.numClippingPlanes-o.numClipIntersection),o.shadowMapEnabled?"#define USE_SHADOWMAP":"",o.shadowMapEnabled?"#define "+h:"",o.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",o.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",o.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",o.logarithmicDepthBuffer&&t.get("EXT_frag_depth")?"#define USE_LOGDEPTHBUF_EXT":"",o.envMap&&t.get("EXT_shader_texture_lod")?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;",0!==o.toneMapping?"#define TONE_MAPPING":"",0!==o.toneMapping?_i.tonemapping_pars_fragment:"",0!==o.toneMapping?function(e,t){switch(t){case 1:t="Linear";break;case 2:t="Reinhard";break;case 3:t="Uncharted2";break;case 4:t="OptimizedCineon";break;default:throw Error("unsupported toneMapping: "+t)}return"vec3 "+e+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}("toneMapping",o.toneMapping):"",o.dithering?"#define DITHERING":"",o.outputEncoding||o.mapEncoding||o.envMapEncoding||o.emissiveMapEncoding?_i.encodings_pars_fragment:"",o.mapEncoding?Ue("mapTexelToLinear",o.mapEncoding):"",o.envMapEncoding?Ue("envMapTexelToLinear",o.envMapEncoding):"",o.emissiveMapEncoding?Ue("emissiveMapTexelToLinear",o.emissiveMapEncoding):"",o.outputEncoding?function(e,t){return t=Fe(t),"vec4 "+e+"( vec4 value ) { return LinearTo"+t[0]+t[1]+"; }"}("linearToOutputTexel",o.outputEncoding):"",o.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter($e).join("\n")),c=ze(c=Ge(c),o),u=ze(u=Ge(u),o),n.isShaderMaterial||(c=Ve(c),u=Ve(u)),u=t+u,c=Be(a,a.VERTEX_SHADER,s+c),u=Be(a,a.FRAGMENT_SHADER,u),a.attachShader(g,c),a.attachShader(g,u),void 0!==n.index0AttributeName?a.bindAttribLocation(g,0,n.index0AttributeName):!0===o.morphTargets&&a.bindAttribLocation(g,0,"position"),a.linkProgram(g),o=a.getProgramInfoLog(g),i=a.getShaderInfoLog(c),h=a.getShaderInfoLog(u),p=l=!0,!1===a.getProgramParameter(g,a.LINK_STATUS)?(l=!1,console.error("THREE.WebGLProgram: shader error: ",a.getError(),"gl.VALIDATE_STATUS",a.getProgramParameter(g,a.VALIDATE_STATUS),"gl.getProgramInfoLog",o,i,h)):""!==o?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",o):""!==i&&""!==h||(p=!1),p&&(this.diagnostics={runnable:l,material:n,programLog:o,vertexShader:{log:i,prefix:s},fragmentShader:{log:h,prefix:t}}),a.deleteShader(c),a.deleteShader(u);var y;this.getUniforms=function(){return void 0===y&&(y=new $(a,g,e)),y};var b;return this.getAttributes=function(){if(void 0===b){for(var e={},t=a.getProgramParameter(g,a.ACTIVE_ATTRIBUTES),r=0;r<t;r++){var n=a.getActiveAttrib(g,r).name;e[n]=a.getAttribLocation(g,n)}b=e}return b},this.destroy=function(){a.deleteProgram(g),this.program=void 0},Object.defineProperties(this,{uniforms:{get:function(){return console.warn("THREE.WebGLProgram: .uniforms is now .getUniforms()."),this.getUniforms()}},attributes:{get:function(){return console.warn("THREE.WebGLProgram: .attributes is now .getAttributes()."),this.getAttributes()}}}),this.id=Ci++,this.code=r,this.usedTimes=1,this.program=g,this.vertexShader=c,this.fragmentShader=u,this}function qe(e,t,r){function n(t){if("highp"===t){if(0<e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.HIGH_FLOAT).precision&&0<e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision)return"highp";t="mediump"}return"mediump"===t&&0<e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision&&0<e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision?"mediump":"lowp"}var i,o=void 0!==r.precision?r.precision:"highp";(a=n(o))!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",a,"instead."),o=a),r=!0===r.logarithmicDepthBuffer;var a=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),s=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS),c=e.getParameter(e.MAX_TEXTURE_SIZE),u=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),h=e.getParameter(e.MAX_VERTEX_ATTRIBS),l=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),p=e.getParameter(e.MAX_VARYING_VECTORS),d=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),f=0<s,m=!!t.get("OES_texture_float");return{getMaxAnisotropy:function(){if(void 0!==i)return i;var r=t.get("EXT_texture_filter_anisotropic");return i=null!==r?e.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:n,precision:o,logarithmicDepthBuffer:r,maxTextures:a,maxVertexTextures:s,maxTextureSize:c,maxCubemapSize:u,maxAttributes:h,maxVertexUniforms:l,maxVaryings:p,maxFragmentUniforms:d,vertexTextures:f,floatFragmentTextures:m,floatVertexTextures:f&&m}}function We(e,t,r,n){ie.call(this),this.type="PerspectiveCamera",this.fov=void 0!==e?e:50,this.zoom=1,this.near=void 0!==r?r:.1,this.far=void 0!==n?n:2e3,this.focus=10,this.aspect=void 0!==t?t:1,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}function Xe(e){We.call(this),this.cameras=e||[]}function Ye(e){function t(){if(null!==i&&i.isPresenting){var t=(n=i.getEyeParameters("left")).renderWidth,n=n.renderHeight;f=e.getPixelRatio(),d=e.getSize(),e.setDrawingBufferSize(2*t,n,1)}else r.enabled&&e.setDrawingBufferSize(d.width,d.height,f)}var r=this,i=null,o=null;"undefined"!=typeof window&&"VRFrameData"in window&&(o=new window.VRFrameData);var a=new n,s=new n,u=new n,h=new We;h.bounds=new c(0,0,.5,1),h.layers.enable(1);var l=new We;l.bounds=new c(.5,0,.5,1),l.layers.enable(2);var p=new Xe([h,l]);p.layers.enable(1),p.layers.enable(2);var d,f;"undefined"!=typeof window&&window.addEventListener("vrdisplaypresentchange",t,!1),this.standing=this.enabled=!1,this.getDevice=function(){return i},this.setDevice=function(e){void 0!==e&&(i=e)},this.getCamera=function(e){if(null===i)return e;i.depthNear=e.near,i.depthFar=e.far,i.getFrameData(o);var t=o.pose;return null!==t.position?e.position.fromArray(t.position):e.position.set(0,0,0),null!==t.orientation&&e.quaternion.fromArray(t.orientation),e.updateMatrixWorld(),t=i.stageParameters,this.standing&&t&&(s.fromArray(t.sittingToStandingTransform),u.getInverse(s),e.matrixWorld.multiply(s),e.matrixWorldInverse.multiply(u)),!1===i.isPresenting?e:(h.near=e.near,l.near=e.near,h.far=e.far,l.far=e.far,p.matrixWorld.copy(e.matrixWorld),p.matrixWorldInverse.copy(e.matrixWorldInverse),h.matrixWorldInverse.fromArray(o.leftViewMatrix),l.matrixWorldInverse.fromArray(o.rightViewMatrix),this.standing&&t&&(h.matrixWorldInverse.multiply(u),l.matrixWorldInverse.multiply(u)),null!==(e=e.parent)&&(a.getInverse(e.matrixWorld),h.matrixWorldInverse.multiply(a),l.matrixWorldInverse.multiply(a)),h.matrixWorld.getInverse(h.matrixWorldInverse),l.matrixWorld.getInverse(l.matrixWorldInverse),h.projectionMatrix.fromArray(o.leftProjectionMatrix),l.projectionMatrix.fromArray(o.rightProjectionMatrix),p.projectionMatrix.copy(h.projectionMatrix),(e=i.getLayers()).length&&(null!==(e=e[0]).leftBounds&&4===e.leftBounds.length&&h.bounds.fromArray(e.leftBounds),null!==e.rightBounds&&4===e.rightBounds.length&&l.bounds.fromArray(e.rightBounds)),p)},this.getStandingMatrix=function(){return s},this.submitFrame=function(){i&&i.isPresenting&&i.submitFrame()},this.dispose=function(){"undefined"!=typeof window&&window.removeEventListener("vrdisplaypresentchange",t)}}function Ke(){function e(){h.value!==n&&(h.value=n,h.needsUpdate=0<i),r.numPlanes=i,r.numIntersection=0}function t(e,t,n,i){var o=null!==e?e.length:0,a=null;if(0!==o){if(a=h.value,!0!==i||null===a)for(i=n+4*o,t=t.matrixWorldInverse,u.getNormalMatrix(t),(null===a||a.length<i)&&(a=new Float32Array(i)),i=0;i!==o;++i,n+=4)c.copy(e[i]).applyMatrix4(t,u),c.normal.toArray(a,n),a[n+3]=c.constant;h.value=a,h.needsUpdate=!0}return r.numPlanes=o,a}var r=this,n=null,i=0,o=!1,s=!1,c=new J,u=new a,h={value:null,needsUpdate:!1};this.uniform=h,this.numIntersection=this.numPlanes=0,this.init=function(e,r,a){var s=0!==e.length||r||0!==i||o;return o=r,n=t(e,a,0),i=e.length,s},this.beginShadows=function(){s=!0,t(null)},this.endShadows=function(){s=!1,e()},this.setState=function(r,a,c,u,l,p){if(!o||null===r||0===r.length||s&&!c)s?t(null):e();else{var d=4*(c=s?0:i),f=l.clippingState||null;for(h.value=f,f=t(r,u,d,p),r=0;r!==d;++r)f[r]=n[r];l.clippingState=f,this.numIntersection=a?this.numPlanes:0,this.numPlanes+=c}}}function Ze(e,t){return{convert:function(r){if(1e3===r)return e.REPEAT;if(1001===r)return e.CLAMP_TO_EDGE;if(1002===r)return e.MIRRORED_REPEAT;if(1003===r)return e.NEAREST;if(1004===r)return e.NEAREST_MIPMAP_NEAREST;if(1005===r)return e.NEAREST_MIPMAP_LINEAR;if(1006===r)return e.LINEAR;if(1007===r)return e.LINEAR_MIPMAP_NEAREST;if(1008===r)return e.LINEAR_MIPMAP_LINEAR;if(1009===r)return e.UNSIGNED_BYTE;if(1017===r)return e.UNSIGNED_SHORT_4_4_4_4;if(1018===r)return e.UNSIGNED_SHORT_5_5_5_1;if(1019===r)return e.UNSIGNED_SHORT_5_6_5;if(1010===r)return e.BYTE;if(1011===r)return e.SHORT;if(1012===r)return e.UNSIGNED_SHORT;if(1013===r)return e.INT;if(1014===r)return e.UNSIGNED_INT;if(1015===r)return e.FLOAT;if(1016===r){var n=t.get("OES_texture_half_float");if(null!==n)return n.HALF_FLOAT_OES}if(1021===r)return e.ALPHA;if(1022===r)return e.RGB;if(1023===r)return e.RGBA;if(1024===r)return e.LUMINANCE;if(1025===r)return e.LUMINANCE_ALPHA;if(1026===r)return e.DEPTH_COMPONENT;if(1027===r)return e.DEPTH_STENCIL;if(100===r)return e.FUNC_ADD;if(101===r)return e.FUNC_SUBTRACT;if(102===r)return e.FUNC_REVERSE_SUBTRACT;if(200===r)return e.ZERO;if(201===r)return e.ONE;if(202===r)return e.SRC_COLOR;if(203===r)return e.ONE_MINUS_SRC_COLOR;if(204===r)return e.SRC_ALPHA;if(205===r)return e.ONE_MINUS_SRC_ALPHA;if(206===r)return e.DST_ALPHA;if(207===r)return e.ONE_MINUS_DST_ALPHA;if(208===r)return e.DST_COLOR;if(209===r)return e.ONE_MINUS_DST_COLOR;if(210===r)return e.SRC_ALPHA_SATURATE;if((2001===r||2002===r||2003===r||2004===r)&&null!==(n=t.get("WEBGL_compressed_texture_s3tc"))){if(2001===r)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(2002===r)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(2003===r)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(2004===r)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if((2100===r||2101===r||2102===r||2103===r)&&null!==(n=t.get("WEBGL_compressed_texture_pvrtc"))){if(2100===r)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(2101===r)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(2102===r)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(2103===r)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(2151===r&&null!==(n=t.get("WEBGL_compressed_texture_etc1")))return n.COMPRESSED_RGB_ETC1_WEBGL;if((103===r||104===r)&&null!==(n=t.get("EXT_blend_minmax"))){if(103===r)return n.MIN_EXT;if(104===r)return n.MAX_EXT}return 1020===r&&null!==(n=t.get("WEBGL_depth_texture"))?n.UNSIGNED_INT_24_8_WEBGL:0}}}function Je(e){function t(){(ue=new function(e){var t={};return{get:function(r){if(void 0!==t[r])return t[r];switch(r){case"WEBGL_depth_texture":var n=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":n=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":n=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":n=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;case"WEBGL_compressed_texture_etc1":n=e.getExtension("WEBGL_compressed_texture_etc1");break;default:n=e.getExtension(r)}return null===n&&console.warn("THREE.WebGLRenderer: "+r+" extension not supported."),t[r]=n}}}(ce)).get("WEBGL_depth_texture"),ue.get("OES_texture_float"),ue.get("OES_texture_float_linear"),ue.get("OES_texture_half_float"),ue.get("OES_texture_half_float_linear"),ue.get("OES_standard_derivatives"),ue.get("OES_element_index_uint"),ue.get("ANGLE_instanced_arrays"),Ce=new Ze(ce,ue),he=new qe(ce,ue,e),(le=new function(e,t,r){function n(t,r,n){var i=new Uint8Array(4),o=e.createTexture();for(e.bindTexture(t,o),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST),t=0;t<n;t++)e.texImage2D(r+t,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,i);return o}function i(t){!0!==b[t]&&(e.enable(t),b[t]=!0)}function o(t){!1!==b[t]&&(e.disable(t),b[t]=!1)}function a(t,n,a,s,c,u,h,l){if(0!==t?i(e.BLEND):o(e.BLEND),5!==t){if(t!==w||l!==P)switch(t){case 2:l?(e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.ONE,e.ONE,e.ONE,e.ONE)):(e.blendEquation(e.FUNC_ADD),e.blendFunc(e.SRC_ALPHA,e.ONE));break;case 3:l?(e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.ZERO,e.ZERO,e.ONE_MINUS_SRC_COLOR,e.ONE_MINUS_SRC_ALPHA)):(e.blendEquation(e.FUNC_ADD),e.blendFunc(e.ZERO,e.ONE_MINUS_SRC_COLOR));break;case 4:l?(e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.ZERO,e.SRC_COLOR,e.ZERO,e.SRC_ALPHA)):(e.blendEquation(e.FUNC_ADD),e.blendFunc(e.ZERO,e.SRC_COLOR));break;default:l?(e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.ONE,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA)):(e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA))}O=T=C=E=M=S=null}else c=c||n,u=u||a,h=h||s,n===S&&c===C||(e.blendEquationSeparate(r.convert(n),r.convert(c)),S=n,C=c),a===M&&s===E&&u===T&&h===O||(e.blendFuncSeparate(r.convert(a),r.convert(s),r.convert(u),r.convert(h)),M=a,E=s,T=u,O=h);w=t,P=l}function s(t){j!==t&&(t?e.frontFace(e.CW):e.frontFace(e.CCW),j=t)}function u(t){0!==t?(i(e.CULL_FACE),t!==A&&(1===t?e.cullFace(e.BACK):2===t?e.cullFace(e.FRONT):e.cullFace(e.FRONT_AND_BACK))):o(e.CULL_FACE),A=t}function h(t,r,n){t?(i(e.POLYGON_OFFSET_FILL),(L!==r||N!==n)&&(e.polygonOffset(r,n),L=r,N=n)):o(e.POLYGON_OFFSET_FILL)}function l(t){void 0===t&&(t=e.TEXTURE0+I-1),k!==t&&(e.activeTexture(t),k=t)}var p=new function(){var t=!1,r=new c,n=null,i=new c(0,0,0,0);return{setMask:function(r){n===r||t||(e.colorMask(r,r,r,r),n=r)},setLocked:function(e){t=e},setClear:function(t,n,o,a,s){!0===s&&(t*=a,n*=a,o*=a),r.set(t,n,o,a),!1===i.equals(r)&&(e.clearColor(t,n,o,a),i.copy(r))},reset:function(){t=!1,n=null,i.set(-1,0,0,0)}}},d=new function(){var t=!1,r=null,n=null,a=null;return{setTest:function(t){t?i(e.DEPTH_TEST):o(e.DEPTH_TEST)},setMask:function(n){r===n||t||(e.depthMask(n),r=n)},setFunc:function(t){if(n!==t){if(t)switch(t){case 0:e.depthFunc(e.NEVER);break;case 1:e.depthFunc(e.ALWAYS);break;case 2:e.depthFunc(e.LESS);break;case 3:e.depthFunc(e.LEQUAL);break;case 4:e.depthFunc(e.EQUAL);break;case 5:e.depthFunc(e.GEQUAL);break;case 6:e.depthFunc(e.GREATER);break;case 7:e.depthFunc(e.NOTEQUAL);break;default:e.depthFunc(e.LEQUAL)}else e.depthFunc(e.LEQUAL);n=t}},setLocked:function(e){t=e},setClear:function(t){a!==t&&(e.clearDepth(t),a=t)},reset:function(){t=!1,a=n=r=null}}},f=new function(){var t=!1,r=null,n=null,a=null,s=null,c=null,u=null,h=null,l=null;return{setTest:function(t){t?i(e.STENCIL_TEST):o(e.STENCIL_TEST)},setMask:function(n){r===n||t||(e.stencilMask(n),r=n)},setFunc:function(t,r,i){n===t&&a===r&&s===i||(e.stencilFunc(t,r,i),n=t,a=r,s=i)},setOp:function(t,r,n){c===t&&u===r&&h===n||(e.stencilOp(t,r,n),c=t,u=r,h=n)},setLocked:function(e){t=e},setClear:function(t){l!==t&&(e.clearStencil(t),l=t)},reset:function(){t=!1,l=h=u=c=s=a=n=r=null}}},m=e.getParameter(e.MAX_VERTEX_ATTRIBS),v=new Uint8Array(m),g=new Uint8Array(m),y=new Uint8Array(m),b={},_=null,x=null,w=null,S=null,M=null,E=null,C=null,T=null,O=null,P=!1,j=null,A=null,R=null,L=null,N=null,I=e.getParameter(e.MAX_COMBINED_TEXTURE_IMAGE_UNITS),m=parseFloat(/^WebGL\ ([0-9])/.exec(e.getParameter(e.VERSION))[1]),D=1<=parseFloat(m),k=null,B={},F=new c,U=new c,$={};return $[e.TEXTURE_2D]=n(e.TEXTURE_2D,e.TEXTURE_2D,1),$[e.TEXTURE_CUBE_MAP]=n(e.TEXTURE_CUBE_MAP,e.TEXTURE_CUBE_MAP_POSITIVE_X,6),p.setClear(0,0,0,1),d.setClear(1),f.setClear(0),i(e.DEPTH_TEST),d.setFunc(3),s(!1),u(1),i(e.CULL_FACE),i(e.BLEND),a(1),{buffers:{color:p,depth:d,stencil:f},initAttributes:function(){for(var e=0,t=v.length;e<t;e++)v[e]=0},enableAttribute:function(r){v[r]=1,0===g[r]&&(e.enableVertexAttribArray(r),g[r]=1),0!==y[r]&&(t.get("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(r,0),y[r]=0)},enableAttributeAndDivisor:function(r,n){v[r]=1,0===g[r]&&(e.enableVertexAttribArray(r),g[r]=1),y[r]!==n&&(t.get("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(r,n),y[r]=n)},disableUnusedAttributes:function(){for(var t=0,r=g.length;t!==r;++t)g[t]!==v[t]&&(e.disableVertexAttribArray(t),g[t]=0)},enable:i,disable:o,getCompressedTextureFormats:function(){if(null===_&&(_=[],t.get("WEBGL_compressed_texture_pvrtc")||t.get("WEBGL_compressed_texture_s3tc")||t.get("WEBGL_compressed_texture_etc1")))for(var r=e.getParameter(e.COMPRESSED_TEXTURE_FORMATS),n=0;n<r.length;n++)_.push(r[n]);return _},useProgram:function(t){return x!==t&&(e.useProgram(t),x=t,!0)},setBlending:a,setMaterial:function(t){2===t.side?o(e.CULL_FACE):i(e.CULL_FACE),s(1===t.side),!0===t.transparent?a(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha):a(0),d.setFunc(t.depthFunc),d.setTest(t.depthTest),d.setMask(t.depthWrite),p.setMask(t.colorWrite),h(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits)},setFlipSided:s,setCullFace:u,setLineWidth:function(t){t!==R&&(D&&e.lineWidth(t),R=t)},setPolygonOffset:h,setScissorTest:function(t){t?i(e.SCISSOR_TEST):o(e.SCISSOR_TEST)},activeTexture:l,bindTexture:function(t,r){null===k&&l();var n=B[k];void 0===n&&(n={type:void 0,texture:void 0},B[k]=n),n.type===t&&n.texture===r||(e.bindTexture(t,r||$[t]),n.type=t,n.texture=r)},compressedTexImage2D:function(){try{e.compressedTexImage2D.apply(e,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texImage2D:function(){try{e.texImage2D.apply(e,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},scissor:function(t){!1===F.equals(t)&&(e.scissor(t.x,t.y,t.z,t.w),F.copy(t))},viewport:function(t){!1===U.equals(t)&&(e.viewport(t.x,t.y,t.z,t.w),U.copy(t))},reset:function(){for(var t=0;t<g.length;t++)1===g[t]&&(e.disableVertexAttribArray(t),g[t]=0);b={},k=_=null,B={},A=j=w=x=null,p.reset(),d.reset(),f.reset()}}}(ce,ue,Ce)).scissor(U.copy(K).multiplyScalar(X)),le.viewport(F.copy(Y).multiplyScalar(X)),pe=new function(){var e={};return{get:function(t){t=t.uuid;var r=e[t];return void 0===r&&(r={},e[t]=r),r},remove:function(t){delete e[t.uuid]},clear:function(){e={}}}},de=new function(e,t,r,n,i,o,a){function s(e,t){if(e.width>t||e.height>t){t/=Math.max(e.width,e.height);var r=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return r.width=Math.floor(e.width*t),r.height=Math.floor(e.height*t),r.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,r.width,r.height),console.warn("THREE.WebGLRenderer: image is too big ("+e.width+"x"+e.height+"). Resized to "+r.width+"x"+r.height,e),r}return e}function c(e){return ci.isPowerOfTwo(e.width)&&ci.isPowerOfTwo(e.height)}function u(e,t){return e.generateMipmaps&&t&&1003!==e.minFilter&&1006!==e.minFilter}function h(t){return 1003===t||1004===t||1005===t?e.NEAREST:e.LINEAR}function l(t){(t=t.target).removeEventListener("dispose",l);e:{var r=n.get(t);if(t.image&&r.__image__webglTextureCube)e.deleteTexture(r.__image__webglTextureCube);else{if(void 0===r.__webglInit)break e;e.deleteTexture(r.__webglTexture)}n.remove(t)}a.textures--}function p(t){(t=t.target).removeEventListener("dispose",p);var r=n.get(t),i=n.get(t.texture);if(t){if(void 0!==i.__webglTexture&&e.deleteTexture(i.__webglTexture),t.depthTexture&&t.depthTexture.dispose(),t.isWebGLRenderTargetCube)for(i=0;6>i;i++)e.deleteFramebuffer(r.__webglFramebuffer[i]),r.__webglDepthbuffer&&e.deleteRenderbuffer(r.__webglDepthbuffer[i]);else e.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&e.deleteRenderbuffer(r.__webglDepthbuffer);n.remove(t.texture),n.remove(t)}a.textures--}function d(t,h){var p=n.get(t);if(0<t.version&&p.__version!==t.version)if(void 0===(m=t.image))console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined",t);else{if(!1!==m.complete){void 0===p.__webglInit&&(p.__webglInit=!0,t.addEventListener("dispose",l),p.__webglTexture=e.createTexture(),a.textures++),r.activeTexture(e.TEXTURE0+h),r.bindTexture(e.TEXTURE_2D,p.__webglTexture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,t.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,t.unpackAlignment);var d=s(t.image,i.maxTextureSize);(1001!==t.wrapS||1001!==t.wrapT||1003!==t.minFilter&&1006!==t.minFilter)&&!1===c(d)&&((h=d)instanceof HTMLImageElement||h instanceof HTMLCanvasElement||h instanceof ImageBitmap?(m=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),m.width=ci.floorPowerOfTwo(h.width),m.height=ci.floorPowerOfTwo(h.height),m.getContext("2d").drawImage(h,0,0,m.width,m.height),console.warn("THREE.WebGLRenderer: image is not power of two ("+h.width+"x"+h.height+"). Resized to "+m.width+"x"+m.height,h),d=m):d=h),h=c(d);var m=o.convert(t.format),v=o.convert(t.type);f(e.TEXTURE_2D,t,h);var y=t.mipmaps;if(t.isDepthTexture){if(y=e.DEPTH_COMPONENT,1015===t.type){if(!g)throw Error("Float Depth Texture only supported in WebGL2.0");y=e.DEPTH_COMPONENT32F}else g&&(y=e.DEPTH_COMPONENT16);1026===t.format&&y===e.DEPTH_COMPONENT&&1012!==t.type&&1014!==t.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),t.type=1012,v=o.convert(t.type)),1027===t.format&&(y=e.DEPTH_STENCIL,1020!==t.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),t.type=1020,v=o.convert(t.type))),r.texImage2D(e.TEXTURE_2D,0,y,d.width,d.height,0,m,v,null)}else if(t.isDataTexture)if(0<y.length&&h){for(var b=0,_=y.length;b<_;b++)d=y[b],r.texImage2D(e.TEXTURE_2D,b,m,d.width,d.height,0,m,v,d.data);t.generateMipmaps=!1}else r.texImage2D(e.TEXTURE_2D,0,m,d.width,d.height,0,m,v,d.data);else if(t.isCompressedTexture)for(b=0,_=y.length;b<_;b++)d=y[b],1023!==t.format&&1022!==t.format?-1<r.getCompressedTextureFormats().indexOf(m)?r.compressedTexImage2D(e.TEXTURE_2D,b,m,d.width,d.height,0,d.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):r.texImage2D(e.TEXTURE_2D,b,m,d.width,d.height,0,m,v,d.data);else if(0<y.length&&h){for(b=0,_=y.length;b<_;b++)d=y[b],r.texImage2D(e.TEXTURE_2D,b,m,m,v,d);t.generateMipmaps=!1}else r.texImage2D(e.TEXTURE_2D,0,m,m,v,d);return u(t,h)&&e.generateMipmap(e.TEXTURE_2D),p.__version=t.version,void(t.onUpdate&&t.onUpdate(t))}console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete",t)}r.activeTexture(e.TEXTURE0+h),r.bindTexture(e.TEXTURE_2D,p.__webglTexture)}function f(r,a,s){s?(e.texParameteri(r,e.TEXTURE_WRAP_S,o.convert(a.wrapS)),e.texParameteri(r,e.TEXTURE_WRAP_T,o.convert(a.wrapT)),e.texParameteri(r,e.TEXTURE_MAG_FILTER,o.convert(a.magFilter)),e.texParameteri(r,e.TEXTURE_MIN_FILTER,o.convert(a.minFilter))):(e.texParameteri(r,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(r,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),1001===a.wrapS&&1001===a.wrapT||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.",a),e.texParameteri(r,e.TEXTURE_MAG_FILTER,h(a.magFilter)),e.texParameteri(r,e.TEXTURE_MIN_FILTER,h(a.minFilter)),1003!==a.minFilter&&1006!==a.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.",a)),!(s=t.get("EXT_texture_filter_anisotropic"))||1015===a.type&&null===t.get("OES_texture_float_linear")||1016===a.type&&null===t.get("OES_texture_half_float_linear")||!(1<a.anisotropy||n.get(a).__currentAnisotropy)||(e.texParameterf(r,s.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(a.anisotropy,i.getMaxAnisotropy())),n.get(a).__currentAnisotropy=a.anisotropy)}function m(t,i,a,s){var c=o.convert(i.texture.format),u=o.convert(i.texture.type);r.texImage2D(s,0,c,i.width,i.height,0,c,u,null),e.bindFramebuffer(e.FRAMEBUFFER,t),e.framebufferTexture2D(e.FRAMEBUFFER,a,s,n.get(i.texture).__webglTexture,0),e.bindFramebuffer(e.FRAMEBUFFER,null)}function v(t,r){e.bindRenderbuffer(e.RENDERBUFFER,t),r.depthBuffer&&!r.stencilBuffer?(e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,r.width,r.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t)):r.depthBuffer&&r.stencilBuffer?(e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,r.width,r.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t)):e.renderbufferStorage(e.RENDERBUFFER,e.RGBA4,r.width,r.height),e.bindRenderbuffer(e.RENDERBUFFER,null)}var g="undefined"!=typeof WebGL2RenderingContext&&e instanceof window.WebGL2RenderingContext;this.setTexture2D=d,this.setTextureCube=function(t,h){var p=n.get(t);if(6===t.image.length)if(0<t.version&&p.__version!==t.version){p.__image__webglTextureCube||(t.addEventListener("dispose",l),p.__image__webglTextureCube=e.createTexture(),a.textures++),r.activeTexture(e.TEXTURE0+h),r.bindTexture(e.TEXTURE_CUBE_MAP,p.__image__webglTextureCube),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,t.flipY),h=t&&t.isCompressedTexture;for(var d=t.image[0]&&t.image[0].isDataTexture,m=[],v=0;6>v;v++)m[v]=h||d?d?t.image[v].image:t.image[v]:s(t.image[v],i.maxCubemapSize);var g=c(m[0]),y=o.convert(t.format),b=o.convert(t.type);for(f(e.TEXTURE_CUBE_MAP,t,g),v=0;6>v;v++)if(h)for(var _,x=m[v].mipmaps,w=0,S=x.length;w<S;w++)_=x[w],1023!==t.format&&1022!==t.format?-1<r.getCompressedTextureFormats().indexOf(y)?r.compressedTexImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+v,w,y,_.width,_.height,0,_.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):r.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+v,w,y,_.width,_.height,0,y,b,_.data);else d?r.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+v,0,y,m[v].width,m[v].height,0,y,b,m[v].data):r.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+v,0,y,y,b,m[v]);u(t,g)&&e.generateMipmap(e.TEXTURE_CUBE_MAP),p.__version=t.version,t.onUpdate&&t.onUpdate(t)}else r.activeTexture(e.TEXTURE0+h),r.bindTexture(e.TEXTURE_CUBE_MAP,p.__image__webglTextureCube)},this.setTextureCubeDynamic=function(t,i){r.activeTexture(e.TEXTURE0+i),r.bindTexture(e.TEXTURE_CUBE_MAP,n.get(t).__webglTexture)},this.setupRenderTarget=function(t){var i=n.get(t),o=n.get(t.texture);t.addEventListener("dispose",p),o.__webglTexture=e.createTexture(),a.textures++;var s=!0===t.isWebGLRenderTargetCube,h=c(t);if(s){i.__webglFramebuffer=[];for(var l=0;6>l;l++)i.__webglFramebuffer[l]=e.createFramebuffer()}else i.__webglFramebuffer=e.createFramebuffer();if(s){for(r.bindTexture(e.TEXTURE_CUBE_MAP,o.__webglTexture),f(e.TEXTURE_CUBE_MAP,t.texture,h),l=0;6>l;l++)m(i.__webglFramebuffer[l],t,e.COLOR_ATTACHMENT0,e.TEXTURE_CUBE_MAP_POSITIVE_X+l);u(t.texture,h)&&e.generateMipmap(e.TEXTURE_CUBE_MAP),r.bindTexture(e.TEXTURE_CUBE_MAP,null)}else r.bindTexture(e.TEXTURE_2D,o.__webglTexture),f(e.TEXTURE_2D,t.texture,h),m(i.__webglFramebuffer,t,e.COLOR_ATTACHMENT0,e.TEXTURE_2D),u(t.texture,h)&&e.generateMipmap(e.TEXTURE_2D),r.bindTexture(e.TEXTURE_2D,null);if(t.depthBuffer){if(i=n.get(t),o=!0===t.isWebGLRenderTargetCube,t.depthTexture){if(o)throw Error("target.depthTexture not supported in Cube render targets");if(t&&t.isWebGLRenderTargetCube)throw Error("Depth Texture with cube render targets is not supported");if(e.bindFramebuffer(e.FRAMEBUFFER,i.__webglFramebuffer),!t.depthTexture||!t.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");if(n.get(t.depthTexture).__webglTexture&&t.depthTexture.image.width===t.width&&t.depthTexture.image.height===t.height||(t.depthTexture.image.width=t.width,t.depthTexture.image.height=t.height,t.depthTexture.needsUpdate=!0),d(t.depthTexture,0),i=n.get(t.depthTexture).__webglTexture,1026===t.depthTexture.format)e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,i,0);else{if(1027!==t.depthTexture.format)throw Error("Unknown depthTexture format");e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.TEXTURE_2D,i,0)}}else if(o)for(i.__webglDepthbuffer=[],o=0;6>o;o++)e.bindFramebuffer(e.FRAMEBUFFER,i.__webglFramebuffer[o]),i.__webglDepthbuffer[o]=e.createRenderbuffer(),v(i.__webglDepthbuffer[o],t);else e.bindFramebuffer(e.FRAMEBUFFER,i.__webglFramebuffer),i.__webglDepthbuffer=e.createRenderbuffer(),v(i.__webglDepthbuffer,t);e.bindFramebuffer(e.FRAMEBUFFER,null)}},this.updateRenderTargetMipmap=function(t){var i=t.texture;u(i,c(t))&&(t=t.isWebGLRenderTargetCube?e.TEXTURE_CUBE_MAP:e.TEXTURE_2D,i=n.get(i).__webglTexture,r.bindTexture(t,i),e.generateMipmap(t),r.bindTexture(t,null))}}(ce,ue,le,pe,he,Ce,ae),fe=new function(e){var t={};return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),t[e.uuid]},remove:function(r){r.isInterleavedBufferAttribute&&(r=r.data);var n=t[r.uuid];n&&(e.deleteBuffer(n.buffer),delete t[r.uuid])},update:function(r,n){if(r.isInterleavedBufferAttribute&&(r=r.data),void 0===(i=t[r.uuid])){var i=r.uuid,o=r.array,a=r.dynamic?e.DYNAMIC_DRAW:e.STATIC_DRAW,s=e.createBuffer();e.bindBuffer(n,s),e.bufferData(n,o,a),r.onUploadCallback(),n=e.FLOAT,o instanceof Float32Array?n=e.FLOAT:o instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):o instanceof Uint16Array?n=e.UNSIGNED_SHORT:o instanceof Int16Array?n=e.SHORT:o instanceof Uint32Array?n=e.UNSIGNED_INT:o instanceof Int32Array?n=e.INT:o instanceof Int8Array?n=e.BYTE:o instanceof Uint8Array&&(n=e.UNSIGNED_BYTE),t[i]={buffer:s,type:n,bytesPerElement:o.BYTES_PER_ELEMENT,version:r.version}}else i.version<r.version&&(o=r,s=o.array,a=o.updateRange,e.bindBuffer(n,i.buffer),!1===o.dynamic?e.bufferData(n,s,e.STATIC_DRAW):-1===a.count?e.bufferSubData(n,0,s):0===a.count?console.error("THREE.WebGLObjects.updateBuffer: dynamic THREE.BufferAttribute marked as needsUpdate but updateRange.count is 0, ensure you are using set methods or updating manually."):(e.bufferSubData(n,a.offset*s.BYTES_PER_ELEMENT,s.subarray(a.offset,a.offset+a.count)),a.count=-1),i.version=r.version)}}}(ce),me=new De(ce,fe,ae),ve=new function(e,t){var r={};return{update:function(n){var i=t.frame,o=n.geometry,a=e.get(n,o);return r[a.id]!==i&&(o.isGeometry&&a.updateFromObject(n),e.update(a),r[a.id]=i),a},clear:function(){r={}}}}(me,se),xe=new function(e){var t={},r=new Float32Array(8);return{update:function(n,i,o,a){var s=n.morphTargetInfluences,c=s.length;if(void 0===(n=t[i.id])){n=[];for(var u=0;u<c;u++)n[u]=[u,0];t[i.id]=n}var h=o.morphTargets&&i.morphAttributes.position;for(o=o.morphNormals&&i.morphAttributes.normal,u=0;u<c;u++){var l=n[u];0!==l[1]&&(h&&i.removeAttribute("morphTarget"+u),o&&i.removeAttribute("morphNormal"+u))}for(u=0;u<c;u++)l=n[u],l[0]=u,l[1]=s[u];for(n.sort(Ie),u=0;8>u;u++)(l=n[u])&&(s=l[0],l=l[1])?(h&&i.addAttribute("morphTarget"+u,h[s]),o&&i.addAttribute("morphNormal"+u,o[s]),r[u]=l):r[u]=0;a.getUniforms().setValue(e,"morphTargetInfluences",r)}}}(ce),ye=new function(e,t,r){function n(e,t){if(e)e.isTexture?r=e.encoding:e.isWebGLRenderTarget&&(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),r=e.texture.encoding);else var r=3e3;return 3e3===r&&t&&(r=3007),r}var i=[],o={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"phong",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow"},a="precision supportsVertexTextures map mapEncoding envMap envMapMode envMapEncoding lightMap aoMap emissiveMap emissiveMapEncoding bumpMap normalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors fog useFog fogExp flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking dithering".split(" ");this.getParameters=function(t,i,a,s,c,u,h){var l=o[t.type];if(h.isSkinnedMesh){var p=h.skeleton.bones;if(r.floatVertexTextures)p=1024;else{var d=Math.min(Math.floor((r.maxVertexUniforms-20)/4),p.length);d<p.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+p.length+" bones. This GPU supports "+d+"."),p=0):p=d}}else p=0;d=r.precision,null!==t.precision&&(d=r.getMaxPrecision(t.precision))!==t.precision&&console.warn("THREE.WebGLProgram.getParameters:",t.precision,"not supported, using",d,"instead.");var f=e.getRenderTarget();return{shaderID:l,precision:d,supportsVertexTextures:r.vertexTextures,outputEncoding:n(f?f.texture:null,e.gammaOutput),map:!!t.map,mapEncoding:n(t.map,e.gammaInput),envMap:!!t.envMap,envMapMode:t.envMap&&t.envMap.mapping,envMapEncoding:n(t.envMap,e.gammaInput),envMapCubeUV:!!t.envMap&&(306===t.envMap.mapping||307===t.envMap.mapping),lightMap:!!t.lightMap,aoMap:!!t.aoMap,emissiveMap:!!t.emissiveMap,emissiveMapEncoding:n(t.emissiveMap,e.gammaInput),bumpMap:!!t.bumpMap,normalMap:!!t.normalMap,displacementMap:!!t.displacementMap,roughnessMap:!!t.roughnessMap,metalnessMap:!!t.metalnessMap,specularMap:!!t.specularMap,alphaMap:!!t.alphaMap,gradientMap:!!t.gradientMap,combine:t.combine,vertexColors:t.vertexColors,fog:!!s,useFog:t.fog,fogExp:s&&s.isFogExp2,flatShading:t.flatShading,sizeAttenuation:t.sizeAttenuation,logarithmicDepthBuffer:r.logarithmicDepthBuffer,skinning:t.skinning&&0<p,maxBones:p,useVertexTexture:r.floatVertexTextures,morphTargets:t.morphTargets,morphNormals:t.morphNormals,maxMorphTargets:e.maxMorphTargets,maxMorphNormals:e.maxMorphNormals,numDirLights:i.directional.length,numPointLights:i.point.length,numSpotLights:i.spot.length,numRectAreaLights:i.rectArea.length,numHemiLights:i.hemi.length,numClippingPlanes:c,numClipIntersection:u,dithering:t.dithering,shadowMapEnabled:e.shadowMap.enabled&&h.receiveShadow&&0<a.length,shadowMapType:e.shadowMap.type,toneMapping:e.toneMapping,physicallyCorrectLights:e.physicallyCorrectLights,premultipliedAlpha:t.premultipliedAlpha,alphaTest:t.alphaTest,doubleSided:2===t.side,flipSided:1===t.side,depthPacking:void 0!==t.depthPacking&&t.depthPacking}},this.getProgramCode=function(t,r){var n=[];if(r.shaderID?n.push(r.shaderID):(n.push(t.fragmentShader),n.push(t.vertexShader)),void 0!==t.defines)for(var i in t.defines)n.push(i),n.push(t.defines[i]);for(i=0;i<a.length;i++)n.push(r[a[i]]);return n.push(t.onBeforeCompile.toString()),n.push(e.gammaOutput),n.join()},this.acquireProgram=function(r,n,o,a){for(var s,c=0,u=i.length;c<u;c++){var h=i[c];if(h.code===a){++(s=h).usedTimes;break}}return void 0===s&&(s=new He(e,t,a,r,n,o),i.push(s)),s},this.releaseProgram=function(e){if(0==--e.usedTimes){var t=i.indexOf(e);i[t]=i[i.length-1],i.pop(),e.destroy()}},this.programs=i}(A,ue,he),ge=new ke,be=new Ne,_e=new Ae(A,le,me,M),we=new function(e,t,r){var n;this.setMode=function(e){n=e},this.render=function(t,i){e.drawArrays(n,t,i),r.calls++,r.vertices+=i,n===e.TRIANGLES?r.faces+=i/3:n===e.POINTS&&(r.points+=i)},this.renderInstances=function(i,o,a){var s=t.get("ANGLE_instanced_arrays");if(null===s)console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{var c=i.attributes.position;c.isInterleavedBufferAttribute?(a=c.data.count,s.drawArraysInstancedANGLE(n,0,a,i.maxInstancedCount)):s.drawArraysInstancedANGLE(n,o,a,i.maxInstancedCount),r.calls++,r.vertices+=a*i.maxInstancedCount,n===e.TRIANGLES?r.faces+=i.maxInstancedCount*a/3:n===e.POINTS&&(r.points+=i.maxInstancedCount*a)}}}(ce,ue,se),Se=new function(e,t,r){var n,i,o;this.setMode=function(e){n=e},this.setIndex=function(e){i=e.type,o=e.bytesPerElement},this.render=function(t,a){e.drawElements(n,a,i,t*o),r.calls++,r.vertices+=a,n===e.TRIANGLES?r.faces+=a/3:n===e.POINTS&&(r.points+=a)},this.renderInstances=function(a,s,c){var u=t.get("ANGLE_instanced_arrays");null===u?console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays."):(u.drawElementsInstancedANGLE(n,c,i,s*o,a.maxInstancedCount),r.calls++,r.vertices+=c*a.maxInstancedCount,n===e.TRIANGLES?r.faces+=a.maxInstancedCount*c/3:n===e.POINTS&&(r.points+=a.maxInstancedCount*c))}}(ce,ue,se),Me=new V(A,ce,le,de,he),Ee=new q(A,ce,le,de,he),A.info.programs=ye.programs,A.context=ce,A.capabilities=he,A.extensions=ue,A.properties=pe,A.renderLists=be,A.state=le}function r(e){e.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),R=!0}function i(){console.log("THREE.WebGLRenderer: Context Restored."),R=!1,t()}function a(e){(e=e.target).removeEventListener("dispose",a),s(e),pe.remove(e)}function s(e){var t=pe.get(e).program;e.program=void 0,void 0!==t&&ye.releaseProgram(t)}function u(e){null!==je&&je(e),(e=Te.getDevice())&&e.isPresenting?e.requestAnimationFrame(u):window.requestAnimationFrame(u)}function h(e,t,r){if(!1!==e.visible){if(e.layers.test(t.layers))if(e.isLight)C.push(e),e.castShadow&&T.push(e);else if(e.isSprite)e.frustumCulled&&!J.intersectsSprite(e)||P.push(e);else if(e.isLensFlare)j.push(e);else if(e.isImmediateRenderObject)r&&oe.setFromMatrixPosition(e.matrixWorld).applyMatrix4(ie),O.push(e,null,e.material,oe.z,null);else if((e.isMesh||e.isLine||e.isPoints)&&(e.isSkinnedMesh&&e.skeleton.update(),!e.frustumCulled||J.intersectsObject(e))){r&&oe.setFromMatrixPosition(e.matrixWorld).applyMatrix4(ie);var n=ve.update(e),i=e.material;if(Array.isArray(i))for(var o=n.groups,a=0,s=o.length;a<s;a++){var c=o[a],u=i[c.materialIndex];u&&u.visible&&O.push(e,n,u,oe.z,c)}else i.visible&&O.push(e,n,i,oe.z,null)}for(a=0,s=(e=e.children).length;a<s;a++)h(e[a],t,r)}}function p(e,t,r,n){for(var i=0,o=e.length;i<o;i++){var a=(u=e[i]).object,s=u.geometry,c=void 0===n?u.material:n,u=u.group;if(r.isArrayCamera){B=r;for(var h=r.cameras,l=0,p=h.length;l<p;l++){var f=h[l];if(a.layers.test(f.layers)){var m=f.bounds;le.viewport(F.set(m.x*H,m.y*W,m.z*H,m.w*W).multiplyScalar(X)),d(a,t,f,s,c,u)}}}else B=null,d(a,t,r,s,c,u)}}function d(e,t,r,n,i,o){if(e.onBeforeRender(A,t,r,n,i,o),e.modelViewMatrix.multiplyMatrices(r.matrixWorldInverse,e.matrixWorld),e.normalMatrix.getNormalMatrix(e.modelViewMatrix),e.isImmediateRenderObject){le.setMaterial(i);var a=m(r,t.fog,i,e);D="",function(e,t,r){e.render(function(e){A.renderBufferImmediate(e,t,r)})}(e,a,i)}else A.renderBufferDirect(r,t.fog,n,i,e,o);e.onAfterRender(A,t,r,n,i,o)}function f(e,t,r){var n=pe.get(e);r=ye.getParameters(e,ge.state,T,t,te.numPlanes,te.numIntersection,r);var i=ye.getProgramCode(e,r),o=n.program,c=!0;if(void 0===o)e.addEventListener("dispose",a);else if(o.code!==i)s(e);else{if(void 0!==r.shaderID)return;c=!1}if(c&&(r.shaderID?(o=xi[r.shaderID],n.shader={name:e.type,uniforms:bi.clone(o.uniforms),vertexShader:o.vertexShader,fragmentShader:o.fragmentShader}):n.shader={name:e.type,uniforms:e.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader},e.onBeforeCompile(n.shader),o=ye.acquireProgram(e,n.shader,r,i),n.program=o,e.program=o),r=o.getAttributes(),e.morphTargets)for(i=e.numSupportedMorphTargets=0;i<A.maxMorphTargets;i++)0<=r["morphTarget"+i]&&e.numSupportedMorphTargets++;if(e.morphNormals)for(i=e.numSupportedMorphNormals=0;i<A.maxMorphNormals;i++)0<=r["morphNormal"+i]&&e.numSupportedMorphNormals++;r=n.shader.uniforms,(e.isShaderMaterial||e.isRawShaderMaterial)&&!0!==e.clipping||(n.numClippingPlanes=te.numPlanes,n.numIntersection=te.numIntersection,r.clippingPlanes=te.uniform),n.fog=t,n.lightsHash=ge.state.hash,e.lights&&(r.ambientLightColor.value=ge.state.ambient,r.directionalLights.value=ge.state.directional,r.spotLights.value=ge.state.spot,r.rectAreaLights.value=ge.state.rectArea,r.pointLights.value=ge.state.point,r.hemisphereLights.value=ge.state.hemi,r.directionalShadowMap.value=ge.state.directionalShadowMap,r.directionalShadowMatrix.value=ge.state.directionalShadowMatrix,r.spotShadowMap.value=ge.state.spotShadowMap,r.spotShadowMatrix.value=ge.state.spotShadowMatrix,r.pointShadowMap.value=ge.state.pointShadowMap,r.pointShadowMatrix.value=ge.state.pointShadowMatrix),e=n.program.getUniforms(),e=$.seqWithValue(e.seq,r),n.uniformsList=e}function m(e,t,r,n){G=0;var i=pe.get(r);re&&(ne||e!==k)&&te.setState(r.clippingPlanes,r.clipIntersection,r.clipShadows,e,i,e===k&&r.id===I),!1===r.needsUpdate&&(void 0===i.program?r.needsUpdate=!0:r.fog&&i.fog!==t?r.needsUpdate=!0:r.lights&&i.lightsHash!==ge.state.hash?r.needsUpdate=!0:void 0===i.numClippingPlanes||i.numClippingPlanes===te.numPlanes&&i.numIntersection===te.numIntersection||(r.needsUpdate=!0)),r.needsUpdate&&(f(r,t,n),r.needsUpdate=!1);var o=!1,a=!1,s=!1,c=i.program,u=c.getUniforms(),h=i.shader.uniforms;if(le.useProgram(c.program)&&(s=a=o=!0),r.id!==I&&(I=r.id,a=!0),(o||e!==k)&&(u.setValue(ce,"projectionMatrix",e.projectionMatrix),he.logarithmicDepthBuffer&&u.setValue(ce,"logDepthBufFC",2/(Math.log(e.far+1)/Math.LN2)),k!==(B||e)&&(k=B||e,s=a=!0),(r.isShaderMaterial||r.isMeshPhongMaterial||r.isMeshStandardMaterial||r.envMap)&&void 0!==(o=u.map.cameraPosition)&&o.setValue(ce,oe.setFromMatrixPosition(e.matrixWorld)),(r.isMeshPhongMaterial||r.isMeshLambertMaterial||r.isMeshBasicMaterial||r.isMeshStandardMaterial||r.isShaderMaterial||r.skinning)&&u.setValue(ce,"viewMatrix",e.matrixWorldInverse)),r.skinning&&(u.setOptional(ce,n,"bindMatrix"),u.setOptional(ce,n,"bindMatrixInverse"),e=n.skeleton))if(o=e.bones,he.floatVertexTextures){if(void 0===e.boneTexture){var o=Math.sqrt(4*o.length),o=ci.ceilPowerOfTwo(o),o=Math.max(o,4),p=new Float32Array(o*o*4);p.set(e.boneMatrices);var d=new l(p,o,o,1023,1015);e.boneMatrices=p,e.boneTexture=d,e.boneTextureSize=o}u.setValue(ce,"boneTexture",e.boneTexture),u.setValue(ce,"boneTextureSize",e.boneTextureSize)}else u.setOptional(ce,e,"boneMatrices");return a&&(u.setValue(ce,"toneMappingExposure",A.toneMappingExposure),u.setValue(ce,"toneMappingWhitePoint",A.toneMappingWhitePoint),r.lights&&(a=s,h.ambientLightColor.needsUpdate=a,h.directionalLights.needsUpdate=a,h.pointLights.needsUpdate=a,h.spotLights.needsUpdate=a,h.rectAreaLights.needsUpdate=a,h.hemisphereLights.needsUpdate=a),t&&r.fog&&(h.fogColor.value=t.color,t.isFog?(h.fogNear.value=t.near,h.fogFar.value=t.far):t.isFogExp2&&(h.fogDensity.value=t.density)),r.isMeshBasicMaterial?v(h,r):r.isMeshLambertMaterial?(v(h,r),r.emissiveMap&&(h.emissiveMap.value=r.emissiveMap)):r.isMeshPhongMaterial?(v(h,r),r.isMeshToonMaterial?(g(h,r),r.gradientMap&&(h.gradientMap.value=r.gradientMap)):g(h,r)):r.isMeshStandardMaterial?(v(h,r),r.isMeshPhysicalMaterial&&(h.clearCoat.value=r.clearCoat,h.clearCoatRoughness.value=r.clearCoatRoughness),h.roughness.value=r.roughness,h.metalness.value=r.metalness,r.roughnessMap&&(h.roughnessMap.value=r.roughnessMap),r.metalnessMap&&(h.metalnessMap.value=r.metalnessMap),r.emissiveMap&&(h.emissiveMap.value=r.emissiveMap),r.bumpMap&&(h.bumpMap.value=r.bumpMap,h.bumpScale.value=r.bumpScale),r.normalMap&&(h.normalMap.value=r.normalMap,h.normalScale.value.copy(r.normalScale)),r.displacementMap&&(h.displacementMap.value=r.displacementMap,h.displacementScale.value=r.displacementScale,h.displacementBias.value=r.displacementBias),r.envMap&&(h.envMapIntensity.value=r.envMapIntensity)):r.isMeshDepthMaterial?(v(h,r),r.displacementMap&&(h.displacementMap.value=r.displacementMap,h.displacementScale.value=r.displacementScale,h.displacementBias.value=r.displacementBias)):r.isMeshDistanceMaterial?(v(h,r),r.displacementMap&&(h.displacementMap.value=r.displacementMap,h.displacementScale.value=r.displacementScale,h.displacementBias.value=r.displacementBias),h.referencePosition.value.copy(r.referencePosition),h.nearDistance.value=r.nearDistance,h.farDistance.value=r.farDistance):r.isMeshNormalMaterial?(v(h,r),r.bumpMap&&(h.bumpMap.value=r.bumpMap,h.bumpScale.value=r.bumpScale),r.normalMap&&(h.normalMap.value=r.normalMap,h.normalScale.value.copy(r.normalScale)),r.displacementMap&&(h.displacementMap.value=r.displacementMap,h.displacementScale.value=r.displacementScale,h.displacementBias.value=r.displacementBias)):r.isLineBasicMaterial?(h.diffuse.value=r.color,h.opacity.value=r.opacity,r.isLineDashedMaterial&&(h.dashSize.value=r.dashSize,h.totalSize.value=r.dashSize+r.gapSize,h.scale.value=r.scale)):r.isPointsMaterial?(h.diffuse.value=r.color,h.opacity.value=r.opacity,h.size.value=r.size*X,h.scale.value=.5*W,h.map.value=r.map,null!==r.map&&(!0===r.map.matrixAutoUpdate&&(t=r.map.offset,a=r.map.repeat,s=r.map.center,r.map.matrix.setUvTransform(t.x,t.y,a.x,a.y,r.map.rotation,s.x,s.y)),h.uvTransform.value.copy(r.map.matrix))):r.isShadowMaterial&&(h.color.value=r.color,h.opacity.value=r.opacity),void 0!==h.ltcMat&&(h.ltcMat.value=yi.LTC_MAT_TEXTURE),void 0!==h.ltcMag&&(h.ltcMag.value=yi.LTC_MAG_TEXTURE),$.upload(ce,i.uniformsList,h,A)),u.setValue(ce,"modelViewMatrix",n.modelViewMatrix),u.setValue(ce,"normalMatrix",n.normalMatrix),u.setValue(ce,"modelMatrix",n.matrixWorld),c}function v(e,t){if(e.opacity.value=t.opacity,t.color&&(e.diffuse.value=t.color),t.emissive&&e.emissive.value.copy(t.emissive).multiplyScalar(t.emissiveIntensity),t.map&&(e.map.value=t.map),t.alphaMap&&(e.alphaMap.value=t.alphaMap),t.specularMap&&(e.specularMap.value=t.specularMap),t.envMap&&(e.envMap.value=t.envMap,e.flipEnvMap.value=t.envMap&&t.envMap.isCubeTexture?-1:1,e.reflectivity.value=t.reflectivity,e.refractionRatio.value=t.refractionRatio),t.lightMap&&(e.lightMap.value=t.lightMap,e.lightMapIntensity.value=t.lightMapIntensity),t.aoMap&&(e.aoMap.value=t.aoMap,e.aoMapIntensity.value=t.aoMapIntensity),t.map)var r=t.map;else t.specularMap?r=t.specularMap:t.displacementMap?r=t.displacementMap:t.normalMap?r=t.normalMap:t.bumpMap?r=t.bumpMap:t.roughnessMap?r=t.roughnessMap:t.metalnessMap?r=t.metalnessMap:t.alphaMap?r=t.alphaMap:t.emissiveMap&&(r=t.emissiveMap);if(void 0!==r){if(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate){t=r.offset;var n=r.repeat,i=r.center;r.matrix.setUvTransform(t.x,t.y,n.x,n.y,r.rotation,i.x,i.y)}e.uvTransform.value.copy(r.matrix)}}function g(e,t){e.specular.value=t.specular,e.shininess.value=Math.max(t.shininess,1e-4),t.emissiveMap&&(e.emissiveMap.value=t.emissiveMap),t.bumpMap&&(e.bumpMap.value=t.bumpMap,e.bumpScale.value=t.bumpScale),t.normalMap&&(e.normalMap.value=t.normalMap,e.normalScale.value.copy(t.normalScale)),t.displacementMap&&(e.displacementMap.value=t.displacementMap,e.displacementScale.value=t.displacementScale,e.displacementBias.value=t.displacementBias)}console.log("THREE.WebGLRenderer","88");var y=void 0!==(e=e||{}).canvas?e.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),b=void 0!==e.context?e.context:null,_=void 0!==e.alpha&&e.alpha,x=void 0===e.depth||e.depth,w=void 0===e.stencil||e.stencil,S=void 0!==e.antialias&&e.antialias,M=void 0===e.premultipliedAlpha||e.premultipliedAlpha,E=void 0!==e.preserveDrawingBuffer&&e.preserveDrawingBuffer,C=[],T=[],O=null,P=[],j=[];this.domElement=y,this.context=null,this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1,this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1,this.maxMorphTargets=8,this.maxMorphNormals=4;var A=this,R=!1,L=null,N=null,I=-1,D="",k=null,B=null,F=new c,U=new c,z=null,G=0,H=y.width,W=y.height,X=1,Y=new c(0,0,H,W),K=new c(0,0,H,W),Z=!1,J=new Q,te=new Ke,re=!1,ne=!1,ie=new n,oe=new o,ae={geometries:0,textures:0},se={frame:0,calls:0,vertices:0,faces:0,points:0};this.info={render:se,memory:ae,programs:null};try{_={alpha:_,depth:x,stencil:w,antialias:S,premultipliedAlpha:M,preserveDrawingBuffer:E};var ce=b||y.getContext("webgl",_)||y.getContext("experimental-webgl",_);if(null===ce){if(null!==y.getContext("webgl"))throw"Error creating WebGL context with your selected attributes.";throw"Error creating WebGL context."}void 0===ce.getShaderPrecisionFormat&&(ce.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}}),y.addEventListener("webglcontextlost",r,!1),y.addEventListener("webglcontextrestored",i,!1)}catch(e){console.error("THREE.WebGLRenderer: "+e)}var ue,he,le,pe,de,fe,me,ve,ge,ye,be,_e,xe,we,Se,Me,Ee,Ce;t();var Te=new Ye(A);this.vr=Te;var Oe=new ee(A,ve,he.maxTextureSize);this.shadowMap=Oe,this.getContext=function(){return ce},this.getContextAttributes=function(){return ce.getContextAttributes()},this.forceContextLoss=function(){var e=ue.get("WEBGL_lose_context");e&&e.loseContext()},this.forceContextRestore=function(){var e=ue.get("WEBGL_lose_context");e&&e.restoreContext()},this.getPixelRatio=function(){return X},this.setPixelRatio=function(e){void 0!==e&&(X=e,this.setSize(H,W,!1))},this.getSize=function(){return{width:H,height:W}},this.setSize=function(e,t,r){var n=Te.getDevice();n&&n.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(H=e,W=t,y.width=e*X,y.height=t*X,!1!==r&&(y.style.width=e+"px",y.style.height=t+"px"),this.setViewport(0,0,e,t))},this.getDrawingBufferSize=function(){return{width:H*X,height:W*X}},this.setDrawingBufferSize=function(e,t,r){H=e,W=t,X=r,y.width=e*r,y.height=t*r,this.setViewport(0,0,e,t)},this.setViewport=function(e,t,r,n){Y.set(e,W-t-n,r,n),le.viewport(F.copy(Y).multiplyScalar(X))},this.setScissor=function(e,t,r,n){K.set(e,W-t-n,r,n),le.scissor(U.copy(K).multiplyScalar(X))},this.setScissorTest=function(e){le.setScissorTest(Z=e)},this.getClearColor=function(){return _e.getClearColor()},this.setClearColor=function(){_e.setClearColor.apply(_e,arguments)},this.getClearAlpha=function(){return _e.getClearAlpha()},this.setClearAlpha=function(){_e.setClearAlpha.apply(_e,arguments)},this.clear=function(e,t,r){var n=0;(void 0===e||e)&&(n|=ce.COLOR_BUFFER_BIT),(void 0===t||t)&&(n|=ce.DEPTH_BUFFER_BIT),(void 0===r||r)&&(n|=ce.STENCIL_BUFFER_BIT),ce.clear(n)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.clearTarget=function(e,t,r,n){this.setRenderTarget(e),this.clear(t,r,n)},this.dispose=function(){y.removeEventListener("webglcontextlost",r,!1),y.removeEventListener("webglcontextrestored",i,!1),be.dispose(),Te.dispose()},this.renderBufferImmediate=function(e,t,r){le.initAttributes();var n=pe.get(e);if(e.hasPositions&&!n.position&&(n.position=ce.createBuffer()),e.hasNormals&&!n.normal&&(n.normal=ce.createBuffer()),e.hasUvs&&!n.uv&&(n.uv=ce.createBuffer()),e.hasColors&&!n.color&&(n.color=ce.createBuffer()),t=t.getAttributes(),e.hasPositions&&(ce.bindBuffer(ce.ARRAY_BUFFER,n.position),ce.bufferData(ce.ARRAY_BUFFER,e.positionArray,ce.DYNAMIC_DRAW),le.enableAttribute(t.position),ce.vertexAttribPointer(t.position,3,ce.FLOAT,!1,0,0)),e.hasNormals){if(ce.bindBuffer(ce.ARRAY_BUFFER,n.normal),!r.isMeshPhongMaterial&&!r.isMeshStandardMaterial&&!r.isMeshNormalMaterial&&!0===r.flatShading)for(var i=0,o=3*e.count;i<o;i+=9){var a=e.normalArray,s=(a[i+0]+a[i+3]+a[i+6])/3,c=(a[i+1]+a[i+4]+a[i+7])/3,u=(a[i+2]+a[i+5]+a[i+8])/3;a[i+0]=s,a[i+1]=c,a[i+2]=u,a[i+3]=s,a[i+4]=c,a[i+5]=u,a[i+6]=s,a[i+7]=c,a[i+8]=u}ce.bufferData(ce.ARRAY_BUFFER,e.normalArray,ce.DYNAMIC_DRAW),le.enableAttribute(t.normal),ce.vertexAttribPointer(t.normal,3,ce.FLOAT,!1,0,0)}e.hasUvs&&r.map&&(ce.bindBuffer(ce.ARRAY_BUFFER,n.uv),ce.bufferData(ce.ARRAY_BUFFER,e.uvArray,ce.DYNAMIC_DRAW),le.enableAttribute(t.uv),ce.vertexAttribPointer(t.uv,2,ce.FLOAT,!1,0,0)),e.hasColors&&0!==r.vertexColors&&(ce.bindBuffer(ce.ARRAY_BUFFER,n.color),ce.bufferData(ce.ARRAY_BUFFER,e.colorArray,ce.DYNAMIC_DRAW),le.enableAttribute(t.color),ce.vertexAttribPointer(t.color,3,ce.FLOAT,!1,0,0)),le.disableUnusedAttributes(),ce.drawArrays(ce.TRIANGLES,0,e.count),e.count=0},this.renderBufferDirect=function(e,t,r,n,i,o){le.setMaterial(n);var a=m(e,t,n,i),s=!1;(e=r.id+"_"+a.id+"_"+(!0===n.wireframe))!==D&&(D=e,s=!0),i.morphTargetInfluences&&(xe.update(i,r,n,a),s=!0);var c=r.index,u=r.attributes.position;if(t=1,!0===n.wireframe&&(c=me.getWireframeAttribute(r),t=2),e=we,null!==c){var h=fe.get(c);(e=Se).setIndex(h)}if(s){if(s=void 0,r&&r.isInstancedBufferGeometry&&null===ue.get("ANGLE_instanced_arrays"))console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{void 0===s&&(s=0),le.initAttributes();var l=r.attributes,a=a.getAttributes(),p=n.defaultAttributeValues;for(S in a){var d=a[S];if(0<=d){if(void 0!==(w=l[S])){var f=w.normalized,v=w.itemSize;if(void 0!==(b=fe.get(w))){var g=b.buffer,y=b.type,b=b.bytesPerElement;if(w.isInterleavedBufferAttribute){var _=w.data,x=_.stride,w=w.offset;_&&_.isInstancedInterleavedBuffer?(le.enableAttributeAndDivisor(d,_.meshPerAttribute),void 0===r.maxInstancedCount&&(r.maxInstancedCount=_.meshPerAttribute*_.count)):le.enableAttribute(d),ce.bindBuffer(ce.ARRAY_BUFFER,g),ce.vertexAttribPointer(d,v,y,f,x*b,(s*x+w)*b)}else w.isInstancedBufferAttribute?(le.enableAttributeAndDivisor(d,w.meshPerAttribute),void 0===r.maxInstancedCount&&(r.maxInstancedCount=w.meshPerAttribute*w.count)):le.enableAttribute(d),ce.bindBuffer(ce.ARRAY_BUFFER,g),ce.vertexAttribPointer(d,v,y,f,0,s*v*b)}}else if(void 0!==p&&void 0!==(f=p[S]))switch(f.length){case 2:ce.vertexAttrib2fv(d,f);break;case 3:ce.vertexAttrib3fv(d,f);break;case 4:ce.vertexAttrib4fv(d,f);break;default:ce.vertexAttrib1fv(d,f)}}}le.disableUnusedAttributes()}null!==c&&ce.bindBuffer(ce.ELEMENT_ARRAY_BUFFER,h.buffer)}h=0,null!==c?h=c.count:void 0!==u&&(h=u.count),c=r.drawRange.start*t,u=null!==o?o.start*t:0;var S=Math.max(c,u);if(0!==(o=Math.max(0,Math.min(h,c+r.drawRange.count*t,u+(null!==o?o.count*t:1/0))-1-S+1))){if(i.isMesh)if(!0===n.wireframe)le.setLineWidth(n.wireframeLinewidth*(null===L?X:1)),e.setMode(ce.LINES);else switch(i.drawMode){case 0:e.setMode(ce.TRIANGLES);break;case 1:e.setMode(ce.TRIANGLE_STRIP);break;case 2:e.setMode(ce.TRIANGLE_FAN)}else i.isLine?(void 0===(n=n.linewidth)&&(n=1),le.setLineWidth(n*(null===L?X:1)),i.isLineSegments?e.setMode(ce.LINES):i.isLineLoop?e.setMode(ce.LINE_LOOP):e.setMode(ce.LINE_STRIP)):i.isPoints&&e.setMode(ce.POINTS);r&&r.isInstancedBufferGeometry?0<r.maxInstancedCount&&e.renderInstances(r,S,o):e.render(S,o)}},this.compile=function(e,t){C.length=0,T.length=0,e.traverse(function(e){e.isLight&&(C.push(e),e.castShadow&&T.push(e))}),ge.setup(C,T,t),e.traverse(function(t){if(t.material)if(Array.isArray(t.material))for(var r=0;r<t.material.length;r++)f(t.material[r],e.fog,t);else f(t.material,e.fog,t)})};var Pe=!1,je=null;this.animate=function(e){je=e,Pe||((e=Te.getDevice())&&e.isPresenting?e.requestAnimationFrame(u):window.requestAnimationFrame(u),Pe=!0)},this.render=function(e,t,r,n){if(t&&t.isCamera){if(!R){D="",I=-1,k=null,!0===e.autoUpdate&&e.updateMatrixWorld(),null===t.parent&&t.updateMatrixWorld(),Te.enabled&&(t=Te.getCamera(t)),ie.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),J.setFromMatrix(ie),C.length=0,T.length=0,P.length=0,j.length=0,ne=this.localClippingEnabled,re=te.init(this.clippingPlanes,ne,t),(O=be.get(e,t)).init(),h(e,t,A.sortObjects),!0===A.sortObjects&&O.sort(),re&&te.beginShadows(),Oe.render(T,e,t),ge.setup(C,T,t),re&&te.endShadows(),se.frame++,se.calls=0,se.vertices=0,se.faces=0,se.points=0,void 0===r&&(r=null),this.setRenderTarget(r),_e.render(O,e,t,n),n=O.opaque;var i=O.transparent;if(e.overrideMaterial){var o=e.overrideMaterial;n.length&&p(n,e,t,o),i.length&&p(i,e,t,o)}else n.length&&p(n,e,t),i.length&&p(i,e,t);Ee.render(P,e,t),Me.render(j,e,t,F),r&&de.updateRenderTargetMipmap(r),le.buffers.depth.setTest(!0),le.buffers.depth.setMask(!0),le.buffers.color.setMask(!0),le.setPolygonOffset(!1),Te.enabled&&Te.submitFrame()}}else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")},this.setFaceCulling=function(e,t){le.setCullFace(e),le.setFlipSided(0===t)},this.allocTextureUnit=function(){var e=G;return e>=he.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+e+" texture units while this GPU supports only "+he.maxTextures),G+=1,e},this.setTexture2D=function(){var e=!1;return function(t,r){t&&t.isWebGLRenderTarget&&(e||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),e=!0),t=t.texture),de.setTexture2D(t,r)}}(),this.setTexture=function(){var e=!1;return function(t,r){e||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),e=!0),de.setTexture2D(t,r)}}(),this.setTextureCube=function(){var e=!1;return function(t,r){t&&t.isWebGLRenderTargetCube&&(e||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),e=!0),t=t.texture),t&&t.isCubeTexture||Array.isArray(t.image)&&6===t.image.length?de.setTextureCube(t,r):de.setTextureCubeDynamic(t,r)}}(),this.getRenderTarget=function(){return L},this.setRenderTarget=function(e){(L=e)&&void 0===pe.get(e).__webglFramebuffer&&de.setupRenderTarget(e);var t=null,r=!1;e?(t=pe.get(e).__webglFramebuffer,e.isWebGLRenderTargetCube&&(t=t[e.activeCubeFace],r=!0),F.copy(e.viewport),U.copy(e.scissor),z=e.scissorTest):(F.copy(Y).multiplyScalar(X),U.copy(K).multiplyScalar(X),z=Z),N!==t&&(ce.bindFramebuffer(ce.FRAMEBUFFER,t),N=t),le.viewport(F),le.scissor(U),le.setScissorTest(z),r&&(r=pe.get(e.texture),ce.framebufferTexture2D(ce.FRAMEBUFFER,ce.COLOR_ATTACHMENT0,ce.TEXTURE_CUBE_MAP_POSITIVE_X+e.activeCubeFace,r.__webglTexture,e.activeMipMapLevel))},this.readRenderTargetPixels=function(e,t,r,n,i,o){if(e&&e.isWebGLRenderTarget){var a=pe.get(e).__webglFramebuffer;if(a){var s=!1;a!==N&&(ce.bindFramebuffer(ce.FRAMEBUFFER,a),s=!0);try{var c=e.texture,u=c.format,h=c.type;1023!==u&&Ce.convert(u)!==ce.getParameter(ce.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===h||Ce.convert(h)===ce.getParameter(ce.IMPLEMENTATION_COLOR_READ_TYPE)||1015===h&&(ue.get("OES_texture_float")||ue.get("WEBGL_color_buffer_float"))||1016===h&&ue.get("EXT_color_buffer_half_float")?ce.checkFramebufferStatus(ce.FRAMEBUFFER)===ce.FRAMEBUFFER_COMPLETE?0<=t&&t<=e.width-n&&0<=r&&r<=e.height-i&&ce.readPixels(t,r,n,i,Ce.convert(u),Ce.convert(h),o):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{s&&ce.bindFramebuffer(ce.FRAMEBUFFER,N)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")}}function Qe(e,t){this.name="",this.color=new z(e),this.density=void 0!==t?t:25e-5}function et(e,t,r){this.name="",this.color=new z(e),this.near=void 0!==t?t:1,this.far=void 0!==r?r:1e3}function tt(){ne.call(this),this.type="Scene",this.overrideMaterial=this.fog=this.background=null,this.autoUpdate=!0}function rt(e,t,r,n,i){ne.call(this),this.lensFlares=[],this.positionScreen=new o,this.customUpdateCallback=void 0,void 0!==e&&this.add(e,t,r,n,i)}function nt(e){W.call(this),this.type="SpriteMaterial",this.color=new z(16777215),this.map=null,this.rotation=0,this.lights=this.fog=!1,this.setValues(e)}function it(e){ne.call(this),this.type="Sprite",this.material=void 0!==e?e:new nt}function ot(){ne.call(this),this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function at(e,t){if(e=e||[],this.bones=e.slice(0),this.boneMatrices=new Float32Array(16*this.bones.length),void 0===t)this.calculateInverses();else if(this.bones.length===t.length)this.boneInverses=t.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],e=0,t=this.bones.length;e<t;e++)this.boneInverses.push(new n)}function st(){ne.call(this),this.type="Bone"}function ct(e,t){je.call(this,e,t),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new n,this.bindMatrixInverse=new n,e=new at(e=this.initBones()),this.bind(e,this.matrixWorld),this.normalizeSkinWeights()}function ut(e){W.call(this),this.type="LineBasicMaterial",this.color=new z(16777215),this.linewidth=1,this.linejoin=this.linecap="round",this.lights=!1,this.setValues(e)}function ht(e,t,r){if(1===r)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new lt(e,t);ne.call(this),this.type="Line",this.geometry=void 0!==e?e:new _e,this.material=void 0!==t?t:new ut({color:16777215*Math.random()})}function lt(e,t){ht.call(this,e,t),this.type="LineSegments"}function pt(e,t){ht.call(this,e,t),this.type="LineLoop"}function dt(e){W.call(this),this.type="PointsMaterial",this.color=new z(16777215),this.map=null,this.size=1,this.sizeAttenuation=!0,this.lights=!1,this.setValues(e)}function ft(e,t){ne.call(this),this.type="Points",this.geometry=void 0!==e?e:new _e,this.material=void 0!==t?t:new dt({color:16777215*Math.random()})}function mt(){ne.call(this),this.type="Group"}function vt(e,t,r,n,i,o,a,c,u){function h(){var e=l.image;e.readyState>=e.HAVE_CURRENT_DATA&&(l.needsUpdate=!0),requestAnimationFrame(h)}s.call(this,e,t,r,n,i,o,a,c,u),this.generateMipmaps=!1;var l=this;requestAnimationFrame(h)}function gt(e,t,r,n,i,o,a,c,u,h,l,p){s.call(this,null,o,a,c,u,h,n,i,l,p),this.image={width:t,height:r},this.mipmaps=e,this.generateMipmaps=this.flipY=!1}function yt(e,t,r,n,i,o,a,c,u,h){if(1026!==(h=void 0!==h?h:1026)&&1027!==h)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===r&&1026===h&&(r=1012),void 0===r&&1027===h&&(r=1020),s.call(this,null,n,i,o,a,c,h,r,u),this.image={width:e,height:t},this.magFilter=void 0!==a?a:1003,this.minFilter=void 0!==c?c:1003,this.generateMipmaps=this.flipY=!1}function bt(e){_e.call(this),this.type="WireframeGeometry";var t,r,n,i=[],a=[0,0],s={},c=["a","b","c"];if(e&&e.isGeometry){var u=e.faces,h=0;for(r=u.length;h<r;h++){var l=u[h];for(t=0;3>t;t++){var p=l[c[t]],d=l[c[(t+1)%3]];a[0]=Math.min(p,d),a[1]=Math.max(p,d),void 0===s[p=a[0]+","+a[1]]&&(s[p]={index1:a[0],index2:a[1]})}}for(p in s)h=s[p],c=e.vertices[h.index1],i.push(c.x,c.y,c.z),c=e.vertices[h.index2],i.push(c.x,c.y,c.z)}else if(e&&e.isBufferGeometry){c=new o;if(null!==e.index){u=e.attributes.position,l=e.index;var f=e.groups;for(0===f.length&&(f=[{start:0,count:l.count,materialIndex:0}]),e=0,n=f.length;e<n;++e)for(h=f[e],t=h.start,r=h.count,h=t,r=t+r;h<r;h+=3)for(t=0;3>t;t++)p=l.getX(h+t),d=l.getX(h+(t+1)%3),a[0]=Math.min(p,d),a[1]=Math.max(p,d),p=a[0]+","+a[1],void 0===s[p]&&(s[p]={index1:a[0],index2:a[1]});for(p in s)h=s[p],c.fromBufferAttribute(u,h.index1),i.push(c.x,c.y,c.z),c.fromBufferAttribute(u,h.index2),i.push(c.x,c.y,c.z)}else for(u=e.attributes.position,h=0,r=u.count/3;h<r;h++)for(t=0;3>t;t++)s=3*h+t,c.fromBufferAttribute(u,s),i.push(c.x,c.y,c.z),s=3*h+(t+1)%3,c.fromBufferAttribute(u,s),i.push(c.x,c.y,c.z)}this.addAttribute("position",new ve(i,3))}function _t(e,t,r){se.call(this),this.type="ParametricGeometry",this.parameters={func:e,slices:t,stacks:r},this.fromBufferGeometry(new xt(e,t,r)),this.mergeVertices()}function xt(e,t,r){_e.call(this),this.type="ParametricBufferGeometry",this.parameters={func:e,slices:t,stacks:r};var n,i,a=[],s=[],c=[],u=[],h=new o,l=new o,p=new o,d=new o,f=new o,m=t+1;for(n=0;n<=r;n++){var v=n/r;for(i=0;i<=t;i++){var g=i/t,l=e(g,v,l);s.push(l.x,l.y,l.z),0<=g-1e-5?(p=e(g-1e-5,v,p),d.subVectors(l,p)):(p=e(g+1e-5,v,p),d.subVectors(p,l)),0<=v-1e-5?(p=e(g,v-1e-5,p),f.subVectors(l,p)):(p=e(g,v+1e-5,p),f.subVectors(p,l)),h.crossVectors(d,f).normalize(),c.push(h.x,h.y,h.z),u.push(g,v)}}for(n=0;n<r;n++)for(i=0;i<t;i++)e=n*m+i+1,h=(n+1)*m+i+1,l=(n+1)*m+i,a.push(n*m+i,e,l),a.push(e,h,l);this.setIndex(a),this.addAttribute("position",new ve(s,3)),this.addAttribute("normal",new ve(c,3)),this.addAttribute("uv",new ve(u,2))}function wt(e,t,r,n){se.call(this),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:r,detail:n},this.fromBufferGeometry(new St(e,t,r,n)),this.mergeVertices()}function St(e,t,n,i){function a(e){u.push(e.x,e.y,e.z)}function s(t,r){t*=3,r.x=e[t+0],r.y=e[t+1],r.z=e[t+2]}function c(e,t,r,n){0>n&&1===e.x&&(h[t]=e.x-1),0===r.x&&0===r.z&&(h[t]=n/2/Math.PI+.5)}_e.call(this),this.type="PolyhedronBufferGeometry",this.parameters={vertices:e,indices:t,radius:n,detail:i},n=n||1;var u=[],h=[];!function(e){for(var r=new o,n=new o,i=new o,c=0;c<t.length;c+=3){s(t[c+0],r),s(t[c+1],n),s(t[c+2],i);var u,h,l=r,p=n,d=i,f=Math.pow(2,e),m=[];for(h=0;h<=f;h++){m[h]=[];var v=l.clone().lerp(d,h/f),g=p.clone().lerp(d,h/f),y=f-h;for(u=0;u<=y;u++)m[h][u]=0===u&&h===f?v:v.clone().lerp(g,u/y)}for(h=0;h<f;h++)for(u=0;u<2*(f-h)-1;u++)l=Math.floor(u/2),0==u%2?(a(m[h][l+1]),a(m[h+1][l]),a(m[h][l])):(a(m[h][l+1]),a(m[h+1][l+1]),a(m[h+1][l]))}}(i=i||0),function(e){for(var t=new o,r=0;r<u.length;r+=3)t.x=u[r+0],t.y=u[r+1],t.z=u[r+2],t.normalize().multiplyScalar(e),u[r+0]=t.x,u[r+1]=t.y,u[r+2]=t.z}(n),function(){for(var e=new o,t=0;t<u.length;t+=3)e.x=u[t+0],e.y=u[t+1],e.z=u[t+2],h.push(Math.atan2(e.z,-e.x)/2/Math.PI+.5,1-(Math.atan2(-e.y,Math.sqrt(e.x*e.x+e.z*e.z))/Math.PI+.5));for(var e=new o,t=new o,n=new o,i=new o,a=new r,s=new r,l=new r,p=0,d=0;p<u.length;p+=9,d+=6){e.set(u[p+0],u[p+1],u[p+2]),t.set(u[p+3],u[p+4],u[p+5]),n.set(u[p+6],u[p+7],u[p+8]),a.set(h[d+0],h[d+1]),s.set(h[d+2],h[d+3]),l.set(h[d+4],h[d+5]),i.copy(e).add(t).add(n).divideScalar(3);var f=Math.atan2(i.z,-i.x);c(a,d+0,e,f),c(s,d+2,t,f),c(l,d+4,n,f)}for(e=0;e<h.length;e+=6)t=h[e+0],n=h[e+2],i=h[e+4],a=Math.min(t,n,i),.9<Math.max(t,n,i)&&.1>a&&(.2>t&&(h[e+0]+=1),.2>n&&(h[e+2]+=1),.2>i&&(h[e+4]+=1))}(),this.addAttribute("position",new ve(u,3)),this.addAttribute("normal",new ve(u.slice(),3)),this.addAttribute("uv",new ve(h,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}function Mt(e,t){se.call(this),this.type="TetrahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Et(e,t)),this.mergeVertices()}function Et(e,t){St.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],e,t),this.type="TetrahedronBufferGeometry",this.parameters={radius:e,detail:t}}function Ct(e,t){se.call(this),this.type="OctahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Tt(e,t)),this.mergeVertices()}function Tt(e,t){St.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],e,t),this.type="OctahedronBufferGeometry",this.parameters={radius:e,detail:t}}function Ot(e,t){se.call(this),this.type="IcosahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Pt(e,t)),this.mergeVertices()}function Pt(e,t){var r=(1+Math.sqrt(5))/2;St.call(this,[-1,r,0,1,r,0,-1,-r,0,1,-r,0,0,-1,r,0,1,r,0,-1,-r,0,1,-r,r,0,-1,r,0,1,-r,0,-1,-r,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],e,t),this.type="IcosahedronBufferGeometry",this.parameters={radius:e,detail:t}}function jt(e,t){se.call(this),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new At(e,t)),this.mergeVertices()}function At(e,t){var r=(1+Math.sqrt(5))/2,n=1/r;St.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-n,-r,0,-n,r,0,n,-r,0,n,r,-n,-r,0,-n,r,0,n,-r,0,n,r,0,-r,0,-n,r,0,-n,-r,0,n,r,0,n],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronBufferGeometry",this.parameters={radius:e,detail:t}}function Rt(e,t,r,n,i,o){se.call(this),this.type="TubeGeometry",this.parameters={path:e,tubularSegments:t,radius:r,radialSegments:n,closed:i},void 0!==o&&console.warn("THREE.TubeGeometry: taper has been removed."),e=new Lt(e,t,r,n,i),this.tangents=e.tangents,this.normals=e.normals,this.binormals=e.binormals,this.fromBufferGeometry(e),this.mergeVertices()}function Lt(e,t,n,i,a){function s(r){f=e.getPointAt(r/t,f);var o=c.normals[r];for(r=c.binormals[r],h=0;h<=i;h++){var a=h/i*Math.PI*2,s=Math.sin(a),a=-Math.cos(a);p.x=a*o.x+s*r.x,p.y=a*o.y+s*r.y,p.z=a*o.z+s*r.z,p.normalize(),v.push(p.x,p.y,p.z),l.x=f.x+n*p.x,l.y=f.y+n*p.y,l.z=f.z+n*p.z,m.push(l.x,l.y,l.z)}}_e.call(this),this.type="TubeBufferGeometry",this.parameters={path:e,tubularSegments:t,radius:n,radialSegments:i,closed:a},t=t||64,n=n||1,i=i||8,a=a||!1;var c=e.computeFrenetFrames(t,a);this.tangents=c.tangents,this.normals=c.normals,this.binormals=c.binormals;var u,h,l=new o,p=new o,d=new r,f=new o,m=[],v=[],g=[],y=[];for(u=0;u<t;u++)s(u);for(s(!1===a?t:0),u=0;u<=t;u++)for(h=0;h<=i;h++)d.x=u/t,d.y=h/i,g.push(d.x,d.y);!function(){for(h=1;h<=t;h++)for(u=1;u<=i;u++){var e=(i+1)*h+(u-1),r=(i+1)*h+u,n=(i+1)*(h-1)+u;y.push((i+1)*(h-1)+(u-1),e,n),y.push(e,r,n)}}(),this.setIndex(y),this.addAttribute("position",new ve(m,3)),this.addAttribute("normal",new ve(v,3)),this.addAttribute("uv",new ve(g,2))}function Nt(e,t,r,n,i,o,a){se.call(this),this.type="TorusKnotGeometry",this.parameters={radius:e,tube:t,tubularSegments:r,radialSegments:n,p:i,q:o},void 0!==a&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead."),this.fromBufferGeometry(new It(e,t,r,n,i,o)),this.mergeVertices()}function It(e,t,r,n,i,a){function s(e,t,r,n,i){var o=Math.sin(e);t=r/t*e,r=Math.cos(t),i.x=n*(2+r)*.5*Math.cos(e),i.y=n*(2+r)*o*.5,i.z=n*Math.sin(t)*.5}_e.call(this),this.type="TorusKnotBufferGeometry",this.parameters={radius:e,tube:t,tubularSegments:r,radialSegments:n,p:i,q:a},e=e||1,t=t||.4,r=Math.floor(r)||64,n=Math.floor(n)||8,i=i||2,a=a||3;var c,u=[],h=[],l=[],p=[],d=new o,f=new o,m=new o,v=new o,g=new o,y=new o,b=new o;for(c=0;c<=r;++c){var _=c/r*i*Math.PI*2;for(s(_,i,a,e,m),s(_+.01,i,a,e,v),y.subVectors(v,m),b.addVectors(v,m),g.crossVectors(y,b),b.crossVectors(g,y),g.normalize(),b.normalize(),_=0;_<=n;++_){var x=_/n*Math.PI*2,w=-t*Math.cos(x),x=t*Math.sin(x);d.x=m.x+(w*b.x+x*g.x),d.y=m.y+(w*b.y+x*g.y),d.z=m.z+(w*b.z+x*g.z),h.push(d.x,d.y,d.z),f.subVectors(d,m).normalize(),l.push(f.x,f.y,f.z),p.push(c/r),p.push(_/n)}}for(_=1;_<=r;_++)for(c=1;c<=n;c++)e=(n+1)*_+(c-1),t=(n+1)*_+c,i=(n+1)*(_-1)+c,u.push((n+1)*(_-1)+(c-1),e,i),u.push(e,t,i);this.setIndex(u),this.addAttribute("position",new ve(h,3)),this.addAttribute("normal",new ve(l,3)),this.addAttribute("uv",new ve(p,2))}function Dt(e,t,r,n,i){se.call(this),this.type="TorusGeometry",this.parameters={radius:e,tube:t,radialSegments:r,tubularSegments:n,arc:i},this.fromBufferGeometry(new kt(e,t,r,n,i)),this.mergeVertices()}function kt(e,t,r,n,i){_e.call(this),this.type="TorusBufferGeometry",this.parameters={radius:e,tube:t,radialSegments:r,tubularSegments:n,arc:i},e=e||1,t=t||.4,r=Math.floor(r)||8,n=Math.floor(n)||6,i=i||2*Math.PI;var a,s,c=[],u=[],h=[],l=[],p=new o,d=new o,f=new o;for(a=0;a<=r;a++)for(s=0;s<=n;s++){var m=s/n*i,v=a/r*Math.PI*2;d.x=(e+t*Math.cos(v))*Math.cos(m),d.y=(e+t*Math.cos(v))*Math.sin(m),d.z=t*Math.sin(v),u.push(d.x,d.y,d.z),p.x=e*Math.cos(m),p.y=e*Math.sin(m),f.subVectors(d,p).normalize(),h.push(f.x,f.y,f.z),l.push(s/n),l.push(a/r)}for(a=1;a<=r;a++)for(s=1;s<=n;s++)e=(n+1)*(a-1)+s-1,t=(n+1)*(a-1)+s,i=(n+1)*a+s,c.push((n+1)*a+s-1,e,i),c.push(e,t,i);this.setIndex(c),this.addAttribute("position",new ve(u,3)),this.addAttribute("normal",new ve(h,3)),this.addAttribute("uv",new ve(l,2))}function Bt(e,t){se.call(this),this.type="ExtrudeGeometry",this.parameters={shapes:e,options:t},this.fromBufferGeometry(new Ft(e,t)),this.mergeVertices()}function Ft(e,t){void 0!==e&&(_e.call(this),this.type="ExtrudeBufferGeometry",e=Array.isArray(e)?e:[e],this.addShapeList(e,t),this.computeVertexNormals())}function Ut(e,t){se.call(this),this.type="TextGeometry",this.parameters={text:e,parameters:t},this.fromBufferGeometry(new $t(e,t)),this.mergeVertices()}function $t(e,t){var r=(t=t||{}).font;if(!r||!r.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new se;e=r.generateShapes(e,t.size,t.curveSegments),t.amount=void 0!==t.height?t.height:50,void 0===t.bevelThickness&&(t.bevelThickness=10),void 0===t.bevelSize&&(t.bevelSize=8),void 0===t.bevelEnabled&&(t.bevelEnabled=!1),Ft.call(this,e,t),this.type="TextBufferGeometry"}function zt(e,t,r,n,i,o,a){se.call(this),this.type="SphereGeometry",this.parameters={radius:e,widthSegments:t,heightSegments:r,phiStart:n,phiLength:i,thetaStart:o,thetaLength:a},this.fromBufferGeometry(new Gt(e,t,r,n,i,o,a)),this.mergeVertices()}function Gt(e,t,r,n,i,a,s){_e.call(this),this.type="SphereBufferGeometry",this.parameters={radius:e,widthSegments:t,heightSegments:r,phiStart:n,phiLength:i,thetaStart:a,thetaLength:s},e=e||1,t=Math.max(3,Math.floor(t)||8),r=Math.max(2,Math.floor(r)||6),n=void 0!==n?n:0,i=void 0!==i?i:2*Math.PI;var c,u,h=(a=void 0!==a?a:0)+(s=void 0!==s?s:Math.PI),l=0,p=[],d=new o,f=new o,m=[],v=[],g=[],y=[];for(u=0;u<=r;u++){var b=[],_=u/r;for(c=0;c<=t;c++){var x=c/t;d.x=-e*Math.cos(n+x*i)*Math.sin(a+_*s),d.y=e*Math.cos(a+_*s),d.z=e*Math.sin(n+x*i)*Math.sin(a+_*s),v.push(d.x,d.y,d.z),f.set(d.x,d.y,d.z).normalize(),g.push(f.x,f.y,f.z),y.push(x,1-_),b.push(l++)}p.push(b)}for(u=0;u<r;u++)for(c=0;c<t;c++)e=p[u][c+1],n=p[u][c],i=p[u+1][c],s=p[u+1][c+1],(0!==u||0<a)&&m.push(e,n,s),(u!==r-1||h<Math.PI)&&m.push(n,i,s);this.setIndex(m),this.addAttribute("position",new ve(v,3)),this.addAttribute("normal",new ve(g,3)),this.addAttribute("uv",new ve(y,2))}function Vt(e,t,r,n,i,o){se.call(this),this.type="RingGeometry",this.parameters={innerRadius:e,outerRadius:t,thetaSegments:r,phiSegments:n,thetaStart:i,thetaLength:o},this.fromBufferGeometry(new Ht(e,t,r,n,i,o)),this.mergeVertices()}function Ht(e,t,n,i,a,s){_e.call(this),this.type="RingBufferGeometry",this.parameters={innerRadius:e,outerRadius:t,thetaSegments:n,phiSegments:i,thetaStart:a,thetaLength:s},e=e||.5,t=t||1,a=void 0!==a?a:0,s=void 0!==s?s:2*Math.PI,n=void 0!==n?Math.max(3,n):8;var c,u,h=[],l=[],p=[],d=[],f=e,m=(t-e)/(i=void 0!==i?Math.max(1,i):1),v=new o,g=new r;for(c=0;c<=i;c++){for(u=0;u<=n;u++)e=a+u/n*s,v.x=f*Math.cos(e),v.y=f*Math.sin(e),l.push(v.x,v.y,v.z),p.push(0,0,1),g.x=(v.x/t+1)/2,g.y=(v.y/t+1)/2,d.push(g.x,g.y);f+=m}for(c=0;c<i;c++)for(t=c*(n+1),u=0;u<n;u++)e=u+t,a=e+n+1,s=e+n+2,f=e+1,h.push(e,a,f),h.push(a,s,f);this.setIndex(h),this.addAttribute("position",new ve(l,3)),this.addAttribute("normal",new ve(p,3)),this.addAttribute("uv",new ve(d,2))}function qt(e,t,r,n){se.call(this),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:r,phiLength:n},this.fromBufferGeometry(new Wt(e,t,r,n)),this.mergeVertices()}function Wt(e,t,n,i){_e.call(this),this.type="LatheBufferGeometry",this.parameters={points:e,segments:t,phiStart:n,phiLength:i},t=Math.floor(t)||12,n=n||0,i=i||2*Math.PI,i=ci.clamp(i,0,2*Math.PI);var a,s=[],c=[],u=[],h=1/t,l=new o,p=new r;for(a=0;a<=t;a++){var d=n+a*h*i,f=Math.sin(d),m=Math.cos(d);for(d=0;d<=e.length-1;d++)l.x=e[d].x*f,l.y=e[d].y,l.z=e[d].x*m,c.push(l.x,l.y,l.z),p.x=a/t,p.y=d/(e.length-1),u.push(p.x,p.y)}for(a=0;a<t;a++)for(d=0;d<e.length-1;d++)n=d+a*e.length,h=n+e.length,l=n+e.length+1,p=n+1,s.push(n,h,p),s.push(h,l,p);if(this.setIndex(s),this.addAttribute("position",new ve(c,3)),this.addAttribute("uv",new ve(u,2)),this.computeVertexNormals(),i===2*Math.PI)for(i=this.attributes.normal.array,s=new o,c=new o,u=new o,n=t*e.length*3,d=a=0;a<e.length;a++,d+=3)s.x=i[d+0],s.y=i[d+1],s.z=i[d+2],c.x=i[n+d+0],c.y=i[n+d+1],c.z=i[n+d+2],u.addVectors(s,c).normalize(),i[d+0]=i[n+d+0]=u.x,i[d+1]=i[n+d+1]=u.y,i[d+2]=i[n+d+2]=u.z}function Xt(e,t){se.call(this),this.type="ShapeGeometry","object"==typeof t&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),t=t.curveSegments),this.parameters={shapes:e,curveSegments:t},this.fromBufferGeometry(new Yt(e,t)),this.mergeVertices()}function Yt(e,t){function r(e){var r,s=i.length/3,u=(e=e.extractPoints(t)).shape,h=e.holes;if(!1===Ti.isClockWise(u))for(u=u.reverse(),e=0,r=h.length;e<r;e++){var l=h[e];!0===Ti.isClockWise(l)&&(h[e]=l.reverse())}var p=Ti.triangulateShape(u,h);for(e=0,r=h.length;e<r;e++)l=h[e],u=u.concat(l);for(e=0,r=u.length;e<r;e++)l=u[e],i.push(l.x,l.y,0),o.push(0,0,1),a.push(l.x,l.y);for(e=0,r=p.length;e<r;e++)u=p[e],n.push(u[0]+s,u[1]+s,u[2]+s),c+=3}_e.call(this),this.type="ShapeBufferGeometry",this.parameters={shapes:e,curveSegments:t},t=t||12;var n=[],i=[],o=[],a=[],s=0,c=0;if(!1===Array.isArray(e))r(e);else for(var u=0;u<e.length;u++)r(e[u]),this.addGroup(s,c,u),s+=c,c=0;this.setIndex(n),this.addAttribute("position",new ve(i,3)),this.addAttribute("normal",new ve(o,3)),this.addAttribute("uv",new ve(a,2))}function Kt(e,t){_e.call(this),this.type="EdgesGeometry",this.parameters={thresholdAngle:t};var r=[];t=Math.cos(ci.DEG2RAD*(void 0!==t?t:1));var n=[0,0],i={},o=["a","b","c"];if(e.isBufferGeometry){var a=new se;a.fromBufferGeometry(e)}else a=e.clone();a.mergeVertices(),a.computeFaceNormals(),e=a.vertices;for(var s=0,c=(a=a.faces).length;s<c;s++)for(var u=a[s],h=0;3>h;h++){var l=u[o[h]],p=u[o[(h+1)%3]];n[0]=Math.min(l,p),n[1]=Math.max(l,p),void 0===i[l=n[0]+","+n[1]]?i[l]={index1:n[0],index2:n[1],face1:s,face2:void 0}:i[l].face2=s}for(l in i)(void 0===(n=i[l]).face2||a[n.face1].normal.dot(a[n.face2].normal)<=t)&&(o=e[n.index1],r.push(o.x,o.y,o.z),o=e[n.index2],r.push(o.x,o.y,o.z));this.addAttribute("position",new ve(r,3))}function Zt(e,t,r,n,i,o,a,s){se.call(this),this.type="CylinderGeometry",this.parameters={radiusTop:e,radiusBottom:t,height:r,radialSegments:n,heightSegments:i,openEnded:o,thetaStart:a,thetaLength:s},this.fromBufferGeometry(new Jt(e,t,r,n,i,o,a,s)),this.mergeVertices()}function Jt(e,t,n,i,a,s,c,u){function h(n){var a,s=new r,h=new o,g=0,_=!0===n?e:t,x=!0===n?1:-1,w=v;for(a=1;a<=i;a++)d.push(0,y*x,0),f.push(0,x,0),m.push(.5,.5),v++;var S=v;for(a=0;a<=i;a++){var M=a/i*u+c,E=Math.cos(M),M=Math.sin(M);h.x=_*M,h.y=y*x,h.z=_*E,d.push(h.x,h.y,h.z),f.push(0,x,0),s.x=.5*E+.5,s.y=.5*M*x+.5,m.push(s.x,s.y),v++}for(a=0;a<i;a++)s=w+a,h=S+a,!0===n?p.push(h,h+1,s):p.push(h+1,h,s),g+=3;l.addGroup(b,g,!0===n?1:2),b+=g}_e.call(this),this.type="CylinderBufferGeometry",this.parameters={radiusTop:e,radiusBottom:t,height:n,radialSegments:i,heightSegments:a,openEnded:s,thetaStart:c,thetaLength:u};var l=this;e=void 0!==e?e:1,t=void 0!==t?t:1,n=n||1,i=Math.floor(i)||8,a=Math.floor(a)||1,s=void 0!==s&&s,c=void 0!==c?c:0,u=void 0!==u?u:2*Math.PI;var p=[],d=[],f=[],m=[],v=0,g=[],y=n/2,b=0;!function(){var r,s,h=new o,_=new o,x=0,w=(t-e)/n;for(s=0;s<=a;s++){var S=[],M=s/a,E=M*(t-e)+e;for(r=0;r<=i;r++){var C=r/i,T=C*u+c,O=Math.sin(T),T=Math.cos(T);_.x=E*O,_.y=-M*n+y,_.z=E*T,d.push(_.x,_.y,_.z),h.set(O,w,T).normalize(),f.push(h.x,h.y,h.z),m.push(C,1-M),S.push(v++)}g.push(S)}for(r=0;r<i;r++)for(s=0;s<a;s++)h=g[s+1][r],_=g[s+1][r+1],w=g[s][r+1],p.push(g[s][r],h,w),p.push(h,_,w),x+=6;l.addGroup(b,x,0),b+=x}(),!1===s&&(0<e&&h(!0),0<t&&h(!1)),this.setIndex(p),this.addAttribute("position",new ve(d,3)),this.addAttribute("normal",new ve(f,3)),this.addAttribute("uv",new ve(m,2))}function Qt(e,t,r,n,i,o,a){Zt.call(this,0,e,t,r,n,i,o,a),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:o,thetaLength:a}}function er(e,t,r,n,i,o,a){Jt.call(this,0,e,t,r,n,i,o,a),this.type="ConeBufferGeometry",this.parameters={radius:e,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:o,thetaLength:a}}function tr(e,t,r,n){se.call(this),this.type="CircleGeometry",this.parameters={radius:e,segments:t,thetaStart:r,thetaLength:n},this.fromBufferGeometry(new rr(e,t,r,n)),this.mergeVertices()}function rr(e,t,n,i){_e.call(this),this.type="CircleBufferGeometry",this.parameters={radius:e,segments:t,thetaStart:n,thetaLength:i},e=e||1,t=void 0!==t?Math.max(3,t):8,n=void 0!==n?n:0,i=void 0!==i?i:2*Math.PI;var a,s=[],c=[],u=[],h=[],l=new o,p=new r;c.push(0,0,0),u.push(0,0,1),h.push(.5,.5);var d=0;for(a=3;d<=t;d++,a+=3){var f=n+d/t*i;l.x=e*Math.cos(f),l.y=e*Math.sin(f),c.push(l.x,l.y,l.z),u.push(0,0,1),p.x=(c[a]/e+1)/2,p.y=(c[a+1]/e+1)/2,h.push(p.x,p.y)}for(a=1;a<=t;a++)s.push(a,a+1,0);this.setIndex(s),this.addAttribute("position",new ve(c,3)),this.addAttribute("normal",new ve(u,3)),this.addAttribute("uv",new ve(h,2))}function nr(e){W.call(this),this.type="ShadowMaterial",this.color=new z(0),this.opacity=1,this.transparent=this.lights=!0,this.setValues(e)}function ir(e){Ce.call(this,e),this.type="RawShaderMaterial"}function or(e){W.call(this),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new z(16777215),this.metalness=this.roughness=.5,this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new z(0),this.emissiveIntensity=1,this.bumpMap=this.emissiveMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new r(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinejoin=this.wireframeLinecap="round",this.morphNormals=this.morphTargets=this.skinning=!1,this.setValues(e)}function ar(e){or.call(this),this.defines={PHYSICAL:""},this.type="MeshPhysicalMaterial",this.reflectivity=.5,this.clearCoatRoughness=this.clearCoat=0,this.setValues(e)}function sr(e){W.call(this),this.type="MeshPhongMaterial",this.color=new z(16777215),this.specular=new z(1118481),this.shininess=30,this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new z(0),this.emissiveIntensity=1,this.bumpMap=this.emissiveMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new r(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.envMap=this.alphaMap=this.specularMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinejoin=this.wireframeLinecap="round",this.morphNormals=this.morphTargets=this.skinning=!1,this.setValues(e)}function cr(e){sr.call(this),this.defines={TOON:""},this.type="MeshToonMaterial",this.gradientMap=null,this.setValues(e)}function ur(e){W.call(this),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new r(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.morphNormals=this.morphTargets=this.skinning=this.lights=this.fog=!1,this.setValues(e)}function hr(e){W.call(this),this.type="MeshLambertMaterial",this.color=new z(16777215),this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new z(0),this.emissiveIntensity=1,this.envMap=this.alphaMap=this.specularMap=this.emissiveMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinejoin=this.wireframeLinecap="round",this.morphNormals=this.morphTargets=this.skinning=!1,this.setValues(e)}function lr(e){ut.call(this),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}function pr(e,t,r){var n=this,i=!1,o=0,a=0,s=void 0;this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=r,this.itemStart=function(e){a++,!1===i&&void 0!==n.onStart&&n.onStart(e,o,a),i=!0},this.itemEnd=function(e){o++,void 0!==n.onProgress&&n.onProgress(e,o,a),o===a&&(i=!1,void 0!==n.onLoad)&&n.onLoad()},this.itemError=function(e){void 0!==n.onError&&n.onError(e)},this.resolveURL=function(e){return s?s(e):e},this.setURLModifier=function(e){s=e}}function dr(e){this.manager=void 0!==e?e:Ai}function fr(e){this.manager=void 0!==e?e:Ai,this._parser=null}function mr(e){this.manager=void 0!==e?e:Ai,this._parser=null}function vr(e){this.manager=void 0!==e?e:Ai}function gr(e){this.manager=void 0!==e?e:Ai}function yr(e){this.manager=void 0!==e?e:Ai}function br(e,t){ne.call(this),this.type="Light",this.color=new z(e),this.intensity=void 0!==t?t:1,this.receiveShadow=void 0}function _r(e,t,r){br.call(this,e,r),this.type="HemisphereLight",this.castShadow=void 0,this.position.copy(ne.DefaultUp),this.updateMatrix(),this.groundColor=new z(t)}function xr(e){this.camera=e,this.bias=0,this.radius=1,this.mapSize=new r(512,512),this.map=null,this.matrix=new n}function wr(){xr.call(this,new We(50,1,.5,500))}function Sr(e,t,r,n,i,o){br.call(this,e,t),this.type="SpotLight",this.position.copy(ne.DefaultUp),this.updateMatrix(),this.target=new ne,Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(e){this.intensity=e/Math.PI}}),this.distance=void 0!==r?r:0,this.angle=void 0!==n?n:Math.PI/3,this.penumbra=void 0!==i?i:0,this.decay=void 0!==o?o:1,this.shadow=new wr}function Mr(e,t,r,n){br.call(this,e,t),this.type="PointLight",Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(e){this.intensity=e/(4*Math.PI)}}),this.distance=void 0!==r?r:0,this.decay=void 0!==n?n:1,this.shadow=new xr(new We(90,1,.5,500))}function Er(){xr.call(this,new oe(-5,5,5,-5,.5,500))}function Cr(e,t){br.call(this,e,t),this.type="DirectionalLight",this.position.copy(ne.DefaultUp),this.updateMatrix(),this.target=new ne,this.shadow=new Er}function Tr(e,t){br.call(this,e,t),this.type="AmbientLight",this.castShadow=void 0}function Or(e,t,r,n){br.call(this,e,t),this.type="RectAreaLight",this.position.set(0,1,0),this.updateMatrix(),this.width=void 0!==r?r:10,this.height=void 0!==n?n:10}function Pr(e,t,r,n){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=void 0!==n?n:new t.constructor(r),this.sampleValues=t,this.valueSize=r}function jr(e,t,r,n){Pr.call(this,e,t,r,n),this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function Ar(e,t,r,n){Pr.call(this,e,t,r,n)}function Rr(e,t,r,n){Pr.call(this,e,t,r,n)}function Lr(e,t,r,n){if(void 0===e)throw Error("track name is undefined");if(void 0===t||0===t.length)throw Error("no keyframes in track named "+e);this.name=e,this.times=Li.convertArray(t,this.TimeBufferType),this.values=Li.convertArray(r,this.ValueBufferType),this.setInterpolation(n||this.DefaultInterpolation),this.validate(),this.optimize()}function Nr(e,t,r,n){Lr.call(this,e,t,r,n)}function Ir(e,t,r,n){Pr.call(this,e,t,r,n)}function Dr(e,t,r,n){Lr.call(this,e,t,r,n)}function kr(e,t,r,n){Lr.call(this,e,t,r,n)}function Br(e,t,r,n){Lr.call(this,e,t,r,n)}function Fr(e,t,r){Lr.call(this,e,t,r)}function Ur(e,t,r,n){Lr.call(this,e,t,r,n)}function $r(e,t,r,n){Lr.apply(this,e,t,r,n)}function zr(e,t,r){this.name=e,this.tracks=r,this.duration=void 0!==t?t:-1,this.uuid=ci.generateUUID(),0>this.duration&&this.resetDuration(),this.optimize()}function Gr(e){this.manager=void 0!==e?e:Ai,this.textures={}}function Vr(e){this.manager=void 0!==e?e:Ai}function Hr(){this.onLoadStart=function(){},this.onLoadProgress=function(){},this.onLoadComplete=function(){}}function qr(e){"boolean"==typeof e&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),e=void 0),this.manager=void 0!==e?e:Ai,this.withCredentials=!1}function Wr(e){this.manager=void 0!==e?e:Ai,this.texturePath=""}function Xr(e,t,r,n,i){var o=e*e;return(2*r-2*n+(t=.5*(n-t))+(i=.5*(i-r)))*e*o+(-3*r+3*n-2*t-i)*o+t*e+r}function Yr(e,t,r,n){var i=1-e;return i*i*t+2*(1-e)*e*r+e*e*n}function Kr(e,t,r,n,i){var o=1-e,a=1-e;return o*o*o*t+3*a*a*e*r+3*(1-e)*e*e*n+e*e*e*i}function Zr(){this.type="Curve",this.arcLengthDivisions=200}function Jr(e,t){Zr.call(this),this.type="LineCurve",this.v1=e||new r,this.v2=t||new r}function Qr(){Zr.call(this),this.type="CurvePath",this.curves=[],this.autoClose=!1}function en(e,t,r,n,i,o,a,s){Zr.call(this),this.type="EllipseCurve",this.aX=e||0,this.aY=t||0,this.xRadius=r||1,this.yRadius=n||1,this.aStartAngle=i||0,this.aEndAngle=o||2*Math.PI,this.aClockwise=a||!1,this.aRotation=s||0}function tn(e){Zr.call(this),this.type="SplineCurve",this.points=e||[]}function rn(e,t,n,i){Zr.call(this),this.type="CubicBezierCurve",this.v0=e||new r,this.v1=t||new r,this.v2=n||new r,this.v3=i||new r}function nn(e,t,n){Zr.call(this),this.type="QuadraticBezierCurve",this.v0=e||new r,this.v1=t||new r,this.v2=n||new r}function on(e){Qr.call(this),this.type="Path",this.currentPoint=new r,e&&this.setFromPoints(e)}function an(e){on.call(this,e),this.type="Shape",this.holes=[]}function sn(){this.type="ShapePath",this.subPaths=[],this.currentPath=null}function cn(e){this.type="Font",this.data=e}function un(e){this.manager=void 0!==e?e:Ai}function hn(e){this.manager=void 0!==e?e:Ai}function ln(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new We,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new We,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1}function pn(e,t,r){ne.call(this),this.type="CubeCamera";var n=new We(90,1,e,t);n.up.set(0,-1,0),n.lookAt(new o(1,0,0)),this.add(n);var i=new We(90,1,e,t);i.up.set(0,-1,0),i.lookAt(new o(-1,0,0)),this.add(i);var a=new We(90,1,e,t);a.up.set(0,0,1),a.lookAt(new o(0,1,0)),this.add(a);var s=new We(90,1,e,t);s.up.set(0,0,-1),s.lookAt(new o(0,-1,0)),this.add(s);var c=new We(90,1,e,t);c.up.set(0,-1,0),c.lookAt(new o(0,0,1)),this.add(c);var u=new We(90,1,e,t);u.up.set(0,-1,0),u.lookAt(new o(0,0,-1)),this.add(u),this.renderTarget=new h(r,r,{format:1022,magFilter:1006,minFilter:1006}),this.renderTarget.texture.name="CubeCamera",this.update=function(e,t){null===this.parent&&this.updateMatrixWorld();var r=this.renderTarget,o=r.texture.generateMipmaps;r.texture.generateMipmaps=!1,r.activeCubeFace=0,e.render(t,n,r),r.activeCubeFace=1,e.render(t,i,r),r.activeCubeFace=2,e.render(t,a,r),r.activeCubeFace=3,e.render(t,s,r),r.activeCubeFace=4,e.render(t,c,r),r.texture.generateMipmaps=o,r.activeCubeFace=5,e.render(t,u,r),e.setRenderTarget(null)},this.clear=function(e,t,r,n){for(var i=this.renderTarget,o=0;6>o;o++)i.activeCubeFace=o,e.setRenderTarget(i),e.clear(t,r,n);e.setRenderTarget(null)}}function dn(){ne.call(this),this.type="AudioListener",this.context=$i.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null}function fn(e){ne.call(this),this.type="Audio",this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.loop=!1,this.offset=this.startTime=0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.sourceType="empty",this.filters=[]}function mn(e){fn.call(this,e),this.panner=this.context.createPanner(),this.panner.connect(this.gain)}function vn(e,t){this.analyser=e.context.createAnalyser(),this.analyser.fftSize=void 0!==t?t:2048,this.data=new Uint8Array(this.analyser.frequencyBinCount),e.getOutput().connect(this.analyser)}function gn(e,t,r){switch(this.binding=e,this.valueSize=r,e=Float64Array,t){case"quaternion":t=this._slerp;break;case"string":case"bool":e=Array,t=this._select;break;default:t=this._lerp}this.buffer=new e(4*r),this._mixBufferRegion=t,this.referenceCount=this.useCount=this.cumulativeWeight=0}function yn(e,t,r){r=r||bn.parseTrackName(t),this._targetGroup=e,this._bindings=e.subscribe_(t,r)}function bn(e,t,r){this.path=t,this.parsedPath=r||bn.parseTrackName(t),this.node=bn.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e}function _n(){this.uuid=ci.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;var e={};this._indicesByUUID=e;for(var t=0,r=arguments.length;t!==r;++t)e[arguments[t].uuid]=t;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};var n=this;this.stats={objects:{get total(){return n._objects.length},get inUse(){return this.total-n.nCachedObjects_}},get bindingsPerObject(){return n._bindings.length}}}function xn(e,t,r){this._mixer=e,this._clip=t,this._localRoot=r||null,t=(e=t.tracks).length,r=Array(t);for(var n={endingStart:2400,endingEnd:2400},i=0;i!==t;++i){var o=e[i].createInterpolant(null);r[i]=o,o.settings=n}this._interpolantSettings=n,this._interpolants=r,this._propertyBindings=Array(t),this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function wn(e){this._root=e,this._initMemoryManager(),this.time=this._accuIndex=0,this.timeScale=1}function Sn(e,t){"string"==typeof e&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),e=t),this.value=e}function Mn(){_e.call(this),this.type="InstancedBufferGeometry",this.maxInstancedCount=void 0}function En(e,t,r,n){this.uuid=ci.generateUUID(),this.data=e,this.itemSize=t,this.offset=r,this.normalized=!0===n}function Cn(e,t){this.uuid=ci.generateUUID(),this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.dynamic=!1,this.updateRange={offset:0,count:-1},this.onUploadCallback=function(){},this.version=0}function Tn(e,t,r){Cn.call(this,e,t),this.meshPerAttribute=r||1}function On(e,t,r){ce.call(this,e,t),this.meshPerAttribute=r||1}function Pn(e,t,r,n){this.ray=new Te(e,t),this.near=r||0,this.far=n||1/0,this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}},Object.defineProperties(this.params,{PointCloud:{get:function(){return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."),this.Points}}})}function jn(e,t){return e.distance-t.distance}function An(e,t,r,n){if(!1!==e.visible&&(e.raycast(t,r),!0===n)){n=0;for(var i=(e=e.children).length;n<i;n++)An(e[n],t,r,!0)}}function Rn(e){this.autoStart=void 0===e||e,this.elapsedTime=this.oldTime=this.startTime=0,this.running=!1}function Ln(e,t,r){return this.radius=void 0!==e?e:1,this.phi=void 0!==t?t:0,this.theta=void 0!==r?r:0,this}function Nn(e,t,r){return this.radius=void 0!==e?e:1,this.theta=void 0!==t?t:0,this.y=void 0!==r?r:0,this}function In(e){ne.call(this),this.material=e,this.render=function(){}}function Dn(e,t,r,n){this.object=e,this.size=void 0!==t?t:1,e=void 0!==r?r:16711680,n=void 0!==n?n:1,t=0,(r=this.object.geometry)&&r.isGeometry?t=3*r.faces.length:r&&r.isBufferGeometry&&(t=r.attributes.normal.count),r=new _e,t=new ve(6*t,3),r.addAttribute("position",t),lt.call(this,r,new ut({color:e,linewidth:n})),this.matrixAutoUpdate=!1,this.update()}function kn(e,t){ne.call(this),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,e=new _e,t=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(var r=0,n=1;32>r;r++,n++){var i=r/32*Math.PI*2,o=n/32*Math.PI*2;t.push(Math.cos(i),Math.sin(i),1,Math.cos(o),Math.sin(o),1)}e.addAttribute("position",new ve(t,3)),t=new ut({fog:!1}),this.cone=new lt(e,t),this.add(this.cone),this.update()}function Bn(e){var t=[];e&&e.isBone&&t.push(e);for(var r=0;r<e.children.length;r++)t.push.apply(t,Bn(e.children[r]));return t}function Fn(e){for(var t=Bn(e),r=new _e,n=[],i=[],o=new z(0,0,1),a=new z(0,1,0),s=0;s<t.length;s++){var c=t[s];c.parent&&c.parent.isBone&&(n.push(0,0,0),n.push(0,0,0),i.push(o.r,o.g,o.b),i.push(a.r,a.g,a.b))}r.addAttribute("position",new ve(n,3)),r.addAttribute("color",new ve(i,3)),n=new ut({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0}),lt.call(this,r,n),this.root=e,this.bones=t,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}function Un(e,t,r){this.light=e,this.light.updateMatrixWorld(),this.color=r,e=new Gt(t,4,2),t=new Ee({wireframe:!0,fog:!1}),je.call(this,e,t),this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}function $n(e,t){ne.call(this),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,e=new ut({fog:!1}),(t=new _e).addAttribute("position",new ce(new Float32Array(15),3)),this.line=new ht(t,e),this.add(this.line),this.update()}function zn(e,t,r){ne.call(this),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=r,(e=new Tt(t)).rotateY(.5*Math.PI),this.material=new Ee({wireframe:!0,fog:!1}),void 0===this.color&&(this.material.vertexColors=2),t=e.getAttribute("position"),t=new Float32Array(3*t.count),e.addAttribute("color",new ce(t,3)),this.add(new je(e,this.material)),this.update()}function Gn(e,t,r,n){e=e||10,t=t||10,r=new z(void 0!==r?r:4473924),n=new z(void 0!==n?n:8947848);var i=t/2,o=e/t,a=e/2;e=[];for(var s=[],c=0,u=0,h=-a;c<=t;c++,h+=o){e.push(-a,0,h,a,0,h),e.push(h,0,-a,h,0,a);var l=c===i?r:n;l.toArray(s,u),u+=3,l.toArray(s,u),u+=3,l.toArray(s,u),u+=3,l.toArray(s,u),u+=3}(t=new _e).addAttribute("position",new ve(e,3)),t.addAttribute("color",new ve(s,3)),r=new ut({vertexColors:2}),lt.call(this,t,r)}function Vn(e,t,r,n,i,o){e=e||10,t=t||16,r=r||8,n=n||64,i=new z(void 0!==i?i:4473924),o=new z(void 0!==o?o:8947848);var a,s=[],c=[];for(a=0;a<=t;a++){var u=a/t*2*Math.PI,h=Math.sin(u)*e;u=Math.cos(u)*e,s.push(0,0,0),s.push(h,0,u);var l=1&a?i:o;c.push(l.r,l.g,l.b),c.push(l.r,l.g,l.b)}for(a=0;a<=r;a++){l=1&a?i:o;var p=e-e/r*a;for(t=0;t<n;t++)u=t/n*2*Math.PI,h=Math.sin(u)*p,u=Math.cos(u)*p,s.push(h,0,u),c.push(l.r,l.g,l.b),u=(t+1)/n*2*Math.PI,h=Math.sin(u)*p,u=Math.cos(u)*p,s.push(h,0,u),c.push(l.r,l.g,l.b)}(e=new _e).addAttribute("position",new ve(s,3)),e.addAttribute("color",new ve(c,3)),s=new ut({vertexColors:2}),lt.call(this,e,s)}function Hn(e,t,r,n){this.object=e,this.size=void 0!==t?t:1,e=void 0!==r?r:16776960,n=void 0!==n?n:1,t=0,(r=this.object.geometry)&&r.isGeometry?t=r.faces.length:console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead."),r=new _e,t=new ve(6*t,3),r.addAttribute("position",t),lt.call(this,r,new ut({color:e,linewidth:n})),this.matrixAutoUpdate=!1,this.update()}function qn(e,t,r){ne.call(this),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=r,void 0===t&&(t=1),(e=new _e).addAttribute("position",new ve([-t,t,0,t,t,0,t,-t,0,-t,-t,0,-t,t,0],3)),t=new ut({fog:!1}),this.lightPlane=new ht(e,t),this.add(this.lightPlane),(e=new _e).addAttribute("position",new ve([0,0,0,0,0,1],3)),this.targetLine=new ht(e,t),this.add(this.targetLine),this.update()}function Wn(e){function t(e,t,n){r(e,n),r(t,n)}function r(e,t){o.push(0,0,0),a.push(t.r,t.g,t.b),void 0===s[e]&&(s[e]=[]),s[e].push(o.length/3-1)}var n=new _e,i=new ut({color:16777215,vertexColors:1}),o=[],a=[],s={},c=new z(16755200),u=new z(16711680),h=new z(43775),l=new z(16777215),p=new z(3355443);t("n1","n2",c),t("n2","n4",c),t("n4","n3",c),t("n3","n1",c),t("f1","f2",c),t("f2","f4",c),t("f4","f3",c),t("f3","f1",c),t("n1","f1",c),t("n2","f2",c),t("n3","f3",c),t("n4","f4",c),t("p","n1",u),t("p","n2",u),t("p","n3",u),t("p","n4",u),t("u1","u2",h),t("u2","u3",h),t("u3","u1",h),t("c","t",l),t("p","c",p),t("cn1","cn2",p),t("cn3","cn4",p),t("cf1","cf2",p),t("cf3","cf4",p),n.addAttribute("position",new ve(o,3)),n.addAttribute("color",new ve(a,3)),lt.call(this,n,i),this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}function Xn(e,t){this.object=e,void 0===t&&(t=16776960),e=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var r=new Float32Array(24),n=new _e;n.setIndex(new ce(e,1)),n.addAttribute("position",new ce(r,3)),lt.call(this,n,new ut({color:t})),this.matrixAutoUpdate=!1,this.update()}function Yn(e,t){this.type="Box3Helper",this.box=e,e=void 0!==t?t:16776960,t=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var r=new _e;r.setIndex(new ce(t,1)),r.addAttribute("position",new ve([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),lt.call(this,r,new ut({color:e})),this.geometry.computeBoundingSphere()}function Kn(e,t,r){this.type="PlaneHelper",this.plane=e,this.size=void 0===t?1:t,e=void 0!==r?r:16776960,(t=new _e).addAttribute("position",new ve([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3)),t.computeBoundingSphere(),ht.call(this,t,new ut({color:e})),(t=new _e).addAttribute("position",new ve([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),t.computeBoundingSphere(),this.add(new je(t,new Ee({color:e,opacity:.2,transparent:!0,depthWrite:!1})))}function Zn(e,t,r,n,i,o){ne.call(this),void 0===n&&(n=16776960),void 0===r&&(r=1),void 0===i&&(i=.2*r),void 0===o&&(o=.2*i),void 0===zi&&((zi=new _e).addAttribute("position",new ve([0,0,0,0,1,0],3)),(Gi=new Jt(0,.5,1,5,1)).translate(0,-.5,0)),this.position.copy(t),this.line=new ht(zi,new ut({color:n})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new je(Gi,new Ee({color:n})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(e),this.setLength(r,i,o)}function Jn(e){var t=[0,0,0,e=e||1,0,0,0,0,0,0,e,0,0,0,0,0,0,e];(e=new _e).addAttribute("position",new ve(t,3)),e.addAttribute("color",new ve([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),t=new ut({vertexColors:2}),lt.call(this,e,t)}function Qn(){var e=0,t=0,r=0,n=0;return{initCatmullRom:function(i,o,a,s,c){e=o,t=i=c*(a-i),r=-3*o+3*a-2*i-(s=c*(s-o)),n=2*o-2*a+i+s},initNonuniformCatmullRom:function(i,o,a,s,c,u,h){e=o,t=i=((o-i)/c-(a-i)/(c+u)+(a-o)/u)*u,r=-3*o+3*a-2*i-(s=((a-o)/u-(s-o)/(u+h)+(s-a)/h)*u),n=2*o-2*a+i+s},calc:function(i){var o=i*i;return e+t*i+r*o+n*o*i}}}function ei(e,t,r,n){Zr.call(this),this.type="CatmullRomCurve3",this.points=e||[],this.closed=t||!1,this.curveType=r||"centripetal",this.tension=n||.5}function ti(e,t,r,n){Zr.call(this),this.type="CubicBezierCurve3",this.v0=e||new o,this.v1=t||new o,this.v2=r||new o,this.v3=n||new o}function ri(e,t,r){Zr.call(this),this.type="QuadraticBezierCurve3",this.v0=e||new o,this.v1=t||new o,this.v2=r||new o}function ni(e,t){Zr.call(this),this.type="LineCurve3",this.v1=e||new o,this.v2=t||new o}function ii(e,t,r,n,i,o){en.call(this,e,t,r,r,n,i,o),this.type="ArcCurve"}function oi(e){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),ei.call(this,e),this.type="catmullrom",this.closed=!0}function ai(e){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),ei.call(this,e),this.type="catmullrom"}function si(e){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead."),ei.call(this,e),this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52)),void 0===Number.isInteger&&(Number.isInteger=function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}),void 0===Math.sign&&(Math.sign=function(e){return 0>e?-1:0<e?1:+e}),!1=="name"in Function.prototype&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}}),void 0===Object.assign&&(Object.assign=function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),r=1;r<arguments.length;r++){var n=arguments[r];if(void 0!==n&&null!==n)for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}),Object.assign(t.prototype,{addEventListener:function(e,t){void 0===this._listeners&&(this._listeners={});var r=this._listeners;void 0===r[e]&&(r[e]=[]),-1===r[e].indexOf(t)&&r[e].push(t)},hasEventListener:function(e,t){if(void 0===this._listeners)return!1;var r=this._listeners;return void 0!==r[e]&&-1!==r[e].indexOf(t)},removeEventListener:function(e,t){void 0!==this._listeners&&void 0!==(e=this._listeners[e])&&-1!==(t=e.indexOf(t))&&e.splice(t,1)},dispatchEvent:function(e){if(void 0!==this._listeners){t=this._listeners[e.type];if(void 0!==t){e.target=this;for(var t,r=0,n=(t=t.slice(0)).length;r<n;r++)t[r].call(this,e)}}}});var ci={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var e,t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=0;return function(){for(var n="",i=0;36>i;i++)8===i||13===i||18===i||23===i?n+="-":14===i?n+="4":(2>=r&&(r=33554432+16777216*Math.random()|0),e=15&r,r>>=4,n+=t[19===i?3&e|8:e]);return n}}(),clamp:function(e,t,r){return Math.max(t,Math.min(r,e))},euclideanModulo:function(e,t){return(e%t+t)%t},mapLinear:function(e,t,r,n,i){return n+(e-t)*(i-n)/(r-t)},lerp:function(e,t,r){return(1-r)*e+r*t},smoothstep:function(e,t,r){return e<=t?0:e>=r?1:(e=(e-t)/(r-t))*e*(3-2*e)},smootherstep:function(e,t,r){return e<=t?0:e>=r?1:(e=(e-t)/(r-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},degToRad:function(e){return e*ci.DEG2RAD},radToDeg:function(e){return e*ci.RAD2DEG},isPowerOfTwo:function(e){return 0==(e&e-1)&&0!==e},ceilPowerOfTwo:function(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))},floorPowerOfTwo:function(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}};Object.defineProperties(r.prototype,{width:{get:function(){return this.x},set:function(e){this.x=e}},height:{get:function(){return this.y},set:function(e){this.y=e}}}),Object.assign(r.prototype,{isVector2:!0,set:function(e,t){return this.x=e,this.y=t,this},setScalar:function(e){return this.y=this.x=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw Error("index is out of range: "+e)}return this},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+e)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(e){return this.x=e.x,this.y=e.y,this},add:function(e,t){return void 0!==t?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this)},addScalar:function(e){return this.x+=e,this.y+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this},sub:function(e,t){return void 0!==t?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this)},subScalar:function(e){return this.x-=e,this.y-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this},multiply:function(e){return this.x*=e.x,this.y*=e.y,this},multiplyScalar:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return this.x/=e.x,this.y/=e.y,this},divideScalar:function(e){return this.multiplyScalar(1/e)},applyMatrix3:function(e){var t=this.x,r=this.y;return e=e.elements,this.x=e[0]*t+e[3]*r+e[6],this.y=e[1]*t+e[4]*r+e[7],this},min:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this},max:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this},clamp:function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this},clampScalar:function(){var e=new r,t=new r;return function(r,n){return e.set(r,r),t.set(n,n),this.clamp(e,t)}}(),clampLength:function(e,t){var r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(e,Math.min(t,r)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(e){return this.x*e.x+this.y*e.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var e=Math.atan2(this.y,this.x);return 0>e&&(e+=2*Math.PI),e},distanceTo:function(e){return Math.sqrt(this.distanceToSquared(e))},distanceToSquared:function(e){var t=this.x-e.x;return e=this.y-e.y,t*t+e*e},manhattanDistanceTo:function(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)},setLength:function(e){return this.normalize().multiplyScalar(e)},lerp:function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this},lerpVectors:function(e,t,r){return this.subVectors(t,e).multiplyScalar(r).add(e)},equals:function(e){return e.x===this.x&&e.y===this.y},fromArray:function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e},fromBufferAttribute:function(e,t,r){return void 0!==r&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this},rotateAround:function(e,t){var r=Math.cos(t);t=Math.sin(t);var n=this.x-e.x,i=this.y-e.y;return this.x=n*r-i*t+e.x,this.y=n*t+i*r+e.y,this}}),Object.assign(n.prototype,{isMatrix4:!0,set:function(e,t,r,n,i,o,a,s,c,u,h,l,p,d,f,m){var v=this.elements;return v[0]=e,v[4]=t,v[8]=r,v[12]=n,v[1]=i,v[5]=o,v[9]=a,v[13]=s,v[2]=c,v[6]=u,v[10]=h,v[14]=l,v[3]=p,v[7]=d,v[11]=f,v[15]=m,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new n).fromArray(this.elements)},copy:function(e){var t=this.elements;return e=e.elements,t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],this},copyPosition:function(e){var t=this.elements;return e=e.elements,t[12]=e[12],t[13]=e[13],t[14]=e[14],this},extractBasis:function(e,t,r){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),r.setFromMatrixColumn(this,2),this},makeBasis:function(e,t,r){return this.set(e.x,t.x,r.x,0,e.y,t.y,r.y,0,e.z,t.z,r.z,0,0,0,0,1),this},extractRotation:function(){var e=new o;return function(t){var r=this.elements,n=t.elements,i=1/e.setFromMatrixColumn(t,0).length(),o=1/e.setFromMatrixColumn(t,1).length();return t=1/e.setFromMatrixColumn(t,2).length(),r[0]=n[0]*i,r[1]=n[1]*i,r[2]=n[2]*i,r[4]=n[4]*o,r[5]=n[5]*o,r[6]=n[6]*o,r[8]=n[8]*t,r[9]=n[9]*t,r[10]=n[10]*t,this}}(),makeRotationFromEuler:function(e){e&&e.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var t=this.elements,r=e.x,n=e.y,i=e.z,o=Math.cos(r),r=Math.sin(r),a=Math.cos(n),n=Math.sin(n),s=Math.cos(i),i=Math.sin(i);if("XYZ"===e.order){var c=o*s,u=o*i,h=r*s;e=r*i,t[0]=a*s,t[4]=-a*i,t[8]=n,t[1]=u+h*n,t[5]=c-e*n,t[9]=-r*a,t[2]=e-c*n,t[6]=h+u*n,t[10]=o*a}else"YXZ"===e.order?(c=a*s,u=a*i,h=n*s,e=n*i,t[0]=c+e*r,t[4]=h*r-u,t[8]=o*n,t[1]=o*i,t[5]=o*s,t[9]=-r,t[2]=u*r-h,t[6]=e+c*r,t[10]=o*a):"ZXY"===e.order?(c=a*s,u=a*i,h=n*s,e=n*i,t[0]=c-e*r,t[4]=-o*i,t[8]=h+u*r,t[1]=u+h*r,t[5]=o*s,t[9]=e-c*r,t[2]=-o*n,t[6]=r,t[10]=o*a):"ZYX"===e.order?(c=o*s,u=o*i,h=r*s,e=r*i,t[0]=a*s,t[4]=h*n-u,t[8]=c*n+e,t[1]=a*i,t[5]=e*n+c,t[9]=u*n-h,t[2]=-n,t[6]=r*a,t[10]=o*a):"YZX"===e.order?(c=o*a,u=o*n,h=r*a,e=r*n,t[0]=a*s,t[4]=e-c*i,t[8]=h*i+u,t[1]=i,t[5]=o*s,t[9]=-r*s,t[2]=-n*s,t[6]=u*i+h,t[10]=c-e*i):"XZY"===e.order&&(c=o*a,u=o*n,h=r*a,e=r*n,t[0]=a*s,t[4]=-i,t[8]=n*s,t[1]=c*i+e,t[5]=o*s,t[9]=u*i-h,t[2]=h*i-u,t[6]=r*s,t[10]=e*i+c);return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this},makeRotationFromQuaternion:function(e){var t=this.elements,r=e._x,n=e._y,i=e._z,o=e._w,a=i+i;e=r*(u=r+r);var s=r*(h=n+n),r=r*a,c=n*h,n=n*a,i=i*a,u=o*u,h=o*h,o=o*a;return t[0]=1-(c+i),t[4]=s-o,t[8]=r+h,t[1]=s+o,t[5]=1-(e+i),t[9]=n-u,t[2]=r-h,t[6]=n+u,t[10]=1-(e+c),t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this},lookAt:function(){var e=new o,t=new o,r=new o;return function(n,i,o){var a=this.elements;return r.subVectors(n,i),0===r.lengthSq()&&(r.z=1),r.normalize(),e.crossVectors(o,r),0===e.lengthSq()&&(1===Math.abs(o.z)?r.x+=1e-4:r.z+=1e-4,r.normalize(),e.crossVectors(o,r)),e.normalize(),t.crossVectors(r,e),a[0]=e.x,a[4]=t.x,a[8]=r.x,a[1]=e.y,a[5]=t.y,a[9]=r.y,a[2]=e.z,a[6]=t.z,a[10]=r.z,this}}(),multiply:function(e,t){return void 0!==t?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(e,t)):this.multiplyMatrices(this,e)},premultiply:function(e){return this.multiplyMatrices(e,this)},multiplyMatrices:function(e,t){var r=e.elements,n=t.elements;t=this.elements,e=r[0];var i=r[4],o=r[8],a=r[12],s=r[1],c=r[5],u=r[9],h=r[13],l=r[2],p=r[6],d=r[10],f=r[14],m=r[3],v=r[7],g=r[11],r=r[15],y=n[0],b=n[4],_=n[8],x=n[12],w=n[1],S=n[5],M=n[9],E=n[13],C=n[2],T=n[6],O=n[10],P=n[14],j=n[3],A=n[7],R=n[11],n=n[15];return t[0]=e*y+i*w+o*C+a*j,t[4]=e*b+i*S+o*T+a*A,t[8]=e*_+i*M+o*O+a*R,t[12]=e*x+i*E+o*P+a*n,t[1]=s*y+c*w+u*C+h*j,t[5]=s*b+c*S+u*T+h*A,t[9]=s*_+c*M+u*O+h*R,t[13]=s*x+c*E+u*P+h*n,t[2]=l*y+p*w+d*C+f*j,t[6]=l*b+p*S+d*T+f*A,t[10]=l*_+p*M+d*O+f*R,t[14]=l*x+p*E+d*P+f*n,t[3]=m*y+v*w+g*C+r*j,t[7]=m*b+v*S+g*T+r*A,t[11]=m*_+v*M+g*O+r*R,t[15]=m*x+v*E+g*P+r*n,this},multiplyScalar:function(e){var t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this},applyToBufferAttribute:function(){var e=new o;return function(t){for(var r=0,n=t.count;r<n;r++)e.x=t.getX(r),e.y=t.getY(r),e.z=t.getZ(r),e.applyMatrix4(this),t.setXYZ(r,e.x,e.y,e.z);return t}}(),determinant:function(){var e=this.elements,t=e[0],r=e[4],n=e[8],i=e[12],o=e[1],a=e[5],s=e[9],c=e[13],u=e[2],h=e[6],l=e[10],p=e[14];return e[3]*(+i*s*h-n*c*h-i*a*l+r*c*l+n*a*p-r*s*p)+e[7]*(+t*s*p-t*c*l+i*o*l-n*o*p+n*c*u-i*s*u)+e[11]*(+t*c*h-t*a*p-i*o*h+r*o*p+i*a*u-r*c*u)+e[15]*(-n*a*u-t*s*h+t*a*l+n*o*h-r*o*l+r*s*u)},transpose:function(){var e=this.elements,t=e[1];return e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this},setPosition:function(e){var t=this.elements;return t[12]=e.x,t[13]=e.y,t[14]=e.z,this},getInverse:function(e,t){var r=this.elements,n=e.elements;e=n[0];var i=n[1],o=n[2],a=n[3],s=n[4],c=n[5],u=n[6],h=n[7],l=n[8],p=n[9],d=n[10],f=n[11],m=n[12],v=n[13],g=n[14],y=p*g*h-v*d*h+v*u*f-c*g*f-p*u*(n=n[15])+c*d*n,b=m*d*h-l*g*h-m*u*f+s*g*f+l*u*n-s*d*n,_=l*v*h-m*p*h+m*c*f-s*v*f-l*c*n+s*p*n,x=m*p*u-l*v*u-m*c*d+s*v*d+l*c*g-s*p*g,w=e*y+i*b+o*_+a*x;if(0===w){if(!0===t)throw Error("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");return console.warn("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0"),this.identity()}return t=1/w,r[0]=y*t,r[1]=(v*d*a-p*g*a-v*o*f+i*g*f+p*o*n-i*d*n)*t,r[2]=(c*g*a-v*u*a+v*o*h-i*g*h-c*o*n+i*u*n)*t,r[3]=(p*u*a-c*d*a-p*o*h+i*d*h+c*o*f-i*u*f)*t,r[4]=b*t,r[5]=(l*g*a-m*d*a+m*o*f-e*g*f-l*o*n+e*d*n)*t,r[6]=(m*u*a-s*g*a-m*o*h+e*g*h+s*o*n-e*u*n)*t,r[7]=(s*d*a-l*u*a+l*o*h-e*d*h-s*o*f+e*u*f)*t,r[8]=_*t,r[9]=(m*p*a-l*v*a-m*i*f+e*v*f+l*i*n-e*p*n)*t,r[10]=(s*v*a-m*c*a+m*i*h-e*v*h-s*i*n+e*c*n)*t,r[11]=(l*c*a-s*p*a-l*i*h+e*p*h+s*i*f-e*c*f)*t,r[12]=x*t,r[13]=(l*v*o-m*p*o+m*i*d-e*v*d-l*i*g+e*p*g)*t,r[14]=(m*c*o-s*v*o-m*i*u+e*v*u+s*i*g-e*c*g)*t,r[15]=(s*p*o-l*c*o+l*i*u-e*p*u-s*i*d+e*c*d)*t,this},scale:function(e){var t=this.elements,r=e.x,n=e.y;return e=e.z,t[0]*=r,t[4]*=n,t[8]*=e,t[1]*=r,t[5]*=n,t[9]*=e,t[2]*=r,t[6]*=n,t[10]*=e,t[3]*=r,t[7]*=n,t[11]*=e,this},getMaxScaleOnAxis:function(){var e=this.elements;return Math.sqrt(Math.max(e[0]*e[0]+e[1]*e[1]+e[2]*e[2],e[4]*e[4]+e[5]*e[5]+e[6]*e[6],e[8]*e[8]+e[9]*e[9]+e[10]*e[10]))},makeTranslation:function(e,t,r){return this.set(1,0,0,e,0,1,0,t,0,0,1,r,0,0,0,1),this},makeRotationX:function(e){var t=Math.cos(e);return e=Math.sin(e),this.set(1,0,0,0,0,t,-e,0,0,e,t,0,0,0,0,1),this},makeRotationY:function(e){var t=Math.cos(e);return e=Math.sin(e),this.set(t,0,e,0,0,1,0,0,-e,0,t,0,0,0,0,1),this},makeRotationZ:function(e){var t=Math.cos(e);return e=Math.sin(e),this.set(t,-e,0,0,e,t,0,0,0,0,1,0,0,0,0,1),this},makeRotationAxis:function(e,t){var r=Math.cos(t);t=Math.sin(t);var n=1-r,i=e.x,o=e.y;e=e.z;var a=n*i,s=n*o;return this.set(a*i+r,a*o-t*e,a*e+t*o,0,a*o+t*e,s*o+r,s*e-t*i,0,a*e-t*o,s*e+t*i,n*e*e+r,0,0,0,0,1),this},makeScale:function(e,t,r){return this.set(e,0,0,0,0,t,0,0,0,0,r,0,0,0,0,1),this},makeShear:function(e,t,r){return this.set(1,t,r,0,e,1,r,0,e,t,1,0,0,0,0,1),this},compose:function(e,t,r){return this.makeRotationFromQuaternion(t),this.scale(r),this.setPosition(e),this},decompose:function(){var e=new o,t=new n;return function(r,n,i){var o=this.elements,a=e.set(o[0],o[1],o[2]).length(),s=e.set(o[4],o[5],o[6]).length(),c=e.set(o[8],o[9],o[10]).length();0>this.determinant()&&(a=-a),r.x=o[12],r.y=o[13],r.z=o[14],t.copy(this),r=1/a;var o=1/s,u=1/c;return t.elements[0]*=r,t.elements[1]*=r,t.elements[2]*=r,t.elements[4]*=o,t.elements[5]*=o,t.elements[6]*=o,t.elements[8]*=u,t.elements[9]*=u,t.elements[10]*=u,n.setFromRotationMatrix(t),i.x=a,i.y=s,i.z=c,this}}(),makePerspective:function(e,t,r,n,i,o){void 0===o&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var a=this.elements;return a[0]=2*i/(t-e),a[4]=0,a[8]=(t+e)/(t-e),a[12]=0,a[1]=0,a[5]=2*i/(r-n),a[9]=(r+n)/(r-n),a[13]=0,a[2]=0,a[6]=0,a[10]=-(o+i)/(o-i),a[14]=-2*o*i/(o-i),a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this},makeOrthographic:function(e,t,r,n,i,o){var a=this.elements,s=1/(t-e),c=1/(r-n),u=1/(o-i);return a[0]=2*s,a[4]=0,a[8]=0,a[12]=-(t+e)*s,a[1]=0,a[5]=2*c,a[9]=0,a[13]=-(r+n)*c,a[2]=0,a[6]=0,a[10]=-2*u,a[14]=-(o+i)*u,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this},equals:function(e){var t=this.elements;e=e.elements;for(var r=0;16>r;r++)if(t[r]!==e[r])return!1;return!0},fromArray:function(e,t){void 0===t&&(t=0);for(var r=0;16>r;r++)this.elements[r]=e[r+t];return this},toArray:function(e,t){void 0===e&&(e=[]),void 0===t&&(t=0);var r=this.elements;return e[t]=r[0],e[t+1]=r[1],e[t+2]=r[2],e[t+3]=r[3],e[t+4]=r[4],e[t+5]=r[5],e[t+6]=r[6],e[t+7]=r[7],e[t+8]=r[8],e[t+9]=r[9],e[t+10]=r[10],e[t+11]=r[11],e[t+12]=r[12],e[t+13]=r[13],e[t+14]=r[14],e[t+15]=r[15],e}}),Object.assign(i,{slerp:function(e,t,r,n){return r.copy(e).slerp(t,n)},slerpFlat:function(e,t,r,n,i,o,a){var s=r[n+0],c=r[n+1],u=r[n+2];r=r[n+3],n=i[o+0];var h=i[o+1],l=i[o+2];if(i=i[o+3],r!==i||s!==n||c!==h||u!==l){o=1-a;var p=s*n+c*h+u*l+r*i,d=0<=p?1:-1,f=1-p*p;f>Number.EPSILON&&(f=Math.sqrt(f),p=Math.atan2(f,p*d),o=Math.sin(o*p)/f,a=Math.sin(a*p)/f),s=s*o+n*(d*=a),c=c*o+h*d,u=u*o+l*d,r=r*o+i*d,o===1-a&&(a=1/Math.sqrt(s*s+c*c+u*u+r*r),s*=a,c*=a,u*=a,r*=a)}e[t]=s,e[t+1]=c,e[t+2]=u,e[t+3]=r}}),Object.defineProperties(i.prototype,{x:{get:function(){return this._x},set:function(e){this._x=e,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(e){this._y=e,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(e){this._z=e,this.onChangeCallback()}},w:{get:function(){return this._w},set:function(e){this._w=e,this.onChangeCallback()}}}),Object.assign(i.prototype,{set:function(e,t,r,n){return this._x=e,this._y=t,this._z=r,this._w=n,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this.onChangeCallback(),this},setFromEuler:function(e,t){if(!e||!e.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var r=e._x,n=e._y,i=e._z;e=e.order;var o=Math.cos,a=Math.sin,s=o(r/2),c=o(n/2),o=o(i/2),r=a(r/2),n=a(n/2),i=a(i/2);return"XYZ"===e?(this._x=r*c*o+s*n*i,this._y=s*n*o-r*c*i,this._z=s*c*i+r*n*o,this._w=s*c*o-r*n*i):"YXZ"===e?(this._x=r*c*o+s*n*i,this._y=s*n*o-r*c*i,this._z=s*c*i-r*n*o,this._w=s*c*o+r*n*i):"ZXY"===e?(this._x=r*c*o-s*n*i,this._y=s*n*o+r*c*i,this._z=s*c*i+r*n*o,this._w=s*c*o-r*n*i):"ZYX"===e?(this._x=r*c*o-s*n*i,this._y=s*n*o+r*c*i,this._z=s*c*i-r*n*o,this._w=s*c*o+r*n*i):"YZX"===e?(this._x=r*c*o+s*n*i,this._y=s*n*o+r*c*i,this._z=s*c*i-r*n*o,this._w=s*c*o-r*n*i):"XZY"===e&&(this._x=r*c*o-s*n*i,this._y=s*n*o-r*c*i,this._z=s*c*i+r*n*o,this._w=s*c*o+r*n*i),!1!==t&&this.onChangeCallback(),this},setFromAxisAngle:function(e,t){t/=2;var r=Math.sin(t);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(t),this.onChangeCallback(),this},setFromRotationMatrix:function(e){var t=e.elements,r=t[0];e=t[4];var n=t[8],i=t[1],o=t[5],a=t[9],s=t[2],c=t[6],u=r+o+(t=t[10]);return 0<u?(r=.5/Math.sqrt(u+1),this._w=.25/r,this._x=(c-a)*r,this._y=(n-s)*r,this._z=(i-e)*r):r>o&&r>t?(r=2*Math.sqrt(1+r-o-t),this._w=(c-a)/r,this._x=.25*r,this._y=(e+i)/r,this._z=(n+s)/r):o>t?(r=2*Math.sqrt(1+o-r-t),this._w=(n-s)/r,this._x=(e+i)/r,this._y=.25*r,this._z=(a+c)/r):(r=2*Math.sqrt(1+t-r-o),this._w=(i-e)/r,this._x=(n+s)/r,this._y=(a+c)/r,this._z=.25*r),this.onChangeCallback(),this},setFromUnitVectors:function(){var e,t=new o;return function(r,n){return void 0===t&&(t=new o),1e-6>(e=r.dot(n)+1)?(e=0,Math.abs(r.x)>Math.abs(r.z)?t.set(-r.y,r.x,0):t.set(0,-r.z,r.y)):t.crossVectors(r,n),this._x=t.x,this._y=t.y,this._z=t.z,this._w=e,this.normalize()}}(),inverse:function(){return this.conjugate().normalize()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this.onChangeCallback(),this},dot:function(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var e=this.length();return 0===e?(this._z=this._y=this._x=0,this._w=1):(e=1/e,this._x*=e,this._y*=e,this._z*=e,this._w*=e),this.onChangeCallback(),this},multiply:function(e,t){return void 0!==t?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(e,t)):this.multiplyQuaternions(this,e)},premultiply:function(e){return this.multiplyQuaternions(e,this)},multiplyQuaternions:function(e,t){var r=e._x,n=e._y,i=e._z;e=e._w;var o=t._x,a=t._y,s=t._z;return t=t._w,this._x=r*t+e*o+n*s-i*a,this._y=n*t+e*a+i*o-r*s,this._z=i*t+e*s+r*a-n*o,this._w=e*t-r*o-n*a-i*s,this.onChangeCallback(),this},slerp:function(e,t){if(0===t)return this;if(1===t)return this.copy(e);var r=this._x,n=this._y,i=this._z,o=this._w;if(0>(s=o*e._w+r*e._x+n*e._y+i*e._z)?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,s=-s):this.copy(e),1<=s)return this._w=o,this._x=r,this._y=n,this._z=i,this;if(e=Math.sqrt(1-s*s),.001>Math.abs(e))return this._w=.5*(o+this._w),this._x=.5*(r+this._x),this._y=.5*(n+this._y),this._z=.5*(i+this._z),this;var a=Math.atan2(e,s),s=Math.sin((1-t)*a)/e;return t=Math.sin(t*a)/e,this._w=o*s+this._w*t,this._x=r*s+this._x*t,this._y=n*s+this._y*t,this._z=i*s+this._z*t,this.onChangeCallback(),this},equals:function(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w},fromArray:function(e,t){return void 0===t&&(t=0),this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this.onChangeCallback(),this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e},onChange:function(e){return this.onChangeCallback=e,this},onChangeCallback:function(){}}),Object.assign(o.prototype,{isVector3:!0,set:function(e,t,r){return this.x=e,this.y=t,this.z=r,this},setScalar:function(e){return this.z=this.y=this.x=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setZ:function(e){return this.z=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw Error("index is out of range: "+e)}return this},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+e)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},add:function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this)},addScalar:function(e){return this.x+=e,this.y+=e,this.z+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this},sub:function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this)},subScalar:function(e){return this.x-=e,this.y-=e,this.z-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},multiply:function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(e,t)):(this.x*=e.x,this.y*=e.y,this.z*=e.z,this)},multiplyScalar:function(e){return this.x*=e,this.y*=e,this.z*=e,this},multiplyVectors:function(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this},applyEuler:function(){var e=new i;return function(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(e.setFromEuler(t))}}(),applyAxisAngle:function(){var e=new i;return function(t,r){return this.applyQuaternion(e.setFromAxisAngle(t,r))}}(),applyMatrix3:function(e){var t=this.x,r=this.y,n=this.z;return e=e.elements,this.x=e[0]*t+e[3]*r+e[6]*n,this.y=e[1]*t+e[4]*r+e[7]*n,this.z=e[2]*t+e[5]*r+e[8]*n,this},applyMatrix4:function(e){var t=this.x,r=this.y,n=this.z,i=1/((e=e.elements)[3]*t+e[7]*r+e[11]*n+e[15]);return this.x=(e[0]*t+e[4]*r+e[8]*n+e[12])*i,this.y=(e[1]*t+e[5]*r+e[9]*n+e[13])*i,this.z=(e[2]*t+e[6]*r+e[10]*n+e[14])*i,this},applyQuaternion:function(e){var t=this.x,r=this.y,n=this.z,i=e.x,o=e.y,a=e.z,s=(e=e.w)*t+o*n-a*r,c=e*r+a*t-i*n,u=e*n+i*r-o*t,t=-i*t-o*r-a*n;return this.x=s*e+t*-i+c*-a-u*-o,this.y=c*e+t*-o+u*-i-s*-a,this.z=u*e+t*-a+s*-o-c*-i,this},project:function(){var e=new n;return function(t){return e.multiplyMatrices(t.projectionMatrix,e.getInverse(t.matrixWorld)),this.applyMatrix4(e)}}(),unproject:function(){var e=new n;return function(t){return e.multiplyMatrices(t.matrixWorld,e.getInverse(t.projectionMatrix)),this.applyMatrix4(e)}}(),transformDirection:function(e){var t=this.x,r=this.y,n=this.z;return e=e.elements,this.x=e[0]*t+e[4]*r+e[8]*n,this.y=e[1]*t+e[5]*r+e[9]*n,this.z=e[2]*t+e[6]*r+e[10]*n,this.normalize()},divide:function(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this},divideScalar:function(e){return this.multiplyScalar(1/e)},min:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this},max:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this},clamp:function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this},clampScalar:function(){var e=new o,t=new o;return function(r,n){return e.set(r,r,r),t.set(n,n,n),this.clamp(e,t)}}(),clampLength:function(e,t){var r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(e,Math.min(t,r)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(e){return this.normalize().multiplyScalar(e)},lerp:function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this},lerpVectors:function(e,t,r){return this.subVectors(t,e).multiplyScalar(r).add(e)},cross:function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(e,t)):this.crossVectors(this,e)},crossVectors:function(e,t){var r=e.x,n=e.y;e=e.z;var i=t.x,o=t.y;return t=t.z,this.x=n*t-e*o,this.y=e*i-r*t,this.z=r*o-n*i,this},projectOnVector:function(e){var t=e.dot(this)/e.lengthSq();return this.copy(e).multiplyScalar(t)},projectOnPlane:function(){var e=new o;return function(t){return e.copy(this).projectOnVector(t),this.sub(e)}}(),reflect:function(){var e=new o;return function(t){return this.sub(e.copy(t).multiplyScalar(2*this.dot(t)))}}(),angleTo:function(e){return e=this.dot(e)/Math.sqrt(this.lengthSq()*e.lengthSq()),Math.acos(ci.clamp(e,-1,1))},distanceTo:function(e){return Math.sqrt(this.distanceToSquared(e))},distanceToSquared:function(e){var t=this.x-e.x,r=this.y-e.y;return e=this.z-e.z,t*t+r*r+e*e},manhattanDistanceTo:function(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)},setFromSpherical:function(e){var t=Math.sin(e.phi)*e.radius;return this.x=t*Math.sin(e.theta),this.y=Math.cos(e.phi)*e.radius,this.z=t*Math.cos(e.theta),this},setFromCylindrical:function(e){return this.x=e.radius*Math.sin(e.theta),this.y=e.y,this.z=e.radius*Math.cos(e.theta),this},setFromMatrixPosition:function(e){return e=e.elements,this.x=e[12],this.y=e[13],this.z=e[14],this},setFromMatrixScale:function(e){var t=this.setFromMatrixColumn(e,0).length(),r=this.setFromMatrixColumn(e,1).length();return e=this.setFromMatrixColumn(e,2).length(),this.x=t,this.y=r,this.z=e,this},setFromMatrixColumn:function(e,t){return this.fromArray(e.elements,4*t)},equals:function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z},fromArray:function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e},fromBufferAttribute:function(e,t,r){return void 0!==r&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}}),Object.assign(a.prototype,{isMatrix3:!0,set:function(e,t,r,n,i,o,a,s,c){var u=this.elements;return u[0]=e,u[1]=n,u[2]=a,u[3]=t,u[4]=i,u[5]=s,u[6]=r,u[7]=o,u[8]=c,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(e){var t=this.elements;return e=e.elements,t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],this},setFromMatrix4:function(e){return e=e.elements,this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this},applyToBufferAttribute:function(){var e=new o;return function(t){for(var r=0,n=t.count;r<n;r++)e.x=t.getX(r),e.y=t.getY(r),e.z=t.getZ(r),e.applyMatrix3(this),t.setXYZ(r,e.x,e.y,e.z);return t}}(),multiply:function(e){return this.multiplyMatrices(this,e)},premultiply:function(e){return this.multiplyMatrices(e,this)},multiplyMatrices:function(e,t){var r=e.elements,n=t.elements;t=this.elements,e=r[0];var i=r[3],o=r[6],a=r[1],s=r[4],c=r[7],u=r[2],h=r[5],r=r[8],l=n[0],p=n[3],d=n[6],f=n[1],m=n[4],v=n[7],g=n[2],y=n[5],n=n[8];return t[0]=e*l+i*f+o*g,t[3]=e*p+i*m+o*y,t[6]=e*d+i*v+o*n,t[1]=a*l+s*f+c*g,t[4]=a*p+s*m+c*y,t[7]=a*d+s*v+c*n,t[2]=u*l+h*f+r*g,t[5]=u*p+h*m+r*y,t[8]=u*d+h*v+r*n,this},multiplyScalar:function(e){var t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this},determinant:function(){var e=this.elements,t=e[0],r=e[1],n=e[2],i=e[3],o=e[4],a=e[5],s=e[6],c=e[7];return t*o*(e=e[8])-t*a*c-r*i*e+r*a*s+n*i*c-n*o*s},getInverse:function(e,t){e&&e.isMatrix4&&console.error("THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument.");r=e.elements;e=this.elements;var r,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],c=r[5],u=r[6],h=r[7],l=(r=r[8])*s-c*h,p=c*u-r*a,d=h*a-s*u,f=n*l+i*p+o*d;if(0===f){if(!0===t)throw Error("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");return console.warn("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0"),this.identity()}return t=1/f,e[0]=l*t,e[1]=(o*h-r*i)*t,e[2]=(c*i-o*s)*t,e[3]=p*t,e[4]=(r*n-o*u)*t,e[5]=(o*a-c*n)*t,e[6]=d*t,e[7]=(i*u-h*n)*t,e[8]=(s*n-i*a)*t,this},transpose:function(){var e=this.elements,t=e[1];return e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this},getNormalMatrix:function(e){return this.setFromMatrix4(e).getInverse(this).transpose()},transposeIntoArray:function(e){var t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this},setUvTransform:function(e,t,r,n,i,o,a){var s=Math.cos(i);i=Math.sin(i),this.set(r*s,r*i,-r*(s*o+i*a)+o+e,-n*i,n*s,-n*(-i*o+s*a)+a+t,0,0,1)},scale:function(e,t){var r=this.elements;return r[0]*=e,r[3]*=e,r[6]*=e,r[1]*=t,r[4]*=t,r[7]*=t,this},rotate:function(e){var t=Math.cos(e);e=Math.sin(e);var r=this.elements,n=r[0],i=r[3],o=r[6],a=r[1],s=r[4],c=r[7];return r[0]=t*n+e*a,r[3]=t*i+e*s,r[6]=t*o+e*c,r[1]=-e*n+t*a,r[4]=-e*i+t*s,r[7]=-e*o+t*c,this},translate:function(e,t){var r=this.elements;return r[0]+=e*r[2],r[3]+=e*r[5],r[6]+=e*r[8],r[1]+=t*r[2],r[4]+=t*r[5],r[7]+=t*r[8],this},equals:function(e){var t=this.elements;e=e.elements;for(var r=0;9>r;r++)if(t[r]!==e[r])return!1;return!0},fromArray:function(e,t){void 0===t&&(t=0);for(var r=0;9>r;r++)this.elements[r]=e[r+t];return this},toArray:function(e,t){void 0===e&&(e=[]),void 0===t&&(t=0);var r=this.elements;return e[t]=r[0],e[t+1]=r[1],e[t+2]=r[2],e[t+3]=r[3],e[t+4]=r[4],e[t+5]=r[5],e[t+6]=r[6],e[t+7]=r[7],e[t+8]=r[8],e}});var ui=0;s.DEFAULT_IMAGE=void 0,s.DEFAULT_MAPPING=300,Object.defineProperty(s.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}}),Object.assign(s.prototype,t.prototype,{constructor:s,isTexture:!0,clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.name=e.name,this.image=e.image,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.encoding=e.encoding,this},toJSON:function(e){var t=void 0===e||"string"==typeof e;if(!t&&void 0!==e.textures[this.uuid])return e.textures[this.uuid];var r={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==this.image){var n=this.image;if(void 0===n.uuid&&(n.uuid=ci.generateUUID()),!t&&void 0===e.images[n.uuid]){var i=e.images,o=n.uuid,a=n.uuid;if(n instanceof HTMLCanvasElement)var s=n;else{(s=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")).width=n.width,s.height=n.height;var c=s.getContext("2d");n instanceof ImageData?c.putImageData(n,0,0):c.drawImage(n,0,0,n.width,n.height)}s=2048<s.width||2048<s.height?s.toDataURL("image/jpeg",.6):s.toDataURL("image/png"),i[o]={uuid:a,url:s}}r.image=n.uuid}return t||(e.textures[this.uuid]=r),r},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(e){if(300===this.mapping){if(e.applyMatrix3(this.matrix),0>e.x||1<e.x)switch(this.wrapS){case 1e3:e.x-=Math.floor(e.x);break;case 1001:e.x=0>e.x?0:1;break;case 1002:e.x=1===Math.abs(Math.floor(e.x)%2)?Math.ceil(e.x)-e.x:e.x-Math.floor(e.x)}if(0>e.y||1<e.y)switch(this.wrapT){case 1e3:e.y-=Math.floor(e.y);break;case 1001:e.y=0>e.y?0:1;break;case 1002:e.y=1===Math.abs(Math.floor(e.y)%2)?Math.ceil(e.y)-e.y:e.y-Math.floor(e.y)}this.flipY&&(e.y=1-e.y)}}}),Object.assign(c.prototype,{isVector4:!0,set:function(e,t,r,n){return this.x=e,this.y=t,this.z=r,this.w=n,this},setScalar:function(e){return this.w=this.z=this.y=this.x=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setZ:function(e){return this.z=e,this},setW:function(e){return this.w=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw Error("index is out of range: "+e)}return this},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+e)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this},add:function(e,t){return void 0!==t?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this)},addScalar:function(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this},sub:function(e,t){return void 0!==t?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this)},subScalar:function(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this},multiplyScalar:function(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this},applyMatrix4:function(e){var t=this.x,r=this.y,n=this.z,i=this.w;return e=e.elements,this.x=e[0]*t+e[4]*r+e[8]*n+e[12]*i,this.y=e[1]*t+e[5]*r+e[9]*n+e[13]*i,this.z=e[2]*t+e[6]*r+e[10]*n+e[14]*i,this.w=e[3]*t+e[7]*r+e[11]*n+e[15]*i,this},divideScalar:function(e){return this.multiplyScalar(1/e)},setAxisAngleFromQuaternion:function(e){this.w=2*Math.acos(e.w);var t=Math.sqrt(1-e.w*e.w);return 1e-4>t?(this.x=1,this.z=this.y=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this},setAxisAngleFromRotationMatrix:function(e){var t=(e=e.elements)[0],r=e[4],n=e[8],i=e[1],o=e[5],a=e[9],s=e[2],c=e[6],u=e[10];return.01>Math.abs(r-i)&&.01>Math.abs(n-s)&&.01>Math.abs(a-c)?.1>Math.abs(r+i)&&.1>Math.abs(n+s)&&.1>Math.abs(a+c)&&.1>Math.abs(t+o+u-3)?(this.set(1,0,0,0),this):(e=Math.PI,t=(t+1)/2,o=(o+1)/2,u=(u+1)/2,r=(r+i)/4,n=(n+s)/4,a=(a+c)/4,t>o&&t>u?.01>t?(c=0,r=s=.707106781):(c=Math.sqrt(t),s=r/c,r=n/c):o>u?.01>o?(c=.707106781,s=0,r=.707106781):(s=Math.sqrt(o),c=r/s,r=a/s):.01>u?(s=c=.707106781,r=0):(r=Math.sqrt(u),c=n/r,s=a/r),this.set(c,s,r,e),this):(e=Math.sqrt((c-a)*(c-a)+(n-s)*(n-s)+(i-r)*(i-r)),.001>Math.abs(e)&&(e=1),this.x=(c-a)/e,this.y=(n-s)/e,this.z=(i-r)/e,this.w=Math.acos((t+o+u-1)/2),this)},min:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this},max:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this},clamp:function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this},clampScalar:function(){var e,t;return function(r,n){return void 0===e&&(e=new c,t=new c),e.set(r,r,r,r),t.set(n,n,n,n),this.clamp(e,t)}}(),clampLength:function(e,t){var r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(e,Math.min(t,r)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z),this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(e){return this.normalize().multiplyScalar(e)},lerp:function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this},lerpVectors:function(e,t,r){return this.subVectors(t,e).multiplyScalar(r).add(e)},equals:function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w},fromArray:function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e},fromBufferAttribute:function(e,t,r){return void 0!==r&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}}),Object.assign(u.prototype,t.prototype,{isWebGLRenderTarget:!0,setSize:function(e,t){this.width===e&&this.height===t||(this.width=e,this.height=t,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.width=e.width,this.height=e.height,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.depthTexture=e.depthTexture,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),(h.prototype=Object.create(u.prototype)).constructor=h,h.prototype.isWebGLRenderTargetCube=!0,(l.prototype=Object.create(s.prototype)).constructor=l,l.prototype.isDataTexture=!0,(p.prototype=Object.create(s.prototype)).constructor=p,p.prototype.isCubeTexture=!0,Object.defineProperty(p.prototype,"images",{get:function(){return this.image},set:function(e){this.image=e}});var hi=new s,li=new p,pi=[],di=[],fi=new Float32Array(16),mi=new Float32Array(9);U.prototype.setValue=function(e,t){for(var r=this.seq,n=0,i=r.length;n!==i;++n){var o=r[n];o.setValue(e,t[o.id])}};var vi=/([\w\d_]+)(\])?(\[|\.)?/g;$.prototype.setValue=function(e,t,r){void 0!==(t=this.map[t])&&t.setValue(e,r,this.renderer)},$.prototype.setOptional=function(e,t,r){void 0!==(t=t[r])&&this.setValue(e,r,t)},$.upload=function(e,t,r,n){for(var i=0,o=t.length;i!==o;++i){var a=t[i],s=r[a.id];!1!==s.needsUpdate&&a.setValue(e,s.value,n)}},$.seqWithValue=function(e,t){for(var r=[],n=0,i=e.length;n!==i;++n){var o=e[n];o.id in t&&r.push(o)}return r};var gi={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Object.assign(z.prototype,{isColor:!0,r:1,g:1,b:1,set:function(e){return e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e),this},setScalar:function(e){return this.b=this.g=this.r=e,this},setHex:function(e){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,this},setRGB:function(e,t,r){return this.r=e,this.g=t,this.b=r,this},setHSL:function(){function e(e,t,r){return 0>r&&(r+=1),1<r&&--r,r<1/6?e+6*(t-e)*r:.5>r?t:r<2/3?e+6*(t-e)*(2/3-r):e}return function(t,r,n){return t=ci.euclideanModulo(t,1),r=ci.clamp(r,0,1),n=ci.clamp(n,0,1),0===r?this.r=this.g=this.b=n:(r=.5>=n?n*(1+r):n+r-n*r,n=2*n-r,this.r=e(n,r,t+1/3),this.g=e(n,r,t),this.b=e(n,r,t-1/3)),this}}(),setStyle:function(e){function t(t){void 0!==t&&1>parseFloat(t)&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}var r;if(r=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(e)){n=r[2];switch(r[1]){case"rgb":case"rgba":if(r=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(n))return this.r=Math.min(255,parseInt(r[1],10))/255,this.g=Math.min(255,parseInt(r[2],10))/255,this.b=Math.min(255,parseInt(r[3],10))/255,t(r[5]),this;if(r=/^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(n))return this.r=Math.min(100,parseInt(r[1],10))/100,this.g=Math.min(100,parseInt(r[2],10))/100,this.b=Math.min(100,parseInt(r[3],10))/100,t(r[5]),this;break;case"hsl":case"hsla":if(r=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(n)){var n=parseFloat(r[1])/360,i=parseInt(r[2],10)/100,o=parseInt(r[3],10)/100;return t(r[5]),this.setHSL(n,i,o)}}}else if(r=/^\#([A-Fa-f0-9]+)$/.exec(e)){if(r=r[1],3===(n=r.length))return this.r=parseInt(r.charAt(0)+r.charAt(0),16)/255,this.g=parseInt(r.charAt(1)+r.charAt(1),16)/255,this.b=parseInt(r.charAt(2)+r.charAt(2),16)/255,this;if(6===n)return this.r=parseInt(r.charAt(0)+r.charAt(1),16)/255,this.g=parseInt(r.charAt(2)+r.charAt(3),16)/255,this.b=parseInt(r.charAt(4)+r.charAt(5),16)/255,this}return e&&0<e.length&&(void 0!==(r=gi[e])?this.setHex(r):console.warn("THREE.Color: Unknown color "+e)),this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(e){return this.r=e.r,this.g=e.g,this.b=e.b,this},copyGammaToLinear:function(e,t){return void 0===t&&(t=2),this.r=Math.pow(e.r,t),this.g=Math.pow(e.g,t),this.b=Math.pow(e.b,t),this},copyLinearToGamma:function(e,t){return void 0===t&&(t=2),t=0<t?1/t:1,this.r=Math.pow(e.r,t),this.g=Math.pow(e.g,t),this.b=Math.pow(e.b,t),this},convertGammaToLinear:function(){var e=this.r,t=this.g,r=this.b;return this.r=e*e,this.g=t*t,this.b=r*r,this},convertLinearToGamma:function(){return this.r=Math.sqrt(this.r),this.g=Math.sqrt(this.g),this.b=Math.sqrt(this.b),this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(e){e=e||{h:0,s:0,l:0};var t,r=this.r,n=this.g,i=this.b,o=Math.max(r,n,i),a=((c=Math.min(r,n,i))+o)/2;if(c===o)c=t=0;else{var s=o-c,c=.5>=a?s/(o+c):s/(2-o-c);switch(o){case r:t=(n-i)/s+(n<i?6:0);break;case n:t=(i-r)/s+2;break;case i:t=(r-n)/s+4}t/=6}return e.h=t,e.s=c,e.l=a,e},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(e,t,r){var n=this.getHSL();return n.h+=e,n.s+=t,n.l+=r,this.setHSL(n.h,n.s,n.l),this},add:function(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this},addColors:function(e,t){return this.r=e.r+t.r,this.g=e.g+t.g,this.b=e.b+t.b,this},addScalar:function(e){return this.r+=e,this.g+=e,this.b+=e,this},sub:function(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this},multiply:function(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this},multiplyScalar:function(e){return this.r*=e,this.g*=e,this.b*=e,this},lerp:function(e,t){return this.r+=(e.r-this.r)*t,this.g+=(e.g-this.g)*t,this.b+=(e.b-this.b)*t,this},equals:function(e){return e.r===this.r&&e.g===this.g&&e.b===this.b},fromArray:function(e,t){return void 0===t&&(t=0),this.r=e[t],this.g=e[t+1],this.b=e[t+2],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e},toJSON:function(){return this.getHex()}});var yi={common:{diffuse:{value:new z(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new a},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new r(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new z(16777215)}},lights:{ambientLightColor:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}}},points:{diffuse:{value:new z(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},uvTransform:{value:new a}}},bi={merge:function(e){for(var t={},r=0;r<e.length;r++){var n,i=this.clone(e[r]);for(n in i)t[n]=i[n]}return t},clone:function(e){var t,r={};for(t in e){r[t]={};for(var n in e[t]){var i=e[t][n];i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture)?r[t][n]=i.clone():Array.isArray(i)?r[t][n]=i.slice():r[t][n]=i}}return r}},_i={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif\n",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif\n",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif\n",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif\n",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"\nvec3 transformed = vec3( position );\n",beginnormal_vertex:"\nvec3 objectNormal = vec3( normal );\n",bsdfs:"float punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\tif( decayExponent > 0.0 ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tfloat maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\treturn distanceFalloff * maxDistanceCutoffFactor;\n#else\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n#endif\n\t}\n\treturn 1.0;\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE  = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS  = 0.5 / LUT_SIZE;\n\tfloat theta = acos( dot( N, V ) );\n\tvec2 uv = vec2(\n\t\tsqrt( saturate( roughness ) ),\n\t\tsaturate( theta / ( 0.5 * PI ) ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.86267 + (0.49788 + 0.01436 * y ) * y;\n\tfloat b = 3.45068 + (4.18814 + y) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = (x > 0.0) ? v : 0.5 * inversesqrt( 1.0 - x * x ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tvec3 result = vec3( LTC_ClippedSphereFormFactor( vectorFormFactor ) );\n\treturn result;\n}\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;\n\treturn specularColor * AB.x + AB.y;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif\n",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; ++ i ) {\n\t\tvec4 plane = clippingPlanes[ i ];\n\t\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t\t\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; ++ i ) {\n\t\t\tvec4 plane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\tif ( clipped ) discard;\n\t\n\t#endif\n#endif\n",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\n\t\tvarying vec3 vViewPosition;\n\t#endif\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif\n",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvarying vec3 vViewPosition;\n#endif\n",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n",color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif\n",color_pars_vertex:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif",common:"#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\n",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection = abs(direction);\n\tint face = -1;\n\tif( absDirection.x > absDirection.z ) {\n\t\tif(absDirection.x > absDirection.y )\n\t\t\tface = direction.x > 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z > absDirection.y )\n\t\t\tface = direction.z > 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1  (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness = dFdx(roughness);\n\tfloat dyRoughness = dFdy(roughness);\n\tvec3 dx = dFdx( vec * scale * dxRoughness );\n\tvec3 dy = dFdy( vec * scale * dyRoughness );\n\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\n\td = clamp(d, 1.0, cubeUV_rangeClamp);\n\tfloat mipLevel = 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a = 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\n\tfloat powScale = exp2_packed.x * exp2_packed.y;\n\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes = mipLevel == 0.0;\n\tscale =  bRes && (scale < a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face = getFaceFromDirection(direction);\n\tfloat rcpPowScale = 1.0 / powScale;\n\tif( face == 0) {\n\t\tr = vec3(direction.x, -direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 1) {\n\t\tr = vec3(direction.y, direction.x, direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 2) {\n\t\tr = vec3(direction.z, direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 3) {\n\t\tr = vec3(direction.x, direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face == 4) {\n\t\tr = vec3(direction.y, direction.x, -direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr = vec3(direction.z, -direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr = normalize(r);\n\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base = offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV(vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal = roughness* cubeUV_maxLods3;\n\tfloat r1 = floor(roughnessVal);\n\tfloat r2 = r1 + 1.0;\n\tfloat t = fract(roughnessVal);\n\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s = mipInfo.y;\n\tfloat level0 = mipInfo.x;\n\tfloat level1 = level0 + 1.0;\n\tlevel1 = level1 > 5.0 ? 5.0 : level1;\n\tlevel0 += min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result = mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif\n",defaultnormal_vertex:"vec3 transformedNormal = normalMatrix * objectNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif\n",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif\n",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif\n",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif\n",encodings_fragment:"  gl_FragColor = linearToOutputTexel( gl_FragColor );\n",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.xyz * value.w * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\n\tfloat M      = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM            = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\n\tfloat D      = max( maxRange / maxRGB, 1.0 );\n\tD            = min( floor( D ) / 255.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value )  {\n\tvec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\n\tXp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract(Le);\n\tvResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\n\treturn vec4( max(vRGB, 0.0), 1.0 );\n}\n",envmap_fragment:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec = normalize( reflectVec );\n\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\tenvColor = envMapTexelToLinear( envColor );\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif\n",envmap_pars_fragment:"#if defined( USE_ENVMAP ) || defined( PHYSICAL )\n\tuniform float reflectivity;\n\tuniform float envMapIntensity;\n#endif\n#ifdef USE_ENVMAP\n\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\n\t\tvarying vec3 vWorldPosition;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif\n",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif\n",envmap_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif\n",fog_vertex:"\n#ifdef USE_FOG\nfogDepth = -mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n  varying float fogDepth;\n#endif\n",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif\n",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif\n",gradientmap_pars_fragment:"#ifdef TOON\n\tuniform sampler2D gradientMap;\n\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\t\tfloat dotNL = dot( normal, lightDirection );\n\t\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t\t#ifdef USE_GRADIENTMAP\n\t\t\treturn texture2D( gradientMap, coord ).rgb;\n\t\t#else\n\t\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t\t#endif\n\t}\n#endif\n",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n#endif\n",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_DIR_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n#endif\n",lights_pars:"uniform vec3 ambientLightColor;\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t\tfloat shadowCameraNear;\n\t\tfloat shadowCameraFar;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight  ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltcMat;\tuniform sampler2D ltcMag;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif\n#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( queryVec, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\tvec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif\n",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;\n",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifdef TOON\n\t\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#else\n\t\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\t\tvec3 irradiance = dotNL * directLight.color;\n\t#endif\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)\n",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\n#ifdef STANDARD\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.clearCoat = saturate( clearCoat );\tmaterial.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );\n#endif\n",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n\t#ifndef STANDARD\n\t\tfloat clearCoat;\n\t\tfloat clearCoatRoughness;\n\t#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos - halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos + halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos + halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos - halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tfloat norm = texture2D( ltcMag, uv ).a;\n\t\tvec4 t = texture2D( ltcMat, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3(   1,   0, t.y ),\n\t\t\tvec3(   0, t.z,   0 ),\n\t\t\tvec3( t.w,   0, t.x )\n\t\t);\n\t\treflectedLight.directSpecular += lightColor * material.specularColor * norm * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifndef STANDARD\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\n\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\t#ifndef STANDARD\n\t\treflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifndef STANDARD\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\tfloat dotNL = dotNV;\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\n\t#ifndef STANDARD\n\t\treflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\n#define Material_BlinnShininessExponent( material )   GGXRoughnessToBlinnExponent( material.specularRoughness )\n#define Material_ClearCoat_BlinnShininessExponent( material )   GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}\n",lights_template:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize( vViewPosition );\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#ifdef USE_LIGHTMAP\n\t\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tirradiance += getLightProbeIndirectIrradiance( geometry, 8 );\n\t#endif\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tvec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\n\t#ifndef STANDARD\n\t\tvec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\n\t#else\n\t\tvec3 clearCoatRadiance = vec3( 0.0 );\n\t#endif\n\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\n#endif\n",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#ifdef USE_LOGDEPTHBUF\n\tuniform float logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n#endif\n",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n\tuniform float logDepthBufFC;\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\tgl_Position.z *= gl_Position.w;\n\t#endif\n#endif\n",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif\n",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n",map_particle_fragment:"#ifdef USE_MAP\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n",map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform mat3 uvTransform;\n\tuniform sampler2D map;\n#endif\n",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif\n",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n#endif\n",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\t#endif\n#endif\n",normal_fragment:"#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n#endif\n#ifdef USE_NORMALMAP\n\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif\n",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\n\t\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\n\t\tvec3 N = normalize( surf_norm );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = normalScale * mapN.xy;\n\t\tmat3 tsn = mat3( S, T, N );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif\n",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256.,  256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}\n",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif\n",project_vertex:"vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\ngl_Position = projectionMatrix * mvPosition;\n",dithering_fragment:"#if defined( DITHERING )\n  gl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif\n",dithering_pars_fragment:"#if defined( DITHERING )\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif\n",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif\n",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\n\t\tconst vec2 offset = vec2( 0.0, 1.0 );\n\t\tvec2 texelSize = vec2( 1.0 ) / size;\n\t\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\n\t\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\n\t\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\n\t\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\n\t\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\n\t\tvec2 f = fract( uv * size + 0.5 );\n\t\tfloat a = mix( lb, lt, f.y );\n\t\tfloat b = mix( rb, rt, f.y );\n\t\tfloat c = mix( a, b, f.x );\n\t\treturn c;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif\n",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n#endif\n",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n#endif\n",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tDirectionalLight directionalLight;\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tSpotLight spotLight;\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tPointLight pointLight;\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#endif\n\t#endif\n\treturn shadow;\n}\n",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif\n",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif\n",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix  = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n#endif\n",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n  gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif\n",tonemapping_pars_fragment:"#ifndef saturate\n\t#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\n",uv_pars_fragment:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\n",uv_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = uv2;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n#endif\n",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldPosition;\nvoid main() {\n\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\n\tgl_FragColor.a *= opacity;\n}\n",cube_vert:"varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}\n",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n}\n",depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n}\n",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}\n",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}\n",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}\n",equirect_vert:"varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}\n",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}\n",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <bsdfs>\n#include <lights_pars>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_template>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",meshphysical_frag:"#define PHYSICAL\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifndef STANDARD\n\tuniform float clearCoat;\n\tuniform float clearCoatRoughness;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <lights_pars>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_template>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",meshphysical_vert:"#define PHYSICAL\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\nvoid main() {\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}\n",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}\n",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#ifdef USE_SIZEATTENUATION\n\t\tgl_PointSize = size * ( scale / - mvPosition.z );\n\t#else\n\t\tgl_PointSize = size;\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <fog_fragment>\n}\n",shadow_vert:"#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n"},xi={basic:{uniforms:bi.merge([yi.common,yi.specularmap,yi.envmap,yi.aomap,yi.lightmap,yi.fog]),vertexShader:_i.meshbasic_vert,fragmentShader:_i.meshbasic_frag},lambert:{uniforms:bi.merge([yi.common,yi.specularmap,yi.envmap,yi.aomap,yi.lightmap,yi.emissivemap,yi.fog,yi.lights,{emissive:{value:new z(0)}}]),vertexShader:_i.meshlambert_vert,fragmentShader:_i.meshlambert_frag},phong:{uniforms:bi.merge([yi.common,yi.specularmap,yi.envmap,yi.aomap,yi.lightmap,yi.emissivemap,yi.bumpmap,yi.normalmap,yi.displacementmap,yi.gradientmap,yi.fog,yi.lights,{emissive:{value:new z(0)},specular:{value:new z(1118481)},shininess:{value:30}}]),vertexShader:_i.meshphong_vert,fragmentShader:_i.meshphong_frag},standard:{uniforms:bi.merge([yi.common,yi.envmap,yi.aomap,yi.lightmap,yi.emissivemap,yi.bumpmap,yi.normalmap,yi.displacementmap,yi.roughnessmap,yi.metalnessmap,yi.fog,yi.lights,{emissive:{value:new z(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:_i.meshphysical_vert,fragmentShader:_i.meshphysical_frag},points:{uniforms:bi.merge([yi.points,yi.fog]),vertexShader:_i.points_vert,fragmentShader:_i.points_frag},dashed:{uniforms:bi.merge([yi.common,yi.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:_i.linedashed_vert,fragmentShader:_i.linedashed_frag},depth:{uniforms:bi.merge([yi.common,yi.displacementmap]),vertexShader:_i.depth_vert,fragmentShader:_i.depth_frag},normal:{uniforms:bi.merge([yi.common,yi.bumpmap,yi.normalmap,yi.displacementmap,{opacity:{value:1}}]),vertexShader:_i.normal_vert,fragmentShader:_i.normal_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:_i.cube_vert,fragmentShader:_i.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:_i.equirect_vert,fragmentShader:_i.equirect_frag},distanceRGBA:{uniforms:bi.merge([yi.common,yi.displacementmap,{referencePosition:{value:new o},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:_i.distanceRGBA_vert,fragmentShader:_i.distanceRGBA_frag},shadow:{uniforms:bi.merge([yi.lights,yi.fog,{color:{value:new z(0)},opacity:{value:1}}]),vertexShader:_i.shadow_vert,fragmentShader:_i.shadow_frag}};xi.physical={uniforms:bi.merge([xi.standard.uniforms,{clearCoat:{value:0},clearCoatRoughness:{value:0}}]),vertexShader:_i.meshphysical_vert,fragmentShader:_i.meshphysical_frag},Object.assign(G.prototype,{set:function(e,t){return this.min.copy(e),this.max.copy(t),this},setFromPoints:function(e){this.makeEmpty();for(var t=0,r=e.length;t<r;t++)this.expandByPoint(e[t]);return this},setFromCenterAndSize:function(){var e=new r;return function(t,r){return r=e.copy(r).multiplyScalar(.5),this.min.copy(t).sub(r),this.max.copy(t).add(r),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.min.copy(e.min),this.max.copy(e.max),this},makeEmpty:function(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y},getCenter:function(e){return e=e||new r,this.isEmpty()?e.set(0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(e){return e=e||new r,this.isEmpty()?e.set(0,0):e.subVectors(this.max,this.min)},expandByPoint:function(e){return this.min.min(e),this.max.max(e),this},expandByVector:function(e){return this.min.sub(e),this.max.add(e),this},expandByScalar:function(e){return this.min.addScalar(-e),this.max.addScalar(e),this},containsPoint:function(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y)},containsBox:function(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y},getParameter:function(e,t){return(t||new r).set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y)},clampPoint:function(e,t){return(t||new r).copy(e).clamp(this.min,this.max)},distanceToPoint:function(){var e=new r;return function(t){return e.copy(t).clamp(this.min,this.max).sub(t).length()}}(),intersect:function(e){return this.min.max(e.min),this.max.min(e.max),this},union:function(e){return this.min.min(e.min),this.max.max(e.max),this},translate:function(e){return this.min.add(e),this.max.add(e),this},equals:function(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}),(H.prototype=Object.create(s.prototype)).constructor=H;var wi=0;Object.assign(W.prototype,t.prototype,{isMaterial:!0,onBeforeCompile:function(){},setValues:function(e){if(void 0!==e)for(var t in e){var r=e[t];if(void 0===r)console.warn("THREE.Material: '"+t+"' parameter is undefined.");else if("shading"===t)console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===r;else{var n=this[t];void 0===n?console.warn("THREE."+this.type+": '"+t+"' is not a property of this material."):n&&n.isColor?n.set(r):n&&n.isVector3&&r&&r.isVector3?n.copy(r):this[t]="overdraw"===t?Number(r):r}}},toJSON:function(e){function t(e){var t,r=[];for(t in e){var n=e[t];delete n.metadata,r.push(n)}return r}var r=void 0===e||"string"==typeof e;r&&(e={textures:{},images:{}});var n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};return n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearCoat&&(n.clearCoat=this.clearCoat),void 0!==this.clearCoatRoughness&&(n.clearCoatRoughness=this.clearCoatRoughness),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,n.reflectivity=this.reflectivity),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.size&&(n.size=this.size),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),!0===this.flatShading&&(n.flatShading=this.flatShading),0!==this.side&&(n.side=this.side),0!==this.vertexColors&&(n.vertexColors=this.vertexColors),1>this.opacity&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,0!==this.rotation&&(n.rotation=this.rotation),1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),0<this.alphaTest&&(n.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),1<this.wireframeLinewidth&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.skinning&&(n.skinning=!0),!1===this.visible&&(n.visible=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),r&&(r=t(e.textures),e=t(e.images),0<r.length&&(n.textures=r),0<e.length&&(n.images=e)),n},clone:function(){return(new this.constructor).copy(this)},copy:function(e){this.name=e.name,this.fog=e.fog,this.lights=e.lights,this.blending=e.blending,this.side=e.side,this.flatShading=e.flatShading,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.premultipliedAlpha=e.premultipliedAlpha,this.overdraw=e.overdraw,this.visible=e.visible,this.userData=JSON.parse(JSON.stringify(e.userData)),this.clipShadows=e.clipShadows,this.clipIntersection=e.clipIntersection;r=null;if(null!==(e=e.clippingPlanes))for(var t=e.length,r=Array(t),n=0;n!==t;++n)r[n]=e[n].clone();return this.clippingPlanes=r,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),(X.prototype=Object.create(W.prototype)).constructor=X,X.prototype.isMeshDepthMaterial=!0,X.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.depthPacking=e.depthPacking,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this},(Y.prototype=Object.create(W.prototype)).constructor=Y,Y.prototype.isMeshDistanceMaterial=!0,Y.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.referencePosition.copy(e.referencePosition),this.nearDistance=e.nearDistance,this.farDistance=e.farDistance,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this},Object.assign(K.prototype,{isBox3:!0,set:function(e,t){return this.min.copy(e),this.max.copy(t),this},setFromArray:function(e){for(var t=1/0,r=1/0,n=1/0,i=-1/0,o=-1/0,a=-1/0,s=0,c=e.length;s<c;s+=3){var u=e[s],h=e[s+1],l=e[s+2];u<t&&(t=u),h<r&&(r=h),l<n&&(n=l),u>i&&(i=u),h>o&&(o=h),l>a&&(a=l)}return this.min.set(t,r,n),this.max.set(i,o,a),this},setFromBufferAttribute:function(e){for(var t=1/0,r=1/0,n=1/0,i=-1/0,o=-1/0,a=-1/0,s=0,c=e.count;s<c;s++){var u=e.getX(s),h=e.getY(s),l=e.getZ(s);u<t&&(t=u),h<r&&(r=h),l<n&&(n=l),u>i&&(i=u),h>o&&(o=h),l>a&&(a=l)}return this.min.set(t,r,n),this.max.set(i,o,a),this},setFromPoints:function(e){this.makeEmpty();for(var t=0,r=e.length;t<r;t++)this.expandByPoint(e[t]);return this},setFromCenterAndSize:function(){var e=new o;return function(t,r){return r=e.copy(r).multiplyScalar(.5),this.min.copy(t).sub(r),this.max.copy(t).add(r),this}}(),setFromObject:function(e){return this.makeEmpty(),this.expandByObject(e)},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.min.copy(e.min),this.max.copy(e.max),this},makeEmpty:function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(e){return e=e||new o,this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(e){return e=e||new o,this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)},expandByPoint:function(e){return this.min.min(e),this.max.max(e),this},expandByVector:function(e){return this.min.sub(e),this.max.add(e),this},expandByScalar:function(e){return this.min.addScalar(-e),this.max.addScalar(e),this},expandByObject:function(){function e(e){var o=e.geometry;if(void 0!==o)if(o.isGeometry)for(o=o.vertices,r=0,n=o.length;r<n;r++)i.copy(o[r]),i.applyMatrix4(e.matrixWorld),t.expandByPoint(i);else if(o.isBufferGeometry&&void 0!==(o=o.attributes.position))for(r=0,n=o.count;r<n;r++)i.fromBufferAttribute(o,r).applyMatrix4(e.matrixWorld),t.expandByPoint(i)}var t,r,n,i=new o;return function(r){return t=this,r.updateMatrixWorld(!0),r.traverse(e),this}}(),containsPoint:function(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y||e.z<this.min.z||e.z>this.max.z)},containsBox:function(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z},getParameter:function(e,t){return(t||new o).set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y||e.max.z<this.min.z||e.min.z>this.max.z)},intersectsSphere:function(){var e=new o;return function(t){return this.clampPoint(t.center,e),e.distanceToSquared(t.center)<=t.radius*t.radius}}(),intersectsPlane:function(e){if(0<e.normal.x)var t=e.normal.x*this.min.x,r=e.normal.x*this.max.x;else t=e.normal.x*this.max.x,r=e.normal.x*this.min.x;return 0<e.normal.y?(t+=e.normal.y*this.min.y,r+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,r+=e.normal.y*this.min.y),0<e.normal.z?(t+=e.normal.z*this.min.z,r+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,r+=e.normal.z*this.min.z),t<=e.constant&&r>=e.constant},clampPoint:function(e,t){return(t||new o).copy(e).clamp(this.min,this.max)},distanceToPoint:function(){var e=new o;return function(t){return e.copy(t).clamp(this.min,this.max).sub(t).length()}}(),getBoundingSphere:function(){var e=new o;return function(t){return t=t||new Z,this.getCenter(t.center),t.radius=.5*this.getSize(e).length(),t}}(),intersect:function(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this},union:function(e){return this.min.min(e.min),this.max.max(e.max),this},applyMatrix4:function(){var e=[new o,new o,new o,new o,new o,new o,new o,new o];return function(t){return this.isEmpty()?this:(e[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),e[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),e[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),e[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),e[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),e[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),e[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),e[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(e),this)}}(),translate:function(e){return this.min.add(e),this.max.add(e),this},equals:function(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}),Object.assign(Z.prototype,{set:function(e,t){return this.center.copy(e),this.radius=t,this},setFromPoints:function(){var e=new K;return function(t,r){var n=this.center;void 0!==r?n.copy(r):e.setFromPoints(t).getCenter(n);for(var i=r=0,o=t.length;i<o;i++)r=Math.max(r,n.distanceToSquared(t[i]));return this.radius=Math.sqrt(r),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.center.copy(e.center),this.radius=e.radius,this},empty:function(){return 0>=this.radius},containsPoint:function(e){return e.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(e){return e.distanceTo(this.center)-this.radius},intersectsSphere:function(e){var t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t},intersectsBox:function(e){return e.intersectsSphere(this)},intersectsPlane:function(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius},clampPoint:function(e,t){var r=this.center.distanceToSquared(e);return(t=t||new o).copy(e),r>this.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t},getBoundingBox:function(e){return(e=e||new K).set(this.center,this.center),e.expandByScalar(this.radius),e},applyMatrix4:function(e){return this.center.applyMatrix4(e),this.radius*=e.getMaxScaleOnAxis(),this},translate:function(e){return this.center.add(e),this},equals:function(e){return e.center.equals(this.center)&&e.radius===this.radius}}),Object.assign(J.prototype,{set:function(e,t){return this.normal.copy(e),this.constant=t,this},setComponents:function(e,t,r,n){return this.normal.set(e,t,r),this.constant=n,this},setFromNormalAndCoplanarPoint:function(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this},setFromCoplanarPoints:function(){var e=new o,t=new o;return function(r,n,i){return n=e.subVectors(i,n).cross(t.subVectors(r,n)).normalize(),this.setFromNormalAndCoplanarPoint(n,r),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.normal.copy(e.normal),this.constant=e.constant,this},normalize:function(){var e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this},negate:function(){return this.constant*=-1,this.normal.negate(),this},distanceToPoint:function(e){return this.normal.dot(e)+this.constant},distanceToSphere:function(e){return this.distanceToPoint(e.center)-e.radius},projectPoint:function(e,t){return(t||new o).copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)},intersectLine:function(){var e=new o;return function(t,r){r=r||new o;var n=t.delta(e),i=this.normal.dot(n);if(0===i){if(0===this.distanceToPoint(t.start))return r.copy(t.start)}else if(!(0>(i=-(t.start.dot(this.normal)+this.constant)/i)||1<i))return r.copy(n).multiplyScalar(i).add(t.start)}}(),intersectsLine:function(e){var t=this.distanceToPoint(e.start);return e=this.distanceToPoint(e.end),0>t&&0<e||0>e&&0<t},intersectsBox:function(e){return e.intersectsPlane(this)},intersectsSphere:function(e){return e.intersectsPlane(this)},coplanarPoint:function(e){return(e||new o).copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var e=new o,t=new a;return function(r,n){return n=n||t.getNormalMatrix(r),r=this.coplanarPoint(e).applyMatrix4(r),n=this.normal.applyMatrix3(n).normalize(),this.constant=-r.dot(n),this}}(),translate:function(e){return this.constant-=e.dot(this.normal),this},equals:function(e){return e.normal.equals(this.normal)&&e.constant===this.constant}}),Object.assign(Q.prototype,{set:function(e,t,r,n,i,o){var a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(r),a[3].copy(n),a[4].copy(i),a[5].copy(o),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){for(var t=this.planes,r=0;6>r;r++)t[r].copy(e.planes[r]);return this},setFromMatrix:function(e){var t=this.planes;e=(v=e.elements)[0];var r=v[1],n=v[2],i=v[3],o=v[4],a=v[5],s=v[6],c=v[7],u=v[8],h=v[9],l=v[10],p=v[11],d=v[12],f=v[13],m=v[14],v=v[15];return t[0].setComponents(i-e,c-o,p-u,v-d).normalize(),t[1].setComponents(i+e,c+o,p+u,v+d).normalize(),t[2].setComponents(i+r,c+a,p+h,v+f).normalize(),t[3].setComponents(i-r,c-a,p-h,v-f).normalize(),t[4].setComponents(i-n,c-s,p-l,v-m).normalize(),t[5].setComponents(i+n,c+s,p+l,v+m).normalize(),this},intersectsObject:function(){var e=new Z;return function(t){var r=t.geometry;return null===r.boundingSphere&&r.computeBoundingSphere(),e.copy(r.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(e)}}(),intersectsSprite:function(){var e=new Z;return function(t){return e.center.set(0,0,0),e.radius=.7071067811865476,e.applyMatrix4(t.matrixWorld),this.intersectsSphere(e)}}(),intersectsSphere:function(e){var t=this.planes,r=e.center;e=-e.radius;for(var n=0;6>n;n++)if(t[n].distanceToPoint(r)<e)return!1;return!0},intersectsBox:function(){var e=new o,t=new o;return function(r){for(var n=this.planes,i=0;6>i;i++){a=n[i];e.x=0<a.normal.x?r.min.x:r.max.x,t.x=0<a.normal.x?r.max.x:r.min.x,e.y=0<a.normal.y?r.min.y:r.max.y,t.y=0<a.normal.y?r.max.y:r.min.y,e.z=0<a.normal.z?r.min.z:r.max.z,t.z=0<a.normal.z?r.max.z:r.min.z;var o=a.distanceToPoint(e),a=a.distanceToPoint(t);if(0>o&&0>a)return!1}return!0}}(),containsPoint:function(e){for(var t=this.planes,r=0;6>r;r++)if(0>t[r].distanceToPoint(e))return!1;return!0}}),te.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" "),te.DefaultOrder="XYZ",Object.defineProperties(te.prototype,{x:{get:function(){return this._x},set:function(e){this._x=e,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(e){this._y=e,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(e){this._z=e,this.onChangeCallback()}},order:{get:function(){return this._order},set:function(e){this._order=e,this.onChangeCallback()}}}),Object.assign(te.prototype,{isEuler:!0,set:function(e,t,r,n){return this._x=e,this._y=t,this._z=r,this._order=n||this._order,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this.onChangeCallback(),this},setFromRotationMatrix:function(e,t,r){var n=ci.clamp;e=(l=e.elements)[0];var i=l[4],o=l[8],a=l[1],s=l[5],c=l[9],u=l[2],h=l[6],l=l[10];return"XYZ"===(t=t||this._order)?(this._y=Math.asin(n(o,-1,1)),.99999>Math.abs(o)?(this._x=Math.atan2(-c,l),this._z=Math.atan2(-i,e)):(this._x=Math.atan2(h,s),this._z=0)):"YXZ"===t?(this._x=Math.asin(-n(c,-1,1)),.99999>Math.abs(c)?(this._y=Math.atan2(o,l),this._z=Math.atan2(a,s)):(this._y=Math.atan2(-u,e),this._z=0)):"ZXY"===t?(this._x=Math.asin(n(h,-1,1)),.99999>Math.abs(h)?(this._y=Math.atan2(-u,l),this._z=Math.atan2(-i,s)):(this._y=0,this._z=Math.atan2(a,e))):"ZYX"===t?(this._y=Math.asin(-n(u,-1,1)),.99999>Math.abs(u)?(this._x=Math.atan2(h,l),this._z=Math.atan2(a,e)):(this._x=0,this._z=Math.atan2(-i,s))):"YZX"===t?(this._z=Math.asin(n(a,-1,1)),.99999>Math.abs(a)?(this._x=Math.atan2(-c,s),this._y=Math.atan2(-u,e)):(this._x=0,this._y=Math.atan2(o,l))):"XZY"===t?(this._z=Math.asin(-n(i,-1,1)),.99999>Math.abs(i)?(this._x=Math.atan2(h,s),this._y=Math.atan2(o,e)):(this._x=Math.atan2(-c,l),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+t),this._order=t,!1!==r&&this.onChangeCallback(),this},setFromQuaternion:function(){var e=new n;return function(t,r,n){return e.makeRotationFromQuaternion(t),this.setFromRotationMatrix(e,r,n)}}(),setFromVector3:function(e,t){return this.set(e.x,e.y,e.z,t||this._order)},reorder:function(){var e=new i;return function(t){return e.setFromEuler(this),this.setFromQuaternion(e,t)}}(),equals:function(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order},fromArray:function(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this.onChangeCallback(),this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e},toVector3:function(e){return e?e.set(this._x,this._y,this._z):new o(this._x,this._y,this._z)},onChange:function(e){return this.onChangeCallback=e,this},onChangeCallback:function(){}}),Object.assign(re.prototype,{set:function(e){this.mask=1<<e|0},enable:function(e){this.mask=this.mask|1<<e|0},toggle:function(e){this.mask^=1<<e|0},disable:function(e){this.mask&=~(1<<e|0)},test:function(e){return 0!=(this.mask&e.mask)}});var Si=0;ne.DefaultUp=new o(0,1,0),ne.DefaultMatrixAutoUpdate=!0,Object.assign(ne.prototype,t.prototype,{isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix:function(e){this.matrix.multiplyMatrices(e,this.matrix),this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(e){return this.quaternion.premultiply(e),this},setRotationFromAxisAngle:function(e,t){this.quaternion.setFromAxisAngle(e,t)},setRotationFromEuler:function(e){this.quaternion.setFromEuler(e,!0)},setRotationFromMatrix:function(e){this.quaternion.setFromRotationMatrix(e)},setRotationFromQuaternion:function(e){this.quaternion.copy(e)},rotateOnAxis:function(){var e=new i;return function(t,r){return e.setFromAxisAngle(t,r),this.quaternion.multiply(e),this}}(),rotateOnWorldAxis:function(){var e=new i;return function(t,r){return e.setFromAxisAngle(t,r),this.quaternion.premultiply(e),this}}(),rotateX:function(){var e=new o(1,0,0);return function(t){return this.rotateOnAxis(e,t)}}(),rotateY:function(){var e=new o(0,1,0);return function(t){return this.rotateOnAxis(e,t)}}(),rotateZ:function(){var e=new o(0,0,1);return function(t){return this.rotateOnAxis(e,t)}}(),translateOnAxis:function(){var e=new o;return function(t,r){return e.copy(t).applyQuaternion(this.quaternion),this.position.add(e.multiplyScalar(r)),this}}(),translateX:function(){var e=new o(1,0,0);return function(t){return this.translateOnAxis(e,t)}}(),translateY:function(){var e=new o(0,1,0);return function(t){return this.translateOnAxis(e,t)}}(),translateZ:function(){var e=new o(0,0,1);return function(t){return this.translateOnAxis(e,t)}}(),localToWorld:function(e){return e.applyMatrix4(this.matrixWorld)},worldToLocal:function(){var e=new n;return function(t){return t.applyMatrix4(e.getInverse(this.matrixWorld))}}(),lookAt:function(){var e=new n,t=new o;return function(r,n,i){r.isVector3?t.copy(r):t.set(r,n,i),this.isCamera?e.lookAt(this.position,t,this.up):e.lookAt(t,this.position,this.up),this.quaternion.setFromRotationMatrix(e)}}(),add:function(e){if(1<arguments.length){for(var t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return e===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(null!==e.parent&&e.parent.remove(e),e.parent=this,e.dispatchEvent({type:"added"}),this.children.push(e)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",e),this)},remove:function(e){if(1<arguments.length){for(var t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}return-1!==(t=this.children.indexOf(e))&&(e.parent=null,e.dispatchEvent({type:"removed"}),this.children.splice(t,1)),this},getObjectById:function(e){return this.getObjectByProperty("id",e)},getObjectByName:function(e){return this.getObjectByProperty("name",e)},getObjectByProperty:function(e,t){if(this[e]===t)return this;for(var r=0,n=this.children.length;r<n;r++){var i=this.children[r].getObjectByProperty(e,t);if(void 0!==i)return i}},getWorldPosition:function(e){return e=e||new o,this.updateMatrixWorld(!0),e.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(){var e=new o,t=new o;return function(r){return r=r||new i,this.updateMatrixWorld(!0),this.matrixWorld.decompose(e,r,t),r}}(),getWorldRotation:function(){var e=new i;return function(t){return t=t||new te,this.getWorldQuaternion(e),t.setFromQuaternion(e,this.rotation.order,!1)}}(),getWorldScale:function(){var e=new o,t=new i;return function(r){return r=r||new o,this.updateMatrixWorld(!0),this.matrixWorld.decompose(e,t,r),r}}(),getWorldDirection:function(){var e=new i;return function(t){return t=t||new o,this.getWorldQuaternion(e),t.set(0,0,1).applyQuaternion(e)}}(),raycast:function(){},traverse:function(e){e(this);for(var t=this.children,r=0,n=t.length;r<n;r++)t[r].traverse(e)},traverseVisible:function(e){if(!1!==this.visible){e(this);for(var t=this.children,r=0,n=t.length;r<n;r++)t[r].traverseVisible(e)}},traverseAncestors:function(e){var t=this.parent;null!==t&&(e(t),t.traverseAncestors(e))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,e=!0);for(var t=this.children,r=0,n=t.length;r<n;r++)t[r].updateMatrixWorld(e)},toJSON:function(e){function t(t,r){return void 0===t[r.uuid]&&(t[r.uuid]=r.toJSON(e)),r.uuid}function r(e){var t,r=[];for(t in e){var n=e[t];delete n.metadata,r.push(n)}return r}var n=void 0===e||"string"==typeof e,i={};n&&(e={geometries:{},materials:{},textures:{},images:{}},i.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});var o={};if(o.uuid=this.uuid,o.type=this.type,""!==this.name&&(o.name=this.name),!0===this.castShadow&&(o.castShadow=!0),!0===this.receiveShadow&&(o.receiveShadow=!0),!1===this.visible&&(o.visible=!1),"{}"!==JSON.stringify(this.userData)&&(o.userData=this.userData),o.matrix=this.matrix.toArray(),void 0!==this.geometry&&(o.geometry=t(e.geometries,this.geometry)),void 0!==this.material)if(Array.isArray(this.material)){for(var a=[],s=0,c=this.material.length;s<c;s++)a.push(t(e.materials,this.material[s]));o.material=a}else o.material=t(e.materials,this.material);if(0<this.children.length)for(o.children=[],s=0;s<this.children.length;s++)o.children.push(this.children[s].toJSON(e).object);return n&&(n=r(e.geometries),a=r(e.materials),s=r(e.textures),c=r(e.images),0<n.length&&(i.geometries=n),0<a.length&&(i.materials=a),0<s.length&&(i.textures=s),0<c.length&&(i.images=c)),i.object=o,i},clone:function(e){return(new this.constructor).copy(this,e)},copy:function(e,t){if(void 0===t&&(t=!0),this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(t=0;t<e.children.length;t++)this.add(e.children[t].clone());return this}}),ie.prototype=Object.assign(Object.create(ne.prototype),{constructor:ie,isCamera:!0,copy:function(e,t){return ne.prototype.copy.call(this,e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this},getWorldDirection:function(){var e=new i;return function(t){return t=t||new o,this.getWorldQuaternion(e),t.set(0,0,-1).applyQuaternion(e)}}(),updateMatrixWorld:function(e){ne.prototype.updateMatrixWorld.call(this,e),this.matrixWorldInverse.getInverse(this.matrixWorld)},clone:function(){return(new this.constructor).copy(this)}}),oe.prototype=Object.assign(Object.create(ie.prototype),{constructor:oe,isOrthographicCamera:!0,copy:function(e,t){return ie.prototype.copy.call(this,e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=null===e.view?null:Object.assign({},e.view),this},setViewOffset:function(e,t,r,n,i,o){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=r,this.view.offsetY=n,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),r=(n=(this.right+this.left)/2)-e,n=n+e,e=(o=(this.top+this.bottom)/2)+t,t=o-t;if(null!==this.view&&this.view.enabled)var n=this.zoom/(this.view.width/this.view.fullWidth),t=this.zoom/(this.view.height/this.view.fullHeight),i=(this.right-this.left)/this.view.width,o=(this.top-this.bottom)/this.view.height,r=r+this.view.offsetX/n*i,n=r+this.view.width/n*i,e=e-this.view.offsetY/t*o,t=e-this.view.height/t*o;this.projectionMatrix.makeOrthographic(r,n,e,t,this.near,this.far)},toJSON:function(e){return e=ne.prototype.toJSON.call(this,e),e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}),Object.assign(ae.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(e){this.a=e.a,this.b=e.b,this.c=e.c,this.normal.copy(e.normal),this.color.copy(e.color),this.materialIndex=e.materialIndex;for(var t=0,r=e.vertexNormals.length;t<r;t++)this.vertexNormals[t]=e.vertexNormals[t].clone();for(t=0,r=e.vertexColors.length;t<r;t++)this.vertexColors[t]=e.vertexColors[t].clone();return this}});var Mi=0;Object.assign(se.prototype,t.prototype,{isGeometry:!0,applyMatrix:function(e){for(var t=(new a).getNormalMatrix(e),r=0,n=this.vertices.length;r<n;r++)this.vertices[r].applyMatrix4(e);for(r=0,n=this.faces.length;r<n;r++){(e=this.faces[r]).normal.applyMatrix3(t).normalize();for(var i=0,o=e.vertexNormals.length;i<o;i++)e.vertexNormals[i].applyMatrix3(t).normalize()}return null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this.normalsNeedUpdate=this.verticesNeedUpdate=!0,this},rotateX:function(){var e=new n;return function(t){return e.makeRotationX(t),this.applyMatrix(e),this}}(),rotateY:function(){var e=new n;return function(t){return e.makeRotationY(t),this.applyMatrix(e),this}}(),rotateZ:function(){var e=new n;return function(t){return e.makeRotationZ(t),this.applyMatrix(e),this}}(),translate:function(){var e=new n;return function(t,r,n){return e.makeTranslation(t,r,n),this.applyMatrix(e),this}}(),scale:function(){var e=new n;return function(t,r,n){return e.makeScale(t,r,n),this.applyMatrix(e),this}}(),lookAt:function(){var e=new ne;return function(t){e.lookAt(t),e.updateMatrix(),this.applyMatrix(e.matrix)}}(),fromBufferGeometry:function(e){function t(e,t,r,i){i=new ae(e,t,r,void 0!==c?[p[e].clone(),p[t].clone(),p[r].clone()]:[],void 0!==u?[n.colors[e].clone(),n.colors[t].clone(),n.colors[r].clone()]:[],i),n.faces.push(i),void 0!==h&&n.faceVertexUvs[0].push([d[e].clone(),d[t].clone(),d[r].clone()]),void 0!==l&&n.faceVertexUvs[1].push([f[e].clone(),f[t].clone(),f[r].clone()])}var n=this,i=null!==e.index?e.index.array:void 0,a=e.attributes,s=a.position.array,c=void 0!==a.normal?a.normal.array:void 0,u=void 0!==a.color?a.color.array:void 0,h=void 0!==a.uv?a.uv.array:void 0,l=void 0!==a.uv2?a.uv2.array:void 0;void 0!==l&&(this.faceVertexUvs[1]=[]);for(var p=[],d=[],f=[],m=a=0;a<s.length;a+=3,m+=2)n.vertices.push(new o(s[a],s[a+1],s[a+2])),void 0!==c&&p.push(new o(c[a],c[a+1],c[a+2])),void 0!==u&&n.colors.push(new z(u[a],u[a+1],u[a+2])),void 0!==h&&d.push(new r(h[m],h[m+1])),void 0!==l&&f.push(new r(l[m],l[m+1]));var v=e.groups;if(0<v.length)for(a=0;a<v.length;a++)for(var s=v[a],g=s.start,y=s.count,m=g,g=g+y;m<g;m+=3)void 0!==i?t(i[m],i[m+1],i[m+2],s.materialIndex):t(m,m+1,m+2,s.materialIndex);else if(void 0!==i)for(a=0;a<i.length;a+=3)t(i[a],i[a+1],i[a+2]);else for(a=0;a<s.length/3;a+=3)t(a,a+1,a+2);return this.computeFaceNormals(),null!==e.boundingBox&&(this.boundingBox=e.boundingBox.clone()),null!==e.boundingSphere&&(this.boundingSphere=e.boundingSphere.clone()),this},center:function(){this.computeBoundingBox();var e=this.boundingBox.getCenter().negate();return this.translate(e.x,e.y,e.z),e},normalize:function(){this.computeBoundingSphere();var e=this.boundingSphere.center,t=0===(t=this.boundingSphere.radius)?1:1/t,r=new n;return r.set(t,0,0,-t*e.x,0,t,0,-t*e.y,0,0,t,-t*e.z,0,0,0,1),this.applyMatrix(r),this},computeFaceNormals:function(){for(var e=new o,t=new o,r=0,n=this.faces.length;r<n;r++){var i=this.faces[r],a=this.vertices[i.a],s=this.vertices[i.b];e.subVectors(this.vertices[i.c],s),t.subVectors(a,s),e.cross(t),e.normalize(),i.normal.copy(e)}},computeVertexNormals:function(e){void 0===e&&(e=!0);var t,r=Array(this.vertices.length),n=0;for(t=this.vertices.length;n<t;n++)r[n]=new o;if(e){var i=new o,a=new o;for(e=0,n=this.faces.length;e<n;e++){t=this.faces[e];var s=this.vertices[t.a],c=this.vertices[t.b],u=this.vertices[t.c];i.subVectors(u,c),a.subVectors(s,c),i.cross(a),r[t.a].add(i),r[t.b].add(i),r[t.c].add(i)}}else for(this.computeFaceNormals(),e=0,n=this.faces.length;e<n;e++)t=this.faces[e],r[t.a].add(t.normal),r[t.b].add(t.normal),r[t.c].add(t.normal);for(n=0,t=this.vertices.length;n<t;n++)r[n].normalize();for(e=0,n=this.faces.length;e<n;e++)t=this.faces[e],3===(s=t.vertexNormals).length?(s[0].copy(r[t.a]),s[1].copy(r[t.b]),s[2].copy(r[t.c])):(s[0]=r[t.a].clone(),s[1]=r[t.b].clone(),s[2]=r[t.c].clone());0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var e;this.computeFaceNormals();var t=0;for(e=this.faces.length;t<e;t++){var r=this.faces[t],n=r.vertexNormals;3===n.length?(n[0].copy(r.normal),n[1].copy(r.normal),n[2].copy(r.normal)):(n[0]=r.normal.clone(),n[1]=r.normal.clone(),n[2]=r.normal.clone())}0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var e,t,r=0;for(t=this.faces.length;r<t;r++){var n=this.faces[r];n.__originalFaceNormal?n.__originalFaceNormal.copy(n.normal):n.__originalFaceNormal=n.normal.clone(),n.__originalVertexNormals||(n.__originalVertexNormals=[]);var i=0;for(e=n.vertexNormals.length;i<e;i++)n.__originalVertexNormals[i]?n.__originalVertexNormals[i].copy(n.vertexNormals[i]):n.__originalVertexNormals[i]=n.vertexNormals[i].clone()}var a=new se;for(a.faces=this.faces,i=0,e=this.morphTargets.length;i<e;i++){if(!this.morphNormals[i]){this.morphNormals[i]={},this.morphNormals[i].faceNormals=[],this.morphNormals[i].vertexNormals=[],n=this.morphNormals[i].faceNormals;var s=this.morphNormals[i].vertexNormals;for(r=0,t=this.faces.length;r<t;r++){var c=new o,u={a:new o,b:new o,c:new o};n.push(c),s.push(u)}}for(s=this.morphNormals[i],a.vertices=this.morphTargets[i].vertices,a.computeFaceNormals(),a.computeVertexNormals(),r=0,t=this.faces.length;r<t;r++)n=this.faces[r],c=s.faceNormals[r],u=s.vertexNormals[r],c.copy(n.normal),u.a.copy(n.vertexNormals[0]),u.b.copy(n.vertexNormals[1]),u.c.copy(n.vertexNormals[2])}for(r=0,t=this.faces.length;r<t;r++)n=this.faces[r],n.normal=n.__originalFaceNormal,n.vertexNormals=n.__originalVertexNormals},computeLineDistances:function(){for(var e=0,t=this.vertices,r=0,n=t.length;r<n;r++)0<r&&(e+=t[r].distanceTo(t[r-1])),this.lineDistances[r]=e},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new K),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new Z),this.boundingSphere.setFromPoints(this.vertices)},merge:function(e,t,r){if(e&&e.isGeometry){var n,i=this.vertices.length,o=this.vertices,s=e.vertices,c=this.faces,u=e.faces,h=this.faceVertexUvs[0],l=e.faceVertexUvs[0],p=this.colors,d=e.colors;void 0===r&&(r=0),void 0!==t&&(n=(new a).getNormalMatrix(t)),e=0;for(var f=s.length;e<f;e++){var m=s[e].clone();void 0!==t&&m.applyMatrix4(t),o.push(m)}for(e=0,f=d.length;e<f;e++)p.push(d[e].clone());for(e=0,f=u.length;e<f;e++){var v=(s=u[e]).vertexNormals,d=s.vertexColors;for((p=new ae(s.a+i,s.b+i,s.c+i)).normal.copy(s.normal),void 0!==n&&p.normal.applyMatrix3(n).normalize(),t=0,o=v.length;t<o;t++)m=v[t].clone(),void 0!==n&&m.applyMatrix3(n).normalize(),p.vertexNormals.push(m);for(p.color.copy(s.color),t=0,o=d.length;t<o;t++)m=d[t],p.vertexColors.push(m.clone());p.materialIndex=s.materialIndex+r,c.push(p)}for(e=0,f=l.length;e<f;e++)if(r=l[e],n=[],void 0!==r){for(t=0,o=r.length;t<o;t++)n.push(r[t].clone());h.push(n)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",e)},mergeMesh:function(e){e&&e.isMesh?(e.matrixAutoUpdate&&e.updateMatrix(),this.merge(e.geometry,e.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",e)},mergeVertices:function(){var e,t={},r=[],n=[],i=Math.pow(10,4),o=0;for(e=this.vertices.length;o<e;o++){var a=this.vertices[o];void 0===t[a=Math.round(a.x*i)+"_"+Math.round(a.y*i)+"_"+Math.round(a.z*i)]?(t[a]=o,r.push(this.vertices[o]),n[o]=r.length-1):n[o]=n[t[a]]}for(t=[],o=0,e=this.faces.length;o<e;o++)for(i=this.faces[o],i.a=n[i.a],i.b=n[i.b],i.c=n[i.c],i=[i.a,i.b,i.c],a=0;3>a;a++)if(i[a]===i[(a+1)%3]){t.push(o);break}for(o=t.length-1;0<=o;o--)for(i=t[o],this.faces.splice(i,1),n=0,e=this.faceVertexUvs.length;n<e;n++)this.faceVertexUvs[n].splice(i,1);return o=this.vertices.length-r.length,this.vertices=r,o},setFromPoints:function(e){this.vertices=[];for(var t=0,r=e.length;t<r;t++){var n=e[t];this.vertices.push(new o(n.x,n.y,n.z||0))}return this},sortFacesByMaterialIndex:function(){for(var e=this.faces,t=e.length,r=0;r<t;r++)e[r]._id=r;e.sort(function(e,t){return e.materialIndex-t.materialIndex});var n,i,o=this.faceVertexUvs[0],a=this.faceVertexUvs[1];for(o&&o.length===t&&(n=[]),a&&a.length===t&&(i=[]),r=0;r<t;r++){var s=e[r]._id;n&&n.push(o[s]),i&&i.push(a[s])}n&&(this.faceVertexUvs[0]=n),i&&(this.faceVertexUvs[1]=i)},toJSON:function(){function e(e,t,r){return r?e|1<<t:e&~(1<<t)}function t(e){var t=e.x.toString()+e.y.toString()+e.z.toString();return void 0!==u[t]?u[t]:(u[t]=c.length/3,c.push(e.x,e.y,e.z),u[t])}function r(e){var t=e.r.toString()+e.g.toString()+e.b.toString();return void 0!==l[t]?l[t]:(l[t]=h.length,h.push(e.getHex()),l[t])}function n(e){var t=e.x.toString()+e.y.toString();return void 0!==d[t]?d[t]:(d[t]=p.length/2,p.push(e.x,e.y),d[t])}var i={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),void 0!==this.parameters){var o,a=this.parameters;for(o in a)void 0!==a[o]&&(i[o]=a[o]);return i}for(a=[],o=0;o<this.vertices.length;o++){s=this.vertices[o];a.push(s.x,s.y,s.z)}var s=[],c=[],u={},h=[],l={},p=[],d={};for(o=0;o<this.faces.length;o++){var f=this.faces[o],m=void 0!==this.faceVertexUvs[0][o],v=0<f.normal.length(),g=0<f.vertexNormals.length,y=1!==f.color.r||1!==f.color.g||1!==f.color.b,b=0<f.vertexColors.length,_=e(_=e(_=e(_=e(_=e(_=e(_=e(_=e(_=0,0,0),1,!0),2,!1),3,m),4,v),5,g),6,y),7,b);s.push(_),s.push(f.a,f.b,f.c),s.push(f.materialIndex),m&&(m=this.faceVertexUvs[0][o],s.push(n(m[0]),n(m[1]),n(m[2]))),v&&s.push(t(f.normal)),g&&(v=f.vertexNormals,s.push(t(v[0]),t(v[1]),t(v[2]))),y&&s.push(r(f.color)),b&&(f=f.vertexColors,s.push(r(f[0]),r(f[1]),r(f[2])))}return i.data={},i.data.vertices=a,i.data.normals=c,0<h.length&&(i.data.colors=h),0<p.length&&(i.data.uvs=[p]),i.data.faces=s,i},clone:function(){return(new se).copy(this)},copy:function(e){var t,r,n;this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingSphere=this.boundingBox=null,this.name=e.name;var i=e.vertices,o=0;for(t=i.length;o<t;o++)this.vertices.push(i[o].clone());for(o=0,t=(i=e.colors).length;o<t;o++)this.colors.push(i[o].clone());for(o=0,t=(i=e.faces).length;o<t;o++)this.faces.push(i[o].clone());for(o=0,t=e.faceVertexUvs.length;o<t;o++){var a=e.faceVertexUvs[o];for(void 0===this.faceVertexUvs[o]&&(this.faceVertexUvs[o]=[]),i=0,r=a.length;i<r;i++){var s=a[i],c=[],u=0;for(n=s.length;u<n;u++)c.push(s[u].clone());this.faceVertexUvs[o].push(c)}}for(o=0,t=(u=e.morphTargets).length;o<t;o++){if(n={},n.name=u[o].name,void 0!==u[o].vertices)for(n.vertices=[],i=0,r=u[o].vertices.length;i<r;i++)n.vertices.push(u[o].vertices[i].clone());if(void 0!==u[o].normals)for(n.normals=[],i=0,r=u[o].normals.length;i<r;i++)n.normals.push(u[o].normals[i].clone());this.morphTargets.push(n)}for(o=0,t=(u=e.morphNormals).length;o<t;o++){if(n={},void 0!==u[o].vertexNormals)for(n.vertexNormals=[],i=0,r=u[o].vertexNormals.length;i<r;i++)a=u[o].vertexNormals[i],s={},s.a=a.a.clone(),s.b=a.b.clone(),s.c=a.c.clone(),n.vertexNormals.push(s);if(void 0!==u[o].faceNormals)for(n.faceNormals=[],i=0,r=u[o].faceNormals.length;i<r;i++)n.faceNormals.push(u[o].faceNormals[i].clone());this.morphNormals.push(n)}for(o=0,t=(i=e.skinWeights).length;o<t;o++)this.skinWeights.push(i[o].clone());for(o=0,t=(i=e.skinIndices).length;o<t;o++)this.skinIndices.push(i[o].clone());for(o=0,t=(i=e.lineDistances).length;o<t;o++)this.lineDistances.push(i[o]);return null!==(o=e.boundingBox)&&(this.boundingBox=o.clone()),null!==(o=e.boundingSphere)&&(this.boundingSphere=o.clone()),this.elementsNeedUpdate=e.elementsNeedUpdate,this.verticesNeedUpdate=e.verticesNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.lineDistancesNeedUpdate=e.lineDistancesNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty(ce.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}}),Object.assign(ce.prototype,{isBufferAttribute:!0,setArray:function(e){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.count=void 0!==e?e.length/this.itemSize:0,this.array=e},setDynamic:function(e){return this.dynamic=e,this},copy:function(e){return this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.dynamic=e.dynamic,this},copyAt:function(e,t,r){e*=this.itemSize,r*=t.itemSize;for(var n=0,i=this.itemSize;n<i;n++)this.array[e+n]=t.array[r+n];return this},copyArray:function(e){return this.array.set(e),this},copyColorsArray:function(e){for(var t=this.array,r=0,n=0,i=e.length;n<i;n++){var o=e[n];void 0===o&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",n),o=new z),t[r++]=o.r,t[r++]=o.g,t[r++]=o.b}return this},copyIndicesArray:function(e){for(var t=this.array,r=0,n=0,i=e.length;n<i;n++){var o=e[n];t[r++]=o.a,t[r++]=o.b,t[r++]=o.c}return this},copyVector2sArray:function(e){for(var t=this.array,n=0,i=0,o=e.length;i<o;i++){var a=e[i];void 0===a&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",i),a=new r),t[n++]=a.x,t[n++]=a.y}return this},copyVector3sArray:function(e){for(var t=this.array,r=0,n=0,i=e.length;n<i;n++){var a=e[n];void 0===a&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",n),a=new o),t[r++]=a.x,t[r++]=a.y,t[r++]=a.z}return this},copyVector4sArray:function(e){for(var t=this.array,r=0,n=0,i=e.length;n<i;n++){var o=e[n];void 0===o&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",n),o=new c),t[r++]=o.x,t[r++]=o.y,t[r++]=o.z,t[r++]=o.w}return this},set:function(e,t){return void 0===t&&(t=0),this.array.set(e,t),this},getX:function(e){return this.array[e*this.itemSize]},setX:function(e,t){return this.array[e*this.itemSize]=t,this},getY:function(e){return this.array[e*this.itemSize+1]},setY:function(e,t){return this.array[e*this.itemSize+1]=t,this},getZ:function(e){return this.array[e*this.itemSize+2]},setZ:function(e,t){return this.array[e*this.itemSize+2]=t,this},getW:function(e){return this.array[e*this.itemSize+3]},setW:function(e,t){return this.array[e*this.itemSize+3]=t,this},setXY:function(e,t,r){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=r,this},setXYZ:function(e,t,r,n){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=r,this.array[e+2]=n,this},setXYZW:function(e,t,r,n,i){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=r,this.array[e+2]=n,this.array[e+3]=i,this},onUpload:function(e){return this.onUploadCallback=e,this},clone:function(){return new this.constructor(this.array,this.itemSize).copy(this)}}),(ue.prototype=Object.create(ce.prototype)).constructor=ue,(he.prototype=Object.create(ce.prototype)).constructor=he,(le.prototype=Object.create(ce.prototype)).constructor=le,(pe.prototype=Object.create(ce.prototype)).constructor=pe,(de.prototype=Object.create(ce.prototype)).constructor=de,(fe.prototype=Object.create(ce.prototype)).constructor=fe,(me.prototype=Object.create(ce.prototype)).constructor=me,(ve.prototype=Object.create(ce.prototype)).constructor=ve,(ge.prototype=Object.create(ce.prototype)).constructor=ge,Object.assign(ye.prototype,{computeGroups:function(e){var t=[],r=void 0;e=e.faces;for(var n=0;n<e.length;n++){var i=e[n];if(i.materialIndex!==r){r=i.materialIndex,void 0!==o&&(o.count=3*n-o.start,t.push(o));var o={start:3*n,materialIndex:r}}}void 0!==o&&(o.count=3*n-o.start,t.push(o)),this.groups=t},fromGeometry:function(e){var t=e.faces,n=e.vertices,i=e.faceVertexUvs,o=i[0]&&0<i[0].length,a=i[1]&&0<i[1].length,s=e.morphTargets,c=s.length;if(0<c){for(var u=[],h=0;h<c;h++)u[h]=[];this.morphTargets.position=u}var l=e.morphNormals,p=l.length;if(0<p){var d=[];for(h=0;h<p;h++)d[h]=[];this.morphTargets.normal=d}for(var f=e.skinIndices,m=e.skinWeights,v=f.length===n.length,g=m.length===n.length,h=0;h<t.length;h++){var y=t[h];this.vertices.push(n[y.a],n[y.b],n[y.c]);var b=y.vertexNormals;for(3===b.length?this.normals.push(b[0],b[1],b[2]):(b=y.normal,this.normals.push(b,b,b)),3===(b=y.vertexColors).length?this.colors.push(b[0],b[1],b[2]):(b=y.color,this.colors.push(b,b,b)),!0===o&&(void 0!==(b=i[0][h])?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",h),this.uvs.push(new r,new r,new r))),!0===a&&(void 0!==(b=i[1][h])?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",h),this.uvs2.push(new r,new r,new r))),b=0;b<c;b++){var _=s[b].vertices;u[b].push(_[y.a],_[y.b],_[y.c])}for(b=0;b<p;b++)_=l[b].vertexNormals[h],d[b].push(_.a,_.b,_.c);v&&this.skinIndices.push(f[y.a],f[y.b],f[y.c]),g&&this.skinWeights.push(m[y.a],m[y.b],m[y.c])}return this.computeGroups(e),this.verticesNeedUpdate=e.verticesNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,this}});var Ei=1;Object.assign(_e.prototype,t.prototype,{isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(e){Array.isArray(e)?this.index=new(65535<be(e)?me:de)(e,1):this.index=e},addAttribute:function(e,t,r){if(t&&t.isBufferAttribute||t&&t.isInterleavedBufferAttribute){if("index"!==e)return this.attributes[e]=t,this;console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(t)}else console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.addAttribute(e,new ce(t,r))},getAttribute:function(e){return this.attributes[e]},removeAttribute:function(e){return delete this.attributes[e],this},addGroup:function(e,t,r){this.groups.push({start:e,count:t,materialIndex:void 0!==r?r:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(e,t){this.drawRange.start=e,this.drawRange.count=t},applyMatrix:function(e){var t=this.attributes.position;return void 0!==t&&(e.applyToBufferAttribute(t),t.needsUpdate=!0),void 0!==(t=this.attributes.normal)&&((new a).getNormalMatrix(e).applyToBufferAttribute(t),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(){var e=new n;return function(t){return e.makeRotationX(t),this.applyMatrix(e),this}}(),rotateY:function(){var e=new n;return function(t){return e.makeRotationY(t),this.applyMatrix(e),this}}(),rotateZ:function(){var e=new n;return function(t){return e.makeRotationZ(t),this.applyMatrix(e),this}}(),translate:function(){var e=new n;return function(t,r,n){return e.makeTranslation(t,r,n),this.applyMatrix(e),this}}(),scale:function(){var e=new n;return function(t,r,n){return e.makeScale(t,r,n),this.applyMatrix(e),this}}(),lookAt:function(){var e=new ne;return function(t){e.lookAt(t),e.updateMatrix(),this.applyMatrix(e.matrix)}}(),center:function(){this.computeBoundingBox();var e=this.boundingBox.getCenter().negate();return this.translate(e.x,e.y,e.z),e},setFromObject:function(e){var t=e.geometry;if(e.isPoints||e.isLine){e=new ve(3*t.vertices.length,3);var r=new ve(3*t.colors.length,3);this.addAttribute("position",e.copyVector3sArray(t.vertices)),this.addAttribute("color",r.copyColorsArray(t.colors)),t.lineDistances&&t.lineDistances.length===t.vertices.length&&(e=new ve(t.lineDistances.length,1),this.addAttribute("lineDistance",e.copyArray(t.lineDistances))),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone())}else e.isMesh&&t&&t.isGeometry&&this.fromGeometry(t);return this},setFromPoints:function(e){for(var t=[],r=0,n=e.length;r<n;r++){var i=e[r];t.push(i.x,i.y,i.z||0)}return this.addAttribute("position",new ve(t,3)),this},updateFromObject:function(e){var t=e.geometry;if(e.isMesh){var r=t.__directGeometry;if(!0===t.elementsNeedUpdate&&(r=void 0,t.elementsNeedUpdate=!1),void 0===r)return this.fromGeometry(t);r.verticesNeedUpdate=t.verticesNeedUpdate,r.normalsNeedUpdate=t.normalsNeedUpdate,r.colorsNeedUpdate=t.colorsNeedUpdate,r.uvsNeedUpdate=t.uvsNeedUpdate,r.groupsNeedUpdate=t.groupsNeedUpdate,t.verticesNeedUpdate=!1,t.normalsNeedUpdate=!1,t.colorsNeedUpdate=!1,t.uvsNeedUpdate=!1,t.groupsNeedUpdate=!1,t=r}return!0===t.verticesNeedUpdate&&(void 0!==(r=this.attributes.position)&&(r.copyVector3sArray(t.vertices),r.needsUpdate=!0),t.verticesNeedUpdate=!1),!0===t.normalsNeedUpdate&&(void 0!==(r=this.attributes.normal)&&(r.copyVector3sArray(t.normals),r.needsUpdate=!0),t.normalsNeedUpdate=!1),!0===t.colorsNeedUpdate&&(void 0!==(r=this.attributes.color)&&(r.copyColorsArray(t.colors),r.needsUpdate=!0),t.colorsNeedUpdate=!1),t.uvsNeedUpdate&&(void 0!==(r=this.attributes.uv)&&(r.copyVector2sArray(t.uvs),r.needsUpdate=!0),t.uvsNeedUpdate=!1),t.lineDistancesNeedUpdate&&(void 0!==(r=this.attributes.lineDistance)&&(r.copyArray(t.lineDistances),r.needsUpdate=!0),t.lineDistancesNeedUpdate=!1),t.groupsNeedUpdate&&(t.computeGroups(e.geometry),this.groups=t.groups,t.groupsNeedUpdate=!1),this},fromGeometry:function(e){return e.__directGeometry=(new ye).fromGeometry(e),this.fromDirectGeometry(e.__directGeometry)},fromDirectGeometry:function(e){r=new Float32Array(3*e.vertices.length);this.addAttribute("position",new ce(r,3).copyVector3sArray(e.vertices)),0<e.normals.length&&(r=new Float32Array(3*e.normals.length),this.addAttribute("normal",new ce(r,3).copyVector3sArray(e.normals))),0<e.colors.length&&(r=new Float32Array(3*e.colors.length),this.addAttribute("color",new ce(r,3).copyColorsArray(e.colors))),0<e.uvs.length&&(r=new Float32Array(2*e.uvs.length),this.addAttribute("uv",new ce(r,2).copyVector2sArray(e.uvs))),0<e.uvs2.length&&(r=new Float32Array(2*e.uvs2.length),this.addAttribute("uv2",new ce(r,2).copyVector2sArray(e.uvs2))),0<e.indices.length&&(r=new(65535<be(e.indices)?Uint32Array:Uint16Array)(3*e.indices.length),this.setIndex(new ce(r,1).copyIndicesArray(e.indices))),this.groups=e.groups;for(var t in e.morphTargets){for(var r=[],n=e.morphTargets[t],i=0,o=n.length;i<o;i++){var a=n[i],s=new ve(3*a.length,3);r.push(s.copyVector3sArray(a))}this.morphAttributes[t]=r}return 0<e.skinIndices.length&&(t=new ve(4*e.skinIndices.length,4),this.addAttribute("skinIndex",t.copyVector4sArray(e.skinIndices))),0<e.skinWeights.length&&(t=new ve(4*e.skinWeights.length,4),this.addAttribute("skinWeight",t.copyVector4sArray(e.skinWeights))),null!==e.boundingSphere&&(this.boundingSphere=e.boundingSphere.clone()),null!==e.boundingBox&&(this.boundingBox=e.boundingBox.clone()),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new K);var e=this.attributes.position;void 0!==e?this.boundingBox.setFromBufferAttribute(e):this.boundingBox.makeEmpty(),(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){var e=new K,t=new o;return function(){null===this.boundingSphere&&(this.boundingSphere=new Z);var r=this.attributes.position;if(r){var n=this.boundingSphere.center;e.setFromBufferAttribute(r),e.getCenter(n);for(var i=0,o=0,a=r.count;o<a;o++)t.x=r.getX(o),t.y=r.getY(o),t.z=r.getZ(o),i=Math.max(i,n.distanceToSquared(t));this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}}(),computeFaceNormals:function(){},computeVertexNormals:function(){var e=this.index,t=this.attributes,r=this.groups;if(t.position){var n=t.position.array;if(void 0===t.normal)this.addAttribute("normal",new ce(new Float32Array(n.length),3));else for(var i=t.normal.array,a=0,s=i.length;a<s;a++)i[a]=0;var i=t.normal.array,c=new o,u=new o,h=new o,l=new o,p=new o;if(e){e=e.array,0===r.length&&this.addGroup(0,e.length);for(var d=0,f=r.length;d<f;++d){s=(a=r[d]).start;var m=a.count;for(a=s,s+=m;a<s;a+=3){m=3*e[a+0];var v=3*e[a+1],g=3*e[a+2];c.fromArray(n,m),u.fromArray(n,v),h.fromArray(n,g),l.subVectors(h,u),p.subVectors(c,u),l.cross(p),i[m]+=l.x,i[m+1]+=l.y,i[m+2]+=l.z,i[v]+=l.x,i[v+1]+=l.y,i[v+2]+=l.z,i[g]+=l.x,i[g+1]+=l.y,i[g+2]+=l.z}}}else for(a=0,s=n.length;a<s;a+=9)c.fromArray(n,a),u.fromArray(n,a+3),h.fromArray(n,a+6),l.subVectors(h,u),p.subVectors(c,u),l.cross(p),i[a]=l.x,i[a+1]=l.y,i[a+2]=l.z,i[a+3]=l.x,i[a+4]=l.y,i[a+5]=l.z,i[a+6]=l.x,i[a+7]=l.y,i[a+8]=l.z;this.normalizeNormals(),t.normal.needsUpdate=!0}},merge:function(e,t){if(e&&e.isBufferGeometry){void 0===t&&(t=0);var r,n=this.attributes;for(r in n)if(void 0!==e.attributes[r])for(var i=n[r].array,o=e.attributes[r],a=o.array,s=0,o=o.itemSize*t;s<a.length;s++,o++)i[o]=a[s];return this}console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",e)},normalizeNormals:function(){var e=new o;return function(){for(var t=this.attributes.normal,r=0,n=t.count;r<n;r++)e.x=t.getX(r),e.y=t.getY(r),e.z=t.getZ(r),e.normalize(),t.setXYZ(r,e.x,e.y,e.z)}}(),toNonIndexed:function(){if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var e,t=new _e,r=this.index.array,n=this.attributes;for(e in n){for(var i,o=(a=n[e]).array,a=a.itemSize,s=new o.constructor(r.length*a),c=0,u=0,h=r.length;u<h;u++){i=r[u]*a;for(var l=0;l<a;l++)s[c++]=o[i++]}t.addAttribute(e,new ce(s,a))}return t},toJSON:function(){var e={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,""!==this.name&&(e.name=this.name),void 0!==this.parameters){var t=this.parameters;for(var r in t)void 0!==t[r]&&(e[r]=t[r]);return e}e.data={attributes:{}};var n=this.index;null!==n&&(t=Array.prototype.slice.call(n.array),e.data.index={type:n.array.constructor.name,array:t}),n=this.attributes;for(r in n){var i=n[r];t=Array.prototype.slice.call(i.array),e.data.attributes[r]={itemSize:i.itemSize,type:i.array.constructor.name,array:t,normalized:i.normalized}}return 0<(r=this.groups).length&&(e.data.groups=JSON.parse(JSON.stringify(r))),null!==(r=this.boundingSphere)&&(e.data.boundingSphere={center:r.center.toArray(),radius:r.radius}),e},clone:function(){return(new _e).copy(this)},copy:function(e){var t;this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingSphere=this.boundingBox=null,this.name=e.name;var r=e.index;null!==r&&this.setIndex(r.clone()),r=e.attributes;for(a in r)this.addAttribute(a,r[a].clone());var n=e.morphAttributes;for(a in n){var i=[],o=n[a];for(r=0,t=o.length;r<t;r++)i.push(o[r].clone());this.morphAttributes[a]=i}var a=e.groups;for(r=0,t=a.length;r<t;r++)n=a[r],this.addGroup(n.start,n.count,n.materialIndex);return null!==(a=e.boundingBox)&&(this.boundingBox=a.clone()),null!==(a=e.boundingSphere)&&(this.boundingSphere=a.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),(xe.prototype=Object.create(se.prototype)).constructor=xe,(we.prototype=Object.create(_e.prototype)).constructor=we,(Se.prototype=Object.create(se.prototype)).constructor=Se,(Me.prototype=Object.create(_e.prototype)).constructor=Me,(Ee.prototype=Object.create(W.prototype)).constructor=Ee,Ee.prototype.isMeshBasicMaterial=!0,Ee.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this},(Ce.prototype=Object.create(W.prototype)).constructor=Ce,Ce.prototype.isShaderMaterial=!0,Ce.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=bi.clone(e.uniforms),this.defines=e.defines,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.lights=e.lights,this.clipping=e.clipping,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this.extensions=e.extensions,this},Ce.prototype.toJSON=function(e){return e=W.prototype.toJSON.call(this,e),e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e},Object.assign(Te.prototype,{set:function(e,t){return this.origin.copy(e),this.direction.copy(t),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this},at:function(e,t){return(t||new o).copy(this.direction).multiplyScalar(e).add(this.origin)},lookAt:function(e){return this.direction.copy(e).sub(this.origin).normalize(),this},recast:function(){var e=new o;return function(t){return this.origin.copy(this.at(t,e)),this}}(),closestPointToPoint:function(e,t){return(t=t||new o).subVectors(e,this.origin),0>(e=t.dot(this.direction))?t.copy(this.origin):t.copy(this.direction).multiplyScalar(e).add(this.origin)},distanceToPoint:function(e){return Math.sqrt(this.distanceSqToPoint(e))},distanceSqToPoint:function(){var e=new o;return function(t){var r=e.subVectors(t,this.origin).dot(this.direction);return 0>r?this.origin.distanceToSquared(t):(e.copy(this.direction).multiplyScalar(r).add(this.origin),e.distanceToSquared(t))}}(),distanceSqToSegment:function(){var e=new o,t=new o,r=new o;return function(n,i,o,a){e.copy(n).add(i).multiplyScalar(.5),t.copy(i).sub(n).normalize(),r.copy(this.origin).sub(e);var s=.5*n.distanceTo(i),c=-this.direction.dot(t),u=r.dot(this.direction),h=-r.dot(t),l=r.lengthSq(),p=Math.abs(1-c*c);if(0<p){i=c*u-h;var d=s*p;0<=(n=c*h-u)?i>=-d?i<=d?(s=1/p,n*=s,i*=s,c=n*(n+c*i+2*u)+i*(c*n+i+2*h)+l):(i=s,n=Math.max(0,-(c*i+u)),c=-n*n+i*(i+2*h)+l):(i=-s,n=Math.max(0,-(c*i+u)),c=-n*n+i*(i+2*h)+l):i<=-d?(n=Math.max(0,-(-c*s+u)),i=0<n?-s:Math.min(Math.max(-s,-h),s),c=-n*n+i*(i+2*h)+l):i<=d?(n=0,i=Math.min(Math.max(-s,-h),s),c=i*(i+2*h)+l):(n=Math.max(0,-(c*s+u)),i=0<n?s:Math.min(Math.max(-s,-h),s),c=-n*n+i*(i+2*h)+l)}else i=0<c?-s:s,n=Math.max(0,-(c*i+u)),c=-n*n+i*(i+2*h)+l;return o&&o.copy(this.direction).multiplyScalar(n).add(this.origin),a&&a.copy(t).multiplyScalar(i).add(e),c}}(),intersectSphere:function(){var e=new o;return function(t,r){e.subVectors(t.center,this.origin);var n=e.dot(this.direction),i=e.dot(e)-n*n;return t=t.radius*t.radius,i>t?null:(t=Math.sqrt(t-i),i=n-t,n+=t,0>i&&0>n?null:0>i?this.at(n,r):this.at(i,r))}}(),intersectsSphere:function(e){return this.distanceToPoint(e.center)<=e.radius},distanceToPlane:function(e){var t=e.normal.dot(this.direction);return 0===t?0===e.distanceToPoint(this.origin)?0:null:0<=(e=-(this.origin.dot(e.normal)+e.constant)/t)?e:null},intersectPlane:function(e,t){return null===(e=this.distanceToPlane(e))?null:this.at(e,t)},intersectsPlane:function(e){var t=e.distanceToPoint(this.origin);return 0===t||0>e.normal.dot(this.direction)*t},intersectBox:function(e,t){var r=1/this.direction.x,n=1/this.direction.y,i=1/this.direction.z,o=this.origin;if(0<=r){var a=(e.min.x-o.x)*r;r*=e.max.x-o.x}else a=(e.max.x-o.x)*r,r*=e.min.x-o.x;if(0<=n){var s=(e.min.y-o.y)*n;n*=e.max.y-o.y}else s=(e.max.y-o.y)*n,n*=e.min.y-o.y;return a>n||s>r?null:((s>a||a!=a)&&(a=s),(n<r||r!=r)&&(r=n),0<=i?(s=(e.min.z-o.z)*i,e=(e.max.z-o.z)*i):(s=(e.max.z-o.z)*i,e=(e.min.z-o.z)*i),a>e||s>r?null:((s>a||a!=a)&&(a=s),(e<r||r!=r)&&(r=e),0>r?null:this.at(0<=a?a:r,t)))},intersectsBox:function(){var e=new o;return function(t){return null!==this.intersectBox(t,e)}}(),intersectTriangle:function(){var e=new o,t=new o,r=new o,n=new o;return function(i,o,a,s,c){if(t.subVectors(o,i),r.subVectors(a,i),n.crossVectors(t,r),0<(o=this.direction.dot(n))){if(s)return null;s=1}else{if(!(0>o))return null;s=-1,o=-o}return e.subVectors(this.origin,i),0>(i=s*this.direction.dot(r.crossVectors(e,r)))?null:0>(a=s*this.direction.dot(t.cross(e)))||i+a>o?null:0>(i=-s*e.dot(n))?null:this.at(i/o,c)}}(),applyMatrix4:function(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this},equals:function(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}}),Object.assign(Oe.prototype,{set:function(e,t){return this.start.copy(e),this.end.copy(t),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.start.copy(e.start),this.end.copy(e.end),this},getCenter:function(e){return(e||new o).addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(e){return(e||new o).subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(e,t){return t=t||new o,this.delta(t).multiplyScalar(e).add(this.start)},closestPointToPointParameter:function(){var e=new o,t=new o;return function(r,n){return e.subVectors(r,this.start),t.subVectors(this.end,this.start),r=t.dot(t),r=t.dot(e)/r,n&&(r=ci.clamp(r,0,1)),r}}(),closestPointToPoint:function(e,t,r){return e=this.closestPointToPointParameter(e,t),r=r||new o,this.delta(r).multiplyScalar(e).add(this.start)},applyMatrix4:function(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this},equals:function(e){return e.start.equals(this.start)&&e.end.equals(this.end)}}),Object.assign(Pe,{normal:function(){var e=new o;return function(t,r,n,i){return(i=i||new o).subVectors(n,r),e.subVectors(t,r),i.cross(e),0<(t=i.lengthSq())?i.multiplyScalar(1/Math.sqrt(t)):i.set(0,0,0)}}(),barycoordFromPoint:function(){var e=new o,t=new o,r=new o;return function(n,i,a,s,c){e.subVectors(s,i),t.subVectors(a,i),r.subVectors(n,i),n=e.dot(e),i=e.dot(t),a=e.dot(r);var u=t.dot(t);s=t.dot(r);var h=n*u-i*i;return c=c||new o,0===h?c.set(-2,-1,-1):(h=1/h,u=(u*a-i*s)*h,n=(n*s-i*a)*h,c.set(1-u-n,n,u))}}(),containsPoint:function(){var e=new o;return function(t,r,n,i){return 0<=(t=Pe.barycoordFromPoint(t,r,n,i,e)).x&&0<=t.y&&1>=t.x+t.y}}()}),Object.assign(Pe.prototype,{set:function(e,t,r){return this.a.copy(e),this.b.copy(t),this.c.copy(r),this},setFromPointsAndIndices:function(e,t,r,n){return this.a.copy(e[t]),this.b.copy(e[r]),this.c.copy(e[n]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this},area:function(){var e=new o,t=new o;return function(){return e.subVectors(this.c,this.b),t.subVectors(this.a,this.b),.5*e.cross(t).length()}}(),midpoint:function(e){return(e||new o).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(e){return Pe.normal(this.a,this.b,this.c,e)},plane:function(e){return(e||new J).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(e,t){return Pe.barycoordFromPoint(e,this.a,this.b,this.c,t)},containsPoint:function(e){return Pe.containsPoint(e,this.a,this.b,this.c)},closestPointToPoint:function(){var e=new J,t=[new Oe,new Oe,new Oe],r=new o,n=new o;return function(i,a){a=a||new o;var s=1/0;if(e.setFromCoplanarPoints(this.a,this.b,this.c),e.projectPoint(i,r),!0===this.containsPoint(r))a.copy(r);else for(t[0].set(this.a,this.b),t[1].set(this.b,this.c),t[2].set(this.c,this.a),i=0;i<t.length;i++){t[i].closestPointToPoint(r,!0,n);var c=r.distanceToSquared(n);c<s&&(s=c,a.copy(n))}return a}}(),equals:function(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}),je.prototype=Object.assign(Object.create(ne.prototype),{constructor:je,isMesh:!0,setDrawMode:function(e){this.drawMode=e},copy:function(e){return ne.prototype.copy.call(this,e),this.drawMode=e.drawMode,void 0!==e.morphTargetInfluences&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),void 0!==e.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this},updateMorphTargets:function(){var e=this.geometry;if(e.isBufferGeometry){e=e.morphAttributes;var t=Object.keys(e);if(0<t.length){var r=e[t[0]];if(void 0!==r)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},e=0,t=r.length;e<t;e++){var n=r[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}else if(void 0!==(r=e.morphTargets)&&0<r.length)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},e=0,t=r.length;e<t;e++)n=r[e].name||String(e),this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e},raycast:function(){function e(e,t,r,n,i,o,a){return Pe.barycoordFromPoint(e,t,r,n,y),i.multiplyScalar(y.x),o.multiplyScalar(y.y),a.multiplyScalar(y.z),i.add(o).add(a),i.clone()}function t(e,t,r,n,i,o,a,s){return null===(1===t.side?n.intersectTriangle(a,o,i,!0,s):n.intersectTriangle(i,o,a,2!==t.side,s))?null:(_.copy(s),_.applyMatrix4(e.matrixWorld),(t=r.ray.origin.distanceTo(_))<r.near||t>r.far?null:{distance:t,point:_.clone(),object:e})}function i(r,n,i,o,a,s,c,p){return u.fromBufferAttribute(o,s),h.fromBufferAttribute(o,c),l.fromBufferAttribute(o,p),(r=t(r,r.material,n,i,u,h,l,b))&&(a&&(m.fromBufferAttribute(a,s),v.fromBufferAttribute(a,c),g.fromBufferAttribute(a,p),r.uv=e(b,u,h,l,m,v,g)),r.face=new ae(s,c,p,Pe.normal(u,h,l)),r.faceIndex=s),r}var a=new n,s=new Te,c=new Z,u=new o,h=new o,l=new o,p=new o,d=new o,f=new o,m=new r,v=new r,g=new r,y=new o,b=new o,_=new o;return function(r,n){var o=this.geometry,y=this.material,_=this.matrixWorld;if(void 0!==y&&(null===o.boundingSphere&&o.computeBoundingSphere(),c.copy(o.boundingSphere),c.applyMatrix4(_),!1!==r.ray.intersectsSphere(c)&&(a.getInverse(_),s.copy(r.ray).applyMatrix4(a),null===o.boundingBox||!1!==s.intersectsBox(o.boundingBox)))){var x;if(o.isBufferGeometry){var w,y=o.index,S=o.attributes.position,_=o.attributes.uv;if(null!==y){var M=0;for(w=y.count;M<w;M+=3){o=y.getX(M);var E=y.getX(M+1),C=y.getX(M+2);(x=i(this,r,s,S,_,o,E,C))&&(x.faceIndex=Math.floor(M/3),n.push(x))}}else if(void 0!==S)for(M=0,w=S.count;M<w;M+=3)o=M,E=M+1,C=M+2,(x=i(this,r,s,S,_,o,E,C))&&(x.index=o,n.push(x))}else if(o.isGeometry){_=Array.isArray(y);M=o.vertices,w=o.faces,0<(E=o.faceVertexUvs[0]).length&&(S=E);for(var T=0,O=w.length;T<O;T++){var P=w[T];if(void 0!==(x=_?y[P.materialIndex]:y)){E=M[P.a],C=M[P.b];var j=M[P.c];if(!0===x.morphTargets){var A=o.morphTargets,R=this.morphTargetInfluences;u.set(0,0,0),h.set(0,0,0),l.set(0,0,0);for(var L=0,N=A.length;L<N;L++){var I=R[L];if(0!==I){var D=A[L].vertices;u.addScaledVector(p.subVectors(D[P.a],E),I),h.addScaledVector(d.subVectors(D[P.b],C),I),l.addScaledVector(f.subVectors(D[P.c],j),I)}}u.add(E),h.add(C),l.add(j),E=u,C=h,j=l}(x=t(this,x,r,s,E,C,j,b))&&(S&&S[T]&&(A=S[T],m.copy(A[0]),v.copy(A[1]),g.copy(A[2]),x.uv=e(b,E,C,j,m,v,g)),x.face=P,x.faceIndex=T,n.push(x))}}}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}});var Ci=0;We.prototype=Object.assign(Object.create(ie.prototype),{constructor:We,isPerspectiveCamera:!0,copy:function(e,t){return ie.prototype.copy.call(this,e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this},setFocalLength:function(e){e=.5*this.getFilmHeight()/e,this.fov=2*ci.RAD2DEG*Math.atan(e),this.updateProjectionMatrix()},getFocalLength:function(){var e=Math.tan(.5*ci.DEG2RAD*this.fov);return.5*this.getFilmHeight()/e},getEffectiveFOV:function(){return 2*ci.RAD2DEG*Math.atan(Math.tan(.5*ci.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(e,t,r,n,i,o){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=r,this.view.offsetY=n,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var e=this.near,t=2*(a=e*Math.tan(.5*ci.DEG2RAD*this.fov)/this.zoom),r=-.5*(s=this.aspect*t),n=this.view;if(null!==this.view&&this.view.enabled)var i=n.fullWidth,o=n.fullHeight,r=r+n.offsetX*s/i,a=a-n.offsetY*t/o,s=n.width/i*s,t=n.height/o*t;0!==(n=this.filmOffset)&&(r+=e*n/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+s,a,a-t,e,this.far)},toJSON:function(e){return e=ne.prototype.toJSON.call(this,e),e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}),Xe.prototype=Object.assign(Object.create(We.prototype),{constructor:Xe,isArrayCamera:!0}),Qe.prototype.isFogExp2=!0,Qe.prototype.clone=function(){return new Qe(this.color.getHex(),this.density)},Qe.prototype.toJSON=function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}},et.prototype.isFog=!0,et.prototype.clone=function(){return new et(this.color.getHex(),this.near,this.far)},et.prototype.toJSON=function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}},tt.prototype=Object.assign(Object.create(ne.prototype),{constructor:tt,copy:function(e,t){return ne.prototype.copy.call(this,e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.fog&&(this.fog=e.fog.clone()),null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.autoUpdate=e.autoUpdate,this.matrixAutoUpdate=e.matrixAutoUpdate,this},toJSON:function(e){var t=ne.prototype.toJSON.call(this,e);return null!==this.background&&(t.object.background=this.background.toJSON(e)),null!==this.fog&&(t.object.fog=this.fog.toJSON()),t}}),rt.prototype=Object.assign(Object.create(ne.prototype),{constructor:rt,isLensFlare:!0,copy:function(e){ne.prototype.copy.call(this,e),this.positionScreen.copy(e.positionScreen),this.customUpdateCallback=e.customUpdateCallback;for(var t=0,r=e.lensFlares.length;t<r;t++)this.lensFlares.push(e.lensFlares[t]);return this},add:function(e,t,r,n,i,o){void 0===t&&(t=-1),void 0===r&&(r=0),void 0===o&&(o=1),void 0===i&&(i=new z(16777215)),void 0===n&&(n=1),r=Math.min(r,Math.max(0,r)),this.lensFlares.push({texture:e,size:t,distance:r,x:0,y:0,z:0,scale:1,rotation:0,opacity:o,color:i,blending:n})},updateLensFlares:function(){var e,t=this.lensFlares.length,r=2*-this.positionScreen.x,n=2*-this.positionScreen.y;for(e=0;e<t;e++){var i=this.lensFlares[e];i.x=this.positionScreen.x+r*i.distance,i.y=this.positionScreen.y+n*i.distance,i.wantedRotation=i.x*Math.PI*.25,i.rotation+=.25*(i.wantedRotation-i.rotation)}}}),(nt.prototype=Object.create(W.prototype)).constructor=nt,nt.prototype.isSpriteMaterial=!0,nt.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.rotation=e.rotation,this},it.prototype=Object.assign(Object.create(ne.prototype),{constructor:it,isSprite:!0,raycast:function(){var e=new o,t=new o,r=new o;return function(n,i){t.setFromMatrixPosition(this.matrixWorld),n.ray.closestPointToPoint(t,e),r.setFromMatrixScale(this.matrixWorld);var o=r.x*r.y/4;t.distanceToSquared(e)>o||(o=n.ray.origin.distanceTo(e))<n.near||o>n.far||i.push({distance:o,point:e.clone(),face:null,object:this})}}(),clone:function(){return new this.constructor(this.material).copy(this)}}),ot.prototype=Object.assign(Object.create(ne.prototype),{constructor:ot,copy:function(e){ne.prototype.copy.call(this,e,!1);for(var t=0,r=(e=e.levels).length;t<r;t++){var n=e[t];this.addLevel(n.object.clone(),n.distance)}return this},addLevel:function(e,t){void 0===t&&(t=0),t=Math.abs(t);for(var r=this.levels,n=0;n<r.length&&!(t<r[n].distance);n++);r.splice(n,0,{distance:t,object:e}),this.add(e)},getObjectForDistance:function(e){for(var t=this.levels,r=1,n=t.length;r<n&&!(e<t[r].distance);r++);return t[r-1].object},raycast:function(){var e=new o;return function(t,r){e.setFromMatrixPosition(this.matrixWorld);var n=t.ray.origin.distanceTo(e);this.getObjectForDistance(n).raycast(t,r)}}(),update:function(){var e=new o,t=new o;return function(r){var n=this.levels;if(1<n.length){e.setFromMatrixPosition(r.matrixWorld),t.setFromMatrixPosition(this.matrixWorld),r=e.distanceTo(t),n[0].object.visible=!0;for(var i=1,o=n.length;i<o&&r>=n[i].distance;i++)n[i-1].object.visible=!1,n[i].object.visible=!0;for(;i<o;i++)n[i].object.visible=!1}}}(),toJSON:function(e){(e=ne.prototype.toJSON.call(this,e)).object.levels=[];for(var t=this.levels,r=0,n=t.length;r<n;r++){var i=t[r];e.object.levels.push({object:i.object.uuid,distance:i.distance})}return e}}),Object.assign(at.prototype,{calculateInverses:function(){this.boneInverses=[];for(var e=0,t=this.bones.length;e<t;e++){var r=new n;this.bones[e]&&r.getInverse(this.bones[e].matrixWorld),this.boneInverses.push(r)}},pose:function(){var e,t,r=0;for(t=this.bones.length;r<t;r++)(e=this.bones[r])&&e.matrixWorld.getInverse(this.boneInverses[r]);for(r=0,t=this.bones.length;r<t;r++)(e=this.bones[r])&&(e.parent&&e.parent.isBone?(e.matrix.getInverse(e.parent.matrixWorld),e.matrix.multiply(e.matrixWorld)):e.matrix.copy(e.matrixWorld),e.matrix.decompose(e.position,e.quaternion,e.scale))},update:function(){var e=new n,t=new n;return function(){for(var r=this.bones,n=this.boneInverses,i=this.boneMatrices,o=this.boneTexture,a=0,s=r.length;a<s;a++)e.multiplyMatrices(r[a]?r[a].matrixWorld:t,n[a]),e.toArray(i,16*a);void 0!==o&&(o.needsUpdate=!0)}}(),clone:function(){return new at(this.bones,this.boneInverses)}}),st.prototype=Object.assign(Object.create(ne.prototype),{constructor:st,isBone:!0}),ct.prototype=Object.assign(Object.create(je.prototype),{constructor:ct,isSkinnedMesh:!0,initBones:function(){var e,t=[];if(this.geometry&&void 0!==this.geometry.bones){var r=0;for(e=this.geometry.bones.length;r<e;r++){var n=this.geometry.bones[r],i=new st;t.push(i),i.name=n.name,i.position.fromArray(n.pos),i.quaternion.fromArray(n.rotq),void 0!==n.scl&&i.scale.fromArray(n.scl)}for(r=0,e=this.geometry.bones.length;r<e;r++)-1!==(n=this.geometry.bones[r]).parent&&null!==n.parent&&void 0!==t[n.parent]?t[n.parent].add(t[r]):this.add(t[r])}return this.updateMatrixWorld(!0),t},bind:function(e,t){this.skeleton=e,void 0===t&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),t=this.matrixWorld),this.bindMatrix.copy(t),this.bindMatrixInverse.getInverse(t)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){var e;if(this.geometry&&this.geometry.isGeometry)for(e=0;e<this.geometry.skinWeights.length;e++){var t=1/(r=this.geometry.skinWeights[e]).manhattanLength();1/0!==t?r.multiplyScalar(t):r.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry){var r=new c,n=this.geometry.attributes.skinWeight;for(e=0;e<n.count;e++)r.x=n.getX(e),r.y=n.getY(e),r.z=n.getZ(e),r.w=n.getW(e),t=1/r.manhattanLength(),1/0!==t?r.multiplyScalar(t):r.set(1,0,0,0),n.setXYZW(e,r.x,r.y,r.z,r.w)}},updateMatrixWorld:function(e){je.prototype.updateMatrixWorld.call(this,e),"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),(ut.prototype=Object.create(W.prototype)).constructor=ut,ut.prototype.isLineBasicMaterial=!0,ut.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this},ht.prototype=Object.assign(Object.create(ne.prototype),{constructor:ht,isLine:!0,raycast:function(){var e=new n,t=new Te,r=new Z;return function(n,i){var a=(a=n.linePrecision)*a,s=this.geometry,c=this.matrixWorld;if(null===s.boundingSphere&&s.computeBoundingSphere(),r.copy(s.boundingSphere),r.applyMatrix4(c),!1!==n.ray.intersectsSphere(r)){e.getInverse(c),t.copy(n.ray).applyMatrix4(e);var u=new o,h=new o,c=new o,l=new o,p=this&&this.isLineSegments?2:1;if(s.isBufferGeometry){var d=s.index,f=s.attributes.position.array;if(null!==d)for(var m=d.array,s=0,v=m.length-1;s<v;s+=p)d=m[s+1],u.fromArray(f,3*m[s]),h.fromArray(f,3*d),(d=t.distanceSqToSegment(u,h,l,c))>a||(l.applyMatrix4(this.matrixWorld),(d=n.ray.origin.distanceTo(l))<n.near||d>n.far||i.push({distance:d,point:c.clone().applyMatrix4(this.matrixWorld),index:s,face:null,faceIndex:null,object:this}));else for(s=0,v=f.length/3-1;s<v;s+=p)u.fromArray(f,3*s),h.fromArray(f,3*s+3),(d=t.distanceSqToSegment(u,h,l,c))>a||(l.applyMatrix4(this.matrixWorld),(d=n.ray.origin.distanceTo(l))<n.near||d>n.far||i.push({distance:d,point:c.clone().applyMatrix4(this.matrixWorld),index:s,face:null,faceIndex:null,object:this}))}else if(s.isGeometry)for(u=s.vertices,h=u.length,s=0;s<h-1;s+=p)(d=t.distanceSqToSegment(u[s],u[s+1],l,c))>a||(l.applyMatrix4(this.matrixWorld),(d=n.ray.origin.distanceTo(l))<n.near||d>n.far||i.push({distance:d,point:c.clone().applyMatrix4(this.matrixWorld),index:s,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),lt.prototype=Object.assign(Object.create(ht.prototype),{constructor:lt,isLineSegments:!0}),pt.prototype=Object.assign(Object.create(ht.prototype),{constructor:pt,isLineLoop:!0}),(dt.prototype=Object.create(W.prototype)).constructor=dt,dt.prototype.isPointsMaterial=!0,dt.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this},ft.prototype=Object.assign(Object.create(ne.prototype),{constructor:ft,isPoints:!0,raycast:function(){var e=new n,t=new Te,r=new Z;return function(n,i){function a(e,r){var o=t.distanceSqToPoint(e);if(o<l){(e=t.closestPointToPoint(e)).applyMatrix4(u);var a=n.ray.origin.distanceTo(e);a<n.near||a>n.far||i.push({distance:a,distanceToRay:Math.sqrt(o),point:e.clone(),index:r,face:null,object:s})}}var s=this,c=this.geometry,u=this.matrixWorld,h=n.params.Points.threshold;if(null===c.boundingSphere&&c.computeBoundingSphere(),r.copy(c.boundingSphere),r.applyMatrix4(u),r.radius+=h,!1!==n.ray.intersectsSphere(r)){e.getInverse(u),t.copy(n.ray).applyMatrix4(e);var l=(h=h/((this.scale.x+this.scale.y+this.scale.z)/3))*h,h=new o;if(c.isBufferGeometry){var p=c.index,c=c.attributes.position.array;if(null!==p)for(var d=p.array,p=0,f=d.length;p<f;p++){var m=d[p];h.fromArray(c,3*m),a(h,m)}else for(p=0,d=c.length/3;p<d;p++)h.fromArray(c,3*p),a(h,p)}else for(h=c.vertices,p=0,d=h.length;p<d;p++)a(h[p],p)}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),mt.prototype=Object.assign(Object.create(ne.prototype),{constructor:mt}),(vt.prototype=Object.create(s.prototype)).constructor=vt,(gt.prototype=Object.create(s.prototype)).constructor=gt,gt.prototype.isCompressedTexture=!0,(yt.prototype=Object.create(s.prototype)).constructor=yt,yt.prototype.isDepthTexture=!0,(bt.prototype=Object.create(_e.prototype)).constructor=bt,(_t.prototype=Object.create(se.prototype)).constructor=_t,(xt.prototype=Object.create(_e.prototype)).constructor=xt,(wt.prototype=Object.create(se.prototype)).constructor=wt,(St.prototype=Object.create(_e.prototype)).constructor=St,(Mt.prototype=Object.create(se.prototype)).constructor=Mt,(Et.prototype=Object.create(St.prototype)).constructor=Et,(Ct.prototype=Object.create(se.prototype)).constructor=Ct,(Tt.prototype=Object.create(St.prototype)).constructor=Tt,(Ot.prototype=Object.create(se.prototype)).constructor=Ot,(Pt.prototype=Object.create(St.prototype)).constructor=Pt,(jt.prototype=Object.create(se.prototype)).constructor=jt,(At.prototype=Object.create(St.prototype)).constructor=At,(Rt.prototype=Object.create(se.prototype)).constructor=Rt,(Lt.prototype=Object.create(_e.prototype)).constructor=Lt,(Nt.prototype=Object.create(se.prototype)).constructor=Nt,(It.prototype=Object.create(_e.prototype)).constructor=It,(Dt.prototype=Object.create(se.prototype)).constructor=Dt,(kt.prototype=Object.create(_e.prototype)).constructor=kt;var Ti={area:function(e){for(var t=e.length,r=0,n=t-1,i=0;i<t;n=i++)r+=e[n].x*e[i].y-e[i].x*e[n].y;return.5*r},triangulate:function(e,t){var r=e.length;if(3>r)return null;var n,i=[],o=[],a=[];if(0<Ti.area(e))for(n=0;n<r;n++)o[n]=n;else for(n=0;n<r;n++)o[n]=r-1-n;var s=2*r;for(n=r-1;2<r;){if(0>=s--){console.warn("THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()");break}var c=n;r<=c&&(c=0),r<=(n=c+1)&&(n=0);var u=n+1;r<=u&&(u=0);e:{var h,l=e[o[c]].x,p=e[o[c]].y,d=e[o[n]].x,f=e[o[n]].y,m=e[o[u]].x,v=e[o[u]].y;if(0>=(d-l)*(v-p)-(f-p)*(m-l))var g=!1;else{var y=m-d,b=v-f,_=l-m,x=p-v,w=d-l;for(g=f-p,h=0;h<r;h++){var S=e[o[h]].x,M=e[o[h]].y;if(!(S===l&&M===p||S===d&&M===f||S===m&&M===v)){var E=S-l,C=M-p,T=S-d,O=M-f;if(S-=m,M-=v,O=y*O-b*T,C=w*C-g*E,S=_*M-x*S,O>=-Number.EPSILON&&S>=-Number.EPSILON&&C>=-Number.EPSILON){g=!1;break e}}}g=!0}}if(g){for(i.push([e[o[c]],e[o[n]],e[o[u]]]),a.push([o[c],o[n],o[u]]),c=n,u=n+1;u<r;c++,u++)o[c]=o[u];s=2*--r}}return t?a:i},triangulateShape:function(e,t){function r(e){var t=e.length;2<t&&e[t-1].equals(e[0])&&e.pop()}function n(e,t,r){return e.x!==t.x?e.x<t.x?e.x<=r.x&&r.x<=t.x:t.x<=r.x&&r.x<=e.x:e.y<t.y?e.y<=r.y&&r.y<=t.y:t.y<=r.y&&r.y<=e.y}function i(e,t,r,i,o){var a=t.x-e.x,s=t.y-e.y,c=i.x-r.x,u=i.y-r.y,h=e.x-r.x,l=e.y-r.y,p=s*c-a*u,d=s*h-a*l;if(Math.abs(p)>Number.EPSILON){if(0<p){if(0>d||d>p)return[];if(0>(c=u*h-c*l)||c>p)return[]}else{if(0<d||d<p)return[];if(0<(c=u*h-c*l)||c<p)return[]}return 0===c?!o||0!==d&&d!==p?[e]:[]:c===p?!o||0!==d&&d!==p?[t]:[]:0===d?[r]:d===p?[i]:(o=c/p,[{x:e.x+o*a,y:e.y+o*s}])}return 0!==d||u*h!=c*l?[]:(s=0===a&&0===s,c=0===c&&0===u,s&&c?e.x!==r.x||e.y!==r.y?[]:[e]:s?n(r,i,e)?[e]:[]:c?n(e,t,r)?[r]:[]:(0!==a?(e.x<t.x?(a=e,c=e.x,s=t,e=t.x):(a=t,c=t.x,s=e,e=e.x),r.x<i.x?(t=r,p=r.x,u=i,r=i.x):(t=i,p=i.x,u=r,r=r.x)):(e.y<t.y?(a=e,c=e.y,s=t,e=t.y):(a=t,c=t.y,s=e,e=e.y),r.y<i.y?(t=r,p=r.y,u=i,r=i.y):(t=i,p=i.y,u=r,r=r.y)),c<=p?e<p?[]:e===p?o?[]:[t]:e<=r?[t,s]:[t,u]:c>r?[]:c===r?o?[]:[a]:e<=r?[a,s]:[a,u]))}function o(e,t,r,n){var i=t.x-e.x,o=t.y-e.y;t=r.x-e.x,r=r.y-e.y;var a=n.x-e.x;return n=n.y-e.y,e=i*r-o*t,i=i*n-o*a,Math.abs(e)>Number.EPSILON?(t=a*r-n*t,0<e?0<=i&&0<=t:0<=i||0<=t):0<i}r(e),t.forEach(r);var a,s={},c=e.concat(),u=0;for(a=t.length;u<a;u++)Array.prototype.push.apply(c,t[u]);for(u=0,a=c.length;u<a;u++){var h=c[u].x+":"+c[u].y;void 0!==s[h]&&console.warn("THREE.ShapeUtils: Duplicate point",h,u),s[h]=u}for(u=function(e,t){function r(e,t){var r=u.length-1,n=e-1;0>n&&(n=r);var i=e+1;return i>r&&(i=0),!!(r=o(u[e],u[n],u[i],y[t]))&&(r=y.length-1,0>(n=t-1)&&(n=r),(i=t+1)>r&&(i=0),!!(r=o(y[t],y[n],y[i],u[e])))}function n(e,t){var r;for(r=0;r<u.length;r++){var n=r+1;if(n%=u.length,0<(n=i(e,t,u[r],u[n],!0)).length)return!0}return!1}function a(e,r){var n,o;for(n=0;n<h.length;n++){var a=t[h[n]];for(o=0;o<a.length;o++){var s=o+1;if(s%=a.length,0<(s=i(e,r,a[o],a[s],!0)).length)return!0}}return!1}var s,c,u=e.concat(),h=[];e=[];var l,p=0;for(s=t.length;p<s;p++)h.push(p);for(var d=0,f=2*h.length;0<h.length;){if(0>--f){console.log('THREE.ShapeUtils: Infinite Loop! Holes left:" + indepHoles.length + ", Probably Hole outside Shape!');break}for(c=d;c<u.length;c++){var m=u[c];for(s=-1,p=0;p<h.length;p++){var v=h[p],g=m.x+":"+m.y+":"+v;if(void 0===e[g]){var y=t[v];for(l=0;l<y.length;l++)if(v=y[l],r(c,l)&&!n(m,v)&&!a(m,v)){s=l,h.splice(p,1),d=u.slice(0,c+1),v=u.slice(c),l=y.slice(s);var b=y.slice(0,s+1);u=d.concat(l).concat(b).concat(v),d=c;break}if(0<=s)break;e[g]=!0}}if(0<=s)break}}return u}(e,t),c=Ti.triangulate(u,!1),u=0,a=c.length;u<a;u++)for(t=c[u],e=0;3>e;e++)h=t[e].x+":"+t[e].y,void 0!==(h=s[h])&&(t[e]=h);return c.concat()},isClockWise:function(e){return 0>Ti.area(e)}};(Bt.prototype=Object.create(se.prototype)).constructor=Bt,(Ft.prototype=Object.create(_e.prototype)).constructor=Ft,Ft.prototype.getArrays=function(){var e=(e=this.getAttribute("position"))?Array.prototype.slice.call(e.array):[],t=(t=this.getAttribute("uv"))?Array.prototype.slice.call(t.array):[],r=this.index;return{position:e,uv:t,index:r=r?Array.prototype.slice.call(r.array):[]}},Ft.prototype.addShapeList=function(e,t){var r=e.length;t.arrays=this.getArrays();for(var n=0;n<r;n++)this.addShape(e[n],t);this.setIndex(t.arrays.index),this.addAttribute("position",new ve(t.arrays.position,3)),this.addAttribute("uv",new ve(t.arrays.uv,2))},Ft.prototype.addShape=function(e,t){function n(e,t,r){return t||console.error("THREE.ExtrudeGeometry: vec does not exist"),t.clone().multiplyScalar(r).add(e)}function i(e,t,n){var i=e.x-t.x,o=e.y-t.y,a=n.x-e.x,s=n.y-e.y,c=i*i+o*o;if(Math.abs(i*s-o*a)>Number.EPSILON){var u=Math.sqrt(c),h=Math.sqrt(a*a+s*s),c=t.x-o/u;if(t=t.y+i/u,s=((n.x-s/h-c)*s-(n.y+a/h-t)*a)/(i*s-o*a),a=c+i*s-e.x,i=t+o*s-e.y,2>=(o=a*a+i*i))return new r(a,i);o=Math.sqrt(o/2)}else e=!1,i>Number.EPSILON?a>Number.EPSILON&&(e=!0):i<-Number.EPSILON?a<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(s)&&(e=!0),e?(a=-o,o=Math.sqrt(c)):(a=i,i=o,o=Math.sqrt(c/2));return new r(a/o,i/o)}function a(e,t){for($=e.length;0<=--$;){var r=$,n=$-1;0>n&&(n=e.length-1);var i,o=x+2*y;for(i=0;i<o;i++){var a=F*i,s=t+n+a,c=t+n+(p=F*(i+1)),p=t+r+p;u(t+r+a),u(s),u(p),u(s),u(c),u(p),a=l.length/3,h((a=M.generateSideWallUV(A,l,a-6,a-3,a-2,a-1))[0]),h(a[1]),h(a[3]),h(a[1]),h(a[2]),h(a[3])}}}function s(e,t,r){f.push(e),f.push(t),f.push(r)}function c(e,t,r){u(e),u(t),u(r),e=l.length/3,h((e=M.generateTopUV(A,l,e-3,e-2,e-1))[0]),h(e[1]),h(e[2])}function u(e){p.push(l.length/3),l.push(f[3*e+0]),l.push(f[3*e+1]),l.push(f[3*e+2])}function h(e){d.push(e.x),d.push(e.y)}var l=(m=t.arrays?t.arrays:this.getArrays()).position,p=m.index,d=m.uv,f=[],m=void 0!==t.amount?t.amount:100,v=void 0!==t.bevelThickness?t.bevelThickness:6,g=void 0!==t.bevelSize?t.bevelSize:v-2,y=void 0!==t.bevelSegments?t.bevelSegments:3,b=void 0===t.bevelEnabled||t.bevelEnabled,_=void 0!==t.curveSegments?t.curveSegments:12,x=void 0!==t.steps?t.steps:1,w=t.extrudePath,S=!1,M=void 0!==t.UVGenerator?t.UVGenerator:Bt.WorldUVGenerator;if(w){var E=w.getSpacedPoints(x);S=!0,b=!1;var C=void 0!==t.frames?t.frames:w.computeFrenetFrames(x,!1),T=new o,O=new o,P=new o}b||(g=v=y=0);var j,A=this;e=(_=e.extractPoints(_)).shape;var R=_.holes;if(!Ti.isClockWise(e)){e=e.reverse();var L=0;for(j=R.length;L<j;L++){var N=R[L];Ti.isClockWise(N)&&(R[L]=N.reverse())}}var I=Ti.triangulateShape(e,R),D=e;for(L=0,j=R.length;L<j;L++)N=R[L],e=e.concat(N);var k,B,F=e.length,U=I.length,_=[],$=0,z=D.length,G=z-1;for(k=$+1;$<z;$++,G++,k++)G===z&&(G=0),k===z&&(k=0),_[$]=i(D[$],D[G],D[k]);var w=[],V=_.concat();for(L=0,j=R.length;L<j;L++){N=R[L];var H=[];for($=0,G=(z=N.length)-1,k=$+1;$<z;$++,G++,k++)G===z&&(G=0),k===z&&(k=0),H[$]=i(N[$],N[G],N[k]);w.push(H),V=V.concat(H)}for(G=0;G<y;G++){z=G/y;var q=v*Math.cos(z*Math.PI/2);for(k=g*Math.sin(z*Math.PI/2),$=0,z=D.length;$<z;$++){var W=n(D[$],_[$],k);s(W.x,W.y,-q)}for(L=0,j=R.length;L<j;L++)for(N=R[L],H=w[L],$=0,z=N.length;$<z;$++)W=n(N[$],H[$],k),s(W.x,W.y,-q)}for(k=g,$=0;$<F;$++)W=b?n(e[$],V[$],k):e[$],S?(O.copy(C.normals[0]).multiplyScalar(W.x),T.copy(C.binormals[0]).multiplyScalar(W.y),P.copy(E[0]).add(O).add(T),s(P.x,P.y,P.z)):s(W.x,W.y,0);for(z=1;z<=x;z++)for($=0;$<F;$++)W=b?n(e[$],V[$],k):e[$],S?(O.copy(C.normals[z]).multiplyScalar(W.x),T.copy(C.binormals[z]).multiplyScalar(W.y),P.copy(E[z]).add(O).add(T),s(P.x,P.y,P.z)):s(W.x,W.y,m/x*z);for(G=y-1;0<=G;G--){for(z=G/y,q=v*Math.cos(z*Math.PI/2),k=g*Math.sin(z*Math.PI/2),$=0,z=D.length;$<z;$++)W=n(D[$],_[$],k),s(W.x,W.y,m+q);for(L=0,j=R.length;L<j;L++)for(N=R[L],H=w[L],$=0,z=N.length;$<z;$++)W=n(N[$],H[$],k),S?s(W.x,W.y+E[x-1].y,E[x-1].x+q):s(W.x,W.y,m+q)}!function(){var e=l.length/3;if(b){var r=0*F;for($=0;$<U;$++)B=I[$],c(B[2]+r,B[1]+r,B[0]+r);for(r=F*(x+2*y),$=0;$<U;$++)B=I[$],c(B[0]+r,B[1]+r,B[2]+r)}else{for($=0;$<U;$++)B=I[$],c(B[2],B[1],B[0]);for($=0;$<U;$++)B=I[$],c(B[0]+F*x,B[1]+F*x,B[2]+F*x)}A.addGroup(e,l.length/3-e,void 0!==t.material?t.material:0)}(),function(){var e=l.length/3,r=0;for(a(D,r),r+=D.length,L=0,j=R.length;L<j;L++)N=R[L],a(N,r),r+=N.length;A.addGroup(e,l.length/3-e,void 0!==t.extrudeMaterial?t.extrudeMaterial:1)}(),t.arrays||(this.setIndex(p),this.addAttribute("position",new ve(l,3)),this.addAttribute("uv",new ve(t.arrays.uv,2)))},Bt.WorldUVGenerator={generateTopUV:function(e,t,n,i,o){e=t[3*i],i=t[3*i+1];var a=t[3*o];return o=t[3*o+1],[new r(t[3*n],t[3*n+1]),new r(e,i),new r(a,o)]},generateSideWallUV:function(e,t,n,i,o,a){e=t[3*n];var s=t[3*n+1];n=t[3*n+2];var c=t[3*i],u=t[3*i+1];i=t[3*i+2];var h=t[3*o],l=t[3*o+1];o=t[3*o+2];var p=t[3*a],d=t[3*a+1];return t=t[3*a+2],.01>Math.abs(s-u)?[new r(e,1-n),new r(c,1-i),new r(h,1-o),new r(p,1-t)]:[new r(s,1-n),new r(u,1-i),new r(l,1-o),new r(d,1-t)]}},(Ut.prototype=Object.create(se.prototype)).constructor=Ut,($t.prototype=Object.create(Ft.prototype)).constructor=$t,(zt.prototype=Object.create(se.prototype)).constructor=zt,(Gt.prototype=Object.create(_e.prototype)).constructor=Gt,(Vt.prototype=Object.create(se.prototype)).constructor=Vt,(Ht.prototype=Object.create(_e.prototype)).constructor=Ht,(qt.prototype=Object.create(se.prototype)).constructor=qt,(Wt.prototype=Object.create(_e.prototype)).constructor=Wt,(Xt.prototype=Object.create(se.prototype)).constructor=Xt,(Yt.prototype=Object.create(_e.prototype)).constructor=Yt,(Kt.prototype=Object.create(_e.prototype)).constructor=Kt,(Zt.prototype=Object.create(se.prototype)).constructor=Zt,(Jt.prototype=Object.create(_e.prototype)).constructor=Jt,(Qt.prototype=Object.create(Zt.prototype)).constructor=Qt,(er.prototype=Object.create(Jt.prototype)).constructor=er,(tr.prototype=Object.create(se.prototype)).constructor=tr,(rr.prototype=Object.create(_e.prototype)).constructor=rr;var Oi=Object.freeze({WireframeGeometry:bt,ParametricGeometry:_t,ParametricBufferGeometry:xt,TetrahedronGeometry:Mt,TetrahedronBufferGeometry:Et,OctahedronGeometry:Ct,OctahedronBufferGeometry:Tt,IcosahedronGeometry:Ot,IcosahedronBufferGeometry:Pt,DodecahedronGeometry:jt,DodecahedronBufferGeometry:At,PolyhedronGeometry:wt,PolyhedronBufferGeometry:St,TubeGeometry:Rt,TubeBufferGeometry:Lt,TorusKnotGeometry:Nt,TorusKnotBufferGeometry:It,TorusGeometry:Dt,TorusBufferGeometry:kt,TextGeometry:Ut,TextBufferGeometry:$t,SphereGeometry:zt,SphereBufferGeometry:Gt,RingGeometry:Vt,RingBufferGeometry:Ht,PlaneGeometry:Se,PlaneBufferGeometry:Me,LatheGeometry:qt,LatheBufferGeometry:Wt,ShapeGeometry:Xt,ShapeBufferGeometry:Yt,ExtrudeGeometry:Bt,ExtrudeBufferGeometry:Ft,EdgesGeometry:Kt,ConeGeometry:Qt,ConeBufferGeometry:er,CylinderGeometry:Zt,CylinderBufferGeometry:Jt,CircleGeometry:tr,CircleBufferGeometry:rr,BoxGeometry:xe,BoxBufferGeometry:we});(nr.prototype=Object.create(W.prototype)).constructor=nr,nr.prototype.isShadowMaterial=!0,(ir.prototype=Object.create(Ce.prototype)).constructor=ir,ir.prototype.isRawShaderMaterial=!0,(or.prototype=Object.create(W.prototype)).constructor=or,or.prototype.isMeshStandardMaterial=!0,or.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},(ar.prototype=Object.create(or.prototype)).constructor=ar,ar.prototype.isMeshPhysicalMaterial=!0,ar.prototype.copy=function(e){return or.prototype.copy.call(this,e),this.defines={PHYSICAL:""},this.reflectivity=e.reflectivity,this.clearCoat=e.clearCoat,this.clearCoatRoughness=e.clearCoatRoughness,this},(sr.prototype=Object.create(W.prototype)).constructor=sr,sr.prototype.isMeshPhongMaterial=!0,sr.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},(cr.prototype=Object.create(sr.prototype)).constructor=cr,cr.prototype.isMeshToonMaterial=!0,cr.prototype.copy=function(e){return sr.prototype.copy.call(this,e),this.gradientMap=e.gradientMap,this},(ur.prototype=Object.create(W.prototype)).constructor=ur,ur.prototype.isMeshNormalMaterial=!0,ur.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},(hr.prototype=Object.create(W.prototype)).constructor=hr,hr.prototype.isMeshLambertMaterial=!0,hr.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},(lr.prototype=Object.create(ut.prototype)).constructor=lr,lr.prototype.isLineDashedMaterial=!0,lr.prototype.copy=function(e){return ut.prototype.copy.call(this,e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this};var Pi=Object.freeze({ShadowMaterial:nr,SpriteMaterial:nt,RawShaderMaterial:ir,ShaderMaterial:Ce,PointsMaterial:dt,MeshPhysicalMaterial:ar,MeshStandardMaterial:or,MeshPhongMaterial:sr,MeshToonMaterial:cr,MeshNormalMaterial:ur,MeshLambertMaterial:hr,MeshDepthMaterial:X,MeshDistanceMaterial:Y,MeshBasicMaterial:Ee,LineDashedMaterial:lr,LineBasicMaterial:ut,Material:W}),ji={enabled:!1,files:{},add:function(e,t){!1!==this.enabled&&(this.files[e]=t)},get:function(e){if(!1!==this.enabled)return this.files[e]},remove:function(e){delete this.files[e]},clear:function(){this.files={}}},Ai=new pr,Ri={};Object.assign(dr.prototype,{load:function(e,t,r,n){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);var i=this,o=ji.get(e);if(void 0!==o)return i.manager.itemStart(e),setTimeout(function(){t&&t(o),i.manager.itemEnd(e)},0),o;if(void 0===Ri[e]){if(s=e.match(/^data:(.*?)(;base64)?,(.*)$/)){r=s[1];var a=!!s[2],s=s[3],s=window.decodeURIComponent(s);a&&(s=window.atob(s));try{var c=(this.responseType||"").toLowerCase();switch(c){case"arraybuffer":case"blob":for(var u=new Uint8Array(s.length),a=0;a<s.length;a++)u[a]=s.charCodeAt(a);var h="blob"===c?new Blob([u.buffer],{type:r}):u.buffer;break;case"document":h=(new DOMParser).parseFromString(s,r);break;case"json":h=JSON.parse(s);break;default:h=s}window.setTimeout(function(){t&&t(h),i.manager.itemEnd(e)},0)}catch(t){window.setTimeout(function(){n&&n(t),i.manager.itemEnd(e),i.manager.itemError(e)},0)}}else{Ri[e]=[],Ri[e].push({onLoad:t,onProgress:r,onError:n});var l=new XMLHttpRequest;l.open("GET",e,!0),l.addEventListener("load",function(t){var r=t.target.response;ji.add(e,r);var n=Ri[e];if(delete Ri[e],200===this.status){for(var o=0,a=n.length;o<a;o++){var s=n[o];s.onLoad&&s.onLoad(r)}i.manager.itemEnd(e)}else if(0===this.status){for(console.warn("THREE.FileLoader: HTTP Status 0 received."),o=0,a=n.length;o<a;o++)(s=n[o]).onLoad&&s.onLoad(r);i.manager.itemEnd(e)}else{for(o=0,a=n.length;o<a;o++)(s=n[o]).onError&&s.onError(t);i.manager.itemEnd(e),i.manager.itemError(e)}},!1),l.addEventListener("progress",function(t){for(var r=Ri[e],n=0,i=r.length;n<i;n++){var o=r[n];o.onProgress&&o.onProgress(t)}},!1),l.addEventListener("error",function(t){var r=Ri[e];delete Ri[e];for(var n=0,o=r.length;n<o;n++){var a=r[n];a.onError&&a.onError(t)}i.manager.itemEnd(e),i.manager.itemError(e)},!1),void 0!==this.responseType&&(l.responseType=this.responseType),void 0!==this.withCredentials&&(l.withCredentials=this.withCredentials),l.overrideMimeType&&l.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(a in this.requestHeader)l.setRequestHeader(a,this.requestHeader[a]);l.send(null)}return i.manager.itemStart(e),l}Ri[e].push({onLoad:t,onProgress:r,onError:n})},setPath:function(e){return this.path=e,this},setResponseType:function(e){return this.responseType=e,this},setWithCredentials:function(e){return this.withCredentials=e,this},setMimeType:function(e){return this.mimeType=e,this},setRequestHeader:function(e){return this.requestHeader=e,this}}),Object.assign(fr.prototype,{load:function(e,t,r,n){function i(i){u.load(e[i],function(e){e=a._parser(e,!0),s[i]={width:e.width,height:e.height,format:e.format,mipmaps:e.mipmaps},6===(o+=1)&&(1===e.mipmapCount&&(c.minFilter=1006),c.format=e.format,c.needsUpdate=!0,t&&t(c))},r,n)}var o,a=this,s=[],c=new gt;c.image=s;var u=new dr(this.manager);if(u.setPath(this.path),u.setResponseType("arraybuffer"),Array.isArray(e))for(var h=o=0,l=e.length;h<l;++h)i(h);else u.load(e,function(e){if((e=a._parser(e,!0)).isCubemap)for(var r=e.mipmaps.length/e.mipmapCount,n=0;n<r;n++){s[n]={mipmaps:[]};for(var i=0;i<e.mipmapCount;i++)s[n].mipmaps.push(e.mipmaps[n*e.mipmapCount+i]),s[n].format=e.format,s[n].width=e.width,s[n].height=e.height}else c.image.width=e.width,c.image.height=e.height,c.mipmaps=e.mipmaps;1===e.mipmapCount&&(c.minFilter=1006),c.format=e.format,c.needsUpdate=!0,t&&t(c)},r,n);return c},setPath:function(e){return this.path=e,this}}),Object.assign(mr.prototype,{load:function(e,t,r,n){var i=this,o=new l,a=new dr(this.manager);return a.setResponseType("arraybuffer"),a.load(e,function(e){(e=i._parser(e))&&(void 0!==e.image?o.image=e.image:void 0!==e.data&&(o.image.width=e.width,o.image.height=e.height,o.image.data=e.data),o.wrapS=void 0!==e.wrapS?e.wrapS:1001,o.wrapT=void 0!==e.wrapT?e.wrapT:1001,o.magFilter=void 0!==e.magFilter?e.magFilter:1006,o.minFilter=void 0!==e.minFilter?e.minFilter:1008,o.anisotropy=void 0!==e.anisotropy?e.anisotropy:1,void 0!==e.format&&(o.format=e.format),void 0!==e.type&&(o.type=e.type),void 0!==e.mipmaps&&(o.mipmaps=e.mipmaps),1===e.mipmapCount&&(o.minFilter=1006),o.needsUpdate=!0,t&&t(o,e))},r,n),o}}),Object.assign(vr.prototype,{crossOrigin:"Anonymous",load:function(e,t,r,n){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);var i=this,o=ji.get(e);return void 0!==o?(i.manager.itemStart(e),setTimeout(function(){t&&t(o),i.manager.itemEnd(e)},0),o):((r=document.createElementNS("http://www.w3.org/1999/xhtml","img")).addEventListener("load",function(){ji.add(e,this),t&&t(this),i.manager.itemEnd(e)},!1),r.addEventListener("error",function(t){n&&n(t),i.manager.itemEnd(e),i.manager.itemError(e)},!1),"data:"!==e.substr(0,5)&&void 0!==this.crossOrigin&&(r.crossOrigin=this.crossOrigin),i.manager.itemStart(e),r.src=e,r)},setCrossOrigin:function(e){return this.crossOrigin=e,this},setPath:function(e){return this.path=e,this}}),Object.assign(gr.prototype,{crossOrigin:"Anonymous",load:function(e,t,r,n){function i(r){a.load(e[r],function(e){o.images[r]=e,6===++s&&(o.needsUpdate=!0,t&&t(o))},void 0,n)}var o=new p,a=new vr(this.manager);a.setCrossOrigin(this.crossOrigin),a.setPath(this.path);var s=0;for(r=0;r<e.length;++r)i(r);return o},setCrossOrigin:function(e){return this.crossOrigin=e,this},setPath:function(e){return this.path=e,this}}),Object.assign(yr.prototype,{crossOrigin:"Anonymous",load:function(e,t,r,n){var i=new vr(this.manager);i.setCrossOrigin(this.crossOrigin),i.setPath(this.path);var o=new s;return o.image=i.load(e,function(){var r=0<e.search(/\.(jpg|jpeg)$/)||0===e.search(/^data\:image\/jpeg/);o.format=r?1022:1023,o.needsUpdate=!0,void 0!==t&&t(o)},r,n),o},setCrossOrigin:function(e){return this.crossOrigin=e,this},setPath:function(e){return this.path=e,this}}),br.prototype=Object.assign(Object.create(ne.prototype),{constructor:br,isLight:!0,copy:function(e){return ne.prototype.copy.call(this,e),this.color.copy(e.color),this.intensity=e.intensity,this},toJSON:function(e){return e=ne.prototype.toJSON.call(this,e),e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}),_r.prototype=Object.assign(Object.create(br.prototype),{constructor:_r,isHemisphereLight:!0,copy:function(e){return br.prototype.copy.call(this,e),this.groundColor.copy(e.groundColor),this}}),Object.assign(xr.prototype,{copy:function(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var e={};return 0!==this.bias&&(e.bias=this.bias),1!==this.radius&&(e.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}),wr.prototype=Object.assign(Object.create(xr.prototype),{constructor:wr,isSpotLightShadow:!0,update:function(e){var t=this.camera,r=2*ci.RAD2DEG*e.angle,n=this.mapSize.width/this.mapSize.height;e=e.distance||t.far,r===t.fov&&n===t.aspect&&e===t.far||(t.fov=r,t.aspect=n,t.far=e,t.updateProjectionMatrix())}}),Sr.prototype=Object.assign(Object.create(br.prototype),{constructor:Sr,isSpotLight:!0,copy:function(e){return br.prototype.copy.call(this,e),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}),Mr.prototype=Object.assign(Object.create(br.prototype),{constructor:Mr,isPointLight:!0,copy:function(e){return br.prototype.copy.call(this,e),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}),Er.prototype=Object.assign(Object.create(xr.prototype),{constructor:Er}),Cr.prototype=Object.assign(Object.create(br.prototype),{constructor:Cr,isDirectionalLight:!0,copy:function(e){return br.prototype.copy.call(this,e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}),Tr.prototype=Object.assign(Object.create(br.prototype),{constructor:Tr,isAmbientLight:!0}),Or.prototype=Object.assign(Object.create(br.prototype),{constructor:Or,isRectAreaLight:!0,copy:function(e){return br.prototype.copy.call(this,e),this.width=e.width,this.height=e.height,this},toJSON:function(e){return e=br.prototype.toJSON.call(this,e),e.object.width=this.width,e.object.height=this.height,e}});var Li={arraySlice:function(e,t,r){return Li.isTypedArray(e)?new e.constructor(e.subarray(t,void 0!==r?r:e.length)):e.slice(t,r)},convertArray:function(e,t,r){return!e||!r&&e.constructor===t?e:"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)},isTypedArray:function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)},getKeyframeOrder:function(e){for(var t=e.length,r=Array(t),n=0;n!==t;++n)r[n]=n;return r.sort(function(t,r){return e[t]-e[r]}),r},sortedArray:function(e,t,r){for(var n=e.length,i=new e.constructor(n),o=0,a=0;a!==n;++o)for(var s=r[o]*t,c=0;c!==t;++c)i[a++]=e[s+c];return i},flattenJSON:function(e,t,r,n){for(var i=1,o=e[0];void 0!==o&&void 0===o[n];)o=e[i++];if(void 0!==o){var a=o[n];if(void 0!==a)if(Array.isArray(a))do{void 0!==(a=o[n])&&(t.push(o.time),r.push.apply(r,a)),o=e[i++]}while(void 0!==o);else if(void 0!==a.toArray)do{void 0!==(a=o[n])&&(t.push(o.time),a.toArray(r,r.length)),o=e[i++]}while(void 0!==o);else do{void 0!==(a=o[n])&&(t.push(o.time),r.push(a)),o=e[i++]}while(void 0!==o)}}};Object.assign(Pr.prototype,{evaluate:function(e){var t=this.parameterPositions,r=this._cachedIndex,n=t[r],i=t[r-1];e:{t:{r:{n:if(!(e<n)){for(var o=r+2;;){if(void 0===n){if(e<i)break n;return this._cachedIndex=r=t.length,this.afterEnd_(r-1,e,i)}if(r===o)break;if(i=n,n=t[++r],e<n)break t}n=t.length;break r}if(e>=i)break e;for(e<(o=t[1])&&(r=2,i=o),o=r-2;;){if(void 0===i)return this._cachedIndex=0,this.beforeStart_(0,e,n);if(r===o)break;if(n=i,i=t[--r-1],e>=i)break t}n=r,r=0}for(;r<n;)i=r+n>>>1,e<t[i]?n=i:r=i+1;if(n=t[r],void 0===(i=t[r-1]))return this._cachedIndex=0,this.beforeStart_(0,e,n);if(void 0===n)return this._cachedIndex=r=t.length,this.afterEnd_(r-1,i,e)}this._cachedIndex=r,this.intervalChanged_(r,i,n)}return this.interpolate_(r,i,e,n)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(e){var t=this.resultBuffer,r=this.sampleValues,n=this.valueSize;e*=n;for(var i=0;i!==n;++i)t[i]=r[e+i];return t},interpolate_:function(){throw Error("call to abstract method")},intervalChanged_:function(){}}),Object.assign(Pr.prototype,{beforeStart_:Pr.prototype.copySampleValue_,afterEnd_:Pr.prototype.copySampleValue_}),jr.prototype=Object.assign(Object.create(Pr.prototype),{constructor:jr,DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(e,t,r){var n=this.parameterPositions,i=e-2,o=e+1,a=n[i],s=n[o];if(void 0===a)switch(this.getSettings_().endingStart){case 2401:i=e,a=2*t-r;break;case 2402:a=t+n[i=n.length-2]-n[i+1];break;default:i=e,a=r}if(void 0===s)switch(this.getSettings_().endingEnd){case 2401:o=e,s=2*r-t;break;case 2402:o=1,s=r+n[1]-n[0];break;default:o=e-1,s=t}e=.5*(r-t),n=this.valueSize,this._weightPrev=e/(t-a),this._weightNext=e/(s-r),this._offsetPrev=i*n,this._offsetNext=o*n},interpolate_:function(e,t,r,n){var i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=(e*=a)-a,c=this._offsetPrev,u=this._offsetNext,h=this._weightPrev,l=this._weightNext,p=(r-t)/(n-t);for(t=-h*(n=(r=p*p)*p)+2*h*r-h*p,h=(1+h)*n+(-1.5-2*h)*r+(-.5+h)*p+1,p=(-1-l)*n+(1.5+l)*r+.5*p,l=l*n-l*r,r=0;r!==a;++r)i[r]=t*o[c+r]+h*o[s+r]+p*o[e+r]+l*o[u+r];return i}}),Ar.prototype=Object.assign(Object.create(Pr.prototype),{constructor:Ar,interpolate_:function(e,t,r,n){var i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=(e*=a)-a;for(r=1-(t=(r-t)/(n-t)),n=0;n!==a;++n)i[n]=o[s+n]*r+o[e+n]*t;return i}}),Rr.prototype=Object.assign(Object.create(Pr.prototype),{constructor:Rr,interpolate_:function(e){return this.copySampleValue_(e-1)}});var Ni={TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(e){return new Rr(this.times,this.values,this.getValueSize(),e)},InterpolantFactoryMethodLinear:function(e){return new Ar(this.times,this.values,this.getValueSize(),e)},InterpolantFactoryMethodSmooth:function(e){return new jr(this.times,this.values,this.getValueSize(),e)},setInterpolation:function(e){switch(e){case 2300:var t=this.InterpolantFactoryMethodDiscrete;break;case 2301:t=this.InterpolantFactoryMethodLinear;break;case 2302:t=this.InterpolantFactoryMethodSmooth}if(void 0===t){if(t="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name,void 0===this.createInterpolant){if(e===this.DefaultInterpolation)throw Error(t);this.setInterpolation(this.DefaultInterpolation)}console.warn("THREE.KeyframeTrackPrototype:",t)}else this.createInterpolant=t},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(e){if(0!==e)for(var t=this.times,r=0,n=t.length;r!==n;++r)t[r]+=e;return this},scale:function(e){if(1!==e)for(var t=this.times,r=0,n=t.length;r!==n;++r)t[r]*=e;return this},trim:function(e,t){for(var r=this.times,n=r.length,i=0,o=n-1;i!==n&&r[i]<e;)++i;for(;-1!==o&&r[o]>t;)--o;return++o,0===i&&o===n||(i>=o&&(o=Math.max(o,1),i=o-1),e=this.getValueSize(),this.times=Li.arraySlice(r,i,o),this.values=Li.arraySlice(this.values,i*e,o*e)),this},validate:function(){var e=!0;0!=(r=this.getValueSize())-Math.floor(r)&&(console.error("THREE.KeyframeTrackPrototype: Invalid value size in track.",this),e=!1);var t=this.times,r=this.values,n=t.length;0===n&&(console.error("THREE.KeyframeTrackPrototype: Track is empty.",this),e=!1);for(var i=null,o=0;o!==n;o++){var a=t[o];if("number"==typeof a&&isNaN(a)){console.error("THREE.KeyframeTrackPrototype: Time is not a valid number.",this,o,a),e=!1;break}if(null!==i&&i>a){console.error("THREE.KeyframeTrackPrototype: Out of order keys.",this,o,a,i),e=!1;break}i=a}if(void 0!==r&&Li.isTypedArray(r))for(o=0,t=r.length;o!==t;++o)if(n=r[o],isNaN(n)){console.error("THREE.KeyframeTrackPrototype: Value is not a valid number.",this,o,n),e=!1;break}return e},optimize:function(){for(var e,t,r=this.times,n=this.values,i=this.getValueSize(),o=2302===this.getInterpolation(),a=1,s=r.length-1,c=1;c<s;++c){e=!1;if((l=r[c])!==r[c+1]&&(1!==c||l!==l[0]))if(o)e=!0;else for(var u=(t=c*i)-i,h=t+i,l=0;l!==i;++l){var p=n[t+l];if(p!==n[u+l]||p!==n[h+l]){e=!0;break}}if(e){if(c!==a)for(r[a]=r[c],t=c*i,e=a*i,l=0;l!==i;++l)n[e+l]=n[t+l];++a}}if(0<s){for(r[a]=r[s],t=s*i,e=a*i,l=0;l!==i;++l)n[e+l]=n[t+l];++a}return a!==r.length&&(this.times=Li.arraySlice(r,0,a),this.values=Li.arraySlice(n,0,a*i)),this}};Nr.prototype=Object.assign(Object.create(Ni),{constructor:Nr,ValueTypeName:"vector"}),Ir.prototype=Object.assign(Object.create(Pr.prototype),{constructor:Ir,interpolate_:function(e,t,r,n){var o=this.resultBuffer,a=this.sampleValues,s=this.valueSize;for(t=(r-t)/(n-t),r=(e*=s)+s;e!==r;e+=4)i.slerpFlat(o,0,a,e-s,a,e,t);return o}}),Dr.prototype=Object.assign(Object.create(Ni),{constructor:Dr,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(e){return new Ir(this.times,this.values,this.getValueSize(),e)},InterpolantFactoryMethodSmooth:void 0}),kr.prototype=Object.assign(Object.create(Ni),{constructor:kr,ValueTypeName:"number"}),Br.prototype=Object.assign(Object.create(Ni),{constructor:Br,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Fr.prototype=Object.assign(Object.create(Ni),{constructor:Fr,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Ur.prototype=Object.assign(Object.create(Ni),{constructor:Ur,ValueTypeName:"color"}),$r.prototype=Ni,Ni.constructor=$r,Object.assign($r,{parse:function(e){if(void 0===e.type)throw Error("track type undefined, can not parse");var t=$r._getTrackTypeForValueTypeName(e.type);if(void 0===e.times){var r=[],n=[];Li.flattenJSON(e.keys,r,n,"value"),e.times=r,e.values=n}return void 0!==t.parse?t.parse(e):new t(e.name,e.times,e.values,e.interpolation)},toJSON:function(e){if(void 0!==(t=e.constructor).toJSON)t=t.toJSON(e);else{var t={name:e.name,times:Li.convertArray(e.times,Array),values:Li.convertArray(e.values,Array)},r=e.getInterpolation();r!==e.DefaultInterpolation&&(t.interpolation=r)}return t.type=e.ValueTypeName,t},_getTrackTypeForValueTypeName:function(e){switch(e.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return kr;case"vector":case"vector2":case"vector3":case"vector4":return Nr;case"color":return Ur;case"quaternion":return Dr;case"bool":case"boolean":return Fr;case"string":return Br}throw Error("Unsupported typeName: "+e)}}),Object.assign(zr,{parse:function(e){for(var t=[],r=e.tracks,n=1/(e.fps||1),i=0,o=r.length;i!==o;++i)t.push($r.parse(r[i]).scale(n));return new zr(e.name,e.duration,t)},toJSON:function(e){var t=[],r=e.tracks;e={name:e.name,duration:e.duration,tracks:t};for(var n=0,i=r.length;n!==i;++n)t.push($r.toJSON(r[n]));return e},CreateFromMorphTargetSequence:function(e,t,r,n){for(var i=t.length,o=[],a=0;a<i;a++){u=[];(c=[]).push((a+i-1)%i,a,(a+1)%i),u.push(0,1,0);var s=Li.getKeyframeOrder(c),c=Li.sortedArray(c,1,s),u=Li.sortedArray(u,1,s);n||0!==c[0]||(c.push(i),u.push(u[0])),o.push(new kr(".morphTargetInfluences["+t[a].name+"]",c,u).scale(1/r))}return new zr(e,-1,o)},findByName:function(e,t){var r=e;for(Array.isArray(e)||(r=e.geometry&&e.geometry.animations||e.animations),e=0;e<r.length;e++)if(r[e].name===t)return r[e];return null},CreateClipsFromMorphTargetSequences:function(e,t,r){for(var n,i={},o=/^([\w-]*?)([\d]+)$/,a=0,s=e.length;a<s;a++){var c=e[a],u=c.name.match(o);u&&1<u.length&&(n=u[1],(u=i[n])||(i[n]=u=[]),u.push(c))}e=[];for(n in i)e.push(zr.CreateFromMorphTargetSequence(n,i[n],t,r));return e},parseAnimation:function(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;var r=function(e,t,r,n,i){if(0!==r.length){var o=[],a=[];Li.flattenJSON(r,o,a,n),0!==o.length&&i.push(new e(t,o,a))}},n=[],i=e.name||"default",o=e.length||-1,a=e.fps||30;e=e.hierarchy||[];for(var s=0;s<e.length;s++){var c=e[s].keys;if(c&&0!==c.length)if(c[0].morphTargets){for(var o={},u=0;u<c.length;u++)if(c[u].morphTargets)for(d=0;d<c[u].morphTargets.length;d++)o[c[u].morphTargets[d]]=-1;for(var h in o){for(var l=[],p=[],d=0;d!==c[u].morphTargets.length;++d){var f=c[u];l.push(f.time),p.push(f.morphTarget===h?1:0)}n.push(new kr(".morphTargetInfluence["+h+"]",l,p))}o=o.length*(a||1)}else u=".bones["+t[s].name+"]",r(Nr,u+".position",c,"pos",n),r(Dr,u+".quaternion",c,"rot",n),r(Nr,u+".scale",c,"scl",n)}return 0===n.length?null:new zr(i,o,n)}}),Object.assign(zr.prototype,{resetDuration:function(){for(var e=0,t=0,r=this.tracks.length;t!==r;++t)var n=this.tracks[t],e=Math.max(e,n.times[n.times.length-1]);this.duration=e},trim:function(){for(var e=0;e<this.tracks.length;e++)this.tracks[e].trim(0,this.duration);return this},optimize:function(){for(var e=0;e<this.tracks.length;e++)this.tracks[e].optimize();return this}}),Object.assign(Gr.prototype,{load:function(e,t,r,n){var i=this;new dr(i.manager).load(e,function(e){t(i.parse(JSON.parse(e)))},r,n)},setTextures:function(e){this.textures=e},parse:function(e){function t(e){return void 0===n[e]&&console.warn("THREE.MaterialLoader: Undefined texture",e),n[e]}var n=this.textures,i=new Pi[e.type];if(void 0!==e.uuid&&(i.uuid=e.uuid),void 0!==e.name&&(i.name=e.name),void 0!==e.color&&i.color.setHex(e.color),void 0!==e.roughness&&(i.roughness=e.roughness),void 0!==e.metalness&&(i.metalness=e.metalness),void 0!==e.emissive&&i.emissive.setHex(e.emissive),void 0!==e.specular&&i.specular.setHex(e.specular),void 0!==e.shininess&&(i.shininess=e.shininess),void 0!==e.clearCoat&&(i.clearCoat=e.clearCoat),void 0!==e.clearCoatRoughness&&(i.clearCoatRoughness=e.clearCoatRoughness),void 0!==e.uniforms&&(i.uniforms=e.uniforms),void 0!==e.vertexShader&&(i.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(i.fragmentShader=e.fragmentShader),void 0!==e.vertexColors&&(i.vertexColors=e.vertexColors),void 0!==e.fog&&(i.fog=e.fog),void 0!==e.flatShading&&(i.flatShading=e.flatShading),void 0!==e.blending&&(i.blending=e.blending),void 0!==e.side&&(i.side=e.side),void 0!==e.opacity&&(i.opacity=e.opacity),void 0!==e.transparent&&(i.transparent=e.transparent),void 0!==e.alphaTest&&(i.alphaTest=e.alphaTest),void 0!==e.depthTest&&(i.depthTest=e.depthTest),void 0!==e.depthWrite&&(i.depthWrite=e.depthWrite),void 0!==e.colorWrite&&(i.colorWrite=e.colorWrite),void 0!==e.wireframe&&(i.wireframe=e.wireframe),void 0!==e.wireframeLinewidth&&(i.wireframeLinewidth=e.wireframeLinewidth),void 0!==e.wireframeLinecap&&(i.wireframeLinecap=e.wireframeLinecap),void 0!==e.wireframeLinejoin&&(i.wireframeLinejoin=e.wireframeLinejoin),void 0!==e.rotation&&(i.rotation=e.rotation),1!==e.linewidth&&(i.linewidth=e.linewidth),void 0!==e.dashSize&&(i.dashSize=e.dashSize),void 0!==e.gapSize&&(i.gapSize=e.gapSize),void 0!==e.scale&&(i.scale=e.scale),void 0!==e.skinning&&(i.skinning=e.skinning),void 0!==e.morphTargets&&(i.morphTargets=e.morphTargets),void 0!==e.dithering&&(i.dithering=e.dithering),void 0!==e.visible&&(i.visible=e.visible),void 0!==e.userData&&(i.userData=e.userData),void 0!==e.shading&&(i.flatShading=1===e.shading),void 0!==e.size&&(i.size=e.size),void 0!==e.sizeAttenuation&&(i.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(i.map=t(e.map)),void 0!==e.alphaMap&&(i.alphaMap=t(e.alphaMap),i.transparent=!0),void 0!==e.bumpMap&&(i.bumpMap=t(e.bumpMap)),void 0!==e.bumpScale&&(i.bumpScale=e.bumpScale),void 0!==e.normalMap&&(i.normalMap=t(e.normalMap)),void 0!==e.normalScale){var o=e.normalScale;!1===Array.isArray(o)&&(o=[o,o]),i.normalScale=(new r).fromArray(o)}return void 0!==e.displacementMap&&(i.displacementMap=t(e.displacementMap)),void 0!==e.displacementScale&&(i.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(i.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(i.roughnessMap=t(e.roughnessMap)),void 0!==e.metalnessMap&&(i.metalnessMap=t(e.metalnessMap)),void 0!==e.emissiveMap&&(i.emissiveMap=t(e.emissiveMap)),void 0!==e.emissiveIntensity&&(i.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(i.specularMap=t(e.specularMap)),void 0!==e.envMap&&(i.envMap=t(e.envMap)),void 0!==e.reflectivity&&(i.reflectivity=e.reflectivity),void 0!==e.lightMap&&(i.lightMap=t(e.lightMap)),void 0!==e.lightMapIntensity&&(i.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(i.aoMap=t(e.aoMap)),void 0!==e.aoMapIntensity&&(i.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(i.gradientMap=t(e.gradientMap)),i}}),Object.assign(Vr.prototype,{load:function(e,t,r,n){var i=this;new dr(i.manager).load(e,function(e){t(i.parse(JSON.parse(e)))},r,n)},parse:function(e){var t=new _e,r=e.data.index;void 0!==r&&(r=new Ii[r.type](r.array),t.setIndex(new ce(r,1)));var n=e.data.attributes;for(a in n){var i=n[a];r=new Ii[i.type](i.array),t.addAttribute(a,new ce(r,i.itemSize,i.normalized))}var a=e.data.groups||e.data.drawcalls||e.data.offsets;if(void 0!==a)for(r=0,n=a.length;r!==n;++r)i=a[r],t.addGroup(i.start,i.count,i.materialIndex);return void 0!==(e=e.data.boundingSphere)&&(a=new o,void 0!==e.center&&a.fromArray(e.center),t.boundingSphere=new Z(a,e.radius)),t}});var Ii={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!=typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};Hr.Handlers={handlers:[],add:function(e,t){this.handlers.push(e,t)},get:function(e){for(var t=this.handlers,r=0,n=t.length;r<n;r+=2){var i=t[r+1];if(t[r].test(e))return i}return null}},Object.assign(Hr.prototype,{crossOrigin:void 0,extractUrlBase:function(e){return 1===(e=e.split("/")).length?"./":(e.pop(),e.join("/")+"/")},initMaterials:function(e,t,r){for(var n=[],i=0;i<e.length;++i)n[i]=this.createMaterial(e[i],t,r);return n},createMaterial:function(){var e={NoBlending:0,NormalBlending:1,AdditiveBlending:2,SubtractiveBlending:3,MultiplyBlending:4,CustomBlending:5},t=new z,r=new yr,n=new Gr;return function(i,o,a){function s(e,t,n,i,s){e=o+e;var c=Hr.Handlers.get(e);return null!==c?e=c.load(e):(r.setCrossOrigin(a),e=r.load(e)),void 0!==t&&(e.repeat.fromArray(t),1!==t[0]&&(e.wrapS=1e3),1!==t[1]&&(e.wrapT=1e3)),void 0!==n&&e.offset.fromArray(n),void 0!==i&&("repeat"===i[0]&&(e.wrapS=1e3),"mirror"===i[0]&&(e.wrapS=1002),"repeat"===i[1]&&(e.wrapT=1e3),"mirror"===i[1]&&(e.wrapT=1002)),void 0!==s&&(e.anisotropy=s),t=ci.generateUUID(),u[t]=e,t}var c,u={},h={uuid:ci.generateUUID(),type:"MeshLambertMaterial"};for(c in i){var l=i[c];switch(c){case"DbgColor":case"DbgIndex":case"opticalDensity":case"illumination":break;case"DbgName":h.name=l;break;case"blending":h.blending=e[l];break;case"colorAmbient":case"mapAmbient":console.warn("THREE.Loader.createMaterial:",c,"is no longer supported.");break;case"colorDiffuse":h.color=t.fromArray(l).getHex();break;case"colorSpecular":h.specular=t.fromArray(l).getHex();break;case"colorEmissive":h.emissive=t.fromArray(l).getHex();break;case"specularCoef":h.shininess=l;break;case"shading":"basic"===l.toLowerCase()&&(h.type="MeshBasicMaterial"),"phong"===l.toLowerCase()&&(h.type="MeshPhongMaterial"),"standard"===l.toLowerCase()&&(h.type="MeshStandardMaterial");break;case"mapDiffuse":h.map=s(l,i.mapDiffuseRepeat,i.mapDiffuseOffset,i.mapDiffuseWrap,i.mapDiffuseAnisotropy);break;case"mapDiffuseRepeat":case"mapDiffuseOffset":case"mapDiffuseWrap":case"mapDiffuseAnisotropy":break;case"mapEmissive":h.emissiveMap=s(l,i.mapEmissiveRepeat,i.mapEmissiveOffset,i.mapEmissiveWrap,i.mapEmissiveAnisotropy);break;case"mapEmissiveRepeat":case"mapEmissiveOffset":case"mapEmissiveWrap":case"mapEmissiveAnisotropy":break;case"mapLight":h.lightMap=s(l,i.mapLightRepeat,i.mapLightOffset,i.mapLightWrap,i.mapLightAnisotropy);break;case"mapLightRepeat":case"mapLightOffset":case"mapLightWrap":case"mapLightAnisotropy":break;case"mapAO":h.aoMap=s(l,i.mapAORepeat,i.mapAOOffset,i.mapAOWrap,i.mapAOAnisotropy);break;case"mapAORepeat":case"mapAOOffset":case"mapAOWrap":case"mapAOAnisotropy":break;case"mapBump":h.bumpMap=s(l,i.mapBumpRepeat,i.mapBumpOffset,i.mapBumpWrap,i.mapBumpAnisotropy);break;case"mapBumpScale":h.bumpScale=l;break;case"mapBumpRepeat":case"mapBumpOffset":case"mapBumpWrap":case"mapBumpAnisotropy":break;case"mapNormal":h.normalMap=s(l,i.mapNormalRepeat,i.mapNormalOffset,i.mapNormalWrap,i.mapNormalAnisotropy);break;case"mapNormalFactor":h.normalScale=[l,l];break;case"mapNormalRepeat":case"mapNormalOffset":case"mapNormalWrap":case"mapNormalAnisotropy":break;case"mapSpecular":h.specularMap=s(l,i.mapSpecularRepeat,i.mapSpecularOffset,i.mapSpecularWrap,i.mapSpecularAnisotropy);break;case"mapSpecularRepeat":case"mapSpecularOffset":case"mapSpecularWrap":case"mapSpecularAnisotropy":break;case"mapMetalness":h.metalnessMap=s(l,i.mapMetalnessRepeat,i.mapMetalnessOffset,i.mapMetalnessWrap,i.mapMetalnessAnisotropy);break;case"mapMetalnessRepeat":case"mapMetalnessOffset":case"mapMetalnessWrap":case"mapMetalnessAnisotropy":break;case"mapRoughness":h.roughnessMap=s(l,i.mapRoughnessRepeat,i.mapRoughnessOffset,i.mapRoughnessWrap,i.mapRoughnessAnisotropy);break;case"mapRoughnessRepeat":case"mapRoughnessOffset":case"mapRoughnessWrap":case"mapRoughnessAnisotropy":break;case"mapAlpha":h.alphaMap=s(l,i.mapAlphaRepeat,i.mapAlphaOffset,i.mapAlphaWrap,i.mapAlphaAnisotropy);break;case"mapAlphaRepeat":case"mapAlphaOffset":case"mapAlphaWrap":case"mapAlphaAnisotropy":break;case"flipSided":h.side=1;break;case"doubleSided":h.side=2;break;case"transparency":console.warn("THREE.Loader.createMaterial: transparency has been renamed to opacity"),h.opacity=l;break;case"depthTest":case"depthWrite":case"colorWrite":case"opacity":case"reflectivity":case"transparent":case"visible":case"wireframe":h[c]=l;break;case"vertexColors":!0===l&&(h.vertexColors=2),"face"===l&&(h.vertexColors=1);break;default:console.error("THREE.Loader.createMaterial: Unsupported",c,l)}}return"MeshBasicMaterial"===h.type&&delete h.emissive,"MeshPhongMaterial"!==h.type&&delete h.specular,1>h.opacity&&(h.transparent=!0),n.setTextures(u),n.parse(h)}}()}),Object.assign(qr.prototype,{load:function(e,t,r,n){var i=this,o=this.texturePath&&"string"==typeof this.texturePath?this.texturePath:Hr.prototype.extractUrlBase(e),a=new dr(this.manager);a.setWithCredentials(this.withCredentials),a.load(e,function(r){var n=(r=JSON.parse(r)).metadata;if(void 0!==n&&void 0!==(n=n.type)){if("object"===n.toLowerCase())return void console.error("THREE.JSONLoader: "+e+" should be loaded with THREE.ObjectLoader instead.");if("scene"===n.toLowerCase())return void console.error("THREE.JSONLoader: "+e+" should be loaded with THREE.SceneLoader instead.")}r=i.parse(r,o),t(r.geometry,r.materials)},r,n)},setTexturePath:function(e){this.texturePath=e},parse:function(e,t){void 0!==e.data&&(e=e.data),e.scale=void 0!==e.scale?1/e.scale:1;var n,i,a,s=new se,u=e,h=u.faces,l=u.vertices,p=u.normals,d=u.colors,f=u.scale,m=0;if(void 0!==u.uvs){for(n=0;n<u.uvs.length;n++)u.uvs[n].length&&m++;for(n=0;n<m;n++)s.faceVertexUvs[n]=[]}var v=0;for(a=l.length;v<a;)n=new o,n.x=l[v++]*f,n.y=l[v++]*f,n.z=l[v++]*f,s.vertices.push(n);for(v=0,a=h.length;v<a;){var g=1&(l=h[v++]),y=2&l;n=8&l;var b=16&l,_=32&l;if(f=64&l,l&=128,g){(g=new ae).a=h[v],g.b=h[v+1],g.c=h[v+3];var x=new ae;if(x.a=h[v+1],x.b=h[v+2],x.c=h[v+3],v+=4,y&&(y=h[v++],g.materialIndex=y,x.materialIndex=y),y=s.faces.length,n)for(n=0;n<m;n++){var w=u.uvs[n];for(s.faceVertexUvs[n][y]=[],s.faceVertexUvs[n][y+1]=[],i=0;4>i;i++){var S=h[v++],M=w[2*S];M=new r(M,S=w[2*S+1]),2!==i&&s.faceVertexUvs[n][y].push(M),0!==i&&s.faceVertexUvs[n][y+1].push(M)}}if(b&&(b=3*h[v++],g.normal.set(p[b++],p[b++],p[b]),x.normal.copy(g.normal)),_)for(n=0;4>n;n++)b=3*h[v++],_=new o(p[b++],p[b++],p[b]),2!==n&&g.vertexNormals.push(_),0!==n&&x.vertexNormals.push(_);if(f&&(f=h[v++],f=d[f],g.color.setHex(f),x.color.setHex(f)),l)for(n=0;4>n;n++)f=h[v++],f=d[f],2!==n&&g.vertexColors.push(new z(f)),0!==n&&x.vertexColors.push(new z(f));s.faces.push(g),s.faces.push(x)}else{if(g=new ae,g.a=h[v++],g.b=h[v++],g.c=h[v++],y&&(y=h[v++],g.materialIndex=y),y=s.faces.length,n)for(n=0;n<m;n++)for(w=u.uvs[n],s.faceVertexUvs[n][y]=[],i=0;3>i;i++)S=h[v++],M=w[2*S],S=w[2*S+1],M=new r(M,S),s.faceVertexUvs[n][y].push(M);if(b&&(b=3*h[v++],g.normal.set(p[b++],p[b++],p[b])),_)for(n=0;3>n;n++)b=3*h[v++],_=new o(p[b++],p[b++],p[b]),g.vertexNormals.push(_);if(f&&(f=h[v++],g.color.setHex(d[f])),l)for(n=0;3>n;n++)f=h[v++],g.vertexColors.push(new z(d[f]));s.faces.push(g)}}if(u=e,v=void 0!==u.influencesPerVertex?u.influencesPerVertex:2,u.skinWeights)for(a=0,h=u.skinWeights.length;a<h;a+=v)s.skinWeights.push(new c(u.skinWeights[a],1<v?u.skinWeights[a+1]:0,2<v?u.skinWeights[a+2]:0,3<v?u.skinWeights[a+3]:0));if(u.skinIndices)for(a=0,h=u.skinIndices.length;a<h;a+=v)s.skinIndices.push(new c(u.skinIndices[a],1<v?u.skinIndices[a+1]:0,2<v?u.skinIndices[a+2]:0,3<v?u.skinIndices[a+3]:0));if(s.bones=u.bones,s.bones&&0<s.bones.length&&(s.skinWeights.length!==s.skinIndices.length||s.skinIndices.length!==s.vertices.length)&&console.warn("When skinning, number of vertices ("+s.vertices.length+"), skinIndices ("+s.skinIndices.length+"), and skinWeights ("+s.skinWeights.length+") should match."),a=e,h=a.scale,void 0!==a.morphTargets)for(u=0,v=a.morphTargets.length;u<v;u++)for(s.morphTargets[u]={},s.morphTargets[u].name=a.morphTargets[u].name,s.morphTargets[u].vertices=[],p=s.morphTargets[u].vertices,d=a.morphTargets[u].vertices,m=0,l=d.length;m<l;m+=3)f=new o,f.x=d[m]*h,f.y=d[m+1]*h,f.z=d[m+2]*h,p.push(f);if(void 0!==a.morphColors&&0<a.morphColors.length)for(console.warn('THREE.JSONLoader: "morphColors" no longer supported. Using them as face colors.'),h=s.faces,a=a.morphColors[0].colors,u=0,v=h.length;u<v;u++)h[u].color.fromArray(a,3*u);for(u=[],v=[],void 0!==(a=e).animation&&v.push(a.animation),void 0!==a.animations&&(a.animations.length?v=v.concat(a.animations):v.push(a.animations)),a=0;a<v.length;a++)(h=zr.parseAnimation(v[a],s.bones))&&u.push(h);return s.morphTargets&&(v=zr.CreateClipsFromMorphTargetSequences(s.morphTargets,10),u=u.concat(v)),0<u.length&&(s.animations=u),s.computeFaceNormals(),s.computeBoundingSphere(),void 0===e.materials||0===e.materials.length?{geometry:s}:(e=Hr.prototype.initMaterials(e.materials,t,this.crossOrigin),{geometry:s,materials:e})}}),Object.assign(Wr.prototype,{load:function(e,t,r,n){""===this.texturePath&&(this.texturePath=e.substring(0,e.lastIndexOf("/")+1));var i=this;new dr(i.manager).load(e,function(r){var o=null;try{o=JSON.parse(r)}catch(t){return void 0!==n&&n(t),void console.error("THREE:ObjectLoader: Can't parse "+e+".",t.message)}void 0===(r=o.metadata)||void 0===r.type||"geometry"===r.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+e+". Use THREE.JSONLoader instead."):i.parse(o,t)},r,n)},setTexturePath:function(e){this.texturePath=e},setCrossOrigin:function(e){this.crossOrigin=e},parse:function(e,t){var r=this.parseGeometries(e.geometries),n=this.parseImages(e.images,function(){void 0!==t&&t(i)}),n=this.parseTextures(e.textures,n),n=this.parseMaterials(e.materials,n),i=this.parseObject(e.object,r,n);return e.animations&&(i.animations=this.parseAnimations(e.animations)),void 0!==e.images&&0!==e.images.length||void 0===t||t(i),i},parseGeometries:function(e){var t={};if(void 0!==e)for(var r=new qr,n=new Vr,i=0,o=e.length;i<o;i++){var a=e[i];switch(a.type){case"PlaneGeometry":case"PlaneBufferGeometry":var s=new Oi[a.type](a.width,a.height,a.widthSegments,a.heightSegments);break;case"BoxGeometry":case"BoxBufferGeometry":case"CubeGeometry":s=new Oi[a.type](a.width,a.height,a.depth,a.widthSegments,a.heightSegments,a.depthSegments);break;case"CircleGeometry":case"CircleBufferGeometry":s=new Oi[a.type](a.radius,a.segments,a.thetaStart,a.thetaLength);break;case"CylinderGeometry":case"CylinderBufferGeometry":s=new Oi[a.type](a.radiusTop,a.radiusBottom,a.height,a.radialSegments,a.heightSegments,a.openEnded,a.thetaStart,a.thetaLength);break;case"ConeGeometry":case"ConeBufferGeometry":s=new Oi[a.type](a.radius,a.height,a.radialSegments,a.heightSegments,a.openEnded,a.thetaStart,a.thetaLength);break;case"SphereGeometry":case"SphereBufferGeometry":s=new Oi[a.type](a.radius,a.widthSegments,a.heightSegments,a.phiStart,a.phiLength,a.thetaStart,a.thetaLength);break;case"DodecahedronGeometry":case"DodecahedronBufferGeometry":case"IcosahedronGeometry":case"IcosahedronBufferGeometry":case"OctahedronGeometry":case"OctahedronBufferGeometry":case"TetrahedronGeometry":case"TetrahedronBufferGeometry":s=new Oi[a.type](a.radius,a.detail);break;case"RingGeometry":case"RingBufferGeometry":s=new Oi[a.type](a.innerRadius,a.outerRadius,a.thetaSegments,a.phiSegments,a.thetaStart,a.thetaLength);break;case"TorusGeometry":case"TorusBufferGeometry":s=new Oi[a.type](a.radius,a.tube,a.radialSegments,a.tubularSegments,a.arc);break;case"TorusKnotGeometry":case"TorusKnotBufferGeometry":s=new Oi[a.type](a.radius,a.tube,a.tubularSegments,a.radialSegments,a.p,a.q);break;case"LatheGeometry":case"LatheBufferGeometry":s=new Oi[a.type](a.points,a.segments,a.phiStart,a.phiLength);break;case"PolyhedronGeometry":case"PolyhedronBufferGeometry":s=new Oi[a.type](a.vertices,a.indices,a.radius,a.details);break;case"BufferGeometry":s=n.parse(a);break;case"Geometry":s=r.parse(a,this.texturePath).geometry;break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+a.type+'"');continue}s.uuid=a.uuid,void 0!==a.name&&(s.name=a.name),t[a.uuid]=s}return t},parseMaterials:function(e,t){var r={};if(void 0!==e){var n=new Gr;n.setTextures(t),t=0;for(var i=e.length;t<i;t++){var o=e[t];if("MultiMaterial"===o.type){for(var a=[],s=0;s<o.materials.length;s++)a.push(n.parse(o.materials[s]));r[o.uuid]=a}else r[o.uuid]=n.parse(o)}}return r},parseAnimations:function(e){for(var t=[],r=0;r<e.length;r++){var n=zr.parse(e[r]);t.push(n)}return t},parseImages:function(e,t){function r(e){return n.manager.itemStart(e),o.load(e,function(){n.manager.itemEnd(e)},void 0,function(){n.manager.itemEnd(e),n.manager.itemError(e)})}var n=this,i={};if(void 0!==e&&0<e.length){var o=new vr(t=new pr(t));o.setCrossOrigin(this.crossOrigin),t=0;for(var a=e.length;t<a;t++){var s=e[t],c=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(s.url)?s.url:n.texturePath+s.url;i[s.uuid]=r(c)}}return i},parseTextures:function(e,t){function r(e,t){return"number"==typeof e?e:(console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",e),t[e])}var n={};if(void 0!==e)for(var i=0,o=e.length;i<o;i++){var a=e[i];void 0===a.image&&console.warn('THREE.ObjectLoader: No "image" specified for',a.uuid),void 0===t[a.image]&&console.warn("THREE.ObjectLoader: Undefined image",a.image);var c=new s(t[a.image]);c.needsUpdate=!0,c.uuid=a.uuid,void 0!==a.name&&(c.name=a.name),void 0!==a.mapping&&(c.mapping=r(a.mapping,Di)),void 0!==a.offset&&c.offset.fromArray(a.offset),void 0!==a.repeat&&c.repeat.fromArray(a.repeat),void 0!==a.center&&c.center.fromArray(a.center),void 0!==a.rotation&&(c.rotation=a.rotation),void 0!==a.wrap&&(c.wrapS=r(a.wrap[0],ki),c.wrapT=r(a.wrap[1],ki)),void 0!==a.minFilter&&(c.minFilter=r(a.minFilter,Bi)),void 0!==a.magFilter&&(c.magFilter=r(a.magFilter,Bi)),void 0!==a.anisotropy&&(c.anisotropy=a.anisotropy),void 0!==a.flipY&&(c.flipY=a.flipY),n[a.uuid]=c}return n},parseObject:function(){var e=new n;return function(t,r,n){function i(e){return void 0===r[e]&&console.warn("THREE.ObjectLoader: Undefined geometry",e),r[e]}function o(e){if(void 0!==e){if(Array.isArray(e)){for(var t=[],r=0,i=e.length;r<i;r++){var o=e[r];void 0===n[o]&&console.warn("THREE.ObjectLoader: Undefined material",o),t.push(n[o])}return t}return void 0===n[e]&&console.warn("THREE.ObjectLoader: Undefined material",e),n[e]}}switch(t.type){case"Scene":var a=new tt;void 0!==t.background&&Number.isInteger(t.background)&&(a.background=new z(t.background)),void 0!==t.fog&&("Fog"===t.fog.type?a.fog=new et(t.fog.color,t.fog.near,t.fog.far):"FogExp2"===t.fog.type&&(a.fog=new Qe(t.fog.color,t.fog.density)));break;case"PerspectiveCamera":a=new We(t.fov,t.aspect,t.near,t.far),void 0!==t.focus&&(a.focus=t.focus),void 0!==t.zoom&&(a.zoom=t.zoom),void 0!==t.filmGauge&&(a.filmGauge=t.filmGauge),void 0!==t.filmOffset&&(a.filmOffset=t.filmOffset),void 0!==t.view&&(a.view=Object.assign({},t.view));break;case"OrthographicCamera":a=new oe(t.left,t.right,t.top,t.bottom,t.near,t.far);break;case"AmbientLight":a=new Tr(t.color,t.intensity);break;case"DirectionalLight":a=new Cr(t.color,t.intensity);break;case"PointLight":a=new Mr(t.color,t.intensity,t.distance,t.decay);break;case"RectAreaLight":a=new Or(t.color,t.intensity,t.width,t.height);break;case"SpotLight":a=new Sr(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);break;case"HemisphereLight":a=new _r(t.color,t.groundColor,t.intensity);break;case"SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case"Mesh":a=i(t.geometry);s=o(t.material);a=a.bones&&0<a.bones.length?new ct(a,s):new je(a,s);break;case"LOD":a=new ot;break;case"Line":a=new ht(i(t.geometry),o(t.material),t.mode);break;case"LineLoop":a=new pt(i(t.geometry),o(t.material));break;case"LineSegments":a=new lt(i(t.geometry),o(t.material));break;case"PointCloud":case"Points":a=new ft(i(t.geometry),o(t.material));break;case"Sprite":a=new it(o(t.material));break;case"Group":a=new mt;break;default:a=new ne}if(a.uuid=t.uuid,void 0!==t.name&&(a.name=t.name),void 0!==t.matrix?(e.fromArray(t.matrix),e.decompose(a.position,a.quaternion,a.scale)):(void 0!==t.position&&a.position.fromArray(t.position),void 0!==t.rotation&&a.rotation.fromArray(t.rotation),void 0!==t.quaternion&&a.quaternion.fromArray(t.quaternion),void 0!==t.scale&&a.scale.fromArray(t.scale)),void 0!==t.castShadow&&(a.castShadow=t.castShadow),void 0!==t.receiveShadow&&(a.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(a.shadow.bias=t.shadow.bias),void 0!==t.shadow.radius&&(a.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&a.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(a.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(a.visible=t.visible),void 0!==t.userData&&(a.userData=t.userData),void 0!==t.children)for(var s=t.children,c=0;c<s.length;c++)a.add(this.parseObject(s[c],r,n));if("LOD"===t.type)for(t=t.levels,s=0;s<t.length;s++){var c=t[s],u=a.getObjectByProperty("uuid",c.object);void 0!==u&&a.addLevel(u,c.distance)}return a}}()});var Di={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},ki={RepeatWrapping:1e3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},Bi={NearestFilter:1003,NearestMipMapNearestFilter:1004,NearestMipMapLinearFilter:1005,LinearFilter:1006,LinearMipMapNearestFilter:1007,LinearMipMapLinearFilter:1008};Object.assign(Zr.prototype,{getPoint:function(){return console.warn("THREE.Curve: .getPoint() not implemented."),null},getPointAt:function(e,t){return e=this.getUtoTmapping(e),this.getPoint(e,t)},getPoints:function(e){void 0===e&&(e=5);for(var t=[],r=0;r<=e;r++)t.push(this.getPoint(r/e));return t},getSpacedPoints:function(e){void 0===e&&(e=5);for(var t=[],r=0;r<=e;r++)t.push(this.getPointAt(r/e));return t},getLength:function(){var e=this.getLengths();return e[e.length-1]},getLengths:function(e){if(void 0===e&&(e=this.arcLengthDivisions),this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var t,r=[],n=this.getPoint(0),i=0;for(r.push(0),t=1;t<=e;t++){var o=this.getPoint(t/e);i+=o.distanceTo(n),r.push(i),n=o}return this.cacheArcLengths=r},updateArcLengths:function(){this.needsUpdate=!0,this.getLengths()},getUtoTmapping:function(e,t){var r=this.getLengths(),n=r.length;t=t||e*r[n-1];for(var i,o=0,a=n-1;o<=a;)if(e=Math.floor(o+(a-o)/2),0>(i=r[e]-t))o=e+1;else{if(!(0<i)){a=e;break}a=e-1}return e=a,r[e]===t?e/(n-1):(o=r[e],(e+(t-o)/(r[e+1]-o))/(n-1))},getTangent:function(e){var t=e-1e-4;return e+=1e-4,0>t&&(t=0),1<e&&(e=1),t=this.getPoint(t),this.getPoint(e).clone().sub(t).normalize()},getTangentAt:function(e){return e=this.getUtoTmapping(e),this.getTangent(e)},computeFrenetFrames:function(e,t){var r,i=new o,a=[],s=[],c=[],u=new o,h=new n;for(r=0;r<=e;r++){var l=r/e;a[r]=this.getTangentAt(l),a[r].normalize()}s[0]=new o,c[0]=new o,r=Number.MAX_VALUE,l=Math.abs(a[0].x);var p=Math.abs(a[0].y),d=Math.abs(a[0].z);for(l<=r&&(r=l,i.set(1,0,0)),p<=r&&(r=p,i.set(0,1,0)),d<=r&&i.set(0,0,1),u.crossVectors(a[0],i).normalize(),s[0].crossVectors(a[0],u),c[0].crossVectors(a[0],s[0]),r=1;r<=e;r++)s[r]=s[r-1].clone(),c[r]=c[r-1].clone(),u.crossVectors(a[r-1],a[r]),u.length()>Number.EPSILON&&(u.normalize(),i=Math.acos(ci.clamp(a[r-1].dot(a[r]),-1,1)),s[r].applyMatrix4(h.makeRotationAxis(u,i))),c[r].crossVectors(a[r],s[r]);if(!0===t)for(i=Math.acos(ci.clamp(s[0].dot(s[e]),-1,1)),i/=e,0<a[0].dot(u.crossVectors(s[0],s[e]))&&(i=-i),r=1;r<=e;r++)s[r].applyMatrix4(h.makeRotationAxis(a[r],i*r)),c[r].crossVectors(a[r],s[r]);return{tangents:a,normals:s,binormals:c}},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}),(Jr.prototype=Object.create(Zr.prototype)).constructor=Jr,Jr.prototype.isLineCurve=!0,Jr.prototype.getPoint=function(e,t){return t=t||new r,1===e?t.copy(this.v2):(t.copy(this.v2).sub(this.v1),t.multiplyScalar(e).add(this.v1)),t},Jr.prototype.getPointAt=function(e,t){return this.getPoint(e,t)},Jr.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()},Jr.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v1.copy(e.v1),this.v2.copy(e.v2),this},Qr.prototype=Object.assign(Object.create(Zr.prototype),{constructor:Qr,add:function(e){this.curves.push(e)},closePath:function(){var e=this.curves[0].getPoint(0),t=this.curves[this.curves.length-1].getPoint(1);e.equals(t)||this.curves.push(new Jr(t,e))},getPoint:function(e){var t=e*this.getLength(),r=this.getCurveLengths();for(e=0;e<r.length;){if(r[e]>=t)return t=r[e]-t,e=this.curves[e],r=e.getLength(),e.getPointAt(0===r?0:1-t/r);e++}return null},getLength:function(){var e=this.getCurveLengths();return e[e.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var e=[],t=0,r=0,n=this.curves.length;r<n;r++)t+=this.curves[r].getLength(),e.push(t);return this.cacheLengths=e},getSpacedPoints:function(e){void 0===e&&(e=40);for(var t=[],r=0;r<=e;r++)t.push(this.getPoint(r/e));return this.autoClose&&t.push(t[0]),t},getPoints:function(e){e=e||12;for(var t,r=[],n=0,i=this.curves;n<i.length;n++)for(var o=i[n],o=o.getPoints(o&&o.isEllipseCurve?2*e:o&&o.isLineCurve?1:o&&o.isSplineCurve?e*o.points.length:e),a=0;a<o.length;a++){var s=o[a];t&&t.equals(s)||(r.push(s),t=s)}return this.autoClose&&1<r.length&&!r[r.length-1].equals(r[0])&&r.push(r[0]),r},copy:function(e){Zr.prototype.copy.call(this,e),this.curves=[];for(var t=0,r=e.curves.length;t<r;t++)this.curves.push(e.curves[t].clone());return this.autoClose=e.autoClose,this}}),(en.prototype=Object.create(Zr.prototype)).constructor=en,en.prototype.isEllipseCurve=!0,en.prototype.getPoint=function(e,t){t=t||new r;for(var n=2*Math.PI,i=this.aEndAngle-this.aStartAngle,o=Math.abs(i)<Number.EPSILON;0>i;)i+=n;for(;i>n;)i-=n;i<Number.EPSILON&&(i=o?0:n),!0!==this.aClockwise||o||(i=i===n?-n:i-n),n=this.aStartAngle+e*i,e=this.aX+this.xRadius*Math.cos(n);var a=this.aY+this.yRadius*Math.sin(n);return 0!==this.aRotation&&(n=Math.cos(this.aRotation),i=Math.sin(this.aRotation),o=e-this.aX,a-=this.aY,e=o*n-a*i+this.aX,a=o*i+a*n+this.aY),t.set(e,a)},en.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this},(tn.prototype=Object.create(Zr.prototype)).constructor=tn,tn.prototype.isSplineCurve=!0,tn.prototype.getPoint=function(e,t){t=t||new r;var n=(n=((s=this.points).length-1)*e)-(e=Math.floor(n)),i=s[0===e?e:e-1],o=s[e],a=s[e>s.length-2?s.length-1:e+1],s=s[e>s.length-3?s.length-1:e+2];return t.set(Xr(n,i.x,o.x,a.x,s.x),Xr(n,i.y,o.y,a.y,s.y)),t},tn.prototype.copy=function(e){Zr.prototype.copy.call(this,e),this.points=[];for(var t=0,r=e.points.length;t<r;t++)this.points.push(e.points[t].clone());return this},(rn.prototype=Object.create(Zr.prototype)).constructor=rn,rn.prototype.isCubicBezierCurve=!0,rn.prototype.getPoint=function(e,t){t=t||new r;var n=this.v0,i=this.v1,o=this.v2,a=this.v3;return t.set(Kr(e,n.x,i.x,o.x,a.x),Kr(e,n.y,i.y,o.y,a.y)),t},rn.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this},(nn.prototype=Object.create(Zr.prototype)).constructor=nn,nn.prototype.isQuadraticBezierCurve=!0,nn.prototype.getPoint=function(e,t){t=t||new r;var n=this.v0,i=this.v1,o=this.v2;return t.set(Yr(e,n.x,i.x,o.x),Yr(e,n.y,i.y,o.y)),t},nn.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this};var Fi=Object.assign(Object.create(Qr.prototype),{setFromPoints:function(e){this.moveTo(e[0].x,e[0].y);for(var t=1,r=e.length;t<r;t++)this.lineTo(e[t].x,e[t].y)},moveTo:function(e,t){this.currentPoint.set(e,t)},lineTo:function(e,t){var n=new Jr(this.currentPoint.clone(),new r(e,t));this.curves.push(n),this.currentPoint.set(e,t)},quadraticCurveTo:function(e,t,n,i){e=new nn(this.currentPoint.clone(),new r(e,t),new r(n,i)),this.curves.push(e),this.currentPoint.set(n,i)},bezierCurveTo:function(e,t,n,i,o,a){e=new rn(this.currentPoint.clone(),new r(e,t),new r(n,i),new r(o,a)),this.curves.push(e),this.currentPoint.set(o,a)},splineThru:function(e){var t=new tn(t=[this.currentPoint.clone()].concat(e));this.curves.push(t),this.currentPoint.copy(e[e.length-1])},arc:function(e,t,r,n,i,o){this.absarc(e+this.currentPoint.x,t+this.currentPoint.y,r,n,i,o)},absarc:function(e,t,r,n,i,o){this.absellipse(e,t,r,r,n,i,o)},ellipse:function(e,t,r,n,i,o,a,s){this.absellipse(e+this.currentPoint.x,t+this.currentPoint.y,r,n,i,o,a,s)},absellipse:function(e,t,r,n,i,o,a,s){e=new en(e,t,r,n,i,o,a,s),0<this.curves.length&&((t=e.getPoint(0)).equals(this.currentPoint)||this.lineTo(t.x,t.y)),this.curves.push(e),e=e.getPoint(1),this.currentPoint.copy(e)},copy:function(e){return Qr.prototype.copy.call(this,e),this.currentPoint.copy(e.currentPoint),this}});on.prototype=Fi,Fi.constructor=on,an.prototype=Object.assign(Object.create(Fi),{constructor:an,getPointsHoles:function(e){for(var t=[],r=0,n=this.holes.length;r<n;r++)t[r]=this.holes[r].getPoints(e);return t},extractPoints:function(e){return{shape:this.getPoints(e),holes:this.getPointsHoles(e)}},copy:function(e){on.prototype.copy.call(this,e),this.holes=[];for(var t=0,r=e.holes.length;t<r;t++)this.holes.push(e.holes[t].clone());return this}}),Object.assign(sn.prototype,{moveTo:function(e,t){this.currentPath=new on,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t)},lineTo:function(e,t){this.currentPath.lineTo(e,t)},quadraticCurveTo:function(e,t,r,n){this.currentPath.quadraticCurveTo(e,t,r,n)},bezierCurveTo:function(e,t,r,n,i,o){this.currentPath.bezierCurveTo(e,t,r,n,i,o)},splineThru:function(e){this.currentPath.splineThru(e)},toShapes:function(e,t){function r(e){for(var t=[],r=0,n=e.length;r<n;r++){var i=e[r],o=new an;o.curves=i.curves,t.push(o)}return t}function n(e,t){for(var r=t.length,n=!1,i=r-1,o=0;o<r;i=o++){var a=t[i],s=t[o],c=s.x-a.x,u=s.y-a.y;if(Math.abs(u)>Number.EPSILON){if(0>u&&(a=t[o],c=-c,s=t[i],u=-u),!(e.y<a.y||e.y>s.y))if(e.y===a.y){if(e.x===a.x)return!0}else{if(0==(i=u*(e.x-a.x)-c*(e.y-a.y)))return!0;0>i||(n=!n)}}else if(e.y===a.y&&(s.x<=e.x&&e.x<=a.x||a.x<=e.x&&e.x<=s.x))return!0}return n}var i=Ti.isClockWise,o=this.subPaths;if(0===o.length)return[];if(!0===t)return r(o);if(t=[],1===o.length){var a=o[0],s=new an;return s.curves=a.curves,t.push(s),t}var c=!i(o[0].getPoints()),c=e?!c:c;s=[];var u=[],h=[],l=0;u[l]=void 0,h[l]=[];for(var p=0,d=o.length;p<d;p++){var f=(a=o[p]).getPoints(),m=i(f);(m=e?!m:m)?(!c&&u[l]&&l++,u[l]={s:new an,p:f},u[l].s.curves=a.curves,c&&l++,h[l]=[]):h[l].push({h:a,p:f[0]})}if(!u[0])return r(o);if(1<u.length){for(p=!1,e=[],i=0,o=u.length;i<o;i++)s[i]=[];for(i=0,o=u.length;i<o;i++)for(a=h[i],m=0;m<a.length;m++){for(c=a[m],l=!0,f=0;f<u.length;f++)n(c.p,u[f].p)&&(i!==f&&e.push({froms:i,tos:f,hole:m}),l?(l=!1,s[f].push(c)):p=!0);l&&s[i].push(c)}0<e.length&&(p||(h=s))}for(p=0,i=u.length;p<i;p++)for(s=u[p].s,t.push(s),e=h[p],o=0,a=e.length;o<a;o++)s.holes.push(e[o].h);return t}}),Object.assign(cn.prototype,{isFont:!0,generateShapes:function(e,t,r){void 0===t&&(t=100),void 0===r&&(r=4);var n=this.data;e=String(e).split("");var i=t/n.resolution,o=(n.boundingBox.yMax-n.boundingBox.yMin+n.underlineThickness)*i,a=0,s=0;t=[];for(var c=0;c<e.length;c++){var u=e[c];if("\n"===u)a=0,s-=o;else{var h,l=i,p=a,d=s;if(u=n.glyphs[u]||n.glyphs["?"]){var f=new sn,m=[];if(u.o)for(var v=u._cachedOutline||(u._cachedOutline=u.o.split(" ")),g=0,y=v.length;g<y;)switch(v[g++]){case"m":var b=v[g++]*l+p,_=v[g++]*l+d;f.moveTo(b,_);break;case"l":b=v[g++]*l+p,_=v[g++]*l+d,f.lineTo(b,_);break;case"q":var x=v[g++]*l+p,w=v[g++]*l+d,S=v[g++]*l+p,M=v[g++]*l+d;if(f.quadraticCurveTo(S,M,x,w),h=m[m.length-1]){var E=h.x;h=h.y;for(var C=1;C<=r;C++){var T=C/r;Yr(T,E,S,x),Yr(T,h,M,w)}}break;case"b":if(x=v[g++]*l+p,w=v[g++]*l+d,S=v[g++]*l+p,M=v[g++]*l+d,b=v[g++]*l+p,_=v[g++]*l+d,f.bezierCurveTo(S,M,b,_,x,w),h=m[m.length-1])for(E=h.x,h=h.y,C=1;C<=r;C++)T=C/r,Kr(T,E,S,b,x),Kr(T,h,M,_,w)}l={offsetX:u.ha*l,path:f}}else l=void 0;a+=l.offsetX,t.push(l.path)}}for(r=[],n=0,e=t.length;n<e;n++)Array.prototype.push.apply(r,t[n].toShapes());return r}}),Object.assign(un.prototype,{load:function(e,t,r,n){var i=this,o=new dr(this.manager);o.setPath(this.path),o.load(e,function(e){try{var r=JSON.parse(e)}catch(t){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),r=JSON.parse(e.substring(65,e.length-2))}e=i.parse(r),t&&t(e)},r,n)},parse:function(e){return new cn(e)},setPath:function(e){return this.path=e,this}});var Ui,$i={getContext:function(){return void 0===Ui&&(Ui=new(window.AudioContext||window.webkitAudioContext)),Ui},setContext:function(e){Ui=e}};Object.assign(hn.prototype,{load:function(e,t,r,n){var i=new dr(this.manager);i.setResponseType("arraybuffer"),i.load(e,function(e){$i.getContext().decodeAudioData(e,function(e){t(e)})},r,n)}}),Object.assign(ln.prototype,{update:function(){var e,t,r,i,o,a,s,c,u=new n,h=new n;return function(n){if(e!==this||t!==n.focus||r!==n.fov||i!==n.aspect*this.aspect||o!==n.near||a!==n.far||s!==n.zoom||c!==this.eyeSep){e=this,t=n.focus,r=n.fov,i=n.aspect*this.aspect,o=n.near,a=n.far,s=n.zoom;var l=n.projectionMatrix.clone(),p=(c=this.eyeSep/2)*o/t,d=o*Math.tan(ci.DEG2RAD*r*.5)/s;h.elements[12]=-c,u.elements[12]=c;var f=-d*i+p,m=d*i+p;l.elements[0]=2*o/(m-f),l.elements[8]=(m+f)/(m-f),this.cameraL.projectionMatrix.copy(l),f=-d*i-p,m=d*i-p,l.elements[0]=2*o/(m-f),l.elements[8]=(m+f)/(m-f),this.cameraR.projectionMatrix.copy(l)}this.cameraL.matrixWorld.copy(n.matrixWorld).multiply(h),this.cameraR.matrixWorld.copy(n.matrixWorld).multiply(u)}}()}),(pn.prototype=Object.create(ne.prototype)).constructor=pn,dn.prototype=Object.assign(Object.create(ne.prototype),{constructor:dn,getInput:function(){return this.gain},removeFilter:function(){null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null)},getFilter:function(){return this.filter},setFilter:function(e){null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination)},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(e){this.gain.gain.value=e},updateMatrixWorld:function(){var e=new o,t=new i,r=new o,n=new o;return function(i){ne.prototype.updateMatrixWorld.call(this,i),i=this.context.listener;var o=this.up;this.matrixWorld.decompose(e,t,r),n.set(0,0,-1).applyQuaternion(t),i.positionX?(i.positionX.setValueAtTime(e.x,this.context.currentTime),i.positionY.setValueAtTime(e.y,this.context.currentTime),i.positionZ.setValueAtTime(e.z,this.context.currentTime),i.forwardX.setValueAtTime(n.x,this.context.currentTime),i.forwardY.setValueAtTime(n.y,this.context.currentTime),i.forwardZ.setValueAtTime(n.z,this.context.currentTime),i.upX.setValueAtTime(o.x,this.context.currentTime),i.upY.setValueAtTime(o.y,this.context.currentTime),i.upZ.setValueAtTime(o.z,this.context.currentTime)):(i.setPosition(e.x,e.y,e.z),i.setOrientation(n.x,n.y,n.z,o.x,o.y,o.z))}}()}),fn.prototype=Object.assign(Object.create(ne.prototype),{constructor:fn,getOutput:function(){return this.gain},setNodeSource:function(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this},setBuffer:function(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this},play:function(){if(!0===this.isPlaying)console.warn("THREE.Audio: Audio is already playing.");else{if(!1!==this.hasPlaybackControl){var e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.onended=this.onEnded.bind(this),e.playbackRate.setValueAtTime(this.playbackRate,this.startTime),this.startTime=this.context.currentTime,e.start(this.startTime,this.offset),this.isPlaying=!0,this.source=e,this.connect()}console.warn("THREE.Audio: this Audio has no playback control.")}},pause:function(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this.source.stop(),this.offset+=(this.context.currentTime-this.startTime)*this.playbackRate,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")},stop:function(){if(!1!==this.hasPlaybackControl)return this.source.stop(),this.offset=0,this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")},connect:function(){if(0<this.filters.length){this.source.connect(this.filters[0]);for(var e=1,t=this.filters.length;e<t;e++)this.filters[e-1].connect(this.filters[e]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(0<this.filters.length){this.source.disconnect(this.filters[0]);for(var e=1,t=this.filters.length;e<t;e++)this.filters[e-1].disconnect(this.filters[e]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},setFilters:function(e){return e||(e=[]),!0===this.isPlaying?(this.disconnect(),this.filters=e,this.connect()):this.filters=e,this},getFilter:function(){return this.getFilters()[0]},setFilter:function(e){return this.setFilters(e?[e]:[])},setPlaybackRate:function(e){if(!1!==this.hasPlaybackControl)return this.playbackRate=e,!0===this.isPlaying&&this.source.playbackRate.setValueAtTime(this.playbackRate,this.context.currentTime),this;console.warn("THREE.Audio: this Audio has no playback control.")},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(e){if(!1!==this.hasPlaybackControl)return this.loop=e,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn("THREE.Audio: this Audio has no playback control.")},getVolume:function(){return this.gain.gain.value},setVolume:function(e){return this.gain.gain.value=e,this}}),mn.prototype=Object.assign(Object.create(fn.prototype),{constructor:mn,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},setRefDistance:function(e){this.panner.refDistance=e},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(e){this.panner.rolloffFactor=e},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(e){this.panner.distanceModel=e},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(e){this.panner.maxDistance=e},updateMatrixWorld:function(){var e=new o;return function(t){ne.prototype.updateMatrixWorld.call(this,t),e.setFromMatrixPosition(this.matrixWorld),this.panner.setPosition(e.x,e.y,e.z)}}()}),Object.assign(vn.prototype,{getFrequencyData:function(){return this.analyser.getByteFrequencyData(this.data),this.data},getAverageFrequency:function(){for(var e=0,t=this.getFrequencyData(),r=0;r<t.length;r++)e+=t[r];return e/t.length}}),Object.assign(gn.prototype,{accumulate:function(e,t){var r=this.buffer,n=this.valueSize;e=e*n+n;var i=this.cumulativeWeight;if(0===i){for(i=0;i!==n;++i)r[e+i]=r[i];i=t}else i+=t,this._mixBufferRegion(r,e,0,t/i,n);this.cumulativeWeight=i},apply:function(e){var t=this.valueSize,r=this.buffer;e=e*t+t;var n=this.cumulativeWeight,i=this.binding;this.cumulativeWeight=0,1>n&&this._mixBufferRegion(r,e,3*t,1-n,t);for(var n=t,o=t+t;n!==o;++n)if(r[n]!==r[n+t]){i.setValue(r,e);break}},saveOriginalState:function(){var e=this.buffer,t=this.valueSize,r=3*t;this.binding.getValue(e,r);for(var n=t;n!==r;++n)e[n]=e[r+n%t];this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(e,t,r,n,i){if(.5<=n)for(n=0;n!==i;++n)e[t+n]=e[r+n]},_slerp:function(e,t,r,n){i.slerpFlat(e,t,e,t,e,r,n)},_lerp:function(e,t,r,n,i){for(var o=1-n,a=0;a!==i;++a){var s=t+a;e[s]=e[s]*o+e[r+a]*n}}}),Object.assign(yn.prototype,{getValue:function(e,t){this.bind();var r=this._bindings[this._targetGroup.nCachedObjects_];void 0!==r&&r.getValue(e,t)},setValue:function(e,t){for(var r=this._bindings,n=this._targetGroup.nCachedObjects_,i=r.length;n!==i;++n)r[n].setValue(e,t)},bind:function(){for(var e=this._bindings,t=this._targetGroup.nCachedObjects_,r=e.length;t!==r;++t)e[t].bind()},unbind:function(){for(var e=this._bindings,t=this._targetGroup.nCachedObjects_,r=e.length;t!==r;++t)e[t].unbind()}}),Object.assign(bn,{Composite:yn,create:function(e,t,r){return e&&e.isAnimationObjectGroup?new bn.Composite(e,t,r):new bn(e,t,r)},sanitizeNodeName:function(e){return e.replace(/\s/g,"_").replace(/[^\w-]/g,"")},parseTrackName:function(){var e=new RegExp("^"+/((?:[\w-]+[\/:])*)/.source+/([\w-\.]+)?/.source+/(?:\.([\w-]+)(?:\[(.+)\])?)?/.source+/\.([\w-]+)(?:\[(.+)\])?/.source+"$"),t=["material","materials","bones"];return function(r){n=e.exec(r);if(!n)throw Error("PropertyBinding: Cannot parse trackName: "+r);var n,i=(n={nodeName:n[2],objectName:n[3],objectIndex:n[4],propertyName:n[5],propertyIndex:n[6]}).nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){var o=n.nodeName.substring(i+1);-1!==t.indexOf(o)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=o)}if(null===n.propertyName||0===n.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+r);return n}}(),findNode:function(e,t){if(!t||""===t||"root"===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){var r=function(e){for(var r=0;r<e.bones.length;r++){var n=e.bones[r];if(n.name===t)return n}return null}(e.skeleton);if(r)return r}if(e.children){var n=function(e){for(var r=0;r<e.length;r++){var i=e[r];if(i.name===t||i.uuid===t||(i=n(i.children)))return i}return null};if(e=n(e.children))return e}return null}}),Object.assign(bn.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(e,t){e[t]=this.node[this.propertyName]},function(e,t){for(var r=this.resolvedProperty,n=0,i=r.length;n!==i;++n)e[t++]=r[n]},function(e,t){e[t]=this.resolvedProperty[this.propertyIndex]},function(e,t){this.resolvedProperty.toArray(e,t)}],SetterByBindingTypeAndVersioning:[[function(e,t){this.targetObject[this.propertyName]=e[t]},function(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.needsUpdate=!0},function(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(e,t){for(var r=this.resolvedProperty,n=0,i=r.length;n!==i;++n)r[n]=e[t++]},function(e,t){for(var r=this.resolvedProperty,n=0,i=r.length;n!==i;++n)r[n]=e[t++];this.targetObject.needsUpdate=!0},function(e,t){for(var r=this.resolvedProperty,n=0,i=r.length;n!==i;++n)r[n]=e[t++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(e,t){this.resolvedProperty[this.propertyIndex]=e[t]},function(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.needsUpdate=!0},function(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(e,t){this.resolvedProperty.fromArray(e,t)},function(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.needsUpdate=!0},function(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function(e,t){this.bind(),this.getValue(e,t)},setValue:function(e,t){this.bind(),this.setValue(e,t)},bind:function(){var e=this.node,t=this.parsedPath,r=t.objectName,n=t.propertyName,i=t.propertyIndex;if(e||(this.node=e=bn.findNode(this.rootNode,t.nodeName)||this.rootNode),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,e){if(r){var o=t.objectIndex;switch(r){case"materials":if(!e.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!e.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);e=e.material.materials;break;case"bones":if(!e.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);for(e=e.skeleton.bones,r=0;r<e.length;r++)if(e[r].name===o){o=r;break}break;default:if(void 0===e[r])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);e=e[r]}if(void 0!==o){if(void 0===e[o])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);e=e[o]}}if(void 0===(o=e[n]))console.error("THREE.PropertyBinding: Trying to update property for track: "+t.nodeName+"."+n+" but it wasn't found.",e);else{if(t=this.Versioning.None,void 0!==e.needsUpdate?(t=this.Versioning.NeedsUpdate,this.targetObject=e):void 0!==e.matrixWorldNeedsUpdate&&(t=this.Versioning.MatrixWorldNeedsUpdate,this.targetObject=e),r=this.BindingType.Direct,void 0!==i){if("morphTargetInfluences"===n){if(!e.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(e.geometry.isBufferGeometry){if(!e.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);for(r=0;r<this.node.geometry.morphAttributes.position.length;r++)if(e.geometry.morphAttributes.position[r].name===i){i=r;break}}else{if(!e.geometry.morphTargets)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.",this);for(r=0;r<this.node.geometry.morphTargets.length;r++)if(e.geometry.morphTargets[r].name===i){i=r;break}}}r=this.BindingType.ArrayElement,this.resolvedProperty=o,this.propertyIndex=i}else void 0!==o.fromArray&&void 0!==o.toArray?(r=this.BindingType.HasFromToArray,this.resolvedProperty=o):Array.isArray(o)?(r=this.BindingType.EntireArray,this.resolvedProperty=o):this.propertyName=n;this.getValue=this.GetterByBindingType[r],this.setValue=this.SetterByBindingTypeAndVersioning[r][t]}}else console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.")},unbind:function(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}),Object.assign(bn.prototype,{_getValue_unbound:bn.prototype.getValue,_setValue_unbound:bn.prototype.setValue}),Object.assign(_n.prototype,{isAnimationObjectGroup:!0,add:function(){for(var e=this._objects,t=e.length,r=this.nCachedObjects_,n=this._indicesByUUID,i=this._paths,o=this._parsedPaths,a=this._bindings,s=a.length,c=0,u=arguments.length;c!==u;++c){var h=arguments[c],l=n[p=h.uuid];if(void 0===l){l=t++,n[p]=l,e.push(h);for(var p=0,d=s;p!==d;++p)a[p].push(new bn(h,i[p],o[p]))}else if(l<r){var f=--r;for(n[(d=e[f]).uuid]=l,e[l]=d,n[p]=f,e[f]=h,p=0,d=s;p!==d;++p){var m=a[p],v=m[l];m[l]=m[f],void 0===v&&(v=new bn(h,i[p],o[p])),m[f]=v}}else void 0!==e[l]&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=r},remove:function(){for(var e=this._objects,t=this.nCachedObjects_,r=this._indicesByUUID,n=this._bindings,i=n.length,o=0,a=arguments.length;o!==a;++o){var s=arguments[o],c=s.uuid,u=r[c];if(void 0!==u&&u>=t){var h=t++,l=e[h];for(r[l.uuid]=u,e[u]=l,r[c]=h,e[h]=s,s=0,c=i;s!==c;++s){var p=(l=n[s])[u];l[u]=l[h],l[h]=p}}}this.nCachedObjects_=t},uncache:function(){for(var e,t,r=this._objects,n=r.length,i=this.nCachedObjects_,o=this._indicesByUUID,a=this._bindings,s=a.length,c=0,u=arguments.length;c!==u;++c){var h=o[t=arguments[c].uuid];if(void 0!==h)if(delete o[t],h<i){var l=--i,p=r[l];e=r[t=--n],o[p.uuid]=h,r[h]=p,o[e.uuid]=l,r[l]=e,r.pop();for(var p=0,d=s;p!==d;++p){var f=(e=a[p])[t];e[h]=e[l],e[l]=f,e.pop()}}else for(t=--n,e=r[t],o[e.uuid]=h,r[h]=e,r.pop(),p=0,d=s;p!==d;++p)e=a[p],e[h]=e[t],e.pop()}this.nCachedObjects_=i},subscribe_:function(e,t){var r=this._bindingsIndicesByPath,n=r[e],i=this._bindings;if(void 0!==n)return i[n];var o=this._paths,a=this._parsedPaths,s=this._objects,c=this.nCachedObjects_,u=Array(s.length),n=i.length;for(r[e]=n,o.push(e),a.push(t),i.push(u),r=c,n=s.length;r!==n;++r)u[r]=new bn(s[r],e,t);return u},unsubscribe_:function(e){var t=this._bindingsIndicesByPath,r=t[e];if(void 0!==r){var n=this._paths,i=this._parsedPaths,o=this._bindings,a=o.length-1,s=o[a];t[e[a]]=r,o[r]=s,o.pop(),i[r]=i[a],i.pop(),n[r]=n[a],n.pop()}}}),Object.assign(xn.prototype,{play:function(){return this._mixer._activateAction(this),this},stop:function(){return this._mixer._deactivateAction(this),this.reset()},reset:function(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()},isRunning:function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(e){return this._startTime=e,this},setLoop:function(e,t){return this.loop=e,this.repetitions=t,this},setEffectiveWeight:function(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(e){return this._scheduleFading(e,0,1)},fadeOut:function(e){return this._scheduleFading(e,1,0)},crossFadeFrom:function(e,t,r){if(e.fadeOut(t),this.fadeIn(t),r){r=this._clip.duration;var n=e._clip.duration,i=r/n;e.warp(1,n/r,t),this.warp(i,1,t)}return this},crossFadeTo:function(e,t,r){return e.crossFadeFrom(this,t,r)},stopFading:function(){var e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this},setEffectiveTimeScale:function(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()},getEffectiveTimeScale:function(){return this._effectiveTimeScale},setDuration:function(e){return this.timeScale=this._clip.duration/e,this.stopWarping()},syncWith:function(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()},halt:function(e){return this.warp(this._effectiveTimeScale,0,e)},warp:function(e,t,r){var n=this._mixer,i=n.time,o=this._timeScaleInterpolant,a=this.timeScale;return null===o&&(this._timeScaleInterpolant=o=n._lendControlInterpolant()),n=o.parameterPositions,o=o.sampleValues,n[0]=i,n[1]=i+r,o[0]=e/a,o[1]=t/a,this},stopWarping:function(){var e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this},getMixer:function(){return this._mixer},getClip:function(){return this._clip},getRoot:function(){return this._localRoot||this._mixer._root},_update:function(e,t,r,n){if(this.enabled){if(null!==(i=this._startTime)){if(0>(t=(e-i)*r)||0===r)return;this._startTime=null,t*=r}if(t*=this._updateTimeScale(e),r=this._updateTime(t),0<(e=this._updateWeight(e))){t=this._interpolants;for(var i=this._propertyBindings,o=0,a=t.length;o!==a;++o)t[o].evaluate(r),i[o].accumulate(n,e)}}else this._updateWeight(e)},_updateWeight:function(e){t=0;if(this.enabled){var t=this.weight,r=this._weightInterpolant;if(null!==r){var n=r.evaluate(e)[0],t=t*n;e>r.parameterPositions[1]&&(this.stopFading(),0===n&&(this.enabled=!1))}}return this._effectiveWeight=t},_updateTimeScale:function(e){t=0;if(!this.paused){var t=this.timeScale,r=this._timeScaleInterpolant;if(null!==r){t=t*r.evaluate(e)[0];e>r.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t},_updateTime:function(e){o=this.time+e;if(0===e)return o;var t=this._clip.duration,r=this.loop,n=this._loopCount;if(2200===r)e:{if(-1===n&&(this._loopCount=0,this._setEndings(!0,!0,!1)),o>=t)o=t;else{if(!(0>o))break e;o=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this._mixer.dispatchEvent({type:"finished",action:this,direction:0>e?-1:1})}else{if(r=2202===r,-1===n&&(0<=e?(n=0,this._setEndings(!0,0===this.repetitions,r)):this._setEndings(0===this.repetitions,!0,r)),o>=t||0>o){var i=Math.floor(o/t),o=o-t*i,n=n+Math.abs(i),a=this.repetitions-n;0>a?(this.clampWhenFinished?this.paused=!0:this.enabled=!1,o=0<e?t:0,this._mixer.dispatchEvent({type:"finished",action:this,direction:0<e?1:-1})):(0===a?(e=0>e,this._setEndings(e,!e,r)):this._setEndings(!1,!1,r),this._loopCount=n,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:i}))}if(r&&1==(1&n))return this.time=o,t-o}return this.time=o},_setEndings:function(e,t,r){var n=this._interpolantSettings;r?(n.endingStart=2401,n.endingEnd=2401):(n.endingStart=e?this.zeroSlopeAtStart?2401:2400:2402,n.endingEnd=t?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(e,t,r){var n=this._mixer,i=n.time,o=this._weightInterpolant;return null===o&&(this._weightInterpolant=o=n._lendControlInterpolant()),n=o.parameterPositions,o=o.sampleValues,n[0]=i,o[0]=t,n[1]=i+e,o[1]=r,this}}),Object.assign(wn.prototype,t.prototype,{_bindAction:function(e,t){var r=e._localRoot||this._root,n=e._clip.tracks,i=n.length,o=e._propertyBindings;e=e._interpolants;var a=r.uuid,s=this._bindingsByRootAndName,c=s[a];for(void 0===c&&(c={},s[a]=c),s=0;s!==i;++s){var u=n[s],h=u.name,l=c[h];if(void 0===l){if(void 0!==(l=o[s])){null===l._cacheIndex&&(++l.referenceCount,this._addInactiveBinding(l,a,h));continue}++(l=new gn(bn.create(r,h,t&&t._propertyBindings[s].binding.parsedPath),u.ValueTypeName,u.getValueSize())).referenceCount,this._addInactiveBinding(l,a,h)}o[s]=l,e[s].resultBuffer=l.buffer}},_activateAction:function(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){var t=(e._localRoot||this._root).uuid,r=e._clip.uuid,n=this._actionsByClip[r];this._bindAction(e,n&&n.knownActions[0]),this._addInactiveAction(e,r,t)}for(r=0,n=(t=e._propertyBindings).length;r!==n;++r){var i=t[r];0==i.useCount++&&(this._lendBinding(i),i.saveOriginalState())}this._lendAction(e)}},_deactivateAction:function(e){if(this._isActiveAction(e)){for(var t=e._propertyBindings,r=0,n=t.length;r!==n;++r){var i=t[r];0==--i.useCount&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(e)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}},_isActiveAction:function(e){return null!==(e=e._cacheIndex)&&e<this._nActiveActions},_addInactiveAction:function(e,t,r){var n=this._actions,i=this._actionsByClip,o=i[t];void 0===o?(o={knownActions:[e],actionByRoot:{}},e._byClipCacheIndex=0,i[t]=o):(t=o.knownActions,e._byClipCacheIndex=t.length,t.push(e)),e._cacheIndex=n.length,n.push(e),o.actionByRoot[r]=e},_removeInactiveAction:function(e){var t=(n=this._actions)[n.length-1],r=e._cacheIndex;t._cacheIndex=r,n[r]=t,n.pop(),e._cacheIndex=null;var n=e._clip.uuid,i=(r=(t=this._actionsByClip)[n]).knownActions,o=i[i.length-1],a=e._byClipCacheIndex;o._byClipCacheIndex=a,i[a]=o,i.pop(),e._byClipCacheIndex=null,delete r.actionByRoot[(e._localRoot||this._root).uuid],0===i.length&&delete t[n],this._removeInactiveBindingsForAction(e)},_removeInactiveBindingsForAction:function(e){for(var t=0,r=(e=e._propertyBindings).length;t!==r;++t){var n=e[t];0==--n.referenceCount&&this._removeInactiveBinding(n)}},_lendAction:function(e){var t=this._actions,r=e._cacheIndex,n=this._nActiveActions++,i=t[n];e._cacheIndex=n,t[n]=e,i._cacheIndex=r,t[r]=i},_takeBackAction:function(e){var t=this._actions,r=e._cacheIndex,n=--this._nActiveActions,i=t[n];e._cacheIndex=n,t[n]=e,i._cacheIndex=r,t[r]=i},_addInactiveBinding:function(e,t,r){var n=this._bindingsByRootAndName,i=n[t],o=this._bindings;void 0===i&&(i={},n[t]=i),i[r]=e,e._cacheIndex=o.length,o.push(e)},_removeInactiveBinding:function(e){var t=this._bindings,r=(n=e.binding).rootNode.uuid,n=n.path,i=this._bindingsByRootAndName,o=i[r],a=t[t.length-1];e=e._cacheIndex,a._cacheIndex=e,t[e]=a,t.pop(),delete o[n];e:{for(var s in o)break e;delete i[r]}},_lendBinding:function(e){var t=this._bindings,r=e._cacheIndex,n=this._nActiveBindings++,i=t[n];e._cacheIndex=n,t[n]=e,i._cacheIndex=r,t[r]=i},_takeBackBinding:function(e){var t=this._bindings,r=e._cacheIndex,n=--this._nActiveBindings,i=t[n];e._cacheIndex=n,t[n]=e,i._cacheIndex=r,t[r]=i},_lendControlInterpolant:function(){var e=this._controlInterpolants,t=this._nActiveControlInterpolants++,r=e[t];return void 0===r&&(r=new Ar(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),r.__cacheIndex=t,e[t]=r),r},_takeBackControlInterpolant:function(e){var t=this._controlInterpolants,r=e.__cacheIndex,n=--this._nActiveControlInterpolants,i=t[n];e.__cacheIndex=n,t[n]=e,i.__cacheIndex=r,t[r]=i},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(e,t){var r=t||this._root,n=r.uuid;e=null!==(r="string"==typeof e?zr.findByName(r,e):e)?r.uuid:e;var i=this._actionsByClip[e],o=null;if(void 0!==i){if(void 0!==(o=i.actionByRoot[n]))return o;o=i.knownActions[0],null===r&&(r=o._clip)}return null===r?null:(t=new xn(this,r,t),this._bindAction(t,o),this._addInactiveAction(t,e,n),t)},existingAction:function(e,t){var r=t||this._root;return t=r.uuid,r="string"==typeof e?zr.findByName(r,e):e,void 0!==(e=this._actionsByClip[r?r.uuid:e])?e.actionByRoot[t]||null:null},stopAllAction:function(){for(var e=this._actions,t=this._nActiveActions,r=this._bindings,n=this._nActiveBindings,i=this._nActiveBindings=this._nActiveActions=0;i!==t;++i)e[i].reset();for(i=0;i!==n;++i)r[i].useCount=0;return this},update:function(e){e*=this.timeScale;for(var t=this._actions,r=this._nActiveActions,n=this.time+=e,i=Math.sign(e),o=this._accuIndex^=1,a=0;a!==r;++a)t[a]._update(n,e,i,o);for(e=this._bindings,t=this._nActiveBindings,a=0;a!==t;++a)e[a].apply(o);return this},getRoot:function(){return this._root},uncacheClip:function(e){var t=this._actions;e=e.uuid;var r=this._actionsByClip,n=r[e];if(void 0!==n){for(var i=0,o=(n=n.knownActions).length;i!==o;++i){var a=n[i];this._deactivateAction(a);var s=a._cacheIndex,c=t[t.length-1];a._cacheIndex=null,a._byClipCacheIndex=null,c._cacheIndex=s,t[s]=c,t.pop(),this._removeInactiveBindingsForAction(a)}delete r[e]}},uncacheRoot:function(e){e=e.uuid;var t=this._actionsByClip;for(n in t){var r=t[n].actionByRoot[e];void 0!==r&&(this._deactivateAction(r),this._removeInactiveAction(r))}var n=this._bindingsByRootAndName[e];if(void 0!==n)for(var i in n)(e=n[i]).restoreOriginalState(),this._removeInactiveBinding(e)},uncacheAction:function(e,t){null!==(e=this.existingAction(e,t))&&(this._deactivateAction(e),this._removeInactiveAction(e))}}),Sn.prototype.clone=function(){return new Sn(void 0===this.value.clone?this.value:this.value.clone())},Mn.prototype=Object.assign(Object.create(_e.prototype),{constructor:Mn,isInstancedBufferGeometry:!0,copy:function(e){return _e.prototype.copy.call(this,e),this.maxInstancedCount=e.maxInstancedCount,this},clone:function(){return(new this.constructor).copy(this)}}),Object.defineProperties(En.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}}),Object.assign(En.prototype,{isInterleavedBufferAttribute:!0,setX:function(e,t){return this.data.array[e*this.data.stride+this.offset]=t,this},setY:function(e,t){return this.data.array[e*this.data.stride+this.offset+1]=t,this},setZ:function(e,t){return this.data.array[e*this.data.stride+this.offset+2]=t,this},setW:function(e,t){return this.data.array[e*this.data.stride+this.offset+3]=t,this},getX:function(e){return this.data.array[e*this.data.stride+this.offset]},getY:function(e){return this.data.array[e*this.data.stride+this.offset+1]},getZ:function(e){return this.data.array[e*this.data.stride+this.offset+2]},getW:function(e){return this.data.array[e*this.data.stride+this.offset+3]},setXY:function(e,t,r){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=r,this},setXYZ:function(e,t,r,n){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=r,this.data.array[e+2]=n,this},setXYZW:function(e,t,r,n,i){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=r,this.data.array[e+2]=n,this.data.array[e+3]=i,this}}),Object.defineProperty(Cn.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}}),Object.assign(Cn.prototype,{isInterleavedBuffer:!0,setArray:function(e){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.count=void 0!==e?e.length/this.stride:0,this.array=e},setDynamic:function(e){return this.dynamic=e,this},copy:function(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.dynamic=e.dynamic,this},copyAt:function(e,t,r){e*=this.stride,r*=t.stride;for(var n=0,i=this.stride;n<i;n++)this.array[e+n]=t.array[r+n];return this},set:function(e,t){return void 0===t&&(t=0),this.array.set(e,t),this},clone:function(){return(new this.constructor).copy(this)},onUpload:function(e){return this.onUploadCallback=e,this}}),Tn.prototype=Object.assign(Object.create(Cn.prototype),{constructor:Tn,isInstancedInterleavedBuffer:!0,copy:function(e){return Cn.prototype.copy.call(this,e),this.meshPerAttribute=e.meshPerAttribute,this}}),On.prototype=Object.assign(Object.create(ce.prototype),{constructor:On,isInstancedBufferAttribute:!0,copy:function(e){return ce.prototype.copy.call(this,e),this.meshPerAttribute=e.meshPerAttribute,this}}),Object.assign(Pn.prototype,{linePrecision:1,set:function(e,t){this.ray.set(e,t)},setFromCamera:function(e,t){t&&t.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(t.matrixWorld),this.ray.direction.set(e.x,e.y,.5).unproject(t).sub(this.ray.origin).normalize()):t&&t.isOrthographicCamera?(this.ray.origin.set(e.x,e.y,(t.near+t.far)/(t.near-t.far)).unproject(t),this.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld)):console.error("THREE.Raycaster: Unsupported camera type.")},intersectObject:function(e,t){var r=[];return An(e,this,r,t),r.sort(jn),r},intersectObjects:function(e,t){var r=[];if(!1===Array.isArray(e))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),r;for(var n=0,i=e.length;n<i;n++)An(e[n],this,r,t);return r.sort(jn),r}}),Object.assign(Rn.prototype,{start:function(){this.oldTime=this.startTime=("undefined"==typeof performance?Date:performance).now(),this.elapsedTime=0,this.running=!0},stop:function(){this.getElapsedTime(),this.autoStart=this.running=!1},getElapsedTime:function(){return this.getDelta(),this.elapsedTime},getDelta:function(){t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var e=("undefined"==typeof performance?Date:performance).now(),t=(e-this.oldTime)/1e3;this.oldTime=e,this.elapsedTime+=t}return t}}),Object.assign(Ln.prototype,{set:function(e,t,r){return this.radius=e,this.phi=t,this.theta=r,this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this},makeSafe:function(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this},setFromVector3:function(e){return this.radius=e.length(),0===this.radius?this.phi=this.theta=0:(this.theta=Math.atan2(e.x,e.z),this.phi=Math.acos(ci.clamp(e.y/this.radius,-1,1))),this}}),Object.assign(Nn.prototype,{set:function(e,t,r){return this.radius=e,this.theta=t,this.y=r,this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.radius=e.radius,this.theta=e.theta,this.y=e.y,this},setFromVector3:function(e){return this.radius=Math.sqrt(e.x*e.x+e.z*e.z),this.theta=Math.atan2(e.x,e.z),this.y=e.y,this}}),(In.prototype=Object.create(ne.prototype)).constructor=In,In.prototype.isImmediateRenderObject=!0,(Dn.prototype=Object.create(lt.prototype)).constructor=Dn,Dn.prototype.update=function(){var e=new o,t=new o,r=new a;return function(){var n,i=["a","b","c"];this.object.updateMatrixWorld(!0),r.getNormalMatrix(this.object.matrixWorld);var o=this.object.matrixWorld,a=this.geometry.attributes.position;if((n=this.object.geometry)&&n.isGeometry)for(var s=n.vertices,c=n.faces,u=n=0,h=c.length;u<h;u++)for(var l=c[u],p=0,d=l.vertexNormals.length;p<d;p++){var f=l.vertexNormals[p];e.copy(s[l[i[p]]]).applyMatrix4(o),t.copy(f).applyMatrix3(r).normalize().multiplyScalar(this.size).add(e),a.setXYZ(n,e.x,e.y,e.z),n+=1,a.setXYZ(n,t.x,t.y,t.z),n+=1}else if(n&&n.isBufferGeometry)for(i=n.attributes.position,s=n.attributes.normal,p=n=0,d=i.count;p<d;p++)e.set(i.getX(p),i.getY(p),i.getZ(p)).applyMatrix4(o),t.set(s.getX(p),s.getY(p),s.getZ(p)),t.applyMatrix3(r).normalize().multiplyScalar(this.size).add(e),a.setXYZ(n,e.x,e.y,e.z),n+=1,a.setXYZ(n,t.x,t.y,t.z),n+=1;a.needsUpdate=!0}}(),(kn.prototype=Object.create(ne.prototype)).constructor=kn,kn.prototype.dispose=function(){this.cone.geometry.dispose(),this.cone.material.dispose()},kn.prototype.update=function(){var e=new o,t=new o;return function(){this.light.updateMatrixWorld();var r=this.light.distance?this.light.distance:1e3,n=r*Math.tan(this.light.angle);this.cone.scale.set(n,n,r),e.setFromMatrixPosition(this.light.matrixWorld),t.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(t.sub(e)),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}(),(Fn.prototype=Object.create(lt.prototype)).constructor=Fn,Fn.prototype.updateMatrixWorld=function(){var e=new o,t=new n,r=new n;return function(n){var i=this.bones,o=this.geometry,a=o.getAttribute("position");r.getInverse(this.root.matrixWorld);for(var s=0,c=0;s<i.length;s++){var u=i[s];u.parent&&u.parent.isBone&&(t.multiplyMatrices(r,u.matrixWorld),e.setFromMatrixPosition(t),a.setXYZ(c,e.x,e.y,e.z),t.multiplyMatrices(r,u.parent.matrixWorld),e.setFromMatrixPosition(t),a.setXYZ(c+1,e.x,e.y,e.z),c+=2)}o.getAttribute("position").needsUpdate=!0,ne.prototype.updateMatrixWorld.call(this,n)}}(),(Un.prototype=Object.create(je.prototype)).constructor=Un,Un.prototype.dispose=function(){this.geometry.dispose(),this.material.dispose()},Un.prototype.update=function(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)},($n.prototype=Object.create(ne.prototype)).constructor=$n,$n.prototype.dispose=function(){this.children[0].geometry.dispose(),this.children[0].material.dispose()},$n.prototype.update=function(){var e=.5*this.light.width,t=.5*this.light.height,r=this.line.geometry.attributes.position,n=r.array;n[0]=e,n[1]=-t,n[2]=0,n[3]=e,n[4]=t,n[5]=0,n[6]=-e,n[7]=t,n[8]=0,n[9]=-e,n[10]=-t,n[11]=0,n[12]=e,n[13]=-t,n[14]=0,r.needsUpdate=!0,void 0!==this.color?this.line.material.color.set(this.color):this.line.material.color.copy(this.light.color)},(zn.prototype=Object.create(ne.prototype)).constructor=zn,zn.prototype.dispose=function(){this.children[0].geometry.dispose(),this.children[0].material.dispose()},zn.prototype.update=function(){var e=new o,t=new z,r=new z;return function(){var n=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var i=n.geometry.getAttribute("color");t.copy(this.light.color),r.copy(this.light.groundColor);for(var o=0,a=i.count;o<a;o++){var s=o<a/2?t:r;i.setXYZ(o,s.r,s.g,s.b)}i.needsUpdate=!0}n.lookAt(e.setFromMatrixPosition(this.light.matrixWorld).negate())}}(),(Gn.prototype=Object.create(lt.prototype)).constructor=Gn,(Vn.prototype=Object.create(lt.prototype)).constructor=Vn,(Hn.prototype=Object.create(lt.prototype)).constructor=Hn,Hn.prototype.update=function(){var e=new o,t=new o,r=new a;return function(){this.object.updateMatrixWorld(!0),r.getNormalMatrix(this.object.matrixWorld);for(var n=this.object.matrixWorld,i=this.geometry.attributes.position,o=this.object.geometry,a=o.vertices,s=0,c=0,u=(o=o.faces).length;c<u;c++){var h=o[c],l=h.normal;e.copy(a[h.a]).add(a[h.b]).add(a[h.c]).divideScalar(3).applyMatrix4(n),t.copy(l).applyMatrix3(r).normalize().multiplyScalar(this.size).add(e),i.setXYZ(s,e.x,e.y,e.z),s+=1,i.setXYZ(s,t.x,t.y,t.z),s+=1}i.needsUpdate=!0}}(),(qn.prototype=Object.create(ne.prototype)).constructor=qn,qn.prototype.dispose=function(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()},qn.prototype.update=function(){var e=new o,t=new o,r=new o;return function(){e.setFromMatrixPosition(this.light.matrixWorld),t.setFromMatrixPosition(this.light.target.matrixWorld),r.subVectors(t,e),this.lightPlane.lookAt(r),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(r),this.targetLine.scale.z=r.length()}}(),(Wn.prototype=Object.create(lt.prototype)).constructor=Wn,Wn.prototype.update=function(){function e(e,o,a,s){if(n.set(o,a,s).unproject(i),void 0!==(e=r[e]))for(o=t.getAttribute("position"),a=0,s=e.length;a<s;a++)o.setXYZ(e[a],n.x,n.y,n.z)}var t,r,n=new o,i=new ie;return function(){t=this.geometry,r=this.pointMap,i.projectionMatrix.copy(this.camera.projectionMatrix),e("c",0,0,-1),e("t",0,0,1),e("n1",-1,-1,-1),e("n2",1,-1,-1),e("n3",-1,1,-1),e("n4",1,1,-1),e("f1",-1,-1,1),e("f2",1,-1,1),e("f3",-1,1,1),e("f4",1,1,1),e("u1",.7,1.1,-1),e("u2",-.7,1.1,-1),e("u3",0,2,-1),e("cf1",-1,0,1),e("cf2",1,0,1),e("cf3",0,-1,1),e("cf4",0,1,1),e("cn1",-1,0,-1),e("cn2",1,0,-1),e("cn3",0,-1,-1),e("cn4",0,1,-1),t.getAttribute("position").needsUpdate=!0}}(),(Xn.prototype=Object.create(lt.prototype)).constructor=Xn,Xn.prototype.update=function(){var e=new K;return function(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&e.setFromObject(this.object),!e.isEmpty()){t=e.min;var r=e.max,n=this.geometry.attributes.position,i=n.array;i[0]=r.x,i[1]=r.y,i[2]=r.z,i[3]=t.x,i[4]=r.y,i[5]=r.z,i[6]=t.x,i[7]=t.y,i[8]=r.z,i[9]=r.x,i[10]=t.y,i[11]=r.z,i[12]=r.x,i[13]=r.y,i[14]=t.z,i[15]=t.x,i[16]=r.y,i[17]=t.z,i[18]=t.x,i[19]=t.y,i[20]=t.z,i[21]=r.x,i[22]=t.y,i[23]=t.z,n.needsUpdate=!0,this.geometry.computeBoundingSphere()}}}(),Xn.prototype.setFromObject=function(e){return this.object=e,this.update(),this},(Yn.prototype=Object.create(lt.prototype)).constructor=Yn,Yn.prototype.updateMatrixWorld=function(e){var t=this.box;t.isEmpty()||(t.getCenter(this.position),t.getSize(this.scale),this.scale.multiplyScalar(.5),ne.prototype.updateMatrixWorld.call(this,e))},(Kn.prototype=Object.create(ht.prototype)).constructor=Kn,Kn.prototype.updateMatrixWorld=function(e){var t=-this.plane.constant;1e-8>Math.abs(t)&&(t=1e-8),this.scale.set(.5*this.size,.5*this.size,t),this.lookAt(this.plane.normal),ne.prototype.updateMatrixWorld.call(this,e)};var zi,Gi;(Zn.prototype=Object.create(ne.prototype)).constructor=Zn,Zn.prototype.setDirection=function(){var e,t=new o;return function(r){.99999<r.y?this.quaternion.set(0,0,0,1):-.99999>r.y?this.quaternion.set(1,0,0,0):(t.set(r.z,0,-r.x).normalize(),e=Math.acos(r.y),this.quaternion.setFromAxisAngle(t,e))}}(),Zn.prototype.setLength=function(e,t,r){void 0===t&&(t=.2*e),void 0===r&&(r=.2*t),this.line.scale.set(1,Math.max(0,e-t),1),this.line.updateMatrix(),this.cone.scale.set(r,t,r),this.cone.position.y=e,this.cone.updateMatrix()},Zn.prototype.setColor=function(e){this.line.material.color.copy(e),this.cone.material.color.copy(e)},(Jn.prototype=Object.create(lt.prototype)).constructor=Jn;var Vi=new o,Hi=new Qn,qi=new Qn,Wi=new Qn;(ei.prototype=Object.create(Zr.prototype)).constructor=ei,ei.prototype.isCatmullRomCurve3=!0,ei.prototype.getPoint=function(e,t){t=t||new o;var r=this.points;e*=(c=r.length)-(this.closed?0:1);if(e-=u=Math.floor(e),this.closed?u+=0<u?0:(Math.floor(Math.abs(u)/r.length)+1)*r.length:0===e&&u===c-1&&(u=c-2,e=1),this.closed||0<u)var n=r[(u-1)%c];else Vi.subVectors(r[0],r[1]).add(r[0]),n=Vi;var i=r[u%c],a=r[(u+1)%c];if(this.closed||u+2<c?r=r[(u+2)%c]:(Vi.subVectors(r[c-1],r[c-2]).add(r[c-1]),r=Vi),"centripetal"===this.curveType||"chordal"===this.curveType){var s="chordal"===this.curveType?.5:.25,c=Math.pow(n.distanceToSquared(i),s),u=Math.pow(i.distanceToSquared(a),s),s=Math.pow(a.distanceToSquared(r),s);1e-4>u&&(u=1),1e-4>c&&(c=u),1e-4>s&&(s=u),Hi.initNonuniformCatmullRom(n.x,i.x,a.x,r.x,c,u,s),qi.initNonuniformCatmullRom(n.y,i.y,a.y,r.y,c,u,s),Wi.initNonuniformCatmullRom(n.z,i.z,a.z,r.z,c,u,s)}else"catmullrom"===this.curveType&&(Hi.initCatmullRom(n.x,i.x,a.x,r.x,this.tension),qi.initCatmullRom(n.y,i.y,a.y,r.y,this.tension),Wi.initCatmullRom(n.z,i.z,a.z,r.z,this.tension));return t.set(Hi.calc(e),qi.calc(e),Wi.calc(e)),t},ei.prototype.copy=function(e){Zr.prototype.copy.call(this,e),this.points=[];for(var t=0,r=e.points.length;t<r;t++)this.points.push(e.points[t].clone());return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this},(ti.prototype=Object.create(Zr.prototype)).constructor=ti,ti.prototype.isCubicBezierCurve3=!0,ti.prototype.getPoint=function(e,t){t=t||new o;var r=this.v0,n=this.v1,i=this.v2,a=this.v3;return t.set(Kr(e,r.x,n.x,i.x,a.x),Kr(e,r.y,n.y,i.y,a.y),Kr(e,r.z,n.z,i.z,a.z)),t},ti.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this},(ri.prototype=Object.create(Zr.prototype)).constructor=ri,ri.prototype.isQuadraticBezierCurve3=!0,ri.prototype.getPoint=function(e,t){t=t||new o;var r=this.v0,n=this.v1,i=this.v2;return t.set(Yr(e,r.x,n.x,i.x),Yr(e,r.y,n.y,i.y),Yr(e,r.z,n.z,i.z)),t},ri.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this},(ni.prototype=Object.create(Zr.prototype)).constructor=ni,ni.prototype.isLineCurve3=!0,ni.prototype.getPoint=function(e,t){return t=t||new o,1===e?t.copy(this.v2):(t.copy(this.v2).sub(this.v1),t.multiplyScalar(e).add(this.v1)),t},ni.prototype.getPointAt=function(e,t){return this.getPoint(e,t)},ni.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v1.copy(e.v1),this.v2.copy(e.v2),this},(ii.prototype=Object.create(en.prototype)).constructor=ii,ii.prototype.isArcCurve=!0,Zr.create=function(e,t){return console.log("THREE.Curve.create() has been deprecated"),e.prototype=Object.create(Zr.prototype),e.prototype.constructor=e,e.prototype.getPoint=t,e},Object.assign(Qr.prototype,{createPointsGeometry:function(e){return console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead."),e=this.getPoints(e),this.createGeometry(e)},createSpacedPointsGeometry:function(e){return console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead."),e=this.getSpacedPoints(e),this.createGeometry(e)},createGeometry:function(e){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var t=new se,r=0,n=e.length;r<n;r++){var i=e[r];t.vertices.push(new o(i.x,i.y,i.z||0))}return t}}),Object.assign(on.prototype,{fromPoints:function(e){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(e)}}),oi.prototype=Object.create(ei.prototype),ai.prototype=Object.create(ei.prototype),si.prototype=Object.create(ei.prototype),Object.assign(si.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}}),Gn.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},Fn.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")},Object.assign(G.prototype,{center:function(e){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(e)},empty:function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(e){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},size:function(e){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(e)}}),Object.assign(K.prototype,{center:function(e){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(e)},empty:function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(e){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},isIntersectionSphere:function(e){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(e)},size:function(e){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(e)}}),Oe.prototype.center=function(e){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(e)},Object.assign(ci,{random16:function(){return console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead."),Math.random()},nearestPowerOfTwo:function(e){return console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo()."),ci.floorPowerOfTwo(e)},nextPowerOfTwo:function(e){return console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo()."),ci.ceilPowerOfTwo(e)}}),Object.assign(a.prototype,{flattenToArrayOffset:function(e,t){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(e,t)},multiplyVector3:function(e){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),e.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBuffer:function(e){return console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(e)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}}),Object.assign(n.prototype,{extractPosition:function(e){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(e)},flattenToArrayOffset:function(e,t){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(e,t)},getPosition:function(){var e;return function(){return void 0===e&&(e=new o),console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),e.setFromMatrixColumn(this,3)}}(),setRotationFromQuaternion:function(e){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(e)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(e){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},multiplyVector4:function(e){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(e){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),e.transformDirection(this)},crossVector:function(e){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBuffer:function(e){return console.warn("THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(e)},applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(e,t,r,n,i,o){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(e,t,n,r,i,o)}}),J.prototype.isIntersectionLine=function(e){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(e)},i.prototype.multiplyVector3=function(e){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),e.applyQuaternion(this)},Object.assign(Te.prototype,{isIntersectionBox:function(e){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},isIntersectionPlane:function(e){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(e)},isIntersectionSphere:function(e){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(e)}}),Object.assign(an.prototype,{extractAllPoints:function(e){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(e)},extrude:function(e){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new Bt(this,e)},makeGeometry:function(e){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new Xt(this,e)}}),Object.assign(r.prototype,{fromAttribute:function(e,t,r){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,r)},distanceToManhattan:function(e){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(e)},lengthManhattan:function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(o.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(e){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(e)},getScaleFromMatrix:function(e){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(e)},getColumnFromMatrix:function(e,t){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(t,e)},applyProjection:function(e){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(e)},fromAttribute:function(e,t,r){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,r)},distanceToManhattan:function(e){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(e)},lengthManhattan:function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(c.prototype,{fromAttribute:function(e,t,r){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,r)},lengthManhattan:function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),se.prototype.computeTangents=function(){console.warn("THREE.Geometry: .computeTangents() has been removed.")},Object.assign(ne.prototype,{getChildByName:function(e){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(e)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(e,t){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(t,e)}}),Object.defineProperties(ne.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(e){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=e}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),Object.defineProperties(ot.prototype,{objects:{get:function(){return console.warn("THREE.LOD: .objects has been renamed to .levels."),this.levels}}}),Object.defineProperty(at.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}}),Object.defineProperty(Zr.prototype,"__arcLengthDivisions",{get:function(){return console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions},set:function(e){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions=e}}),We.prototype.setLens=function(e,t){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==t&&(this.filmGauge=t),this.setFocalLength(e)},Object.defineProperties(br.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(e){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=e}},shadowCameraLeft:{set:function(e){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=e}},shadowCameraRight:{set:function(e){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=e}},shadowCameraTop:{set:function(e){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=e}},shadowCameraBottom:{set:function(e){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=e}},shadowCameraNear:{set:function(e){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=e}},shadowCameraFar:{set:function(e){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=e}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(e){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=e}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(e){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=e}},shadowMapHeight:{set:function(e){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=e}}}),Object.defineProperties(ce.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}}}),Object.assign(_e.prototype,{addIndex:function(e){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(e)},addDrawCall:function(e,t,r){void 0!==r&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(e,t)},clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},computeTangents:function(){console.warn("THREE.BufferGeometry: .computeTangents() has been removed.")},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")}}),Object.defineProperties(_e.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),Object.defineProperties(Sn.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this}}}),Object.defineProperties(W.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new z}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(e){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===e}}}),Object.defineProperties(sr.prototype,{metal:{get:function(){return console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead."),!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}}),Object.defineProperties(Ce.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(e){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=e}}}),Object.assign(Je.prototype,{getCurrentRenderTarget:function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},getMaxAnisotropy:function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},getPrecision:function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},resetGLState:function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},supportsFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},supportsCompressedTexturePVRTC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},supportsInstancedArrays:function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(e){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(e)},initMaterial:function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},addPostPlugin:function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")}}),Object.defineProperties(Je.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(e){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=e}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(e){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=e}},shadowMapCullFace:{get:function(){return this.shadowMap.cullFace},set:function(e){console.warn("THREE.WebGLRenderer: .shadowMapCullFace is now .shadowMap.cullFace."),this.shadowMap.cullFace=e}}}),Object.defineProperties(ee.prototype,{cullFace:{get:function(){return this.renderReverseSided?2:1},set:function(e){e=1!==e,console.warn("WebGLRenderer: .shadowMap.cullFace is deprecated. Set .shadowMap.renderReverseSided to "+e+"."),this.renderReverseSided=e}}}),Object.defineProperties(u.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(e){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=e}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(e){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=e}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(e){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=e}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(e){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=e}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(e){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=e}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(e){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=e}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(e){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=e}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(e){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=e}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(e){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=e}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(e){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=e}}}),fn.prototype.load=function(e){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var t=this;return(new hn).load(e,function(e){t.setBuffer(e)}),this},vn.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},pn.prototype.updateCubeMap=function(e,t){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(e,t)},e.WebGLRenderTargetCube=h,e.WebGLRenderTarget=u,e.WebGLRenderer=Je,e.ShaderLib=xi,e.UniformsLib=yi,e.UniformsUtils=bi,e.ShaderChunk=_i,e.FogExp2=Qe,e.Fog=et,e.Scene=tt,e.LensFlare=rt,e.Sprite=it,e.LOD=ot,e.SkinnedMesh=ct,e.Skeleton=at,e.Bone=st,e.Mesh=je,e.LineSegments=lt,e.LineLoop=pt,e.Line=ht,e.Points=ft,e.Group=mt,e.VideoTexture=vt,e.DataTexture=l,e.CompressedTexture=gt,e.CubeTexture=p,e.CanvasTexture=H,e.DepthTexture=yt,e.Texture=s,e.CompressedTextureLoader=fr,e.DataTextureLoader=mr,e.CubeTextureLoader=gr,e.TextureLoader=yr,e.ObjectLoader=Wr,e.MaterialLoader=Gr,e.BufferGeometryLoader=Vr,e.DefaultLoadingManager=Ai,e.LoadingManager=pr,e.JSONLoader=qr,e.ImageLoader=vr,e.FontLoader=un,e.FileLoader=dr,e.Loader=Hr,e.Cache=ji,e.AudioLoader=hn,e.SpotLightShadow=wr,e.SpotLight=Sr,e.PointLight=Mr,e.RectAreaLight=Or,e.HemisphereLight=_r,e.DirectionalLightShadow=Er,e.DirectionalLight=Cr,e.AmbientLight=Tr,e.LightShadow=xr,e.Light=br,e.StereoCamera=ln,e.PerspectiveCamera=We,e.OrthographicCamera=oe,e.CubeCamera=pn,e.ArrayCamera=Xe,e.Camera=ie,e.AudioListener=dn,e.PositionalAudio=mn,e.AudioContext=$i,e.AudioAnalyser=vn,e.Audio=fn,e.VectorKeyframeTrack=Nr,e.StringKeyframeTrack=Br,e.QuaternionKeyframeTrack=Dr,e.NumberKeyframeTrack=kr,e.ColorKeyframeTrack=Ur,e.BooleanKeyframeTrack=Fr,e.PropertyMixer=gn,e.PropertyBinding=bn,e.KeyframeTrack=$r,e.AnimationUtils=Li,e.AnimationObjectGroup=_n,e.AnimationMixer=wn,e.AnimationClip=zr,e.Uniform=Sn,e.InstancedBufferGeometry=Mn,e.BufferGeometry=_e,e.Geometry=se,e.InterleavedBufferAttribute=En,e.InstancedInterleavedBuffer=Tn,e.InterleavedBuffer=Cn,e.InstancedBufferAttribute=On,e.Face3=ae,e.Object3D=ne,e.Raycaster=Pn,e.Layers=re,e.EventDispatcher=t,e.Clock=Rn,e.QuaternionLinearInterpolant=Ir,e.LinearInterpolant=Ar,e.DiscreteInterpolant=Rr,e.CubicInterpolant=jr,e.Interpolant=Pr,e.Triangle=Pe,e.Math=ci,e.Spherical=Ln,e.Cylindrical=Nn,e.Plane=J,e.Frustum=Q,e.Sphere=Z,e.Ray=Te,e.Matrix4=n,e.Matrix3=a,e.Box3=K,e.Box2=G,e.Line3=Oe,e.Euler=te,e.Vector4=c,e.Vector3=o,e.Vector2=r,e.Quaternion=i,e.Color=z,e.ImmediateRenderObject=In,e.VertexNormalsHelper=Dn,e.SpotLightHelper=kn,e.SkeletonHelper=Fn,e.PointLightHelper=Un,e.RectAreaLightHelper=$n,e.HemisphereLightHelper=zn,e.GridHelper=Gn,e.PolarGridHelper=Vn,e.FaceNormalsHelper=Hn,e.DirectionalLightHelper=qn,e.CameraHelper=Wn,e.BoxHelper=Xn,e.Box3Helper=Yn,e.PlaneHelper=Kn,e.ArrowHelper=Zn,e.AxesHelper=Jn,e.CatmullRomCurve3=ei,e.CubicBezierCurve3=ti,e.QuadraticBezierCurve3=ri,e.LineCurve3=ni,e.ArcCurve=ii,e.EllipseCurve=en,e.SplineCurve=tn,e.CubicBezierCurve=rn,e.QuadraticBezierCurve=nn,e.LineCurve=Jr,e.Shape=an,e.Path=on,e.ShapePath=sn,e.Font=cn,e.CurvePath=Qr,e.Curve=Zr,e.ShapeUtils=Ti,e.SceneUtils={createMultiMaterialObject:function(e,t){for(var r=new mt,n=0,i=t.length;n<i;n++)r.add(new je(e,t[n]));return r},detach:function(e,t,r){e.applyMatrix(t.matrixWorld),t.remove(e),r.add(e)},attach:function(e,t,r){e.applyMatrix((new n).getInverse(r.matrixWorld)),t.remove(e),r.add(e)}},e.WebGLUtils=Ze,e.WireframeGeometry=bt,e.ParametricGeometry=_t,e.ParametricBufferGeometry=xt,e.TetrahedronGeometry=Mt,e.TetrahedronBufferGeometry=Et,e.OctahedronGeometry=Ct,e.OctahedronBufferGeometry=Tt,e.IcosahedronGeometry=Ot,e.IcosahedronBufferGeometry=Pt,e.DodecahedronGeometry=jt,e.DodecahedronBufferGeometry=At,e.PolyhedronGeometry=wt,e.PolyhedronBufferGeometry=St,e.TubeGeometry=Rt,e.TubeBufferGeometry=Lt,e.TorusKnotGeometry=Nt,e.TorusKnotBufferGeometry=It,e.TorusGeometry=Dt,e.TorusBufferGeometry=kt,e.TextGeometry=Ut,e.TextBufferGeometry=$t,e.SphereGeometry=zt,e.SphereBufferGeometry=Gt,e.RingGeometry=Vt,e.RingBufferGeometry=Ht,e.PlaneGeometry=Se,e.PlaneBufferGeometry=Me,e.LatheGeometry=qt,e.LatheBufferGeometry=Wt,e.ShapeGeometry=Xt,e.ShapeBufferGeometry=Yt,e.ExtrudeGeometry=Bt,e.ExtrudeBufferGeometry=Ft,e.EdgesGeometry=Kt,e.ConeGeometry=Qt,e.ConeBufferGeometry=er,e.CylinderGeometry=Zt,e.CylinderBufferGeometry=Jt,e.CircleGeometry=tr,e.CircleBufferGeometry=rr,e.BoxGeometry=xe,e.BoxBufferGeometry=we,e.ShadowMaterial=nr,e.SpriteMaterial=nt,e.RawShaderMaterial=ir,e.ShaderMaterial=Ce,e.PointsMaterial=dt,e.MeshPhysicalMaterial=ar,e.MeshStandardMaterial=or,e.MeshPhongMaterial=sr,e.MeshToonMaterial=cr,e.MeshNormalMaterial=ur,e.MeshLambertMaterial=hr,e.MeshDepthMaterial=X,e.MeshDistanceMaterial=Y,e.MeshBasicMaterial=Ee,e.LineDashedMaterial=lr,e.LineBasicMaterial=ut,e.Material=W,e.Float64BufferAttribute=ge,e.Float32BufferAttribute=ve,e.Uint32BufferAttribute=me,e.Int32BufferAttribute=fe,e.Uint16BufferAttribute=de,e.Int16BufferAttribute=pe,e.Uint8ClampedBufferAttribute=le,e.Uint8BufferAttribute=he,e.Int8BufferAttribute=ue,e.BufferAttribute=ce,e.REVISION="88",e.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2},e.CullFaceNone=0,e.CullFaceBack=1,e.CullFaceFront=2,e.CullFaceFrontBack=3,e.FrontFaceDirectionCW=0,e.FrontFaceDirectionCCW=1,e.BasicShadowMap=0,e.PCFShadowMap=1,e.PCFSoftShadowMap=2,e.FrontSide=0,e.BackSide=1,e.DoubleSide=2,e.FlatShading=1,e.SmoothShading=2,e.NoColors=0,e.FaceColors=1,e.VertexColors=2,e.NoBlending=0,e.NormalBlending=1,e.AdditiveBlending=2,e.SubtractiveBlending=3,e.MultiplyBlending=4,e.CustomBlending=5,e.AddEquation=100,e.SubtractEquation=101,e.ReverseSubtractEquation=102,e.MinEquation=103,e.MaxEquation=104,e.ZeroFactor=200,e.OneFactor=201,e.SrcColorFactor=202,e.OneMinusSrcColorFactor=203,e.SrcAlphaFactor=204,e.OneMinusSrcAlphaFactor=205,e.DstAlphaFactor=206,e.OneMinusDstAlphaFactor=207,e.DstColorFactor=208,e.OneMinusDstColorFactor=209,e.SrcAlphaSaturateFactor=210,e.NeverDepth=0,e.AlwaysDepth=1,e.LessDepth=2,e.LessEqualDepth=3,e.EqualDepth=4,e.GreaterEqualDepth=5,e.GreaterDepth=6,e.NotEqualDepth=7,e.MultiplyOperation=0,e.MixOperation=1,e.AddOperation=2,e.NoToneMapping=0,e.LinearToneMapping=1,e.ReinhardToneMapping=2,e.Uncharted2ToneMapping=3,e.CineonToneMapping=4,e.UVMapping=300,e.CubeReflectionMapping=301,e.CubeRefractionMapping=302,e.EquirectangularReflectionMapping=303,e.EquirectangularRefractionMapping=304,e.SphericalReflectionMapping=305,e.CubeUVReflectionMapping=306,e.CubeUVRefractionMapping=307,e.RepeatWrapping=1e3,e.ClampToEdgeWrapping=1001,e.MirroredRepeatWrapping=1002,e.NearestFilter=1003,e.NearestMipMapNearestFilter=1004,e.NearestMipMapLinearFilter=1005,e.LinearFilter=1006,e.LinearMipMapNearestFilter=1007,e.LinearMipMapLinearFilter=1008,e.UnsignedByteType=1009,e.ByteType=1010,e.ShortType=1011,e.UnsignedShortType=1012,e.IntType=1013,e.UnsignedIntType=1014,e.FloatType=1015,e.HalfFloatType=1016,e.UnsignedShort4444Type=1017,e.UnsignedShort5551Type=1018,e.UnsignedShort565Type=1019,e.UnsignedInt248Type=1020,e.AlphaFormat=1021,e.RGBFormat=1022,e.RGBAFormat=1023,e.LuminanceFormat=1024,e.LuminanceAlphaFormat=1025,e.RGBEFormat=1023,e.DepthFormat=1026,e.DepthStencilFormat=1027,e.RGB_S3TC_DXT1_Format=2001,e.RGBA_S3TC_DXT1_Format=2002,e.RGBA_S3TC_DXT3_Format=2003,e.RGBA_S3TC_DXT5_Format=2004,e.RGB_PVRTC_4BPPV1_Format=2100,e.RGB_PVRTC_2BPPV1_Format=2101,e.RGBA_PVRTC_4BPPV1_Format=2102,e.RGBA_PVRTC_2BPPV1_Format=2103,e.RGB_ETC1_Format=2151,e.LoopOnce=2200,e.LoopRepeat=2201,e.LoopPingPong=2202,e.InterpolateDiscrete=2300,e.InterpolateLinear=2301,e.InterpolateSmooth=2302,e.ZeroCurvatureEnding=2400,e.ZeroSlopeEnding=2401,e.WrapAroundEnding=2402,e.TrianglesDrawMode=0,e.TriangleStripDrawMode=1,e.TriangleFanDrawMode=2,e.LinearEncoding=3e3,e.sRGBEncoding=3001,e.GammaEncoding=3007,e.RGBEEncoding=3002,e.LogLuvEncoding=3003,e.RGBM7Encoding=3004,e.RGBM16Encoding=3005,e.RGBDEncoding=3006,e.BasicDepthPacking=3200,e.RGBADepthPacking=3201,e.CubeGeometry=xe,e.Face4=function(e,t,r,n,i,o,a){return console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead."),new ae(e,t,r,i,o,a)},e.LineStrip=0,e.LinePieces=1,e.MeshFaceMaterial=function(e){return console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead."),e},e.MultiMaterial=function(e){return void 0===e&&(e=[]),console.warn("THREE.MultiMaterial has been removed. Use an Array instead."),e.isMultiMaterial=!0,e.materials=e,e.clone=function(){return e.slice()},e},e.PointCloud=function(e,t){return console.warn("THREE.PointCloud has been renamed to THREE.Points."),new ft(e,t)},e.Particle=function(e){return console.warn("THREE.Particle has been renamed to THREE.Sprite."),new it(e)},e.ParticleSystem=function(e,t){return console.warn("THREE.ParticleSystem has been renamed to THREE.Points."),new ft(e,t)},e.PointCloudMaterial=function(e){return console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."),new dt(e)},e.ParticleBasicMaterial=function(e){return console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."),new dt(e)},e.ParticleSystemMaterial=function(e){return console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."),new dt(e)},e.Vertex=function(e,t,r){return console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead."),new o(e,t,r)},e.DynamicBufferAttribute=function(e,t){return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead."),new ce(e,t).setDynamic(!0)},e.Int8Attribute=function(e,t){return console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead."),new ue(e,t)},e.Uint8Attribute=function(e,t){return console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead."),new he(e,t)},e.Uint8ClampedAttribute=function(e,t){return console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead."),new le(e,t)},e.Int16Attribute=function(e,t){return console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead."),new pe(e,t)},e.Uint16Attribute=function(e,t){return console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead."),new de(e,t)},e.Int32Attribute=function(e,t){return console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead."),new fe(e,t)},e.Uint32Attribute=function(e,t){return console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead."),new me(e,t)},e.Float32Attribute=function(e,t){return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),new ve(e,t)},e.Float64Attribute=function(e,t){return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),new ge(e,t)},e.ClosedSplineCurve3=oi,e.SplineCurve3=ai,e.Spline=si,e.AxisHelper=function(e){return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),new Jn(e)},e.BoundingBoxHelper=function(e,t){return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),new Xn(e,t)},e.EdgesHelper=function(e,t){return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),new lt(new Kt(e.geometry),new ut({color:void 0!==t?t:16777215}))},e.WireframeHelper=function(e,t){return console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead."),new lt(new bt(e.geometry),new ut({color:void 0!==t?t:16777215}))},e.XHRLoader=function(e){return console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader."),new dr(e)},e.BinaryTextureLoader=function(e){return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),new mr(e)},e.GeometryUtils={merge:function(e,t,r){if(console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead."),t.isMesh){t.matrixAutoUpdate&&t.updateMatrix();var n=t.matrix;t=t.geometry}e.merge(t,n,r)},center:function(e){return console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead."),e.center()}},e.ImageUtils={crossOrigin:void 0,loadTexture:function(e,t,r,n){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");var i=new yr;return i.setCrossOrigin(this.crossOrigin),e=i.load(e,r,void 0,n),t&&(e.mapping=t),e},loadTextureCube:function(e,t,r,n){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");var i=new gr;return i.setCrossOrigin(this.crossOrigin),e=i.load(e,r,void 0,n),t&&(e.mapping=t),e},loadCompressedTexture:function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},loadCompressedTextureCube:function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")}},e.Projector=function(){console.error("THREE.Projector has been moved to /examples/js/renderers/Projector.js."),this.projectVector=function(e,t){console.warn("THREE.Projector: .projectVector() is now vector.project()."),e.project(t)},this.unprojectVector=function(e,t){console.warn("THREE.Projector: .unprojectVector() is now vector.unproject()."),e.unproject(t)},this.pickingRay=function(){console.error("THREE.Projector: .pickingRay() is now raycaster.setFromCamera().")}},e.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js"),this.domElement=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),this.clear=function(){},this.render=function(){},this.setClearColor=function(){},this.setSize=function(){}},Object.defineProperty(e,"__esModule",{value:!0})})},{}],242:[function(e,t,r){"use strict";function n(e,t){if(!(this instanceof n))return new n(e,t);if(this.data=e||[],this.length=this.data.length,this.compare=t||function(e,t){return e<t?-1:e>t?1:0},this.length>0)for(var r=this.length>>1;r>=0;r--)this._down(r)}t.exports=n,n.prototype={push:function(e){this.data.push(e),this.length++,this._up(this.length-1)},pop:function(){if(0!==this.length){var e=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),e}},peek:function(){return this.data[0]},_up:function(e){for(var t=this.data,r=this.compare,n=t[e];e>0;){var i=e-1>>1,o=t[i];if(r(n,o)>=0)break;t[e]=o,e=i}t[e]=n},_down:function(e){for(var t=this.data,r=this.compare,n=this.length,i=n>>1,o=t[e];e<i;){var a=1+(e<<1),s=a+1,c=t[a];if(s<n&&r(t[s],c)<0&&(a=s,c=t[s]),r(c,o)>=0)break;t[e]=c,e=a}t[e]=o}}},{}],243:[function(e,t,r){(function(){function e(e){return function(t,r,n,i){r=x(r,i,4);var o=!O(t)&&_.keys(t),a=(o||t).length,s=e>0?0:a-1;return arguments.length<3&&(n=t[o?o[s]:s],s+=e),function(t,r,n,i,o,a){for(;o>=0&&o<a;o+=e){var s=i?i[o]:o;n=r(n,t[s],s,t)}return n}(t,r,n,o,s,a)}}function n(e){return function(t,r,n){r=w(r,n);for(var i=T(t),o=e>0?0:i-1;o>=0&&o<i;o+=e)if(r(t[o],o,t))return o;return-1}}function i(e,t,r){return function(n,i,o){var a=0,s=T(n);if("number"==typeof o)e>0?a=o>=0?o:Math.max(o+s,a):s=o>=0?Math.min(o+1,s):o+s+1;else if(r&&o&&s)return o=r(n,i),n[o]===i?o:-1;if(i!=i)return(o=t(p.call(n,a,s),_.isNaN))>=0?o+a:-1;for(o=e>0?a:s-1;o>=0&&o<s;o+=e)if(n[o]===i)return o;return-1}}function o(e,t){var r=L.length,n=e.constructor,i=_.isFunction(n)&&n.prototype||u,o="constructor";for(_.has(e,o)&&!_.contains(t,o)&&t.push(o);r--;)(o=L[r])in e&&e[o]!==i[o]&&!_.contains(t,o)&&t.push(o)}var a=this,s=a._,c=Array.prototype,u=Object.prototype,h=Function.prototype,l=c.push,p=c.slice,d=u.toString,f=u.hasOwnProperty,m=Array.isArray,v=Object.keys,g=h.bind,y=Object.create,b=function(){},_=function(e){return e instanceof _?e:this instanceof _?void(this._wrapped=e):new _(e)};void 0!==r?(void 0!==t&&t.exports&&(r=t.exports=_),r._=_):a._=_,_.VERSION="1.8.3";var x=function(e,t,r){if(void 0===t)return e;switch(null==r?3:r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,i){return e.call(t,r,n,i)};case 4:return function(r,n,i,o){return e.call(t,r,n,i,o)}}return function(){return e.apply(t,arguments)}},w=function(e,t,r){return null==e?_.identity:_.isFunction(e)?x(e,t,r):_.isObject(e)?_.matcher(e):_.property(e)};_.iteratee=function(e,t){return w(e,t,1/0)};var S=function(e,t){return function(r){var n=arguments.length;if(n<2||null==r)return r;for(var i=1;i<n;i++)for(var o=arguments[i],a=e(o),s=a.length,c=0;c<s;c++){var u=a[c];t&&void 0!==r[u]||(r[u]=o[u])}return r}},M=function(e){if(!_.isObject(e))return{};if(y)return y(e);b.prototype=e;var t=new b;return b.prototype=null,t},E=function(e){return function(t){return null==t?void 0:t[e]}},C=Math.pow(2,53)-1,T=E("length"),O=function(e){var t=T(e);return"number"==typeof t&&t>=0&&t<=C};_.each=_.forEach=function(e,t,r){t=x(t,r);var n,i;if(O(e))for(n=0,i=e.length;n<i;n++)t(e[n],n,e);else{var o=_.keys(e);for(n=0,i=o.length;n<i;n++)t(e[o[n]],o[n],e)}return e},_.map=_.collect=function(e,t,r){t=w(t,r);for(var n=!O(e)&&_.keys(e),i=(n||e).length,o=Array(i),a=0;a<i;a++){var s=n?n[a]:a;o[a]=t(e[s],s,e)}return o},_.reduce=_.foldl=_.inject=e(1),_.reduceRight=_.foldr=e(-1),_.find=_.detect=function(e,t,r){var n;if(void 0!==(n=O(e)?_.findIndex(e,t,r):_.findKey(e,t,r))&&-1!==n)return e[n]},_.filter=_.select=function(e,t,r){var n=[];return t=w(t,r),_.each(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n},_.reject=function(e,t,r){return _.filter(e,_.negate(w(t)),r)},_.every=_.all=function(e,t,r){t=w(t,r);for(var n=!O(e)&&_.keys(e),i=(n||e).length,o=0;o<i;o++){var a=n?n[o]:o;if(!t(e[a],a,e))return!1}return!0},_.some=_.any=function(e,t,r){t=w(t,r);for(var n=!O(e)&&_.keys(e),i=(n||e).length,o=0;o<i;o++){var a=n?n[o]:o;if(t(e[a],a,e))return!0}return!1},_.contains=_.includes=_.include=function(e,t,r,n){return O(e)||(e=_.values(e)),("number"!=typeof r||n)&&(r=0),_.indexOf(e,t,r)>=0},_.invoke=function(e,t){var r=p.call(arguments,2),n=_.isFunction(t);return _.map(e,function(e){var i=n?t:e[t];return null==i?i:i.apply(e,r)})},_.pluck=function(e,t){return _.map(e,_.property(t))},_.where=function(e,t){return _.filter(e,_.matcher(t))},_.findWhere=function(e,t){return _.find(e,_.matcher(t))},_.max=function(e,t,r){var n,i,o=-1/0,a=-1/0;if(null==t&&null!=e)for(var s=0,c=(e=O(e)?e:_.values(e)).length;s<c;s++)(n=e[s])>o&&(o=n);else t=w(t,r),_.each(e,function(e,r,n){((i=t(e,r,n))>a||i===-1/0&&o===-1/0)&&(o=e,a=i)});return o},_.min=function(e,t,r){var n,i,o=1/0,a=1/0;if(null==t&&null!=e)for(var s=0,c=(e=O(e)?e:_.values(e)).length;s<c;s++)(n=e[s])<o&&(o=n);else t=w(t,r),_.each(e,function(e,r,n){((i=t(e,r,n))<a||i===1/0&&o===1/0)&&(o=e,a=i)});return o},_.shuffle=function(e){for(var t,r=O(e)?e:_.values(e),n=r.length,i=Array(n),o=0;o<n;o++)(t=_.random(0,o))!==o&&(i[o]=i[t]),i[t]=r[o];return i},_.sample=function(e,t,r){return null==t||r?(O(e)||(e=_.values(e)),e[_.random(e.length-1)]):_.shuffle(e).slice(0,Math.max(0,t))},_.sortBy=function(e,t,r){return t=w(t,r),_.pluck(_.map(e,function(e,r,n){return{value:e,index:r,criteria:t(e,r,n)}}).sort(function(e,t){var r=e.criteria,n=t.criteria;if(r!==n){if(r>n||void 0===r)return 1;if(r<n||void 0===n)return-1}return e.index-t.index}),"value")};var P=function(e){return function(t,r,n){var i={};return r=w(r,n),_.each(t,function(n,o){var a=r(n,o,t);e(i,n,a)}),i}};_.groupBy=P(function(e,t,r){_.has(e,r)?e[r].push(t):e[r]=[t]}),_.indexBy=P(function(e,t,r){e[r]=t}),_.countBy=P(function(e,t,r){_.has(e,r)?e[r]++:e[r]=1}),_.toArray=function(e){return e?_.isArray(e)?p.call(e):O(e)?_.map(e,_.identity):_.values(e):[]},_.size=function(e){return null==e?0:O(e)?e.length:_.keys(e).length},_.partition=function(e,t,r){t=w(t,r);var n=[],i=[];return _.each(e,function(e,r,o){(t(e,r,o)?n:i).push(e)}),[n,i]},_.first=_.head=_.take=function(e,t,r){if(null!=e)return null==t||r?e[0]:_.initial(e,e.length-t)},_.initial=function(e,t,r){return p.call(e,0,Math.max(0,e.length-(null==t||r?1:t)))},_.last=function(e,t,r){if(null!=e)return null==t||r?e[e.length-1]:_.rest(e,Math.max(0,e.length-t))},_.rest=_.tail=_.drop=function(e,t,r){return p.call(e,null==t||r?1:t)},_.compact=function(e){return _.filter(e,_.identity)};var j=function(e,t,r,n){for(var i=[],o=0,a=n||0,s=T(e);a<s;a++){var c=e[a];if(O(c)&&(_.isArray(c)||_.isArguments(c))){t||(c=j(c,t,r));var u=0,h=c.length;for(i.length+=h;u<h;)i[o++]=c[u++]}else r||(i[o++]=c)}return i};_.flatten=function(e,t){return j(e,t,!1)},_.without=function(e){return _.difference(e,p.call(arguments,1))},_.uniq=_.unique=function(e,t,r,n){_.isBoolean(t)||(n=r,r=t,t=!1),null!=r&&(r=w(r,n));for(var i=[],o=[],a=0,s=T(e);a<s;a++){var c=e[a],u=r?r(c,a,e):c;t?(a&&o===u||i.push(c),o=u):r?_.contains(o,u)||(o.push(u),i.push(c)):_.contains(i,c)||i.push(c)}return i},_.union=function(){return _.uniq(j(arguments,!0,!0))},_.intersection=function(e){for(var t=[],r=arguments.length,n=0,i=T(e);n<i;n++){var o=e[n];if(!_.contains(t,o)){for(var a=1;a<r&&_.contains(arguments[a],o);a++);a===r&&t.push(o)}}return t},_.difference=function(e){var t=j(arguments,!0,!0,1);return _.filter(e,function(e){return!_.contains(t,e)})},_.zip=function(){return _.unzip(arguments)},_.unzip=function(e){for(var t=e&&_.max(e,T).length||0,r=Array(t),n=0;n<t;n++)r[n]=_.pluck(e,n);return r},_.object=function(e,t){for(var r={},n=0,i=T(e);n<i;n++)t?r[e[n]]=t[n]:r[e[n][0]]=e[n][1];return r},_.findIndex=n(1),_.findLastIndex=n(-1),_.sortedIndex=function(e,t,r,n){for(var i=(r=w(r,n,1))(t),o=0,a=T(e);o<a;){var s=Math.floor((o+a)/2);r(e[s])<i?o=s+1:a=s}return o},_.indexOf=i(1,_.findIndex,_.sortedIndex),_.lastIndexOf=i(-1,_.findLastIndex),_.range=function(e,t,r){null==t&&(t=e||0,e=0),r=r||1;for(var n=Math.max(Math.ceil((t-e)/r),0),i=Array(n),o=0;o<n;o++,e+=r)i[o]=e;return i};var A=function(e,t,r,n,i){if(!(n instanceof t))return e.apply(r,i);var o=M(e.prototype),a=e.apply(o,i);return _.isObject(a)?a:o};_.bind=function(e,t){if(g&&e.bind===g)return g.apply(e,p.call(arguments,1));if(!_.isFunction(e))throw new TypeError("Bind must be called on a function");var r=p.call(arguments,2),n=function(){return A(e,n,t,this,r.concat(p.call(arguments)))};return n},_.partial=function(e){var t=p.call(arguments,1),r=function(){for(var n=0,i=t.length,o=Array(i),a=0;a<i;a++)o[a]=t[a]===_?arguments[n++]:t[a];for(;n<arguments.length;)o.push(arguments[n++]);return A(e,r,this,this,o)};return r},_.bindAll=function(e){var t,r,n=arguments.length;if(n<=1)throw new Error("bindAll must be passed function names");for(t=1;t<n;t++)e[r=arguments[t]]=_.bind(e[r],e);return e},_.memoize=function(e,t){var r=function(n){var i=r.cache,o=""+(t?t.apply(this,arguments):n);return _.has(i,o)||(i[o]=e.apply(this,arguments)),i[o]};return r.cache={},r},_.delay=function(e,t){var r=p.call(arguments,2);return setTimeout(function(){return e.apply(null,r)},t)},_.defer=_.partial(_.delay,_,1),_.throttle=function(e,t,r){var n,i,o,a=null,s=0;r||(r={});var c=function(){s=!1===r.leading?0:_.now(),a=null,o=e.apply(n,i),a||(n=i=null)};return function(){var u=_.now();s||!1!==r.leading||(s=u);var h=t-(u-s);return n=this,i=arguments,h<=0||h>t?(a&&(clearTimeout(a),a=null),s=u,o=e.apply(n,i),a||(n=i=null)):a||!1===r.trailing||(a=setTimeout(c,h)),o}},_.debounce=function(e,t,r){var n,i,o,a,s,c=function(){var u=_.now()-a;u<t&&u>=0?n=setTimeout(c,t-u):(n=null,r||(s=e.apply(o,i),n||(o=i=null)))};return function(){o=this,i=arguments,a=_.now();var u=r&&!n;return n||(n=setTimeout(c,t)),u&&(s=e.apply(o,i),o=i=null),s}},_.wrap=function(e,t){return _.partial(t,e)},_.negate=function(e){return function(){return!e.apply(this,arguments)}},_.compose=function(){var e=arguments,t=e.length-1;return function(){for(var r=t,n=e[t].apply(this,arguments);r--;)n=e[r].call(this,n);return n}},_.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},_.before=function(e,t){var r;return function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=null),r}},_.once=_.partial(_.before,2);var R=!{toString:null}.propertyIsEnumerable("toString"),L=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];_.keys=function(e){if(!_.isObject(e))return[];if(v)return v(e);var t=[];for(var r in e)_.has(e,r)&&t.push(r);return R&&o(e,t),t},_.allKeys=function(e){if(!_.isObject(e))return[];var t=[];for(var r in e)t.push(r);return R&&o(e,t),t},_.values=function(e){for(var t=_.keys(e),r=t.length,n=Array(r),i=0;i<r;i++)n[i]=e[t[i]];return n},_.mapObject=function(e,t,r){t=w(t,r);for(var n,i=_.keys(e),o=i.length,a={},s=0;s<o;s++)a[n=i[s]]=t(e[n],n,e);return a},_.pairs=function(e){for(var t=_.keys(e),r=t.length,n=Array(r),i=0;i<r;i++)n[i]=[t[i],e[t[i]]];return n},_.invert=function(e){for(var t={},r=_.keys(e),n=0,i=r.length;n<i;n++)t[e[r[n]]]=r[n];return t},_.functions=_.methods=function(e){var t=[];for(var r in e)_.isFunction(e[r])&&t.push(r);return t.sort()},_.extend=S(_.allKeys),_.extendOwn=_.assign=S(_.keys),_.findKey=function(e,t,r){t=w(t,r);for(var n,i=_.keys(e),o=0,a=i.length;o<a;o++)if(n=i[o],t(e[n],n,e))return n},_.pick=function(e,t,r){var n,i,o={},a=e;if(null==a)return o;_.isFunction(t)?(i=_.allKeys(a),n=x(t,r)):(i=j(arguments,!1,!1,1),n=function(e,t,r){return t in r},a=Object(a));for(var s=0,c=i.length;s<c;s++){var u=i[s],h=a[u];n(h,u,a)&&(o[u]=h)}return o},_.omit=function(e,t,r){if(_.isFunction(t))t=_.negate(t);else{var n=_.map(j(arguments,!1,!1,1),String);t=function(e,t){return!_.contains(n,t)}}return _.pick(e,t,r)},_.defaults=S(_.allKeys,!0),_.create=function(e,t){var r=M(e);return t&&_.extendOwn(r,t),r},_.clone=function(e){return _.isObject(e)?_.isArray(e)?e.slice():_.extend({},e):e},_.tap=function(e,t){return t(e),e},_.isMatch=function(e,t){var r=_.keys(t),n=r.length;if(null==e)return!n;for(var i=Object(e),o=0;o<n;o++){var a=r[o];if(t[a]!==i[a]||!(a in i))return!1}return!0};var N=function(e,t,r,n){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return e===t;e instanceof _&&(e=e._wrapped),t instanceof _&&(t=t._wrapped);var i=d.call(e);if(i!==d.call(t))return!1;switch(i){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t}var o="[object Array]"===i;if(!o){if("object"!=typeof e||"object"!=typeof t)return!1;var a=e.constructor,s=t.constructor;if(a!==s&&!(_.isFunction(a)&&a instanceof a&&_.isFunction(s)&&s instanceof s)&&"constructor"in e&&"constructor"in t)return!1}r=r||[],n=n||[];for(var c=r.length;c--;)if(r[c]===e)return n[c]===t;if(r.push(e),n.push(t),o){if((c=e.length)!==t.length)return!1;for(;c--;)if(!N(e[c],t[c],r,n))return!1}else{var u,h=_.keys(e);if(c=h.length,_.keys(t).length!==c)return!1;for(;c--;)if(u=h[c],!_.has(t,u)||!N(e[u],t[u],r,n))return!1}return r.pop(),n.pop(),!0};_.isEqual=function(e,t){return N(e,t)},_.isEmpty=function(e){return null==e||(O(e)&&(_.isArray(e)||_.isString(e)||_.isArguments(e))?0===e.length:0===_.keys(e).length)},_.isElement=function(e){return!(!e||1!==e.nodeType)},_.isArray=m||function(e){return"[object Array]"===d.call(e)},_.isObject=function(e){var t=typeof e;return"function"===t||"object"===t&&!!e},_.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(e){_["is"+e]=function(t){return d.call(t)==="[object "+e+"]"}}),_.isArguments(arguments)||(_.isArguments=function(e){return _.has(e,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(_.isFunction=function(e){return"function"==typeof e||!1}),_.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},_.isNaN=function(e){return _.isNumber(e)&&e!==+e},_.isBoolean=function(e){return!0===e||!1===e||"[object Boolean]"===d.call(e)},_.isNull=function(e){return null===e},_.isUndefined=function(e){return void 0===e},_.has=function(e,t){return null!=e&&f.call(e,t)},_.noConflict=function(){return a._=s,this},_.identity=function(e){return e},_.constant=function(e){return function(){return e}},_.noop=function(){},_.property=E,_.propertyOf=function(e){return null==e?function(){}:function(t){return e[t]}},_.matcher=_.matches=function(e){return e=_.extendOwn({},e),function(t){return _.isMatch(t,e)}},_.times=function(e,t,r){var n=Array(Math.max(0,e));t=x(t,r,1);for(var i=0;i<e;i++)n[i]=t(i);return n},_.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},_.now=Date.now||function(){return(new Date).getTime()};var I={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},D=_.invert(I),k=function(e){var t=function(t){return e[t]},r="(?:"+_.keys(e).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(e){return e=null==e?"":""+e,n.test(e)?e.replace(i,t):e}};_.escape=k(I),_.unescape=k(D),_.result=function(e,t,r){var n=null==e?void 0:e[t];return void 0===n&&(n=r),_.isFunction(n)?n.call(e):n};var B=0;_.uniqueId=function(e){var t=++B+"";return e?e+t:t},_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var F=/(.)^/,U={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},$=/\\|'|\r|\n|\u2028|\u2029/g,z=function(e){return"\\"+U[e]};_.template=function(e,t,r){!t&&r&&(t=r),t=_.defaults({},t,_.templateSettings);var n=RegExp([(t.escape||F).source,(t.interpolate||F).source,(t.evaluate||F).source].join("|")+"|$","g"),i=0,o="__p+='";e.replace(n,function(t,r,n,a,s){return o+=e.slice(i,s).replace($,z),i=s+t.length,r?o+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?o+="'+\n((__t=("+n+"))==null?'':__t)+\n'":a&&(o+="';\n"+a+"\n__p+='"),t}),o+="';\n",t.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{var a=new Function(t.variable||"obj","_",o)}catch(e){throw e.source=o,e}var s=function(e){return a.call(this,e,_)},c=t.variable||"obj";return s.source="function("+c+"){\n"+o+"}",s},_.chain=function(e){var t=_(e);return t._chain=!0,t};var G=function(e,t){return e._chain?_(t).chain():t};_.mixin=function(e){_.each(_.functions(e),function(t){var r=_[t]=e[t];_.prototype[t]=function(){var e=[this._wrapped];return l.apply(e,arguments),G(this,r.apply(_,e))}})},_.mixin(_),_.each(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=c[e];_.prototype[e]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==e&&"splice"!==e||0!==r.length||delete r[0],G(this,r)}}),_.each(["concat","join","slice"],function(e){var t=c[e];_.prototype[e]=function(){return G(this,t.apply(this._wrapped,arguments))}}),_.prototype.value=function(){return this._wrapped},_.prototype.valueOf=_.prototype.toJSON=_.prototype.value,_.prototype.toString=function(){return""+this._wrapped}}).call(this)},{}],244:[function(e,t,r){var n=e("./vdom/create-element.js");t.exports=n},{"./vdom/create-element.js":250}],245:[function(e,t,r){var n=e("./vtree/diff.js");t.exports=n},{"./vtree/diff.js":270}],246:[function(e,t,r){var n=e("./virtual-hyperscript/index.js");t.exports=n},{"./virtual-hyperscript/index.js":257}],247:[function(e,t,r){var n=e("./diff.js"),i=e("./patch.js"),o=e("./h.js"),a=e("./create-element.js"),s=e("./vnode/vnode.js"),c=e("./vnode/vtext.js");t.exports={diff:n,patch:i,h:o,create:a,VNode:s,VText:c}},{"./create-element.js":244,"./diff.js":245,"./h.js":246,"./patch.js":248,"./vnode/vnode.js":266,"./vnode/vtext.js":268}],248:[function(e,t,r){var n=e("./vdom/patch.js");t.exports=n},{"./vdom/patch.js":253}],249:[function(e,t,r){function n(e,t,r){for(var n in t){var c=t[n];void 0===c?i(e,n,c,r):s(c)?(i(e,n,c,r),c.hook&&c.hook(e,n,r?r[n]:void 0)):a(c)?function(e,t,r,n,i){var s=r?r[n]:void 0;if("attributes"===n){for(var c in i){var u=i[c];void 0===u?e.removeAttribute(c):e.setAttribute(c,u)}return}if(s&&a(s)&&o(s)!==o(i))return void(e[n]=i);a(e[n])||(e[n]={});var h="style"===n?"":void 0;for(var l in i){var p=i[l];e[n][l]=void 0===p?h:p}}(e,0,r,n,c):e[n]=c}}function i(e,t,r,n){if(n){var i=n[t];if(s(i))i.unhook&&i.unhook(e,t,r);else if("attributes"===t)for(var o in i)e.removeAttribute(o);else if("style"===t)for(var a in i)e.style[a]="";else e[t]="string"==typeof i?"":null}}function o(e){return Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__?e.__proto__:e.constructor?e.constructor.prototype:void 0}var a=e("is-object"),s=e("../vnode/is-vhook.js");t.exports=n},{"../vnode/is-vhook.js":261,"is-object":20}],250:[function(e,t,r){function n(e,t){var r=t?t.document||i:i,h=t?t.warn:null;if(e=u(e).a,c(e))return e.init();if(s(e))return r.createTextNode(e.text);if(!a(e))return h&&h("Item is not a valid virtual dom node",e),null;var l=null===e.namespace?r.createElement(e.tagName):r.createElementNS(e.namespace,e.tagName),p=e.properties;o(l,p);for(var d=e.children,f=0;f<d.length;f++){var m=n(d[f],t);m&&l.appendChild(m)}return l}var i=e("global/document"),o=e("./apply-properties"),a=e("../vnode/is-vnode.js"),s=e("../vnode/is-vtext.js"),c=e("../vnode/is-widget.js"),u=e("../vnode/handle-thunk.js");t.exports=n},{"../vnode/handle-thunk.js":259,"../vnode/is-vnode.js":262,"../vnode/is-vtext.js":263,"../vnode/is-widget.js":264,"./apply-properties":249,"global/document":16}],251:[function(e,t,r){function n(e,t,r,o,s){if(o=o||{},e){i(r,s,s)&&(o[s]=e);var c=t.children;if(c)for(var u=e.childNodes,h=0;h<t.children.length;h++){s+=1;var l=c[h]||a,p=s+(l.count||0);i(r,s,p)&&n(u[h],l,r,o,s),s=p}}return o}function i(e,t,r){if(0===e.length)return!1;for(var n,i,o=0,a=e.length-1;o<=a;){if(n=(a+o)/2>>0,i=e[n],o===a)return i>=t&&i<=r;if(i<t)o=n+1;else{if(!(i>r))return!0;a=n-1}}return!1}function o(e,t){return e>t?1:-1}var a={};t.exports=function(e,t,r,i){return r&&0!==r.length?(r.sort(o),n(e,t,r,i,0)):{}}},{}],252:[function(e,t,r){function n(e,t,r){var n=e.type,a=e.vNode,u=e.patch;switch(n){case s.REMOVE:return function(e,t){var r=e.parentNode;r&&r.removeChild(e);return i(e,t),null}(t,a);case s.INSERT:return function(e,t,r){var n=r.render(t,r);e&&e.appendChild(n);return e}(t,u,r);case s.VTEXT:return function(e,t,r,n){var i;if(3===e.nodeType)e.replaceData(0,e.length,r.text),i=e;else{var o=e.parentNode;i=n.render(r,n),o&&i!==e&&o.replaceChild(i,e)}return i}(t,0,u,r);case s.WIDGET:return function(e,t,r,n){var o,a=c(t,r);o=a?r.update(t,e)||e:n.render(r,n);var s=e.parentNode;s&&o!==e&&s.replaceChild(o,e);a||i(e,t);return o}(t,a,u,r);case s.VNODE:return function(e,t,r,n){var i=e.parentNode,o=n.render(r,n);i&&o!==e&&i.replaceChild(o,e);return o}(t,0,u,r);case s.ORDER:return function(e,t){for(var r,n,i,o=e.childNodes,a={},s=0;s<t.removes.length;s++)n=t.removes[s],r=o[n.from],n.key&&(a[n.key]=r),e.removeChild(r);for(var c=o.length,u=0;u<t.inserts.length;u++)i=t.inserts[u],r=a[i.key],e.insertBefore(r,i.to>=c++?null:o[i.to])}(t,u),t;case s.PROPS:return o(t,u,a.properties),t;case s.THUNK:return function(e,t){e&&t&&e!==t&&e.parentNode&&e.parentNode.replaceChild(t,e);return t}(t,r.patch(t,u,r));default:return t}}function i(e,t){"function"==typeof t.destroy&&a(t)&&t.destroy(e)}var o=e("./apply-properties"),a=e("../vnode/is-widget.js"),s=e("../vnode/vpatch.js"),c=e("./update-widget");t.exports=n},{"../vnode/is-widget.js":264,"../vnode/vpatch.js":267,"./apply-properties":249,"./update-widget":254}],253:[function(e,t,r){function n(e,t,r){return r=r||{},r.patch=r.patch&&r.patch!==n?r.patch:function(e,t,r){var n=function(e){var t=[];for(var r in e)"a"!==r&&t.push(Number(r));return t}(t);if(0===n.length)return e;var a=s(e,t.a,n),u=e.ownerDocument;r.document||u===i||(r.document=u);for(var h=0;h<n.length;h++){var l=n[h];e=function(e,t,r,n){if(!t)return e;var i;if(o(r))for(var a=0;a<r.length;a++)i=c(r[a],t,n),t===e&&(e=i);else i=c(r,t,n),t===e&&(e=i);return e}(e,a[l],t[l],r)}return e},r.render=r.render||a,r.patch(e,t,r)}var i=e("global/document"),o=e("x-is-array"),a=e("./create-element"),s=e("./dom-index"),c=e("./patch-op");t.exports=n},{"./create-element":250,"./dom-index":251,"./patch-op":252,"global/document":16,"x-is-array":289}],254:[function(e,t,r){var n=e("../vnode/is-widget.js");t.exports=function(e,t){return!(!n(e)||!n(t))&&("name"in e&&"name"in t?e.id===t.id:e.init===t.init)}},{"../vnode/is-widget.js":264}],255:[function(e,t,r){"use strict";function n(e){if(!(this instanceof n))return new n(e);this.value=e}var i=e("ev-store");t.exports=n,n.prototype.hook=function(e,t){i(e)[t.substr(3)]=this.value},n.prototype.unhook=function(e,t){i(e)[t.substr(3)]=void 0}},{"ev-store":9}],256:[function(e,t,r){"use strict";function n(e){if(!(this instanceof n))return new n(e);this.value=e}t.exports=n,n.prototype.hook=function(e,t){e[t]!==this.value&&(e[t]=this.value)}},{}],257:[function(e,t,r){"use strict";function n(e,t,r){var n,a,u,h,l=[];return!r&&function(e){return"string"==typeof e||s(e)||o(e)}(t)&&(r=t,a={}),a=a||t||{},n=m(e,a),a.hasOwnProperty("key")&&(u=a.key,a.key=void 0),a.hasOwnProperty("namespace")&&(h=a.namespace,a.namespace=void 0),"INPUT"!==n||h||!a.hasOwnProperty("value")||void 0===a.value||d(a.value)||(a.value=v(a.value)),function(e){for(var t in e)if(e.hasOwnProperty(t)){var r=e[t];if(d(r))continue;"ev-"===t.substr(0,3)&&(e[t]=g(r))}}(a),void 0!==r&&null!==r&&i(r,l,n,a),new c(n,a,l,u,h)}function i(e,t,r,n){if("string"==typeof e)t.push(new u(e));else if("number"==typeof e)t.push(new u(String(e)));else if(o(e))t.push(e);else{if(!s(e)){if(null===e||void 0===e)return;throw function(e){var t=new Error;return t.type="virtual-hyperscript.unexpected.virtual-element",t.message="Unexpected virtual child passed to h().\nExpected a VNode / Vthunk / VWidget / string but:\ngot:\n"+a(e.foreignObject)+".\nThe parent vnode is:\n"+a(e.parentVnode),t.foreignObject=e.foreignObject,t.parentVnode=e.parentVnode,t}({foreignObject:e,parentVnode:{tagName:r,properties:n}})}for(var c=0;c<e.length;c++)i(e[c],t,r,n)}}function o(e){return h(e)||l(e)||p(e)||f(e)}function a(e){try{return JSON.stringify(e,null,"    ")}catch(t){return String(e)}}var s=e("x-is-array"),c=e("../vnode/vnode.js"),u=e("../vnode/vtext.js"),h=e("../vnode/is-vnode"),l=e("../vnode/is-vtext"),p=e("../vnode/is-widget"),d=e("../vnode/is-vhook"),f=e("../vnode/is-thunk"),m=e("./parse-tag.js"),v=e("./hooks/soft-set-hook.js"),g=e("./hooks/ev-hook.js");t.exports=n},{"../vnode/is-thunk":260,"../vnode/is-vhook":261,"../vnode/is-vnode":262,"../vnode/is-vtext":263,"../vnode/is-widget":264,"../vnode/vnode.js":266,"../vnode/vtext.js":268,"./hooks/ev-hook.js":255,"./hooks/soft-set-hook.js":256,"./parse-tag.js":258,"x-is-array":289}],258:[function(e,t,r){"use strict";var n=e("browser-split"),i=/([\.#]?[a-zA-Z0-9\u007F-\uFFFF_:-]+)/,o=/^\.|#/;t.exports=function(e,t){if(!e)return"DIV";var r=!t.hasOwnProperty("id"),a=n(e,i),s=null;o.test(a[1])&&(s="DIV");var c,u,h,l;for(l=0;l<a.length;l++)(u=a[l])&&(h=u.charAt(0),s?"."===h?(c=c||[]).push(u.substring(1,u.length)):"#"===h&&r&&(t.id=u.substring(1,u.length)):s=u);return c&&(t.className&&c.push(t.className),t.className=c.join(" ")),t.namespace?s:s.toUpperCase()}},{"browser-split":5}],259:[function(e,t,r){function n(e,t){var r=e.vnode;if(r||(r=e.vnode=e.render(t)),!(i(r)||o(r)||a(r)))throw new Error("thunk did not return a valid node");return r}var i=e("./is-vnode"),o=e("./is-vtext"),a=e("./is-widget"),s=e("./is-thunk");t.exports=function(e,t){var r=e,i=t;return s(t)&&(i=n(t,e)),s(e)&&(r=n(e,null)),{a:r,b:i}}},{"./is-thunk":260,"./is-vnode":262,"./is-vtext":263,"./is-widget":264}],260:[function(e,t,r){t.exports=function(e){return e&&"Thunk"===e.type}},{}],261:[function(e,t,r){t.exports=function(e){return e&&("function"==typeof e.hook&&!e.hasOwnProperty("hook")||"function"==typeof e.unhook&&!e.hasOwnProperty("unhook"))}},{}],262:[function(e,t,r){var n=e("./version");t.exports=function(e){return e&&"VirtualNode"===e.type&&e.version===n}},{"./version":265}],263:[function(e,t,r){var n=e("./version");t.exports=function(e){return e&&"VirtualText"===e.type&&e.version===n}},{"./version":265}],264:[function(e,t,r){t.exports=function(e){return e&&"Widget"===e.type}},{}],265:[function(e,t,r){t.exports="2"},{}],266:[function(e,t,r){function n(e,t,r,n,i){this.tagName=e,this.properties=t||u,this.children=r||h,this.key=null!=n?String(n):void 0,this.namespace="string"==typeof i?i:null;var l,p=r&&r.length||0,d=0,f=!1,m=!1,v=!1;for(var g in t)if(t.hasOwnProperty(g)){var y=t[g];c(y)&&y.unhook&&(l||(l={}),l[g]=y)}for(var b=0;b<p;b++){var _=r[b];o(_)?(d+=_.count||0,!f&&_.hasWidgets&&(f=!0),!m&&_.hasThunks&&(m=!0),v||!_.hooks&&!_.descendantHooks||(v=!0)):!f&&a(_)?"function"==typeof _.destroy&&(f=!0):!m&&s(_)&&(m=!0)}this.count=p+d,this.hasWidgets=f,this.hasThunks=m,this.hooks=l,this.descendantHooks=v}var i=e("./version"),o=e("./is-vnode"),a=e("./is-widget"),s=e("./is-thunk"),c=e("./is-vhook");t.exports=n;var u={},h=[];n.prototype.version=i,n.prototype.type="VirtualNode"},{"./is-thunk":260,"./is-vhook":261,"./is-vnode":262,"./is-widget":264,"./version":265}],267:[function(e,t,r){function n(e,t,r){this.type=Number(e),this.vNode=t,this.patch=r}var i=e("./version");n.NONE=0,n.VTEXT=1,n.VNODE=2,n.WIDGET=3,n.PROPS=4,n.ORDER=5,n.INSERT=6,n.REMOVE=7,n.THUNK=8,t.exports=n,n.prototype.version=i,n.prototype.type="VirtualPatch"},{"./version":265}],268:[function(e,t,r){function n(e){this.text=String(e)}var i=e("./version");t.exports=n,n.prototype.version=i,n.prototype.type="VirtualText"},{"./version":265}],269:[function(e,t,r){function n(e,t){var r;for(var s in e){s in t||((r=r||{})[s]=void 0);var c=e[s],u=t[s];if(c!==u)if(o(c)&&o(u))if(i(u)!==i(c))(r=r||{})[s]=u;else if(a(u))(r=r||{})[s]=u;else{var h=n(c,u);h&&((r=r||{})[s]=h)}else(r=r||{})[s]=u}for(var l in t)l in e||((r=r||{})[l]=t[l]);return r}function i(e){return Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__?e.__proto__:e.constructor?e.constructor.prototype:void 0}var o=e("is-object"),a=e("../vnode/is-vhook");t.exports=n},{"../vnode/is-vhook":261,"is-object":20}],270:[function(e,t,r){function n(e,t){var r={a:e};return i(e,t,r,0),r}function i(e,t,r,n){if(e!==t){var a=r[n],c=!1;if(g(e)||g(t))s(e,t,r,n);else if(null==t)v(e)||(o(e,r,n),a=r[n]),a=l(a,new d(d.REMOVE,e,t));else if(f(t))if(f(e))if(e.tagName===t.tagName&&e.namespace===t.namespace&&e.key===t.key){var p=b(e.properties,t.properties);p&&(a=l(a,new d(d.PROPS,e,p))),a=function(e,t,r,n,o){for(var a=e.children,s=function(e,t){var r=h(t),n=r.keys,i=r.free;if(i.length===t.length)return{children:t,moves:null};var o=h(e),a=o.keys;if(o.free.length===e.length)return{children:t,moves:null};for(var s=[],c=0,l=i.length,p=0,d=0;d<e.length;d++){var f,m=e[d];m.key?n.hasOwnProperty(m.key)?(f=n[m.key],s.push(t[f])):(f=d-p++,s.push(null)):c<l?(f=i[c++],s.push(t[f])):(f=d-p++,s.push(null))}for(var v=c>=i.length?t.length:i[c],g=0;g<t.length;g++){var y=t[g];y.key?a.hasOwnProperty(y.key)||s.push(y):g>=v&&s.push(y)}for(var b,_=s.slice(),x=0,w=[],S=[],M=0;M<t.length;){var E=t[M];for(b=_[x];null===b&&_.length;)w.push(u(_,x,null)),b=_[x];b&&b.key===E.key?(x++,M++):E.key?(b&&b.key&&n[b.key]!==M+1?(w.push(u(_,x,b.key)),(b=_[x])&&b.key===E.key?x++:S.push({key:E.key,to:M})):S.push({key:E.key,to:M}),M++):b&&b.key&&w.push(u(_,x,b.key))}for(;x<_.length;)b=_[x],w.push(u(_,x,b&&b.key));if(w.length===p&&!S.length)return{children:s,moves:null};return{children:s,moves:{removes:w,inserts:S}}}(a,t.children),c=s.children,p=a.length,m=c.length,v=p>m?p:m,g=0;g<v;g++){var y=a[g],b=c[g];o+=1,y?i(y,b,r,o):b&&(n=l(n,new d(d.INSERT,null,b))),f(y)&&y.count&&(o+=y.count)}s.moves&&(n=l(n,new d(d.ORDER,e,s.moves)));return n}(e,t,r,a,n)}else a=l(a,new d(d.VNODE,e,t)),c=!0;else a=l(a,new d(d.VNODE,e,t)),c=!0;else m(t)?m(e)?e.text!==t.text&&(a=l(a,new d(d.VTEXT,e,t))):(a=l(a,new d(d.VTEXT,e,t)),c=!0):v(t)&&(v(e)||(c=!0),a=l(a,new d(d.WIDGET,e,t)));a&&(r[n]=a),c&&o(e,r,n)}}function o(e,t,r){c(e,t,r),a(e,t,r)}function a(e,t,r){if(v(e))"function"==typeof e.destroy&&(t[r]=l(t[r],new d(d.REMOVE,e,null)));else if(f(e)&&(e.hasWidgets||e.hasThunks))for(var n=e.children,i=n.length,o=0;o<i;o++){var c=n[o];a(c,t,r+=1),f(c)&&c.count&&(r+=c.count)}else g(e)&&s(e,null,t,r)}function s(e,t,r,i){var o=y(e,t),a=n(o.a,o.b);(function(e){for(var t in e)if("a"!==t)return!0;return!1})(a)&&(r[i]=new d(d.THUNK,null,a))}function c(e,t,r){if(f(e)){if(e.hooks&&(t[r]=l(t[r],new d(d.PROPS,e,function(e){var t={};for(var r in e)t[r]=void 0;return t}(e.hooks)))),e.descendantHooks||e.hasThunks)for(var n=e.children,i=n.length,o=0;o<i;o++){var a=n[o];c(a,t,r+=1),f(a)&&a.count&&(r+=a.count)}}else g(e)&&s(e,null,t,r)}function u(e,t,r){return e.splice(t,1),{from:t,key:r}}function h(e){for(var t={},r=[],n=e.length,i=0;i<n;i++){var o=e[i];o.key?t[o.key]=i:r.push(i)}return{keys:t,free:r}}function l(e,t){return e?(p(e)?e.push(t):e=[e,t],e):t}var p=e("x-is-array"),d=e("../vnode/vpatch"),f=e("../vnode/is-vnode"),m=e("../vnode/is-vtext"),v=e("../vnode/is-widget"),g=e("../vnode/is-thunk"),y=e("../vnode/handle-thunk"),b=e("./diff-props");t.exports=n},{"../vnode/handle-thunk":259,"../vnode/is-thunk":260,"../vnode/is-vnode":262,"../vnode/is-vtext":263,"../vnode/is-widget":264,"../vnode/vpatch":267,"./diff-props":269,"x-is-array":289}],271:[function(e,t,r){!function(e){"use strict";e(function(e){return e("./makePromise")({scheduler:new(e("./Scheduler"))(e("./env").asap)})})}(function(r){t.exports=r(e)})},{"./Scheduler":272,"./env":284,"./makePromise":286}],272:[function(e,t,r){!function(e){"use strict";e(function(){function e(e){this._async=e,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var t=this;this.drain=function(){t._drain()}}return e.prototype.enqueue=function(e){this._queue[this._queueLen++]=e,this.run()},e.prototype.afterQueue=function(e){this._afterQueue[this._afterQueueLen++]=e,this.run()},e.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},e.prototype._drain=function(){for(var e=0;e<this._queueLen;++e)this._queue[e].run(),this._queue[e]=void 0;for(this._queueLen=0,this._running=!1,e=0;e<this._afterQueueLen;++e)this._afterQueue[e].run(),this._afterQueue[e]=void 0;this._afterQueueLen=0},e})}(function(e){t.exports=e()})},{}],273:[function(e,t,r){!function(e){"use strict";e(function(){function e(t){Error.call(this),this.message=t,this.name=e.name,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e})}(function(e){t.exports=e()})},{}],274:[function(e,t,r){!function(e){"use strict";e(function(){function e(e,r){function n(t,n){if(t.i<0)return r(t.f,t.thisArg,t.params,n);e._handler(t.args[t.i]).fold(i,t,void 0,n)}function i(e,t,r){e.params[e.i]=t,e.i-=1,n(e,r)}return arguments.length<2&&(r=t),function(t,i,o){var a=e._defer(),s=o.length;return n({f:t,thisArg:i,args:o,params:new Array(s),i:s-1,call:r},a._handler),a}}function t(e,t,r,n){try{n.resolve(e.apply(t,r))}catch(e){n.reject(e)}}return e.tryCatchResolve=t,e})}(function(e){t.exports=e()})},{}],275:[function(e,t,r){!function(e){"use strict";e(function(e){var t=e("../state"),r=e("../apply");return function(e){function n(t,r){var n=l.call(t);return e._traverse(r,n).then(function(t){return function(t,r){for(var n=r.length,i=new Array(n),o=0,a=0;o<n;++o)r[o]&&(i[a++]=e._handler(t[o]).value);return i.length=a,i}(n,t)})}function i(r){var n;return r instanceof e&&(n=r._handler.join()),n&&0===n.state()||!n?s(r).then(t.fulfilled,t.rejected):(n._unreport(),t.inspect(n))}function o(e){return function(t,r,n){return a(e,void 0,[t,r,n])}}var a=r(e),s=e.resolve,c=e.all,u=Array.prototype.reduce,h=Array.prototype.reduceRight,l=Array.prototype.slice;return e.any=function(t){for(var r,n,i=e._defer(),o=i._handler,a=t.length>>>0,s=a,c=[],u=0;u<a;++u)if(void 0!==(n=t[u])||u in t){if((r=e._handler(n)).state()>0){o.become(r),e._visitRemaining(t,u,r);break}r.visit(o,function(e){c=null,this.resolve(e)},function(e){this.resolved||(c.push(e),0==--s&&this.reject(c))})}else--s;return 0===s&&o.reject(new RangeError("any(): array must not be empty")),i},e.some=function(t,r){var n,i,o,a=e._defer(),s=a._handler,c=[],u=[],h=t.length>>>0,l=0;for(o=0;o<h;++o)(void 0!==(i=t[o])||o in t)&&++l;for(r=Math.max(r,0),n=l-r+1,r>(l=Math.min(r,l))?s.reject(new RangeError("some(): array must contain at least "+r+" item(s), but had "+l)):0===l&&s.resolve(c),o=0;o<h;++o)(void 0!==(i=t[o])||o in t)&&e._handler(i).visit(s,function(e){this.resolved||(c.push(e),0==--l&&(u=null,this.resolve(c)))},function(e){this.resolved||(u.push(e),0==--n&&(c=null,this.reject(u)))},s.notify);return a},e.settle=function(e){return c(e.map(i))},e.map=function(t,r){return e._traverse(r,t)},e.filter=n,e.reduce=function(e,t){return arguments.length>2?u.call(e,o(t),arguments[2]):u.call(e,o(t))},e.reduceRight=function(e,t){return arguments.length>2?h.call(e,o(t),arguments[2]):h.call(e,o(t))},e.prototype.spread=function(e){return this.then(c).then(function(t){return e.apply(this,t)})},e}})}(function(r){t.exports=r(e)})},{"../apply":274,"../state":287}],276:[function(e,t,r){!function(e){"use strict";e(function(){function e(){throw new TypeError("catch predicate must be a function")}function t(e,t){return function(e){return e===Error||null!=e&&e.prototype instanceof Error}(t)?e instanceof t:t(e)}function r(e){return e}return function(n){function i(e,t,r,n){var i=e.call(t);return function(e){return("object"==typeof e||"function"==typeof e)&&null!==e}(i)?function(e,t,r){return o(e).then(function(){return t(r)})}(i,r,n):r(n)}var o=n.resolve,a=n.reject,s=n.prototype.catch;return n.prototype.done=function(e,t){this._handler.visit(this._handler.receiver,e,t)},n.prototype.catch=n.prototype.otherwise=function(r){return arguments.length<2?s.call(this,r):"function"!=typeof r?this.ensure(e):s.call(this,function(e,r){return function(n){return t(n,r)?e.call(this,n):a(n)}}(arguments[1],r))},n.prototype.finally=n.prototype.ensure=function(e){return"function"!=typeof e?this:this.then(function(t){return i(e,this,r,t)},function(t){return i(e,this,a,t)})},n.prototype.else=n.prototype.orElse=function(e){return this.then(void 0,function(){return e})},n.prototype.yield=function(e){return this.then(function(){return e})},n.prototype.tap=function(e){return this.then(e).yield(this)},n}})}(function(e){t.exports=e()})},{}],277:[function(e,t,r){!function(e){"use strict";e(function(){return function(e){return e.prototype.fold=function(t,r){var n=this._beget();return this._handler.fold(function(r,n,i){e._handler(r).fold(function(e,r,n){n.resolve(t.call(this,r,e))},n,this,i)},r,n._handler.receiver,n._handler),n},e}})}(function(e){t.exports=e()})},{}],278:[function(e,t,r){!function(e){"use strict";e(function(e){var t=e("../state").inspect;return function(e){return e.prototype.inspect=function(){return t(e._handler(this))},e}})}(function(r){t.exports=r(e)})},{"../state":287}],279:[function(e,t,r){!function(e){"use strict";e(function(){return function(e){function t(e,n,i,o){function a(o,a){return r(i(o)).then(function(){return t(e,n,i,a)})}return r(o).then(function(t){return r(n(t)).then(function(n){return n?t:r(e(t)).spread(a)})})}var r=e.resolve;return e.iterate=function(e,r,n,i){return t(function(t){return[t,e(t)]},r,n,i)},e.unfold=t,e}})}(function(e){t.exports=e()})},{}],280:[function(e,t,r){!function(e){"use strict";e(function(){return function(e){return e.prototype.progress=function(e){return this.then(void 0,void 0,e)},e}})}(function(e){t.exports=e()})},{}],281:[function(e,t,r){!function(e){"use strict";e(function(e){function t(e,t,n,i){return r.setTimer(function(){e(n,i,t)},t)}var r=e("../env"),n=e("../TimeoutError");return function(e){function i(e,r,n){t(o,e,r,n)}function o(e,t){t.resolve(e)}function a(e,t,r){var i=void 0===e?new n("timed out after "+r+"ms"):e;t.reject(i)}return e.prototype.delay=function(e){var t=this._beget();return this._handler.fold(i,e,void 0,t._handler),t},e.prototype.timeout=function(e,n){var i=this._beget(),o=i._handler,s=t(a,e,n,i._handler);return this._handler.visit(o,function(e){r.clearTimer(s),this.resolve(e)},function(e){r.clearTimer(s),this.reject(e)},o.notify),i},e}})}(function(r){t.exports=r(e)})},{"../TimeoutError":273,"../env":284}],282:[function(e,t,r){!function(e){"use strict";e(function(e){function t(e){throw e}function r(){}var n=e("../env").setTimer,i=e("../format");return function(e){function o(e){e.handled||(d.push(e),h("Potentially unhandled rejection ["+e.id+"] "+i.formatError(e.value)))}function a(e){var t=d.indexOf(e);t>=0&&(d.splice(t,1),l("Handled previous rejection ["+e.id+"] "+i.formatObject(e.value)))}function s(e,t){p.push(e,t),null===f&&(f=n(c,0))}function c(){for(f=null;p.length>0;)p.shift()(p.shift())}var u,h=r,l=r;"undefined"!=typeof console&&(u=console,h=void 0!==u.error?function(e){u.error(e)}:function(e){u.log(e)},l=void 0!==u.info?function(e){u.info(e)}:function(e){u.log(e)}),e.onPotentiallyUnhandledRejection=function(e){s(o,e)},e.onPotentiallyUnhandledRejectionHandled=function(e){s(a,e)},e.onFatalRejection=function(e){s(t,e.value)};var p=[],d=[],f=null;return e}})}(function(r){t.exports=r(e)})},{"../env":284,"../format":285}],283:[function(e,t,r){!function(e){"use strict";e(function(){return function(e){return e.prototype.with=e.prototype.withThis=function(e){var t=this._beget(),r=t._handler;return r.receiver=e,this._handler.chain(r,e),t},e}})}(function(e){t.exports=e()})},{}],284:[function(e,t,r){(function(r){!function(e){"use strict";e(function(e){var t,n="undefined"!=typeof setTimeout&&setTimeout,i=function(e,t){return setTimeout(e,t)},o=function(e){return clearTimeout(e)},a=function(e){return n(e,0)};if(void 0!==r&&"[object process]"===Object.prototype.toString.call(r))a=function(e){return r.nextTick(e)};else if(t="undefined"!=typeof MutationObserver&&MutationObserver||"undefined"!=typeof WebKitMutationObserver&&WebKitMutationObserver)a=function(e){var t,r=document.createTextNode("");new e(function(){var e=t;t=void 0,e()}).observe(r,{characterData:!0});var n=0;return function(e){t=e,r.data=n^=1}}(t);else if(!n){var s=e("vertx");i=function(e,t){return s.setTimer(t,e)},o=s.cancelTimer,a=s.runOnLoop||s.runOnContext}return{setTimer:i,clearTimer:o,asap:a}})}(function(r){t.exports=r(e)})}).call(this,e("_process"))},{_process:6}],285:[function(e,t,r){!function(e){"use strict";e(function(){function e(e){var r=String(e);return"[object Object]"===r&&"undefined"!=typeof JSON&&(r=t(e,r)),r}function t(e,t){try{return JSON.stringify(e)}catch(e){return t}}return{formatError:function(t){var r="object"==typeof t&&null!==t&&(t.stack||t.message)?t.stack||t.message:e(t);return t instanceof Error?r:r+" (WARNING: non-Error used)"},formatObject:e,tryStringify:t}})}(function(e){t.exports=e()})},{}],286:[function(e,t,r){(function(e){!function(t){"use strict";t(function(){return function(t){function r(e,t){this._handler=e===p?t:function(e){function t(e){r.reject(e)}var r=new f;try{e(function(e){r.resolve(e)},t,function(e){r.notify(e)})}catch(e){t(e)}return r}(e)}function n(e){return E(e)?e:new r(p,new m(h(e)))}function i(e){return new r(p,new m(new y(e)))}function o(){return F}function a(e,t,n){function i(e,t,r){h[e]=t,0==--u&&r.become(new g(h))}for(var o,a="function"==typeof t?function(r,o,a){a.resolved||s(n,i,r,e(t,o,r),a)}:i,c=new f,u=n.length>>>0,h=new Array(u),l=0;l<n.length&&!c.resolved;++l)void 0!==(o=n[l])||l in n?s(n,a,l,o,c):--u;return 0===u&&c.become(new g(h)),new r(p,c)}function s(e,t,r,n,i){if(C(n)){var o=function(e){return E(e)?e._handler.join():l(e)}(n),a=o.state();0===a?o.fold(t,r,void 0,i):a>0?t(r,o.value,i):(i.become(o),c(e,r+1,o))}else t(r,n,i)}function c(e,t,r){for(var n=t;n<e.length;++n)!function(e,t){if(e===t)return;var r=e.state();0===r?e.visit(e,void 0,e._unreport):r<0&&e._unreport()}(h(e[n]),r)}function u(e){return"object"!=typeof e||null===e?i(new TypeError("non-iterable passed to race()")):0===e.length?o():1===e.length?n(e[0]):function(e){var t,n,i,o=new f;for(t=0;t<e.length;++t)if(void 0!==(n=e[t])||t in e){if(0!==(i=h(n)).state()){o.become(i),c(e,t+1,i);break}i.visit(o,o.resolve,o.reject)}return new r(p,o)}(e)}function h(e){return E(e)?e._handler.join():C(e)?l(e):new g(e)}function l(e){try{var t=e.then;return"function"==typeof t?new v(t,e):new g(e)}catch(e){return new y(e)}}function p(){}function d(){}function f(e,t){r.createContext(this,t),this.consumers=void 0,this.receiver=e,this.handler=void 0,this.resolved=!1}function m(e){this.handler=e}function v(e,t){f.call(this),N.enqueue(new S(e,t,this))}function g(e){r.createContext(this),this.value=e}function y(e){r.createContext(this),this.id=++B,this.value=e,this.handled=!1,this.reported=!1,this._report()}function b(e,t){this.rejection=e,this.context=t}function _(e){this.rejection=e}function x(e,t){this.continuation=e,this.handler=t}function w(e,t){this.handler=t,this.value=e}function S(e,t,r){this._then=e,this.thenable=t,this.resolver=r}function M(e,t,r,n){this.f=e,this.z=t,this.c=r,this.to=n,this.resolver=k,this.receiver=this}function E(e){return e instanceof r}function C(e){return("object"==typeof e||"function"==typeof e)&&null!==e}function T(e,t,n,i){if("function"!=typeof e)return i.become(t);r.enterContext(t),function(e,t,r,n){try{n.become(h(e.call(r,t)))}catch(e){n.become(new y(e))}}(e,t.value,n,i),r.exitContext()}function O(e,t,n,i,o){if("function"!=typeof e)return o.become(n);r.enterContext(n),function(e,t,r,n,i){try{e.call(n,t,r,i)}catch(e){i.become(new y(e))}}(e,t,n.value,i,o),r.exitContext()}function P(e,t,r){try{return e(t,r)}catch(e){return i(e)}}function j(e,t){t.prototype=D(e.prototype),t.prototype.constructor=t}function A(e,t){return t}function R(){}function L(){return void 0!==e&&null!==e&&"function"==typeof e.emit?function(t,r){return"unhandledRejection"===t?e.emit(t,r.value,r):e.emit(t,r)}:"undefined"!=typeof self&&function(){if("function"==typeof CustomEvent)try{return new CustomEvent("unhandledRejection")instanceof CustomEvent}catch(e){}return!1}()?function(e,t){return function(r,n){var i=new t(r,{detail:{reason:n.value,key:n},bubbles:!1,cancelable:!0});return!e.dispatchEvent(i)}}(self,CustomEvent):"undefined"!=typeof self&&function(){if("undefined"!=typeof document&&"function"==typeof document.createEvent)try{return document.createEvent("CustomEvent").initCustomEvent("eventType",!1,!0,{}),!0}catch(e){}return!1}()?function(e,t){return function(r,n){var i=t.createEvent("CustomEvent");return i.initCustomEvent(r,!1,!0,{reason:n.value,key:n}),!e.dispatchEvent(i)}}(self,document):R}var N=t.scheduler,I=L(),D=Object.create||function(e){function t(){}return t.prototype=e,new t};r.resolve=n,r.reject=i,r.never=o,r._defer=function(){return new r(p,new f)},r._handler=h,r.prototype.then=function(e,t,r){var n=this._handler,i=n.join().state();if("function"!=typeof e&&i>0||"function"!=typeof t&&i<0)return new this.constructor(p,n);var o=this._beget(),a=o._handler;return n.chain(a,n.receiver,e,t,r),o},r.prototype.catch=function(e){return this.then(void 0,e)},r.prototype._beget=function(){return function(e,t){return new t(p,new f(e.receiver,e.join().context))}(this._handler,this.constructor)},r.all=function(e){return a(A,null,e)},r.race=u,r._traverse=function(e,t){return a(P,e,t)},r._visitRemaining=c,p.prototype.when=p.prototype.become=p.prototype.notify=p.prototype.fail=p.prototype._unreport=p.prototype._report=R,p.prototype._state=0,p.prototype.state=function(){return this._state},p.prototype.join=function(){for(var e=this;void 0!==e.handler;)e=e.handler;return e},p.prototype.chain=function(e,t,r,n,i){this.when({resolver:e,receiver:t,fulfilled:r,rejected:n,progress:i})},p.prototype.visit=function(e,t,r,n){this.chain(k,e,t,r,n)},p.prototype.fold=function(e,t,r,n){this.when(new M(e,t,r,n))},j(p,d),d.prototype.become=function(e){e.fail()};var k=new d;j(p,f),f.prototype._state=0,f.prototype.resolve=function(e){this.become(h(e))},f.prototype.reject=function(e){this.resolved||this.become(new y(e))},f.prototype.join=function(){if(!this.resolved)return this;for(var e=this;void 0!==e.handler;)if((e=e.handler)===this)return this.handler=new y(new TypeError("Promise cycle"));return e},f.prototype.run=function(){var e=this.consumers,t=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var r=0;r<e.length;++r)t.when(e[r])},f.prototype.become=function(e){this.resolved||(this.resolved=!0,this.handler=e,void 0!==this.consumers&&N.enqueue(this),void 0!==this.context&&e._report(this.context))},f.prototype.when=function(e){this.resolved?N.enqueue(new x(e,this.handler)):void 0===this.consumers?this.consumers=[e]:this.consumers.push(e)},f.prototype.notify=function(e){this.resolved||N.enqueue(new w(e,this))},f.prototype.fail=function(e){var t=void 0===e?this.context:e;this.resolved&&this.handler.join().fail(t)},f.prototype._report=function(e){this.resolved&&this.handler.join()._report(e)},f.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},j(p,m),m.prototype.when=function(e){N.enqueue(new x(e,this))},m.prototype._report=function(e){this.join()._report(e)},m.prototype._unreport=function(){this.join()._unreport()},j(f,v),j(p,g),g.prototype._state=1,g.prototype.fold=function(e,t,r,n){O(e,t,this,r,n)},g.prototype.when=function(e){T(e.fulfilled,this,e.receiver,e.resolver)};var B=0;j(p,y),y.prototype._state=-1,y.prototype.fold=function(e,t,r,n){n.become(this)},y.prototype.when=function(e){"function"==typeof e.rejected&&this._unreport(),T(e.rejected,this,e.receiver,e.resolver)},y.prototype._report=function(e){N.afterQueue(new b(this,e))},y.prototype._unreport=function(){this.handled||(this.handled=!0,N.afterQueue(new _(this)))},y.prototype.fail=function(e){this.reported=!0,I("unhandledRejection",this),r.onFatalRejection(this,void 0===e?this.context:e)},b.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,I("unhandledRejection",this.rejection)||r.onPotentiallyUnhandledRejection(this.rejection,this.context))},_.prototype.run=function(){this.rejection.reported&&(I("rejectionHandled",this.rejection)||r.onPotentiallyUnhandledRejectionHandled(this.rejection))},r.createContext=r.enterContext=r.exitContext=r.onPotentiallyUnhandledRejection=r.onPotentiallyUnhandledRejectionHandled=r.onFatalRejection=R;var F=new r(p,new p);return x.prototype.run=function(){this.handler.join().when(this.continuation)},w.prototype.run=function(){var e=this.handler.consumers;if(void 0!==e)for(var t,n=0;n<e.length;++n)!function(e,t,n,i,o){if("function"!=typeof e)return o.notify(t);r.enterContext(n),function(e,t,r,n){try{n.notify(e.call(r,t))}catch(e){n.notify(e)}}(e,t,i,o),r.exitContext()}((t=e[n]).progress,this.value,this.handler,t.receiver,t.resolver)},S.prototype.run=function(){var e=this.resolver;!function(e,t,r,n,i){try{e.call(t,r,n,i)}catch(e){n(e)}}(this._then,this.thenable,function(t){e.resolve(t)},function(t){e.reject(t)},function(t){e.notify(t)})},M.prototype.fulfilled=function(e){this.f.call(this.c,this.z,e,this.to)},M.prototype.rejected=function(e){this.to.reject(e)},M.prototype.progress=function(e){this.to.notify(e)},r}})}(function(e){t.exports=e()})}).call(this,e("_process"))},{_process:6}],287:[function(e,t,r){!function(e){"use strict";e(function(){function e(){return{state:"pending"}}function t(e){return{state:"rejected",reason:e}}function r(e){return{state:"fulfilled",value:e}}return{pending:e,fulfilled:r,rejected:t,inspect:function(e){var n=e.state();return 0===n?{state:"pending"}:n>0?r(e.value):t(e.value)}}})}(function(e){t.exports=e()})},{}],288:[function(e,t,r){!function(e){"use strict";e(function(e){function t(e,t,r,n){var i=m.resolve(e);return arguments.length<2?i:i.then(t,r,n)}function r(e){return function(){for(var t=0,r=arguments.length,n=new Array(r);t<r;++t)n[t]=arguments[t];return v(e,this,n)}}function n(e){for(var t=0,r=arguments.length-1,n=new Array(r);t<r;++t)n[t]=arguments[t+1];return v(e,this,n)}function i(){return new function(){function e(e){n._handler.resolve(e)}function t(e){n._handler.reject(e)}function r(e){n._handler.notify(e)}var n=m._defer();this.promise=n,this.resolve=e,this.reject=t,this.notify=r,this.resolver={resolve:e,reject:t,notify:r}}}var o=e("./lib/decorators/timed"),a=e("./lib/decorators/array"),s=e("./lib/decorators/flow"),c=e("./lib/decorators/fold"),u=e("./lib/decorators/inspect"),h=e("./lib/decorators/iterate"),l=e("./lib/decorators/progress"),p=e("./lib/decorators/with"),d=e("./lib/decorators/unhandledRejection"),f=e("./lib/TimeoutError"),m=[a,s,c,h,l,u,p,o,d].reduce(function(e,t){return t(e)},e("./lib/Promise")),v=e("./lib/apply")(m);return t.promise=function(e){return new m(e)},t.resolve=m.resolve,t.reject=m.reject,t.lift=r,t.try=n,t.attempt=n,t.iterate=m.iterate,t.unfold=m.unfold,t.join=function(){return m.all(arguments)},t.all=function(e){return t(e,m.all)},t.settle=function(e){return t(e,m.settle)},t.any=r(m.any),t.some=r(m.some),t.race=r(m.race),t.map=function(e,r){return t(e,function(e){return m.map(e,r)})},t.filter=function(e,r){return t(e,function(e){return m.filter(e,r)})},t.reduce=r(m.reduce),t.reduceRight=r(m.reduceRight),t.isPromiseLike=function(e){return e&&"function"==typeof e.then},t.Promise=m,t.defer=i,t.TimeoutError=f,t})}(function(r){t.exports=r(e)})},{"./lib/Promise":271,"./lib/TimeoutError":273,"./lib/apply":274,"./lib/decorators/array":275,"./lib/decorators/flow":276,"./lib/decorators/fold":277,"./lib/decorators/inspect":278,"./lib/decorators/iterate":279,"./lib/decorators/progress":280,"./lib/decorators/timed":281,"./lib/decorators/unhandledRejection":282,"./lib/decorators/with":283}],289:[function(e,t,r){var n=Array.isArray,i=Object.prototype.toString;t.exports=n||function(e){return"[object Array]"===i.call(e)}},{}],290:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./api/APIv3");r.APIv3=n.APIv3;var i=e("./api/ModelCreator");r.ModelCreator=i.ModelCreator},{"./api/APIv3":303,"./api/ModelCreator":304}],291:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./component/Component");r.Component=n.Component;var i=e("./component/ComponentService");r.ComponentService=i.ComponentService;var o=e("./component/utils/HandlerBase");r.HandlerBase=o.HandlerBase;var a=e("./component/AttributionComponent");r.AttributionComponent=a.AttributionComponent;var s=e("./component/BackgroundComponent");r.BackgroundComponent=s.BackgroundComponent;var c=e("./component/BearingComponent");r.BearingComponent=c.BearingComponent;var u=e("./component/CacheComponent");r.CacheComponent=u.CacheComponent;var h=e("./component/CoverComponent");r.CoverComponent=h.CoverComponent;var l=e("./component/DebugComponent");r.DebugComponent=l.DebugComponent;var p=e("./component/direction/DirectionComponent");r.DirectionComponent=p.DirectionComponent;var d=e("./component/direction/DirectionDOMCalculator");r.DirectionDOMCalculator=d.DirectionDOMCalculator;var f=e("./component/direction/DirectionDOMRenderer");r.DirectionDOMRenderer=f.DirectionDOMRenderer;var m=e("./component/ImageComponent");r.ImageComponent=m.ImageComponent;var v=e("./component/keyboard/KeyboardComponent");r.KeyboardComponent=v.KeyboardComponent;var g=e("./component/keyboard/KeyPlayHandler");r.KeyPlayHandler=g.KeyPlayHandler;var y=e("./component/keyboard/KeyZoomHandler");r.KeyZoomHandler=y.KeyZoomHandler;var b=e("./component/keyboard/KeySequenceNavigationHandler");r.KeySequenceNavigationHandler=b.KeySequenceNavigationHandler;var _=e("./component/keyboard/KeySpatialNavigationHandler");r.KeySpatialNavigationHandler=_.KeySpatialNavigationHandler;var x=e("./component/LoadingComponent");r.LoadingComponent=x.LoadingComponent;var w=e("./component/marker/marker/Marker");r.Marker=w.Marker;var S=e("./component/marker/MarkerComponent");r.MarkerComponent=S.MarkerComponent;var M=e("./component/marker/MarkerScene");r.MarkerScene=M.MarkerScene;var E=e("./component/marker/MarkerSet");r.MarkerSet=E.MarkerSet;var C=e("./component/mouse/MouseComponent");r.MouseComponent=C.MouseComponent;var T=e("./component/mouse/BounceHandler");r.BounceHandler=T.BounceHandler;var O=e("./component/mouse/DragPanHandler");r.DragPanHandler=O.DragPanHandler;var P=e("./component/mouse/DoubleClickZoomHandler");r.DoubleClickZoomHandler=P.DoubleClickZoomHandler;var j=e("./component/mouse/ScrollZoomHandler");r.ScrollZoomHandler=j.ScrollZoomHandler;var A=e("./component/mouse/TouchZoomHandler");r.TouchZoomHandler=A.TouchZoomHandler;var R=e("./component/popup/popup/Popup");r.Popup=R.Popup;var L=e("./component/popup/PopupComponent");r.PopupComponent=L.PopupComponent;var N=e("./component/NavigationComponent");r.NavigationComponent=N.NavigationComponent;var I=e("./component/RouteComponent");r.RouteComponent=I.RouteComponent;var D=e("./component/sequence/SequenceComponent");r.SequenceComponent=D.SequenceComponent;var k=e("./component/sequence/SequenceDOMRenderer");r.SequenceDOMRenderer=k.SequenceDOMRenderer;var B=e("./component/sequence/SequenceMode");r.SequenceMode=B.SequenceMode;var F=e("./component/imageplane/ImagePlaneComponent");r.ImagePlaneComponent=F.ImagePlaneComponent;var U=e("./component/imageplane/ImagePlaneFactory");r.ImagePlaneFactory=U.ImagePlaneFactory;var $=e("./component/imageplane/ImagePlaneGLRenderer");r.ImagePlaneGLRenderer=$.ImagePlaneGLRenderer;var z=e("./component/imageplane/ImagePlaneScene");r.ImagePlaneScene=z.ImagePlaneScene;var G=e("./component/imageplane/ImagePlaneShaders");r.ImagePlaneShaders=G.ImagePlaneShaders;var V=e("./component/marker/marker/SimpleMarker");r.SimpleMarker=V.SimpleMarker;var H=e("./component/marker/marker/CircleMarker");r.CircleMarker=H.CircleMarker;var q=e("./component/imageplane/SliderComponent");r.SliderComponent=q.SliderComponent;var W=e("./component/StatsComponent");r.StatsComponent=W.StatsComponent;var X=e("./component/tag/handlers/TagHandlerBase");r.TagHandlerBase=X.TagHandlerBase;var Y=e("./component/tag/handlers/CreateHandlerBase");r.CreateHandlerBase=Y.CreateHandlerBase;var K=e("./component/tag/handlers/CreatePointHandler");r.CreatePointHandler=K.CreatePointHandler;var Z=e("./component/tag/handlers/CreateVertexHandler");r.CreateVertexHandler=Z.CreateVertexHandler;var J=e("./component/tag/handlers/CreatePolygonHandler");r.CreatePolygonHandler=J.CreatePolygonHandler;var Q=e("./component/tag/handlers/CreateRectHandler");r.CreateRectHandler=Q.CreateRectHandler;var ee=e("./component/tag/handlers/CreateRectDragHandler");r.CreateRectDragHandler=ee.CreateRectDragHandler;var te=e("./component/tag/handlers/EditVertexHandler");r.EditVertexHandler=te.EditVertexHandler;var re=e("./component/tag/tag/Tag");r.Tag=re.Tag;var ne=e("./component/tag/tag/OutlineTag");r.OutlineTag=ne.OutlineTag;var ie=e("./component/tag/tag/RenderTag");r.RenderTag=ie.RenderTag;var oe=e("./component/tag/tag/OutlineRenderTag");r.OutlineRenderTag=oe.OutlineRenderTag;var ae=e("./component/tag/tag/OutlineCreateTag");r.OutlineCreateTag=ae.OutlineCreateTag;var se=e("./component/tag/tag/SpotTag");r.SpotTag=se.SpotTag;var ce=e("./component/tag/tag/SpotRenderTag");r.SpotRenderTag=ce.SpotRenderTag;var ue=e("./component/tag/TagComponent");r.TagComponent=ue.TagComponent;var he=e("./component/tag/TagCreator");r.TagCreator=he.TagCreator;var le=e("./component/tag/TagDOMRenderer");r.TagDOMRenderer=le.TagDOMRenderer;var pe=e("./component/tag/TagMode");r.TagMode=pe.TagMode;var de=e("./component/tag/TagOperation");r.TagOperation=de.TagOperation;var fe=e("./component/tag/TagScene");r.TagScene=fe.TagScene;var me=e("./component/tag/TagSet");r.TagSet=me.TagSet;var ve=e("./component/tag/geometry/Geometry");r.Geometry=ve.Geometry;var ge=e("./component/tag/geometry/VertexGeometry");r.VertexGeometry=ge.VertexGeometry;var ye=e("./component/tag/geometry/RectGeometry");r.RectGeometry=ye.RectGeometry;var be=e("./component/tag/geometry/PointGeometry");r.PointGeometry=be.PointGeometry;var _e=e("./component/tag/geometry/PolygonGeometry");r.PolygonGeometry=_e.PolygonGeometry;var xe=e("./component/tag/error/GeometryTagError");r.GeometryTagError=xe.GeometryTagError,function(e){for(var t in e)r.hasOwnProperty(t)||(r[t]=e[t])}(e("./component/interfaces/interfaces"))},{"./component/AttributionComponent":305,"./component/BackgroundComponent":306,"./component/BearingComponent":307,"./component/CacheComponent":308,"./component/Component":309,"./component/ComponentService":310,"./component/CoverComponent":311,"./component/DebugComponent":312,"./component/ImageComponent":313,"./component/LoadingComponent":314,"./component/NavigationComponent":315,"./component/RouteComponent":316,"./component/StatsComponent":317,"./component/direction/DirectionComponent":318,"./component/direction/DirectionDOMCalculator":319,"./component/direction/DirectionDOMRenderer":320,"./component/imageplane/ImagePlaneComponent":321,"./component/imageplane/ImagePlaneFactory":322,"./component/imageplane/ImagePlaneGLRenderer":323,"./component/imageplane/ImagePlaneScene":324,"./component/imageplane/ImagePlaneShaders":325,"./component/imageplane/SliderComponent":326,"./component/interfaces/interfaces":328,"./component/keyboard/KeyPlayHandler":329,"./component/keyboard/KeySequenceNavigationHandler":330,"./component/keyboard/KeySpatialNavigationHandler":331,"./component/keyboard/KeyZoomHandler":332,"./component/keyboard/KeyboardComponent":333,"./component/marker/MarkerComponent":335,"./component/marker/MarkerScene":336,"./component/marker/MarkerSet":337,"./component/marker/marker/CircleMarker":338,"./component/marker/marker/Marker":339,"./component/marker/marker/SimpleMarker":340,"./component/mouse/BounceHandler":341,"./component/mouse/DoubleClickZoomHandler":342,"./component/mouse/DragPanHandler":343,"./component/mouse/MouseComponent":344,"./component/mouse/ScrollZoomHandler":345,"./component/mouse/TouchZoomHandler":346,"./component/popup/PopupComponent":348,"./component/popup/popup/Popup":349,"./component/sequence/SequenceComponent":350,"./component/sequence/SequenceDOMRenderer":351,"./component/sequence/SequenceMode":352,"./component/tag/TagComponent":354,"./component/tag/TagCreator":355,"./component/tag/TagDOMRenderer":356,"./component/tag/TagMode":357,"./component/tag/TagOperation":358,"./component/tag/TagScene":359,"./component/tag/TagSet":360,"./component/tag/error/GeometryTagError":361,"./component/tag/geometry/Geometry":362,"./component/tag/geometry/PointGeometry":363,"./component/tag/geometry/PolygonGeometry":364,"./component/tag/geometry/RectGeometry":365,"./component/tag/geometry/VertexGeometry":366,"./component/tag/handlers/CreateHandlerBase":367,"./component/tag/handlers/CreatePointHandler":368,"./component/tag/handlers/CreatePolygonHandler":369,"./component/tag/handlers/CreateRectDragHandler":370,"./component/tag/handlers/CreateRectHandler":371,"./component/tag/handlers/CreateVertexHandler":372,"./component/tag/handlers/EditVertexHandler":373,"./component/tag/handlers/TagHandlerBase":374,"./component/tag/tag/OutlineCreateTag":375,"./component/tag/tag/OutlineRenderTag":376,"./component/tag/tag/OutlineTag":377,"./component/tag/tag/RenderTag":378,"./component/tag/tag/SpotRenderTag":379,"./component/tag/tag/SpotTag":380,"./component/tag/tag/Tag":381,"./component/utils/HandlerBase":382}],292:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./graph/edge/EdgeDirection");r.EdgeDirection=n.EdgeDirection;var i=e("./graph/edge/EdgeCalculatorSettings");r.EdgeCalculatorSettings=i.EdgeCalculatorSettings;var o=e("./graph/edge/EdgeCalculatorDirections");r.EdgeCalculatorDirections=o.EdgeCalculatorDirections;var a=e("./graph/edge/EdgeCalculatorCoefficients");r.EdgeCalculatorCoefficients=a.EdgeCalculatorCoefficients;var s=e("./graph/edge/EdgeCalculator");r.EdgeCalculator=s.EdgeCalculator},{"./graph/edge/EdgeCalculator":402,"./graph/edge/EdgeCalculatorCoefficients":403,"./graph/edge/EdgeCalculatorDirections":404,"./graph/edge/EdgeCalculatorSettings":405,"./graph/edge/EdgeDirection":406}],293:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./error/AbortMapillaryError");r.AbortMapillaryError=n.AbortMapillaryError;var i=e("./error/ArgumentMapillaryError");r.ArgumentMapillaryError=i.ArgumentMapillaryError;var o=e("./error/GraphMapillaryError");r.GraphMapillaryError=o.GraphMapillaryError;var a=e("./error/MapillaryError");r.MapillaryError=a.MapillaryError},{"./error/AbortMapillaryError":383,"./error/ArgumentMapillaryError":384,"./error/GraphMapillaryError":385,"./error/MapillaryError":386}],294:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./geo/Camera");r.Camera=n.Camera;var i=e("./geo/GeoCoords");r.GeoCoords=i.GeoCoords;var o=e("./geo/ViewportCoords");r.ViewportCoords=o.ViewportCoords;var a=e("./geo/Spatial");r.Spatial=a.Spatial;var s=e("./geo/Transform");r.Transform=s.Transform},{"./geo/Camera":387,"./geo/GeoCoords":388,"./geo/Spatial":389,"./geo/Transform":390,"./geo/ViewportCoords":391}],295:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./graph/FilterCreator");r.FilterCreator=n.FilterCreator;var i=e("./graph/Graph");r.Graph=i.Graph;var o=e("./graph/GraphCalculator");r.GraphCalculator=o.GraphCalculator;var a=e("./graph/GraphMode");r.GraphMode=a.GraphMode;var s=e("./graph/GraphService");r.GraphService=s.GraphService;var c=e("./graph/ImageLoadingService");r.ImageLoadingService=c.ImageLoadingService;var u=e("./graph/MeshReader");r.MeshReader=u.MeshReader;var h=e("./graph/Node");r.Node=h.Node;var l=e("./graph/NodeCache");r.NodeCache=l.NodeCache;var p=e("./graph/Sequence");r.Sequence=p.Sequence},{"./graph/FilterCreator":392,"./graph/Graph":393,"./graph/GraphCalculator":394,"./graph/GraphMode":395,"./graph/GraphService":396,"./graph/ImageLoadingService":397,"./graph/MeshReader":398,"./graph/Node":399,"./graph/NodeCache":400,"./graph/Sequence":401}],296:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),function(e){for(var t in e)r.hasOwnProperty(t)||(r[t]=e[t])}(e("./Support"));var n=e("./Edge");r.EdgeDirection=n.EdgeDirection;var i=e("./Render");r.RenderMode=i.RenderMode;var o=e("./State");r.TransitionMode=o.TransitionMode;var a=e("./Viewer");r.Alignment=a.Alignment,r.ImageSize=a.ImageSize,r.Viewer=a.Viewer;var s=e("./component/tag/Tag");r.TagComponent=s;var c=e("./component/marker/Marker");r.MarkerComponent=c;var u=e("./component/popup/Popup");r.PopupComponent=u},{"./Edge":292,"./Render":297,"./State":298,"./Support":299,"./Viewer":302,"./component/marker/Marker":334,"./component/popup/Popup":347,"./component/tag/Tag":353}],297:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./render/DOMRenderer");r.DOMRenderer=n.DOMRenderer;var i=e("./render/GLRenderer");r.GLRenderer=i.GLRenderer;var o=e("./render/GLRenderStage");r.GLRenderStage=o.GLRenderStage;var a=e("./render/RenderCamera");r.RenderCamera=a.RenderCamera;var s=e("./render/RenderMode");r.RenderMode=s.RenderMode;var c=e("./render/RenderService");r.RenderService=c.RenderService},{"./render/DOMRenderer":407,"./render/GLRenderStage":408,"./render/GLRenderer":409,"./render/RenderCamera":410,"./render/RenderMode":411,"./render/RenderService":412}],298:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./state/State");r.State=n.State;var i=e("./state/states/StateBase");r.StateBase=i.StateBase;var o=e("./state/StateContext");r.StateContext=o.StateContext;var a=e("./state/StateService");r.StateService=a.StateService;var s=e("./state/TransitionMode");r.TransitionMode=s.TransitionMode;var c=e("./state/states/TraversingState");r.TraversingState=c.TraversingState;var u=e("./state/states/WaitingState");r.WaitingState=u.WaitingState},{"./state/State":413,"./state/StateContext":414,"./state/StateService":415,"./state/TransitionMode":416,"./state/states/StateBase":417,"./state/states/TraversingState":418,"./state/states/WaitingState":419}],299:[function(e,t,r){"use strict";function n(){return i.isBrowser()&&i.isArraySupported()&&i.isFunctionSupported()&&i.isJSONSupported()&&i.isObjectSupported()}Object.defineProperty(r,"__esModule",{value:!0});var i=e("./utils/Support");r.isSupported=function(){return n()&&i.isWebGLSupportedCached()},r.isFallbackSupported=n},{"./utils/Support":427}],300:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./tiles/ImageTileLoader");r.ImageTileLoader=n.ImageTileLoader;var i=e("./tiles/ImageTileStore");r.ImageTileStore=i.ImageTileStore;var o=e("./tiles/TextureProvider");r.TextureProvider=o.TextureProvider;var a=e("./tiles/RegionOfInterestCalculator");r.RegionOfInterestCalculator=a.RegionOfInterestCalculator},{"./tiles/ImageTileLoader":420,"./tiles/ImageTileStore":421,"./tiles/RegionOfInterestCalculator":422,"./tiles/TextureProvider":423}],301:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./utils/DOM");r.DOM=n.DOM;var i=e("./utils/EventEmitter");r.EventEmitter=i.EventEmitter;var o=e("./utils/Settings");r.Settings=o.Settings,function(e){for(var t in e)r.hasOwnProperty(t)||(r[t]=e[t])}(e("./utils/Support"));var a=e("./utils/Urls");r.Urls=a.Urls},{"./utils/DOM":424,"./utils/EventEmitter":425,"./utils/Settings":426,"./utils/Support":427,"./utils/Urls":428}],302:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./viewer/Alignment");r.Alignment=n.Alignment;var i=e("./viewer/CacheService");r.CacheService=i.CacheService;var o=e("./viewer/ComponentController");r.ComponentController=o.ComponentController;var a=e("./viewer/Container");r.Container=a.Container;var s=e("./viewer/Observer");r.Observer=s.Observer;var c=e("./viewer/ImageSize");r.ImageSize=c.ImageSize;var u=e("./viewer/KeyboardService");r.KeyboardService=u.KeyboardService;var h=e("./viewer/LoadingService");r.LoadingService=h.LoadingService;var l=e("./viewer/MouseService");r.MouseService=l.MouseService;var p=e("./viewer/Navigator");r.Navigator=p.Navigator;var d=e("./viewer/PlayService");r.PlayService=d.PlayService;var f=e("./viewer/Projection");r.Projection=f.Projection;var m=e("./viewer/SpriteService");r.SpriteService=m.SpriteService;var v=e("./viewer/TouchService");r.TouchService=v.TouchService;var g=e("./viewer/Viewer");r.Viewer=g.Viewer},{"./viewer/Alignment":429,"./viewer/CacheService":430,"./viewer/ComponentController":431,"./viewer/Container":432,"./viewer/ImageSize":433,"./viewer/KeyboardService":434,"./viewer/LoadingService":435,"./viewer/MouseService":436,"./viewer/Navigator":437,"./viewer/Observer":438,"./viewer/PlayService":439,"./viewer/Projection":440,"./viewer/SpriteService":441,"./viewer/TouchService":442,"./viewer/Viewer":443}],303:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable");e("rxjs/add/observable/defer"),e("rxjs/add/observable/fromPromise"),e("rxjs/add/operator/catch"),e("rxjs/add/operator/map");var i=e("../API"),o=function(){function e(e,t,r){this._clientId=e,this._modelCreator=null!=r?r:new i.ModelCreator,this._model=this._modelCreator.createModel(e,t),this._pageCount=999,this._pathImageByKey="imageByKey",this._pathImageCloseTo="imageCloseTo",this._pathImagesByH="imagesByH",this._pathImageViewAdd="imageViewAdd",this._pathSequenceByKey="sequenceByKey",this._pathSequenceViewAdd="sequenceViewAdd",this._propertiesCore=["cl","l","sequence_key"],this._propertiesFill=["captured_at","captured_with_camera_uuid","user","organization_key","private","project"],this._propertiesKey=["key"],this._propertiesSequence=["keys"],this._propertiesSpatial=["atomic_scale","ca","calt","cca","cfocal","gpano","height","merge_cc","merge_version","c_rotation","orientation","width"],this._propertiesUser=["username"]}return e.prototype.imageByKeyFill$=function(e){return this._catchInvalidateGet$(this._wrapPromise$(this._model.get([this._pathImageByKey,e,this._propertiesKey.concat(this._propertiesFill).concat(this._propertiesSpatial),this._propertiesKey.concat(this._propertiesUser)])).map(function(t){if(!t)throw new Error("Images ("+e.join(", ")+") could not be found.");return t.json.imageByKey}),this._pathImageByKey,e)},e.prototype.imageByKeyFull$=function(e){return this._catchInvalidateGet$(this._wrapPromise$(this._model.get([this._pathImageByKey,e,this._propertiesKey.concat(this._propertiesCore).concat(this._propertiesFill).concat(this._propertiesSpatial),this._propertiesKey.concat(this._propertiesUser)])).map(function(t){if(!t)throw new Error("Images ("+e.join(", ")+") could not be found.");return t.json.imageByKey}),this._pathImageByKey,e)},e.prototype.imageCloseTo$=function(e,t){var r=t+":"+e;return this._catchInvalidateGet$(this._wrapPromise$(this._model.get([this._pathImageCloseTo,[r],this._propertiesKey.concat(this._propertiesCore).concat(this._propertiesFill).concat(this._propertiesSpatial),this._propertiesKey.concat(this._propertiesUser)])).map(function(e){return null!=e?e.json.imageCloseTo[r]:null}),this._pathImageCloseTo,[r])},e.prototype.imagesByH$=function(e){var t=this;return this._catchInvalidateGet$(this._wrapPromise$(this._model.get([this._pathImagesByH,e,{from:0,to:this._pageCount},this._propertiesKey.concat(this._propertiesCore)])).map(function(r){if(!r){r={json:{imagesByH:{}}};for(var n=0,i=e;n<i.length;n++){var o=i[n];r.json.imagesByH[o]={};for(var a=0;a<=t._pageCount;a++)r.json.imagesByH[o][a]=null}}return r.json.imagesByH}),this._pathImagesByH,e)},e.prototype.imageViewAdd$=function(e){return this._catchInvalidateCall$(this._wrapPromise$(this._model.call([this._pathImageViewAdd],[e])),this._pathImageViewAdd,e)},e.prototype.invalidateImageByKey=function(e){this._invalidateGet(this._pathImageByKey,e)},e.prototype.invalidateImagesByH=function(e){this._invalidateGet(this._pathImagesByH,e)},e.prototype.invalidateSequenceByKey=function(e){this._invalidateGet(this._pathSequenceByKey,e)},e.prototype.setToken=function(e){this._model.invalidate([]),this._model=null,this._model=this._modelCreator.createModel(this._clientId,e)},e.prototype.sequenceByKey$=function(e){return this._catchInvalidateGet$(this._wrapPromise$(this._model.get([this._pathSequenceByKey,e,this._propertiesKey.concat(this._propertiesSequence)])).map(function(t){t||(t={json:{sequenceByKey:{}}});for(var r=0,n=e;r<n.length;r++){var i=n[r];i in t.json.sequenceByKey||(console.warn("Sequence data missing ("+i+")"),t.json.sequenceByKey[i]={key:i,keys:[]})}return t.json.sequenceByKey}),this._pathSequenceByKey,e)},e.prototype.sequenceViewAdd$=function(e){return this._catchInvalidateCall$(this._wrapPromise$(this._model.call([this._pathSequenceViewAdd],[e])),this._pathSequenceViewAdd,e)},Object.defineProperty(e.prototype,"clientId",{get:function(){return this._clientId},enumerable:!0,configurable:!0}),e.prototype._catchInvalidateGet$=function(e,t,r){var n=this;return e.catch(function(e){throw n._invalidateGet(t,r),e})},e.prototype._catchInvalidateCall$=function(e,t,r){var n=this;return e.catch(function(e){throw n._invalidateCall(t,r),e})},e.prototype._invalidateGet=function(e,t){this._model.invalidate([e,t])},e.prototype._invalidateCall=function(e,t){this._model.invalidate([e],[t])},e.prototype._wrapPromise$=function(e){return n.Observable.defer(function(){return n.Observable.fromPromise(e)})},e}();r.APIv3=o,r.default=o},{"../API":290,"rxjs/Observable":29,"rxjs/add/observable/defer":40,"rxjs/add/observable/fromPromise":44,"rxjs/add/operator/catch":54,"rxjs/add/operator/map":67}],304:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("falcor"),i=e("falcor-http-datasource"),o=e("../Utils"),a=function(){function e(){}return e.prototype.createModel=function(e,t){var r={crossDomain:!0,withCredentials:!1};return null!=t&&(r.headers={Authorization:"Bearer "+t}),new n.Model({maxSize:16777216,source:new i(o.Urls.falcorModel(e),r)})},e}();r.ModelCreator=a,r.default=a},{"../Utils":301,falcor:15,"falcor-http-datasource":10}],305:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("../Component"),a=e("../Utils"),s=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){var e=this;this._disposable=this._navigator.stateService.currentNode$.map(function(t){return{name:e._name,vnode:e._getAttributionNode(t.username,t.key)}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._disposable.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._getAttributionNode=function(e,t){return i.h("div.Attribution",{},[i.h("a",{href:a.Urls.exporeUser(e),target:"_blank",textContent:"@"+e},[]),i.h("span",{textContent:"|"},[]),i.h("a",{href:a.Urls.exporeImage(t),target:"_blank",textContent:"mapillary.com"},[])])},t.componentName="attribution",t}(o.Component);r.AttributionComponent=s,o.ComponentService.register(s),r.default=s},{"../Component":291,"../Utils":301,"virtual-dom":247}],306:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("../Component"),a=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){this._container.domRenderer.render$.next({name:this._name,vnode:this._getBackgroundNode("The viewer can't display the given image.")})},t.prototype._deactivate=function(){},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._getBackgroundNode=function(e){return i.h("div.BackgroundWrapper",{},[i.h("p",{textContent:e},[])])},t.componentName="background",t}(o.Component);r.BackgroundComponent=a,o.ComponentService.register(a),r.default=a},{"../Component":291,"virtual-dom":247}],307:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("rxjs/Observable"),a=e("../Component"),s=e("../Geo"),c=function(e){function t(t,r,n){var i=e.call(this,t,r,n)||this;return i._spatial=new s.Spatial,i._svgNamespace="http://www.w3.org/2000/svg",i._distinctThreshold=Math.PI/90,i}return n(t,e),t.prototype._activate=function(){var e=this,t=this._navigator.stateService.currentState$.distinctUntilChanged(void 0,function(e){return e.state.currentNode.key}).map(function(t){var r=t.state.currentNode,n=t.state.currentTransform;if(r.pano){var i=2*Math.PI*r.gpano.CroppedAreaImageWidthPixels/r.gpano.FullPanoWidthPixels;return[e._spatial.degToRad(r.ca),i]}var o=Math.max(n.basicWidth,n.basicHeight);o<=0&&console.warn("Original image size ("+n.basicWidth+", "+n.basicHeight+") is invalid ("+r.key+". Not showing available fov.");var a=o>0?2*Math.atan(.5*n.basicWidth/(o*n.focal)):0;return[e._spatial.degToRad(r.ca),a]}).distinctUntilChanged(function(t,r){return Math.abs(r[0]-t[0])<e._distinctThreshold&&Math.abs(r[1]-t[1])<e._distinctThreshold}),r=this._container.renderService.renderCamera$.map(function(t){var r=e._spatial.degToRad(t.perspective.fov),n=t.perspective.aspect===Number.POSITIVE_INFINITY?Math.PI:2*Math.atan(t.perspective.aspect*Math.tan(.5*r));return[e._spatial.azimuthalToBearing(t.rotation.phi),n]}).distinctUntilChanged(function(t,r){return Math.abs(r[0]-t[0])<e._distinctThreshold&&Math.abs(r[1]-t[1])<e._distinctThreshold});this._renderSubscription=o.Observable.combineLatest(t,r).map(function(t){var r=i.h("div.BearingIndicatorBackground",{oncontextmenu:function(e){e.preventDefault()}},[i.h("div.BearingIndicatorBackgroundRectangle",{},[]),i.h("div.BearingIndicatorBackgroundCircle",{},[])]),n=i.h("div.BearingIndicatorNorth",{},[]),o=e._createCircleSector(t[0][0],t[0][1],"#000"),a=e._createCircleSector(t[1][0],t[1][1],"#fff"),s=e._createCircleSectorCompass(o,a);return{name:e._name,vnode:i.h("div.BearingIndicator",{},[r,n,s])}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._renderSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._createCircleSectorCompass=function(e,t){var r=i.h("g",{attributes:{transform:"translate(1,1)"},namespace:this._svgNamespace},[e,t]),n=i.h("circle",{attributes:{cx:"1",cy:"1",fill:"#abb1b9",r:"0.291667",stroke:"#000","stroke-width":"0.0833333"},namespace:this._svgNamespace},[]);return i.h("svg",{attributes:{viewBox:"0 0 2 2"},namespace:this._svgNamespace,style:{bottom:"4px",height:"48px",left:"4px",position:"absolute",width:"48px"}},[r,n])},t.prototype._createCircleSector=function(e,t,r){if(t>2*Math.PI-Math.PI/90)return i.h("circle",{attributes:{cx:"0",cy:"0",fill:r,r:"1"},namespace:this._svgNamespace},[]);var n=e-t/2-Math.PI/2,o=n+t,a=Math.cos(n),s=Math.sin(n),c=Math.cos(o),u=Math.sin(o),h="M 0 0 "+a+" "+s+" A 1 1 0 "+(t>=Math.PI?1:0)+" 1 "+c+" "+u;return i.h("path",{attributes:{d:h,fill:r},namespace:this._svgNamespace},[])},t.componentName="bearing",t}(a.Component);r.BearingComponent=c,a.ComponentService.register(c),r.default=c},{"../Component":291,"../Geo":294,"rxjs/Observable":29,"virtual-dom":247}],308:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable");e("rxjs/add/observable/combineLatest"),e("rxjs/add/observable/from"),e("rxjs/add/observable/merge"),e("rxjs/add/observable/of"),e("rxjs/add/observable/zip"),e("rxjs/add/operator/catch"),e("rxjs/add/operator/combineLatest"),e("rxjs/add/operator/distinct"),e("rxjs/add/operator/expand"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/merge"),e("rxjs/add/operator/mergeMap"),e("rxjs/add/operator/mergeAll"),e("rxjs/add/operator/skip"),e("rxjs/add/operator/switchMap");var o=e("../Edge"),a=e("../Component"),s=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype.setDepth=function(e){this.configure({depth:e})},t.prototype._activate=function(){var e=this;this._sequenceSubscription=i.Observable.combineLatest(this._navigator.stateService.currentNode$.switchMap(function(e){return e.sequenceEdges$}).filter(function(e){return e.cached}),this._configuration$).switchMap(function(t){var r=t[0],n=t[1],a=Math.max(0,Math.min(4,n.depth.sequence)),s=e._cache$(r.edges,o.EdgeDirection.Next,a),c=e._cache$(r.edges,o.EdgeDirection.Prev,a);return i.Observable.merge(s,c).catch(function(e,t){return console.error("Failed to cache sequence edges.",e),i.Observable.empty()})}).subscribe(function(){}),this._spatialSubscription=this._navigator.stateService.currentNode$.switchMap(function(e){return i.Observable.combineLatest(i.Observable.of(e),e.spatialEdges$.filter(function(e){return e.cached}))}).combineLatest(this._configuration$,function(e,t){return[e[0],e[1],t]}).switchMap(function(t){var r=t[0],n=t[1].edges,a=t[2].depth,s=Math.max(0,Math.min(2,a.pano)),c=r.pano?0:Math.max(0,Math.min(3,a.step)),u=r.pano?0:Math.max(0,Math.min(1,a.turn)),h=e._cache$(n,o.EdgeDirection.Pano,s),l=e._cache$(n,o.EdgeDirection.StepForward,c),p=e._cache$(n,o.EdgeDirection.StepBackward,c),d=e._cache$(n,o.EdgeDirection.StepLeft,c),f=e._cache$(n,o.EdgeDirection.StepRight,c),m=e._cache$(n,o.EdgeDirection.TurnLeft,u),v=e._cache$(n,o.EdgeDirection.TurnRight,u),g=e._cache$(n,o.EdgeDirection.TurnU,u);return i.Observable.merge(l,p,d,f,h,m,v,g).catch(function(e,t){return console.error("Failed to cache spatial edges.",e),i.Observable.empty()})}).subscribe(function(){})},t.prototype._deactivate=function(){this._sequenceSubscription.unsubscribe(),this._spatialSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{depth:{pano:1,sequence:2,step:1,turn:0}}},t.prototype._cache$=function(e,t,r){var n=this;return i.Observable.zip(i.Observable.of(e),i.Observable.of(r)).expand(function(e){var r=e[0],o=e[1],a=[];if(o>0)for(var s=0,c=r;s<c.length;s++){var u=c[s];u.data.direction===t&&a.push(i.Observable.zip(n._navigator.graphService.cacheNode$(u.to).mergeMap(function(e){return n._nodeToEdges$(e,t)}),i.Observable.of(o-1)))}return i.Observable.from(a).mergeAll()}).skip(1)},t.prototype._nodeToEdges$=function(e,t){return([o.EdgeDirection.Next,o.EdgeDirection.Prev].indexOf(t)>-1?e.sequenceEdges$:e.spatialEdges$).first(function(e){return e.cached}).map(function(e){return e.edges})},t.componentName="cache",t}(a.Component);r.CacheComponent=s,a.ComponentService.register(s),r.default=s},{"../Component":291,"../Edge":292,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/from":42,"rxjs/add/observable/merge":45,"rxjs/add/observable/of":46,"rxjs/add/observable/zip":49,"rxjs/add/operator/catch":54,"rxjs/add/operator/combineLatest":55,"rxjs/add/operator/distinct":59,"rxjs/add/operator/expand":62,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/mergeAll":69,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/skip":80,"rxjs/add/operator/switchMap":84}],309:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/BehaviorSubject"),o=e("rxjs/Subject");e("rxjs/add/operator/publishReplay"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/startWith");var a=function(e){function t(t,r,n){var a=e.call(this)||this;return a._activated$=new i.BehaviorSubject(!1),a._configurationSubject$=new o.Subject,a._activated=!1,a._container=r,a._name=t,a._navigator=n,a._configuration$=a._configurationSubject$.startWith(a.defaultConfiguration).scan(function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}).publishReplay(1).refCount(),a._configuration$.subscribe(function(){}),a}return n(t,e),Object.defineProperty(t.prototype,"activated",{get:function(){return this._activated},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activated$",{get:function(){return this._activated$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"defaultConfiguration",{get:function(){return this._getDefaultConfiguration()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"configuration$",{get:function(){return this._configuration$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),t.prototype.activate=function(e){this._activated||(void 0!==e&&this._configurationSubject$.next(e),this._activated=!0,this._activate(),this._activated$.next(!0))},t.prototype.configure=function(e){this._configurationSubject$.next(e)},t.prototype.deactivate=function(){this._activated&&(this._activated=!1,this._deactivate(),this._container.domRenderer.clear(this._name),this._container.glRenderer.clear(this._name),this._activated$.next(!1))},t.prototype.resize=function(){},t.componentName="not_worthy",t}(e("../Utils").EventEmitter);r.Component=a,r.default=a},{"../Utils":301,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/startWith":83}],310:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("underscore"),i=e("../Error"),o=function(){function e(t,r){this._components={};for(var i=0,o=n.values(e.registeredComponents);i<o.length;i++){var a=o[i];this._components[a.componentName]={active:!1,component:new a(a.componentName,t,r)}}this._coverComponent=new e.registeredCoverComponent("cover",t,r),this._coverComponent.activate(),this._coverActivated=!0}return e.register=function(t){void 0===e.registeredComponents[t.componentName]&&(e.registeredComponents[t.componentName]=t)},e.registerCover=function(t){e.registeredCoverComponent=t},Object.defineProperty(e.prototype,"coverActivated",{get:function(){return this._coverActivated},enumerable:!0,configurable:!0}),e.prototype.activateCover=function(){if(!this._coverActivated){this._coverActivated=!0;for(var e=0,t=n.values(this._components);e<t.length;e++){var r=t[e];r.active&&r.component.deactivate()}}},e.prototype.deactivateCover=function(){if(this._coverActivated){this._coverActivated=!1;for(var e=0,t=n.values(this._components);e<t.length;e++){var r=t[e];r.active&&r.component.activate()}}},e.prototype.activate=function(e){this._checkName(e),this._components[e].active=!0,this._coverActivated||this.get(e).activate()},e.prototype.configure=function(e,t){this._checkName(e),this.get(e).configure(t)},e.prototype.deactivate=function(e){this._checkName(e),this._components[e].active=!1,this._coverActivated||this.get(e).deactivate()},e.prototype.resize=function(){for(var e=0,t=n.values(this._components);e<t.length;e++){t[e].component.resize()}},e.prototype.get=function(e){return this._components[e].component},e.prototype.getCover=function(){return this._coverComponent},e.prototype._checkName=function(e){if(!(e in this._components))throw new i.ArgumentMapillaryError("Component does not exist: "+e)},e.registeredComponents={},e}();r.ComponentService=o,r.default=o},{"../Error":293,underscore:243}],311:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom");e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/withLatestFrom");var o=e("../Component"),a=e("../Utils"),s=e("../Viewer"),c=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){var e=this;this._keyDisposable=this._navigator.stateService.currentNode$.withLatestFrom(this._configuration$,function(e,t){return[e,t]}).filter(function(e){var t=e[0],r=e[1];return t.key!==r.key}).map(function(e){var t=e[0];e[1];return t}).map(function(e){return{key:e.key,src:e.image.src}}).subscribe(this._configurationSubject$),this._disposable=this._configuration$.map(function(t){return t.key?t.state===o.CoverState.Hidden?{name:e._name,vnode:i.h("div.Cover.CoverDone",[e._getCoverBackgroundVNode(t)])}:{name:e._name,vnode:e._getCoverButtonVNode(t)}:{name:e._name,vnode:i.h("div",[])}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._disposable.unsubscribe(),this._keyDisposable.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{state:o.CoverState.Visible}},t.prototype._getCoverButtonVNode=function(e){var t=this,r=e.state===o.CoverState.Loading?"div.Cover.CoverLoading":"div.Cover";return i.h(r,[this._getCoverBackgroundVNode(e),i.h("button.CoverButton",{onclick:function(){t.configure({state:o.CoverState.Loading})}},["Explore"]),i.h("a.CoverLogo",{href:a.Urls.explore,target:"_blank"},[])])},t.prototype._getCoverBackgroundVNode=function(e){var t={style:{backgroundImage:"url("+(null!=e.src?e.src:a.Urls.thumbnail(e.key,s.ImageSize.Size640))+")"}},r=[];return e.state===o.CoverState.Loading&&r.push(i.h("div.Spinner",{},[])),r.push(i.h("div.CoverBackgroundGradient",{},[])),i.h("div.CoverBackground",t,r)},t.componentName="cover",t}(o.Component);r.CoverComponent=c,o.ComponentService.registerCover(c),r.default=c},{"../Component":291,"../Utils":301,"../Viewer":302,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/withLatestFrom":90,"virtual-dom":247}],312:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("underscore"),o=e("virtual-dom"),a=e("rxjs/BehaviorSubject");e("rxjs/add/operator/combineLatest");var s=e("../Component"),c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._open$=new a.BehaviorSubject(!1),t}return n(t,e),t.prototype._activate=function(){var e=this;this._disposable=this._navigator.stateService.currentState$.combineLatest(this._open$,this._navigator.imageLoadingService.loadstatus$,function(t,r,n){return{name:e._name,vnode:e._getDebugVNode(r,e._getDebugInfo(t,n))}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._disposable.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._getDebugInfo=function(e,t){var r=[];r.push(o.h("h2","Node")),e.state.currentNode&&r.push(o.h("p","currentNode: "+e.state.currentNode.key)),e.state.previousNode&&r.push(o.h("p","previousNode: "+e.state.previousNode.key)),r.push(o.h("h2","Loading"));for(var n=0,a=0,s=0,c=0,u=i.values(t);c<u.length;c++){var h=u[c];n+=h.loaded,h.loaded!==h.total?s++:a++}return r.push(o.h("p","Loaded Images: "+a)),r.push(o.h("p","Loading Images: "+s)),r.push(o.h("p","Total bytes loaded: "+n)),r.push(o.h("h2","Camera")),r.push(o.h("p","camera.position.x: "+e.state.camera.position.x)),r.push(o.h("p","camera.position.y: "+e.state.camera.position.y)),r.push(o.h("p","camera.position.z: "+e.state.camera.position.z)),r.push(o.h("p","camera.lookat.x: "+e.state.camera.lookat.x)),r.push(o.h("p","camera.lookat.y: "+e.state.camera.lookat.y)),r.push(o.h("p","camera.lookat.z: "+e.state.camera.lookat.z)),r.push(o.h("p","camera.up.x: "+e.state.camera.up.x)),r.push(o.h("p","camera.up.y: "+e.state.camera.up.y)),r.push(o.h("p","camera.up.z: "+e.state.camera.up.z)),r},t.prototype._getDebugVNode=function(e,t){return e?o.h("div.Debug",{},[o.h("h2",{},["Debug"]),this._getDebugVNodeButton(e),o.h("pre",{},t)]):this._getDebugVNodeButton(e)},t.prototype._getDebugVNodeButton=function(e){var t=e?"Disable Debug":"D",r=e?"":".DebugButtonFixed";return e?o.h("button.DebugButton"+r,{onclick:this._closeDebugElement.bind(this)},[t]):o.h("button.DebugButton"+r,{onclick:this._openDebugElement.bind(this)},[t])},t.prototype._closeDebugElement=function(e){this._open$.next(!1)},t.prototype._openDebugElement=function(){this._open$.next(!0)},t.componentName="debug",t}(s.Component);r.DebugComponent=c,s.ComponentService.register(c),r.default=c},{"../Component":291,"rxjs/BehaviorSubject":26,"rxjs/add/operator/combineLatest":55,underscore:243,"virtual-dom":247}],313:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("rxjs/Observable");e("rxjs/add/operator/combineLatest");var a=e("../Component"),s=e("../Utils"),c=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._canvasId=r.id+"-"+o._name,o._dom=i||new s.DOM,o}return n(t,e),t.prototype._activate=function(){var e=this,t=this._container.domRenderer.element$.map(function(t){return e._dom.document.getElementById(e._canvasId)}).filter(function(e){return!!e}).map(function(e){var t=e.parentElement,r=t.offsetWidth;return[e,{height:t.offsetHeight,width:r}]}).distinctUntilChanged(function(e,t){return e.height===t.height&&e.width===t.width},function(e){e[0];return e[1]});this.drawSubscription=o.Observable.combineLatest(t,this._navigator.stateService.currentNode$).subscribe(function(e){var t=e[0],r=t[0],n=t[1],i=e[1];r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(i.image,0,0,n.width,n.height)}),this._container.domRenderer.renderAdaptive$.next({name:this._name,vnode:i.h("canvas#"+this._canvasId,[])})},t.prototype._deactivate=function(){this.drawSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.componentName="image",t}(a.Component);r.ImageComponent=c,a.ComponentService.register(c),r.default=c},{"../Component":291,"../Utils":301,"rxjs/Observable":29,"rxjs/add/operator/combineLatest":55,"virtual-dom":247}],314:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("underscore"),o=e("virtual-dom"),a=e("rxjs/Observable");e("rxjs/add/operator/combineLatest");var s=e("../Component"),c=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){var e=this;this._loadingSubscription=this._navigator.loadingService.loading$.switchMap(function(t){return t?e._navigator.imageLoadingService.loadstatus$:a.Observable.of({})}).map(function(t){for(var r=0,n=0,o=0,a=i.values(t);o<a.length;o++){var s=a[o];s.loaded!==s.total&&(n+=s.loaded,r+=s.total)}var c=100;return 0!==r&&(c=n/r*100),{name:e._name,vnode:e._getBarVNode(c)}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._loadingSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._getBarVNode=function(e){var t={};return 100!==e?(t.width=e.toFixed(0)+"%",t.opacity="1"):(t.width="100%",t.opacity="0"),o.h("div.Loading",{style:{}},[o.h("div.LoadingBar",{style:t},[])])},t.componentName="loading",t}(s.Component);r.LoadingComponent=c,s.ComponentService.register(c),r.default=c},{"../Component":291,"rxjs/Observable":29,"rxjs/add/operator/combineLatest":55,underscore:243,"virtual-dom":247}],315:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("rxjs/Observable");e("rxjs/add/operator/map"),e("rxjs/add/operator/first");var a=e("../Edge"),s=e("../Error"),c=e("../Component"),u=function(e){function t(t,r,n){var i=e.call(this,t,r,n)||this;return i._seqNames={},i._seqNames[a.EdgeDirection[a.EdgeDirection.Prev]]="Prev",i._seqNames[a.EdgeDirection[a.EdgeDirection.Next]]="Next",i._spaTopNames={},i._spaTopNames[a.EdgeDirection[a.EdgeDirection.TurnLeft]]="Turnleft",i._spaTopNames[a.EdgeDirection[a.EdgeDirection.StepLeft]]="Left",i._spaTopNames[a.EdgeDirection[a.EdgeDirection.StepForward]]="Forward",i._spaTopNames[a.EdgeDirection[a.EdgeDirection.StepRight]]="Right",i._spaTopNames[a.EdgeDirection[a.EdgeDirection.TurnRight]]="Turnright",i._spaBottomNames={},i._spaBottomNames[a.EdgeDirection[a.EdgeDirection.TurnU]]="Turnaround",i._spaBottomNames[a.EdgeDirection[a.EdgeDirection.StepBackward]]="Backward",i}return n(t,e),t.prototype._activate=function(){var e=this;this._renderSubscription=o.Observable.combineLatest(this._navigator.stateService.currentNode$,this._configuration$).switchMap(function(e){var t=e[0],r=e[1],n=r.sequence?t.sequenceEdges$.map(function(e){return e.edges.map(function(e){return e.data.direction})}):o.Observable.of([]),i=!t.pano&&r.spatial?t.spatialEdges$.map(function(e){return e.edges.map(function(e){return e.data.direction})}):o.Observable.of([]);return o.Observable.combineLatest(n,i).map(function(e){var t=e[0],r=e[1];return t.concat(r)})}).map(function(t){var r=e._createArrowRow(e._seqNames,t),n=e._createArrowRow(e._spaTopNames,t),o=e._createArrowRow(e._spaBottomNames,t),a=i.h("div.NavigationSequence",r),s=i.h("div.NavigationSpatialTop",n),c=i.h("div.NavigationSpatialBottom",o),u=i.h("div.NavigationSpatial",[s,c]);return{name:e._name,vnode:i.h("div.NavigationContainer",[a,u])}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._renderSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{sequence:!0,spatial:!0}},t.prototype._createArrowRow=function(e,t){var r=[];for(var n in e)if(e.hasOwnProperty(n)){var i=a.EdgeDirection[n];-1!==t.indexOf(i)?r.push(this._createVNode(i,e[n],"visible")):r.push(this._createVNode(i,e[n],"hidden"))}return r},t.prototype._createVNode=function(e,t,r){var n=this;return i.h("span.Direction.Direction"+t,{onclick:function(t){n._navigator.moveDir$(e).subscribe(void 0,function(e){e instanceof s.AbortMapillaryError||console.error(e)})},style:{visibility:r}},[])},t.componentName="navigation",t}(c.Component);r.NavigationComponent=u,c.ComponentService.register(u),r.default=u},{"../Component":291,"../Edge":292,"../Error":293,"rxjs/Observable":29,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"virtual-dom":247}],316:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("underscore"),o=e("virtual-dom"),a=e("rxjs/Observable");e("rxjs/add/observable/fromPromise"),e("rxjs/add/observable/of"),e("rxjs/add/operator/combineLatest"),e("rxjs/add/operator/distinct"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/mergeMap"),e("rxjs/add/operator/pluck"),e("rxjs/add/operator/scan");var s=e("../Component"),c=function(){return function(){}}(),u=function(){return function(){}}(),h=function(){return function(){this.nodeInstructions=[],this.nodeInstructionsOrdered=[]}}(),l=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){var e,t=this;e=this._navigator.stateService.currentState$.filter(function(e){return e.id%2==0}).filter(function(e){return e.state.nodesAhead<15}).distinctUntilChanged(void 0,function(e){return e.state.lastNode.key});var r;r=this.configuration$.mergeMap(function(e){return a.Observable.from(e.paths)}).distinct(function(e){return e.sequenceKey}).mergeMap(function(e){return t._navigator.apiV3.sequenceByKey$([e.sequenceKey]).map(function(t){return t[e.sequenceKey]})}).combineLatest(this.configuration$,function(e,t){for(var r=0,n=[],i=0,o=t.paths;i<o.length;i++){var a=o[i];if(a.sequenceKey===e.key){for(var s=[],c=!1,u=0,h=e.keys;u<h.length;u++){var l=h[u];if(a.startKey===l&&(c=!0),c){for(var p=null,d=0,f=a.infoKeys;d<f.length;d++){var m=f[d];m.key===l&&(p=m.description)}s.push({description:p,key:l})}a.stopKey===l&&(c=!1)}n.push({nodeInstructions:s,place:r})}r++}return n}).scan(function(e,t){for(var r=0,n=t;r<n.length;r++){var o=n[r];e.nodeInstructionsOrdered[o.place]=o.nodeInstructions}return e.nodeInstructions=i.flatten(e.nodeInstructionsOrdered),e},new h),this._disposable=e.combineLatest(r,this.configuration$,function(e,t,r){return{conf:r,frame:e,routeTrack:t}}).scan(function(e,r){return void 0===r.conf.playing||r.conf.playing?(e.routeTrack=r.routeTrack,e.currentNode=r.frame.state.currentNode,e.lastNode=r.frame.state.lastNode,e.playing=!0):(t._navigator.stateService.cutNodes(),e.playing=!1),e},new u).filter(function(e){return e.playing}).filter(function(e){for(var t=0,r=e.routeTrack.nodeInstructions;t<r.length;t++){var n=r[t];if(n&&n.key===e.lastNode.key)return!0}return!1}).distinctUntilChanged(void 0,function(e){return e.lastNode.key}).mergeMap(function(e){for(var r=0,n=0,i=e.routeTrack.nodeInstructions;n<i.length;n++){if(i[n].key===e.lastNode.key)break;r++}var o=e.routeTrack.nodeInstructions[r+1];return o?t._navigator.graphService.cacheNode$(o.key):a.Observable.of(null)}).combineLatest(this.configuration$,function(e,t){return{conf:t,node:e}}).filter(function(e){return null!==e.node&&e.conf.playing}).pluck("node").subscribe(this._navigator.stateService.appendNode$),this._disposableDescription=this._navigator.stateService.currentNode$.combineLatest(r,this.configuration$,function(e,t,r){if(void 0!==r.playing&&!r.playing)return"quit";for(var n=null,i=0,o=t.nodeInstructions;i<o.length;i++){var a=o[i];if(a.key===e.key){n=a.description;break}}return n}).scan(function(e,t){return t!==e.description&&null!==t?(e.description=t,e.showsLeft=6):e.showsLeft--,"quit"===t&&(e.description=null),e},new c).map(function(e){return e.showsLeft>0&&e.description?{name:t._name,vnode:t._getRouteAnnotationNode(e.description)}:{name:t._name,vnode:o.h("div",[])}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._disposable.unsubscribe(),this._disposableDescription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype.play=function(){this.configure({playing:!0})},t.prototype.stop=function(){this.configure({playing:!1})},t.prototype._getRouteAnnotationNode=function(e){return o.h("div.RouteFrame",{},[o.h("p",{textContent:e},[])])},t.componentName="route",t}(s.Component);r.RouteComponent=l,s.ComponentService.register(l),r.default=l},{"../Component":291,"rxjs/Observable":29,"rxjs/add/observable/fromPromise":44,"rxjs/add/observable/of":46,"rxjs/add/operator/combineLatest":55,"rxjs/add/operator/distinct":59,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/pluck":72,"rxjs/add/operator/scan":78,underscore:243,"virtual-dom":247}],317:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable");e("rxjs/add/operator/buffer"),e("rxjs/add/operator/debounceTime"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/scan");var o=e("../Component"),a=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){var e=this;this._sequenceSubscription=this._navigator.stateService.currentNode$.scan(function(e,t){var r=t.sequenceKey;return e.report=[],r in e.reported||(e.report=[r],e.reported[r]=!0),e},{report:[],reported:{}}).filter(function(e){return e.report.length>0}).mergeMap(function(t){return e._navigator.apiV3.sequenceViewAdd$(t.report).catch(function(e,r){return console.error("Failed to report sequence stats ("+t.report+")",e),i.Observable.empty()})}).subscribe(function(){}),this._imageSubscription=this._navigator.stateService.currentNode$.map(function(e){return e.key}).buffer(this._navigator.stateService.currentNode$.debounceTime(5e3)).scan(function(e,t){e.report=[];for(var r=0,n=t;r<n.length;r++){var i=n[r];i in e.reported||(e.report.push(i),e.reported[i]=!0)}return e},{report:[],reported:{}}).filter(function(e){return e.report.length>0}).mergeMap(function(t){return e._navigator.apiV3.imageViewAdd$(t.report).catch(function(e,r){return console.error("Failed to report image stats ("+t.report+")",e),i.Observable.empty()})}).subscribe(function(){})},t.prototype._deactivate=function(){this._sequenceSubscription.unsubscribe(),this._imageSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.componentName="stats",t}(o.Component);r.StatsComponent=a,o.ComponentService.register(a),r.default=a},{"../Component":291,"rxjs/Observable":29,"rxjs/add/operator/buffer":51,"rxjs/add/operator/debounceTime":57,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/scan":78}],318:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("rxjs/Observable"),a=e("rxjs/Subject");e("rxjs/add/observable/combineLatest"),e("rxjs/add/operator/do"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/share");var s=e("../../Component"),c=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._renderer=i||new s.DirectionDOMRenderer(o.defaultConfiguration,r.element),o._hoveredKeySubject$=new a.Subject,o._hoveredKey$=o._hoveredKeySubject$.share(),o}return n(t,e),Object.defineProperty(t.prototype,"hoveredKey$",{get:function(){return this._hoveredKey$},enumerable:!0,configurable:!0}),t.prototype.setHighlightKey=function(e){this.configure({highlightKey:e})},t.prototype.setMinWidth=function(e){this.configure({minWidth:e})},t.prototype.setMaxWidth=function(e){this.configure({maxWidth:e})},t.prototype.resize=function(){this._renderer.resize(this._container.element)},t.prototype._activate=function(){var e=this;this._configurationSubscription=this._configuration$.subscribe(function(t){e._renderer.setConfiguration(t)}),this._nodeSubscription=this._navigator.stateService.currentNode$.do(function(t){e._container.domRenderer.render$.next({name:e._name,vnode:i.h("div",{},[])}),e._renderer.setNode(t)}).withLatestFrom(this._configuration$).switchMap(function(t){var r=t[0],n=t[1];return o.Observable.combineLatest(r.spatialEdges$,n.distinguishSequence?e._navigator.graphService.cacheSequence$(r.sequenceKey).catch(function(e,t){return console.error("Failed to cache sequence ("+r.sequenceKey+")",e),o.Observable.of(null)}):o.Observable.of(null))}).subscribe(function(t){var r=t[0],n=t[1];e._renderer.setEdges(r,n)}),this._renderCameraSubscription=this._container.renderService.renderCameraFrame$.do(function(t){e._renderer.setRenderCamera(t)}).map(function(t){return e._renderer}).filter(function(e){return e.needsRender}).map(function(t){return{name:e._name,vnode:t.render(e._navigator)}}).subscribe(this._container.domRenderer.render$),this._hoveredKeySubscription=o.Observable.combineLatest([this._container.domRenderer.element$,this._container.renderService.renderCamera$,this._container.mouseService.mouseMove$.startWith(null),this._container.mouseService.mouseUp$.startWith(null)],function(e,t,r,n){return e}).map(function(e){for(var t=e.getElementsByClassName("DirectionsPerspective"),r=0;r<t.length;r++){var n=t.item(r).querySelector(":hover");if(null!=n&&n.hasAttribute("data-key"))return n.getAttribute("data-key")}return null}).distinctUntilChanged().subscribe(this._hoveredKeySubject$)},t.prototype._deactivate=function(){this._configurationSubscription.unsubscribe(),this._nodeSubscription.unsubscribe(),this._renderCameraSubscription.unsubscribe(),this._hoveredKeySubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{distinguishSequence:!1,maxWidth:460,minWidth:260}},t.componentName="direction",t}(s.Component);r.DirectionComponent=c,s.ComponentService.register(c),r.default=c},{"../../Component":291,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/do":61,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/share":79,"virtual-dom":247}],319:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../../Geo"),i=function(){function e(e,t){this._spatial=new n.Spatial,this._minThresholdWidth=320,this._maxThresholdWidth=1480,this._minThresholdHeight=240,this._maxThresholdHeight=820,this._configure(e),this._resize(t),this._reset()}return Object.defineProperty(e.prototype,"minWidth",{get:function(){return this._minWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxWidth",{get:function(){return this._maxWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerWidth",{get:function(){return this._containerWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerWidthCss",{get:function(){return this._containerWidthCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerMarginCss",{get:function(){return this._containerMarginCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerLeftCss",{get:function(){return this._containerLeftCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerHeight",{get:function(){return this._containerHeight},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerHeightCss",{get:function(){return this._containerHeightCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerBottomCss",{get:function(){return this._containerBottomCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stepCircleSize",{get:function(){return this._stepCircleSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stepCircleSizeCss",{get:function(){return this._stepCircleSizeCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stepCircleMarginCss",{get:function(){return this._stepCircleMarginCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"turnCircleSize",{get:function(){return this._turnCircleSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"turnCircleSizeCss",{get:function(){return this._turnCircleSizeCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outerRadius",{get:function(){return this._outerRadius},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this._innerRadius},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"shadowOffset",{get:function(){return this._shadowOffset},enumerable:!0,configurable:!0}),e.prototype.configure=function(e){this._configure(e),this._reset()},e.prototype.resize=function(e){this._resize(e),this._reset()},e.prototype.angleToCoordinates=function(e){return[Math.cos(e),Math.sin(e)]},e.prototype.relativeAngleToCoordiantes=function(e,t){var r=this._spatial.wrapAngle(e-t);return this.angleToCoordinates(r)},e.prototype._configure=function(e){this._minWidth=e.minWidth,this._maxWidth=this._getMaxWidth(e.minWidth,e.maxWidth)},e.prototype._resize=function(e){this._elementWidth=e.offsetWidth,this._elementHeight=e.offsetHeight},e.prototype._reset=function(){this._containerWidth=this._getContainerWidth(this._elementWidth,this._elementHeight),this._containerHeight=this._getContainerHeight(this.containerWidth),this._stepCircleSize=this._getStepCircleDiameter(this._containerHeight),this._turnCircleSize=this._getTurnCircleDiameter(this.containerHeight),this._outerRadius=this._getOuterRadius(this._containerHeight),this._innerRadius=this._getInnerRadius(this._containerHeight),this._shadowOffset=3,this._containerWidthCss=this._numberToCssPixels(this._containerWidth),this._containerMarginCss=this._numberToCssPixels(-.5*this._containerWidth),this._containerLeftCss=this._numberToCssPixels(Math.floor(.5*this._elementWidth)),this._containerHeightCss=this._numberToCssPixels(this._containerHeight),this._containerBottomCss=this._numberToCssPixels(Math.floor(-.08*this._containerHeight)),this._stepCircleSizeCss=this._numberToCssPixels(this._stepCircleSize),this._stepCircleMarginCss=this._numberToCssPixels(-.5*this._stepCircleSize),this._turnCircleSizeCss=this._numberToCssPixels(this._turnCircleSize)},e.prototype._getContainerWidth=function(e,t){var r=(e-this._minThresholdWidth)/(this._maxThresholdWidth-this._minThresholdWidth),n=(t-this._minThresholdHeight)/(this._maxThresholdHeight-this._minThresholdHeight),i=Math.max(0,Math.min(1,Math.min(r,n)));return i=.04*Math.round(25*i),this._minWidth+i*(this._maxWidth-this._minWidth)},e.prototype._getContainerHeight=function(e){return.77*e},e.prototype._getStepCircleDiameter=function(e){return.34*e},e.prototype._getTurnCircleDiameter=function(e){return.3*e},e.prototype._getOuterRadius=function(e){return.31*e},e.prototype._getInnerRadius=function(e){return.125*e},e.prototype._numberToCssPixels=function(e){return e+"px"},e.prototype._getMaxWidth=function(e,t){return e>t?e:t},e}();r.DirectionDOMCalculator=i,r.default=i},{"../../Geo":294}],320:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("virtual-dom"),i=e("../../Component"),o=e("../../Edge"),a=e("../../Error"),s=e("../../Geo"),c=function(){function e(e,t){this._isEdge=!1,this._spatial=new s.Spatial,this._calculator=new i.DirectionDOMCalculator(e,t),this._node=null,this._rotation={phi:0,theta:0},this._epsilon=.5*Math.PI/180,this._highlightKey=null,this._distinguishSequence=!1,this._needsRender=!1,this._stepEdges=[],this._turnEdges=[],this._panoEdges=[],this._sequenceEdgeKeys=[],this._stepDirections=[o.EdgeDirection.StepForward,o.EdgeDirection.StepBackward,o.EdgeDirection.StepLeft,o.EdgeDirection.StepRight],this._turnDirections=[o.EdgeDirection.TurnLeft,o.EdgeDirection.TurnRight,o.EdgeDirection.TurnU],this._turnNames={},this._turnNames[o.EdgeDirection.TurnLeft]="TurnLeft",this._turnNames[o.EdgeDirection.TurnRight]="TurnRight",this._turnNames[o.EdgeDirection.TurnU]="TurnAround";var r=!!document.documentMode;this._isEdge=!r&&!!window.StyleMedia}return Object.defineProperty(e.prototype,"needsRender",{get:function(){return this._needsRender},enumerable:!0,configurable:!0}),e.prototype.render=function(e){this._needsRender=!1;var t=this._rotation,r=[],n=[];return this._node.pano?r=r.concat(this._createPanoArrows(e,t)):(r=(r=r.concat(this._createPerspectiveToPanoArrows(e,t))).concat(this._createStepArrows(e,t)),n=n.concat(this._createTurnArrows(e))),this._getContainer(r,n,t)},e.prototype.setEdges=function(e,t){this._setEdges(e,t),this._setNeedsRender()},e.prototype.setNode=function(e){this._node=e,this._clearEdges(),this._setNeedsRender()},e.prototype.setRenderCamera=function(e){var t=e.rotation;Math.abs(t.phi-this._rotation.phi)<this._epsilon||(this._rotation=t,this._setNeedsRender())},e.prototype.setConfiguration=function(e){var t=!1;this._highlightKey===e.highlightKey&&this._distinguishSequence===e.distinguishSequence||(this._highlightKey=e.highlightKey,this._distinguishSequence=e.distinguishSequence,t=!0),this._calculator.minWidth===e.minWidth&&this._calculator.maxWidth===e.maxWidth||(this._calculator.configure(e),t=!0),t&&this._setNeedsRender()},e.prototype.resize=function(e){this._calculator.resize(e),this._setNeedsRender()},e.prototype._setNeedsRender=function(){null!=this._node&&(this._needsRender=!0)},e.prototype._clearEdges=function(){this._stepEdges=[],this._turnEdges=[],this._panoEdges=[],this._sequenceEdgeKeys=[]},e.prototype._setEdges=function(e,t){this._stepEdges=[],this._turnEdges=[],this._panoEdges=[],this._sequenceEdgeKeys=[];for(var r=0,n=e.edges;r<n.length;r++){var i=(c=n[r]).data.direction;this._stepDirections.indexOf(i)>-1?this._stepEdges.push(c):this._turnDirections.indexOf(i)>-1?this._turnEdges.push(c):c.data.direction===o.EdgeDirection.Pano&&this._panoEdges.push(c)}if(this._distinguishSequence&&null!=t)for(var a=0,s=this._panoEdges.concat(this._stepEdges).concat(this._turnEdges);a<s.length;a++)for(var c=s[a],u=c.to,h=0,l=t.keys;h<l.length;h++){if(l[h]===u){this._sequenceEdgeKeys.push(u);break}}},e.prototype._createPanoArrows=function(e,t){for(var r=[],n=0,i=this._panoEdges;n<i.length;n++){var o=i[n];r.push(this._createVNodeByKey(e,o.to,o.data.worldMotionAzimuth,t,this._calculator.outerRadius,"DirectionsArrowPano"))}for(var a=0,s=this._stepEdges;a<s.length;a++){var c=s[a];r.push(this._createPanoToPerspectiveArrow(e,c.to,c.data.worldMotionAzimuth,t,c.data.direction))}return r},e.prototype._createPanoToPerspectiveArrow=function(e,t,r,n,i){var a=Math.PI/8,s=n.phi;switch(i){case o.EdgeDirection.StepBackward:s=n.phi-Math.PI;break;case o.EdgeDirection.StepLeft:s=n.phi+Math.PI/2;break;case o.EdgeDirection.StepRight:s=n.phi-Math.PI/2}return Math.abs(this._spatial.wrapAngle(r-s))<a?this._createVNodeByKey(e,t,r,n,this._calculator.outerRadius,"DirectionsArrowStep"):this._createVNodeDisabled(t,r,n)},e.prototype._createPerspectiveToPanoArrows=function(e,t){for(var r=[],n=0,i=this._panoEdges;n<i.length;n++){var o=i[n];r.push(this._createVNodeByKey(e,o.to,o.data.worldMotionAzimuth,t,this._calculator.innerRadius,"DirectionsArrowPano",!0))}return r},e.prototype._createStepArrows=function(e,t){for(var r=[],n=0,i=this._stepEdges;n<i.length;n++){var o=i[n];r.push(this._createVNodeByDirection(e,o.to,o.data.worldMotionAzimuth,t,o.data.direction))}return r},e.prototype._createTurnArrows=function(e){for(var t=[],r=0,n=this._turnEdges;r<n.length;r++){var i=n[r],o=i.data.direction,a=this._turnNames[o];t.push(this._createVNodeByTurn(e,i.to,a,o))}return t},e.prototype._createVNodeByKey=function(e,t,r,n,i,o,s){return this._createVNode(t,r,n,i,o,"DirectionsCircle",function(r){e.moveToKey$(t).subscribe(void 0,function(e){e instanceof a.AbortMapillaryError||console.error(e)})},s)},e.prototype._createVNodeByDirection=function(e,t,r,n,i){return this._createVNode(t,r,n,this._calculator.outerRadius,"DirectionsArrowStep","DirectionsCircle",function(t){e.moveDir$(i).subscribe(void 0,function(e){e instanceof a.AbortMapillaryError||console.error(e)})})},e.prototype._createVNodeByTurn=function(e,t,r,i){var s={height:this._calculator.turnCircleSizeCss,transform:"rotate(0)",width:this._calculator.turnCircleSizeCss};switch(i){case o.EdgeDirection.TurnLeft:s.left="5px",s.top="5px";break;case o.EdgeDirection.TurnRight:s.right="5px",s.top="5px";break;case o.EdgeDirection.TurnU:s.left="5px",s.bottom="5px"}var c={attributes:{"data-key":t},onclick:function(t){e.moveDir$(i).subscribe(void 0,function(e){e instanceof a.AbortMapillaryError||console.error(e)})},style:s},u="TurnCircle";this._sequenceEdgeKeys.indexOf(t)>-1&&(u+="Sequence"),this._highlightKey===t&&(u+="Highlight");var h=n.h("div."+r,{},[]);return n.h("div."+u,c,[h])},e.prototype._createVNodeDisabled=function(e,t,r){return this._createVNode(e,t,r,this._calculator.outerRadius,"DirectionsArrowDisabled","DirectionsCircleDisabled")},e.prototype._createVNode=function(e,t,r,i,o,a,s,c){var u=this._calculator.angleToCoordinates(t-r.phi),h=Math.round(-i*u[1]+.5*this._calculator.containerWidth),l=Math.round(-i*u[0]+.5*this._calculator.containerHeight),p=this._calculator.relativeAngleToCoordiantes(t,r.phi),d=this._calculator.shadowOffset,f="drop-shadow("+-d*p[1]+"px "+d*p[0]+"px 1px rgba(0,0,0,0.8))",m={style:{"-webkit-filter":f,filter:f}},v=n.h("div."+o,m,[]),g=-this._spatial.radToDeg(t-r.phi),y=c?"translate("+h+"px, "+l+"px) rotate("+g+"deg) translateZ(-0.01px)":"translate("+h+"px, "+l+"px) rotate("+g+"deg)",b={attributes:{"data-key":e},onclick:s,style:{height:this._calculator.stepCircleSizeCss,marginLeft:this._calculator.stepCircleMarginCss,marginTop:this._calculator.stepCircleMarginCss,transform:y,width:this._calculator.stepCircleSizeCss}};return this._sequenceEdgeKeys.indexOf(e)>-1&&(a+="Sequence"),this._highlightKey===e&&(a+="Highlight"),n.h("div."+a,b,[v])},e.prototype._getContainer=function(e,t,r){var i=this._isEdge?"rotateX(60deg)":"perspective("+this._calculator.containerWidthCss+") rotateX(60deg)",o={oncontextmenu:function(e){e.preventDefault()},style:{bottom:this._calculator.containerBottomCss,height:this._calculator.containerHeightCss,left:this._calculator.containerLeftCss,marginLeft:this._calculator.containerMarginCss,transform:i,width:this._calculator.containerWidthCss}};return n.h("div.DirectionsPerspective",o,t.concat(e))},e}();r.DirectionDOMRenderer=c,r.default=c},{"../../Component":291,"../../Edge":292,"../../Error":293,"../../Geo":294,"virtual-dom":247}],321:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("rxjs/Subject");e("rxjs/add/operator/catch"),e("rxjs/add/operator/combineLatest"),e("rxjs/add/operator/debounceTime"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/pairwise"),e("rxjs/add/operator/publish"),e("rxjs/add/operator/publishReplay"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/skipWhile"),e("rxjs/add/operator/startWith"),e("rxjs/add/operator/switchMap"),e("rxjs/add/operator/takeUntil"),e("rxjs/add/operator/withLatestFrom");var a=e("../../Component"),s=e("../../Render"),c=e("../../Tiles"),u=e("../../Utils"),h=function(e){function t(t,r,n){var i=e.call(this,t,r,n)||this;return i._imageTileLoader=new c.ImageTileLoader(u.Urls.tileScheme,u.Urls.tileDomain,u.Urls.origin),i._roiCalculator=new c.RegionOfInterestCalculator,i._rendererOperation$=new o.Subject,i._rendererCreator$=new o.Subject,i._rendererDisposer$=new o.Subject,i._renderer$=i._rendererOperation$.scan(function(e,t){return t(e)},null).filter(function(e){return null!=e}).distinctUntilChanged(void 0,function(e){return e.frameId}),i._rendererCreator$.map(function(){return function(e){if(null!=e)throw new Error("Multiple image plane states can not be created at the same time");return new a.ImagePlaneGLRenderer}}).subscribe(i._rendererOperation$),i._rendererDisposer$.map(function(){return function(e){return e.dispose(),null}}).subscribe(i._rendererOperation$),i}return n(t,e),t.prototype._activate=function(){var e=this;this._rendererSubscription=this._renderer$.map(function(t){var r={name:e._name,render:{frameId:t.frameId,needsRender:t.needsRender,render:t.render.bind(t),stage:s.GLRenderStage.Background}};return t.clearNeedsRender(),r}).subscribe(this._container.glRenderer.render$),this._rendererCreator$.next(null),this._stateSubscription=this._navigator.stateService.currentState$.map(function(e){return function(t){return t.updateFrame(e),t}}).subscribe(this._rendererOperation$);var t=this._navigator.stateService.currentState$.distinctUntilChanged(void 0,function(e){return e.state.currentNode.key}).combineLatest(this._configuration$).filter(function(e){return!0===e[1].imageTiling}).map(function(e){return e[0]}).withLatestFrom(this._container.glRenderer.webGLRenderer$,this._container.renderService.size$).map(function(t){var r=t[0],n=t[1],i=t[2],o=r.state,a=Math.max(i.width,i.height),s=o.currentNode,u=o.currentTransform,h=a>2048?2048:a>1024?1024:512;return new c.TextureProvider(s.key,u.basicWidth,u.basicHeight,h,s.image,e._imageTileLoader,new c.ImageTileStore,n)}).publishReplay(1).refCount();this._textureProviderSubscription=t.subscribe(function(){}),this._setTextureProviderSubscription=t.map(function(e){return function(t){return t.setTextureProvider(e.key,e),t}}).subscribe(this._rendererOperation$),this._setTileSizeSubscription=this._container.renderService.size$.switchMap(function(e){return i.Observable.combineLatest(t,i.Observable.of(e)).first()}).subscribe(function(e){var t=e[0],r=e[1],n=Math.max(r.width,r.height),i=n>2048?2048:n>1024?1024:512;t.setTileSize(i)}),this._abortTextureProviderSubscription=t.pairwise().subscribe(function(e){e[0].abort()});var r=i.Observable.combineLatest(this._container.renderService.renderCameraFrame$,this._container.renderService.size$.debounceTime(250)).map(function(e){var t=e[0],r=e[1];return[t.camera.position.clone(),t.camera.lookat.clone(),t.zoom.valueOf(),r.height.valueOf(),r.width.valueOf()]}).pairwise().skipWhile(function(e){return e[1][2]-e[0][2]<0||0===e[1][2]}).map(function(e){var t=e[0][0].equals(e[1][0]),r=e[0][1].equals(e[1][1]),n=e[0][2]===e[1][2],i=e[0][3]===e[1][3],o=e[0][4]===e[1][4];return t&&r&&n&&i&&o}).distinctUntilChanged().filter(function(e){return e}).switchMap(function(t){return e._container.renderService.renderCameraFrame$.first()}).withLatestFrom(this._container.renderService.size$,this._navigator.stateService.currentTransform$);this._setRegionOfInterestSubscription=t.switchMap(function(t){return r.map(function(r){var n=r[0],i=r[1],o=r[2];return[e._roiCalculator.computeRegionOfInterest(n,i,o),t]})}).filter(function(e){return!e[1].disposed}).subscribe(function(e){var t=e[0];e[1].setRegionOfInterest(t)});var n=t.switchMap(function(e){return e.hasTexture$}).startWith(!1).publishReplay(1).refCount();this._hasTextureSubscription=n.subscribe(function(){});var o=this._navigator.stateService.currentState$.filter(function(e){return 0===e.state.nodesAhead}).map(function(e){return e.state.currentNode}).distinctUntilChanged(void 0,function(e){return e.key}).debounceTime(1e3).withLatestFrom(n).filter(function(e){return!e[1]}).map(function(e){return e[0]}).filter(function(e){return e.pano?u.Settings.maxImageSize>u.Settings.basePanoramaSize:u.Settings.maxImageSize>u.Settings.baseImageSize}).switchMap(function(e){var t=e.pano?u.Settings.basePanoramaSize:u.Settings.baseImageSize;if(Math.max(e.image.width,e.image.height)>t)return i.Observable.empty();return e.cacheImage$(u.Settings.maxImageSize).map(function(e){return[e.image,e]}).takeUntil(n.filter(function(e){return e})).catch(function(t,r){return console.error("Failed to fetch high res image ("+e.key+")",t),i.Observable.empty()})}).publish().refCount();this._updateBackgroundSubscription=o.withLatestFrom(t).subscribe(function(e){e[0][1].key!==e[1].key||e[1].disposed||e[1].updateBackground(e[0][0])}),this._updateTextureImageSubscription=o.map(function(e){return function(t){return t.updateTextureImage(e[0],e[1]),t}}).subscribe(this._rendererOperation$)},t.prototype._deactivate=function(){this._rendererDisposer$.next(null),this._abortTextureProviderSubscription.unsubscribe(),this._hasTextureSubscription.unsubscribe(),this._rendererSubscription.unsubscribe(),this._setRegionOfInterestSubscription.unsubscribe(),this._setTextureProviderSubscription.unsubscribe(),this._setTileSizeSubscription.unsubscribe(),this._stateSubscription.unsubscribe(),this._textureProviderSubscription.unsubscribe(),this._updateBackgroundSubscription.unsubscribe(),this._updateTextureImageSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{imageTiling:!1}},t.componentName="imagePlane",t}(a.Component);r.ImagePlaneComponent=h,a.ComponentService.register(h),r.default=h},{"../../Component":291,"../../Render":297,"../../Tiles":300,"../../Utils":301,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/operator/catch":54,"rxjs/add/operator/combineLatest":55,"rxjs/add/operator/debounceTime":57,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/pairwise":71,"rxjs/add/operator/publish":73,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/skipWhile":82,"rxjs/add/operator/startWith":83,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/takeUntil":86,"rxjs/add/operator/withLatestFrom":90}],322:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("../../Component"),o=function(){function e(e,t){this._imagePlaneDepth=null!=e?e:200,this._imageSphereRadius=null!=t?t:200}return e.prototype.createMesh=function(e,t){return e.pano?this._createImageSphere(e,t):this._createImagePlane(e,t)},e.prototype._createImageSphere=function(e,t){var r=this._createTexture(e.image),i=this._createSphereMaterialParameters(t,r),o=new n.ShaderMaterial(i);return this._useMesh(t,e)?new n.Mesh(this._getImageSphereGeo(t,e),o):new n.Mesh(this._getFlatImageSphereGeo(t),o)},e.prototype._createImagePlane=function(e,t){var r=this._createTexture(e.image),i=this._createPlaneMaterialParameters(t,r),o=new n.ShaderMaterial(i),a=this._useMesh(t,e)?this._getImagePlaneGeo(t,e):this._getFlatImagePlaneGeo(t);return new n.Mesh(a,o)},e.prototype._createSphereMaterialParameters=function(e,t){var r=e.gpano,o=(r.FullPanoWidthPixels-r.CroppedAreaImageWidthPixels)/2,a=2*Math.PI*(r.CroppedAreaLeftPixels-o)/r.FullPanoWidthPixels,s=2*Math.PI*r.CroppedAreaImageWidthPixels/r.FullPanoWidthPixels,c=(r.FullPanoHeightPixels-r.CroppedAreaImageHeightPixels)/2,u=Math.PI*(c-r.CroppedAreaTopPixels)/r.FullPanoHeightPixels,h=Math.PI*r.CroppedAreaImageHeightPixels/r.FullPanoHeightPixels;return{depthWrite:!1,fragmentShader:i.ImagePlaneShaders.equirectangular.fragment,side:n.DoubleSide,transparent:!0,uniforms:{opacity:{type:"f",value:1},phiLength:{type:"f",value:s},phiShift:{type:"f",value:a},projectorMat:{type:"m4",value:e.rt},projectorTex:{type:"t",value:t},thetaLength:{type:"f",value:h},thetaShift:{type:"f",value:u}},vertexShader:i.ImagePlaneShaders.equirectangular.vertex}},e.prototype._createPlaneMaterialParameters=function(e,t){return{depthWrite:!1,fragmentShader:i.ImagePlaneShaders.perspective.fragment,side:n.DoubleSide,transparent:!0,uniforms:{bbox:{type:"v4",value:new n.Vector4(0,0,1,1)},opacity:{type:"f",value:1},projectorMat:{type:"m4",value:e.projectorMatrix()},projectorTex:{type:"t",value:t}},vertexShader:i.ImagePlaneShaders.perspective.vertex}},e.prototype._createTexture=function(e){var t=new n.Texture(e);return t.minFilter=n.LinearFilter,t.needsUpdate=!0,t},e.prototype._useMesh=function(e,t){return t.mesh.vertices.length&&e.hasValidScale},e.prototype._getImageSphereGeo=function(e,t){for(var r=(new n.Matrix4).getInverse(e.srt),i=5*e.scale,o=this._imageSphereRadius*e.scale,a=t.mesh.vertices,s=a.length/3,c=new Float32Array(a.length),u=0;u<s;++u){var h=3*u,l=a[h+0],p=a[h+1],d=a[h+2],f=Math.sqrt(l*l+p*p+d*d),m=Math.max(i,Math.min(f,o))/f,v=new n.Vector3(l*m,p*m,d*m);v.applyMatrix4(r),c[h+0]=v.x,c[h+1]=v.y,c[h+2]=v.z}for(var g=t.mesh.faces,y=new Uint16Array(g.length),u=0;u<g.length;++u)y[u]=g[u];var b=new n.BufferGeometry;return b.addAttribute("position",new n.BufferAttribute(c,3)),b.setIndex(new n.BufferAttribute(y,1)),b},e.prototype._getImagePlaneGeo=function(e,t){for(var r=(new n.Matrix4).getInverse(e.srt),i=5*e.scale,o=this._imagePlaneDepth*e.scale,a=t.mesh.vertices,s=a.length/3,c=new Float32Array(a.length),u=0;u<s;++u){var h=3*u,l=a[h+0],p=a[h+1],d=a[h+2],f=Math.max(i,Math.min(d,o)),m=f/d,v=new n.Vector3(l*m,p*m,f);v.applyMatrix4(r),c[h+0]=v.x,c[h+1]=v.y,c[h+2]=v.z}for(var g=t.mesh.faces,y=new Uint16Array(g.length),u=0;u<g.length;++u)y[u]=g[u];var b=new n.BufferGeometry;return b.addAttribute("position",new n.BufferAttribute(c,3)),b.setIndex(new n.BufferAttribute(y,1)),b},e.prototype._getFlatImageSphereGeo=function(e){var t=e.gpano,r=2*Math.PI*t.CroppedAreaLeftPixels/t.FullPanoWidthPixels,i=2*Math.PI*t.CroppedAreaImageWidthPixels/t.FullPanoWidthPixels,o=Math.PI*(t.FullPanoHeightPixels-t.CroppedAreaImageHeightPixels-t.CroppedAreaTopPixels)/t.FullPanoHeightPixels,a=Math.PI*t.CroppedAreaImageHeightPixels/t.FullPanoHeightPixels,s=new n.SphereGeometry(this._imageSphereRadius,20,40,r-Math.PI/2,i,o,a);return s.applyMatrix((new n.Matrix4).getInverse(e.rt)),s},e.prototype._getFlatImagePlaneGeo=function(e){var t=e.width,r=e.height,i=Math.max(t,r),o=t/2/i,a=r/2/i,s=[];s.push(e.unprojectSfM([-o,-a],this._imagePlaneDepth)),s.push(e.unprojectSfM([o,-a],this._imagePlaneDepth)),s.push(e.unprojectSfM([o,a],this._imagePlaneDepth)),s.push(e.unprojectSfM([-o,a],this._imagePlaneDepth));for(var c=new Float32Array(12),u=0;u<s.length;u++){var h=3*u;c[h+0]=s[u][0],c[h+1]=s[u][1],c[h+2]=s[u][2]}var l=new Uint16Array(6);l[0]=0,l[1]=1,l[2]=3,l[3]=1,l[4]=2,l[5]=3;var p=new n.BufferGeometry;return p.addAttribute("position",new n.BufferAttribute(c,3)),p.setIndex(new n.BufferAttribute(l,1)),p},e}();r.ImagePlaneFactory=o,r.default=o},{"../../Component":291,three:241}],323:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../../Component"),i=function(){function e(){this._imagePlaneFactory=new n.ImagePlaneFactory,this._imagePlaneScene=new n.ImagePlaneScene,this._alpha=0,this._alphaOld=0,this._fadeOutSpeed=.05,this._currentKey=null,this._previousKey=null,this._providerDisposers={},this._frameId=0,this._needsRender=!1}return Object.defineProperty(e.prototype,"frameId",{get:function(){return this._frameId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"needsRender",{get:function(){return this._needsRender},enumerable:!0,configurable:!0}),e.prototype.indicateNeedsRender=function(){this._needsRender=!0},e.prototype.updateFrame=function(e){this._updateFrameId(e.id),this._needsRender=this._updateAlpha(e.state.alpha)||this._needsRender,this._needsRender=this._updateAlphaOld(e.state.alpha)||this._needsRender,this._needsRender=this._updateImagePlanes(e.state)||this._needsRender},e.prototype.setTextureProvider=function(e,t){var r=this;if(e===this._currentKey){var n=t.textureCreated$.subscribe(function(e){r._updateTexture(e)}),i=t.textureUpdated$.subscribe(function(e){r._needsRender=!0});if(e in this._providerDisposers){(0,this._providerDisposers[e])(),delete this._providerDisposers[e]}this._providerDisposers[e]=function(){n.unsubscribe(),i.unsubscribe(),t.dispose()}}},e.prototype._updateTexture=function(e){this._needsRender=!0;for(var t=0,r=this._imagePlaneScene.imagePlanes;t<r.length;t++){var n=r[t].material,i=n.uniforms.projectorTex.value;n.uniforms.projectorTex.value=null,i.dispose(),n.uniforms.projectorTex.value=e}},e.prototype.updateTextureImage=function(e,t){if(this._currentKey===t.key){this._needsRender=!0;for(var r=0,n=this._imagePlaneScene.imagePlanes;r<n.length;r++){var i=n[r].material.uniforms.projectorTex.value;i.image=e,i.needsUpdate=!0}}},e.prototype.render=function(e,t){for(var r=this._imagePlaneScene.imagePlanesOld.length?1:this._alpha,n=0,i=this._imagePlaneScene.imagePlanes;n<i.length;n++){(u=i[n]).material.uniforms.opacity.value=r}for(var o=0,a=this._imagePlaneScene.imagePlanesOld;o<a.length;o++){(u=a[o]).material.uniforms.opacity.value=this._alphaOld}t.render(this._imagePlaneScene.scene,e),t.render(this._imagePlaneScene.sceneOld,e);for(var s=0,c=this._imagePlaneScene.imagePlanes;s<c.length;s++){var u=c[s];u.material.uniforms.opacity.value=this._alpha}t.render(this._imagePlaneScene.scene,e)},e.prototype.clearNeedsRender=function(){this._needsRender=!1},e.prototype.dispose=function(){this._imagePlaneScene.clear()},e.prototype._updateFrameId=function(e){this._frameId=e},e.prototype._updateAlpha=function(e){return e!==this._alpha&&(this._alpha=e,!0)},e.prototype._updateAlphaOld=function(e){return!(e<1||0===this._alphaOld)&&(this._alphaOld=Math.max(0,this._alphaOld-this._fadeOutSpeed),!0)},e.prototype._updateImagePlanes=function(e){if(null==e.currentNode||e.currentNode.key===this._currentKey)return!1;var t=null!=e.previousNode?e.previousNode.key:null,r=e.currentNode.key;if(this._previousKey!==t&&this._previousKey!==r&&this._previousKey in this._providerDisposers){(0,this._providerDisposers[this._previousKey])(),delete this._providerDisposers[this._previousKey]}if(null!=t){if(t!==this._currentKey&&t!==this._previousKey){var n=this._imagePlaneFactory.createMesh(e.previousNode,e.previousTransform);this._imagePlaneScene.updateImagePlanes([n])}this._previousKey=t}this._currentKey=r;var i=this._imagePlaneFactory.createMesh(e.currentNode,e.currentTransform);return this._imagePlaneScene.updateImagePlanes([i]),this._alphaOld=1,!0},e}();r.ImagePlaneGLRenderer=i,r.default=i},{"../../Component":291}],324:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(){this.scene=new n.Scene,this.sceneOld=new n.Scene,this.imagePlanes=[],this.imagePlanesOld=[]}return e.prototype.updateImagePlanes=function(e){this._dispose(this.imagePlanesOld,this.sceneOld);for(var t=0,r=this.imagePlanes;t<r.length;t++){o=r[t];this.scene.remove(o),this.sceneOld.add(o)}for(var n=0,i=e;n<i.length;n++){var o=i[n];this.scene.add(o)}this.imagePlanesOld=this.imagePlanes,this.imagePlanes=e},e.prototype.addImagePlanes=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];this.scene.add(n),this.imagePlanes.push(n)}},e.prototype.addImagePlanesOld=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];this.sceneOld.add(n),this.imagePlanesOld.push(n)}},e.prototype.setImagePlanes=function(e){this._clear(),this.addImagePlanes(e)},e.prototype.setImagePlanesOld=function(e){this._clearOld(),this.addImagePlanesOld(e)},e.prototype.clear=function(){this._clear(),this._clearOld()},e.prototype._clear=function(){this._dispose(this.imagePlanes,this.scene),this.imagePlanes.length=0},e.prototype._clearOld=function(){this._dispose(this.imagePlanesOld,this.sceneOld),this.imagePlanesOld.length=0},e.prototype._dispose=function(e,t){for(var r=0,n=e;r<n.length;r++){var i=n[r];t.remove(i),i.geometry.dispose(),i.material.dispose();var o=i.material.uniforms.projectorTex.value;null!=o&&o.dispose()}},e}();r.ImagePlaneScene=i,r.default=i},{three:241}],325:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});e("path");var n=function(){function e(){}return e.equirectangular={fragment:"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n\nuniform sampler2D projectorTex;\nuniform float opacity;\nuniform float phiLength;\nuniform float phiShift;\nuniform float thetaLength;\nuniform float thetaShift;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    vec3 b = normalize(vRstq.xyz);\n    float lat = -asin(b.y);\n    float lon = atan(b.x, b.z);\n    float x = (lon - phiShift) / phiLength + 0.5;\n    float y = (lat - thetaShift) / thetaLength + 0.5;\n    vec4 baseColor = texture2D(projectorTex, vec2(x, y));\n    baseColor.a = opacity;\n    gl_FragColor = baseColor;\n}",vertex:"#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform mat4 projectorMat;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    vRstq = projectorMat * vec4(position, 1.0);\n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}"},e.perspective={fragment:"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n\nuniform sampler2D projectorTex;\nuniform float opacity;\nuniform vec4 bbox;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    float x = vRstq.x / vRstq.w;\n    float y = vRstq.y / vRstq.w;\n\n    vec4 baseColor;\n    if (x > bbox[0] && y > bbox[1] && x < bbox[2] && y < bbox[3]) {\n        baseColor = texture2D(projectorTex, vec2(x, y));\n        baseColor.a = opacity;\n    } else {\n        baseColor = vec4(0.0, 0.0, 0.0, 0.0);\n    }\n\n    gl_FragColor = baseColor;\n}",vertex:"#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform mat4 projectorMat;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    vRstq = projectorMat * vec4(position, 1.0);\n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}"},e}();r.ImagePlaneShaders=n},{path:22}],326:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("rxjs/Subject");e("rxjs/add/observable/combineLatest"),e("rxjs/add/observable/fromEvent"),e("rxjs/add/observable/of"),e("rxjs/add/observable/zip"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/first"),e("rxjs/add/operator/map"),e("rxjs/add/operator/merge"),e("rxjs/add/operator/mergeMap"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/switchMap"),e("rxjs/add/operator/withLatestFrom"),e("rxjs/add/operator/zip");var a=e("../../State"),s=e("../../Render"),c=e("../../Utils"),u=e("../../Component"),h=function(){function e(){this._imagePlaneFactory=new u.ImagePlaneFactory,this._imagePlaneScene=new u.ImagePlaneScene,this._currentKey=null,this._previousKey=null,this._currentPano=!1,this._frameId=0,this._glNeedsRender=!1,this._domNeedsRender=!0,this._curtain=1}return Object.defineProperty(e.prototype,"frameId",{get:function(){return this._frameId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"curtain",{get:function(){return this._curtain},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"glNeedsRender",{get:function(){return this._glNeedsRender},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domNeedsRender",{get:function(){return this._domNeedsRender},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sliderVisible",{get:function(){return this._sliderVisible},set:function(e){this._sliderVisible=e,this._domNeedsRender=!0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return null==this._currentKey||null==this._previousKey||this._currentPano},enumerable:!0,configurable:!0}),e.prototype.update=function(e){this._updateFrameId(e.id);var t=this._updateImagePlanes(e.state);this._domNeedsRender=t||this._domNeedsRender,t=this._updateCurtain(e.state.alpha)||t,this._glNeedsRender=t||this._glNeedsRender},e.prototype.updateTexture=function(e,t){var r=t.key===this._currentKey?this._imagePlaneScene.imagePlanes:t.key===this._previousKey?this._imagePlaneScene.imagePlanesOld:[];if(0!==r.length){this._glNeedsRender=!0;for(var n=0,i=r;n<i.length;n++){var o=i[n].material.uniforms.projectorTex.value;o.image=e,o.needsUpdate=!0}}},e.prototype.render=function(e,t){this.disabled||t.render(this._imagePlaneScene.sceneOld,e),t.render(this._imagePlaneScene.scene,e)},e.prototype.dispose=function(){this._imagePlaneScene.clear()},e.prototype.clearGLNeedsRender=function(){this._glNeedsRender=!1},e.prototype.clearDomNeedsRender=function(){this._domNeedsRender=!1},e.prototype._updateFrameId=function(e){this._frameId=e},e.prototype._updateImagePlanes=function(e){if(null!=e.currentNode){var t=!1;return null!=e.previousNode&&this._previousKey!==e.previousNode.key&&(t=!0,this._previousKey=e.previousNode.key,this._imagePlaneScene.setImagePlanesOld([this._imagePlaneFactory.createMesh(e.previousNode,e.previousTransform)])),this._currentKey!==e.currentNode.key&&(t=!0,this._currentKey=e.currentNode.key,this._currentPano=e.currentNode.pano,this._imagePlaneScene.setImagePlanes([this._imagePlaneFactory.createMesh(e.currentNode,e.currentTransform)]),this.disabled||this._updateBbox()),t}},e.prototype._updateCurtain=function(e){return!(this.disabled||Math.abs(this._curtain-e)<.001)&&(this._curtain=e,this._updateBbox(),!0)},e.prototype._updateBbox=function(){for(var e=0,t=this._imagePlaneScene.imagePlanes;e<t.length;e++){t[e].material.uniforms.bbox.value.z=this._curtain}},e}(),l=function(e){function t(t,r,n,i){var a=e.call(this,t,r,n)||this;return a._dom=i||new c.DOM,a._sliderStateOperation$=new o.Subject,a._sliderStateCreator$=new o.Subject,a._sliderStateDisposer$=new o.Subject,a._sliderState$=a._sliderStateOperation$.scan(function(e,t){return t(e)},null).filter(function(e){return null!=e}).distinctUntilChanged(void 0,function(e){return e.frameId}),a._sliderStateCreator$.map(function(){return function(e){if(null!=e)throw new Error("Multiple slider states can not be created at the same time");return new h}}).subscribe(a._sliderStateOperation$),a._sliderStateDisposer$.map(function(){return function(e){return e.dispose(),null}}).subscribe(a._sliderStateOperation$),a}return n(t,e),t.prototype.setKeys=function(e){this.configure({keys:e})},t.prototype.setInitialPosition=function(e){this.configure({initialPosition:e})},t.prototype.setSliderVisible=function(e){this.configure({sliderVisible:e})},t.prototype._activate=function(){var e=this;this._sliderContainer=this._dom.createElement("div","mapillary-js-slider-container",this._container.element),this._sliderWrapper=this._dom.createElement("div","SliderWrapper",this._sliderContainer),this._sliderControl=this._dom.createElement("input","SliderControl",this._sliderWrapper),this._sliderControl.setAttribute("type","range"),this._sliderControl.setAttribute("min","0"),this._sliderControl.setAttribute("max","1000"),this._sliderControl.style.visibility="hidden",this._moveToHandler=function(t){var r=Number(t.target.value)/1e3;e._navigator.stateService.moveTo(r)},this._sliderControl.addEventListener("input",this._moveToHandler),this._sliderControl.addEventListener("change",this._moveToHandler),i.Observable.combineLatest(this._navigator.stateService.state$,this._configuration$).first().subscribe(function(t){var r=t[0],n=t[1];if(r===a.State.Traversing){e._navigator.stateService.wait();var i=null!=n.initialPosition?n.initialPosition:1;e._sliderControl.value=(1e3*i).toString(),e._navigator.stateService.moveTo(i)}}),this._glRenderSubscription=this._sliderState$.map(function(t){var r={name:e._name,render:{frameId:t.frameId,needsRender:t.glNeedsRender,render:t.render.bind(t),stage:s.GLRenderStage.Background}};return t.clearGLNeedsRender(),r}).subscribe(this._container.glRenderer.render$),this._domRenderSubscription=this._sliderState$.filter(function(e){return e.domNeedsRender}).subscribe(function(t){e._sliderControl.value=(1e3*t.curtain).toString();var r=t.disabled||!t.sliderVisible?"hidden":"visible";e._sliderControl.style.visibility=r,t.clearDomNeedsRender()}),this._sliderStateCreator$.next(null),this._stateSubscription=this._navigator.stateService.currentState$.map(function(e){return function(t){return t.update(e),t}}).subscribe(this._sliderStateOperation$),this._setSliderVisibleSubscription=this._configuration$.map(function(e){return null==e.sliderVisible||e.sliderVisible}).distinctUntilChanged().map(function(e){return function(t){return t.sliderVisible=e,t}}).subscribe(this._sliderStateOperation$),this._setKeysSubscription=this._configuration$.filter(function(e){return null!=e.keys}).switchMap(function(t){return i.Observable.zip(e._catchCacheNode$(t.keys.background),e._catchCacheNode$(t.keys.foreground)).map(function(e){return{background:e[0],foreground:e[1]}}).zip(e._navigator.stateService.currentState$.first()).map(function(e){return{nodes:e[0],state:e[1].state}})}).subscribe(function(t){null!=t.state.currentNode&&null!=t.state.previousNode&&t.state.currentNode.key===t.nodes.foreground.key&&t.state.previousNode.key===t.nodes.background.key||(t.state.currentNode.key!==t.nodes.background.key?t.state.currentNode.key!==t.nodes.foreground.key||1!==t.state.trajectory.length?(e._navigator.stateService.setNodes([t.nodes.background]),e._navigator.stateService.setNodes([t.nodes.foreground])):e._navigator.stateService.prependNodes([t.nodes.background]):e._navigator.stateService.setNodes([t.nodes.foreground]))},function(e){console.error(e)});var t=this._navigator.stateService.currentState$.map(function(e){return e.state.previousNode}).filter(function(e){return null!=e}).distinctUntilChanged(void 0,function(e){return e.key});this._nodeSubscription=i.Observable.merge(t,this._navigator.stateService.currentNode$).filter(function(e){return e.pano?c.Settings.maxImageSize>c.Settings.basePanoramaSize:c.Settings.maxImageSize>c.Settings.baseImageSize}).mergeMap(function(e){var t=e.pano?c.Settings.basePanoramaSize:c.Settings.baseImageSize;return Math.max(e.image.width,e.image.height)>t?i.Observable.empty():e.cacheImage$(c.Settings.maxImageSize).map(function(e){return[e.image,e]}).catch(function(t,r){return console.error("Failed to fetch high res slider image ("+e.key+")",t),i.Observable.empty()})}).map(function(e){var t=e[0],r=e[1];return function(e){return e.updateTexture(t,r),e}}).subscribe(this._sliderStateOperation$)},t.prototype._deactivate=function(){var e=this;this._navigator.stateService.state$.first().subscribe(function(t){t===a.State.Waiting&&e._navigator.stateService.traverse()}),this._sliderStateDisposer$.next(null),this._setKeysSubscription.unsubscribe(),this._setSliderVisibleSubscription.unsubscribe(),this._stateSubscription.unsubscribe(),this._glRenderSubscription.unsubscribe(),this._domRenderSubscription.unsubscribe(),this._nodeSubscription.unsubscribe(),this.configure({keys:null}),this._sliderControl.removeEventListener("input",this._moveToHandler),this._sliderControl.removeEventListener("change",this._moveToHandler),this._container.element.removeChild(this._sliderContainer),this._moveToHandler=null,this._sliderControl=null,this._sliderWrapper=null,this._sliderContainer=null},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._catchCacheNode$=function(e){return this._navigator.graphService.cacheNode$(e).catch(function(t,r){return console.error("Failed to cache slider node ("+e+")",t),i.Observable.empty()})},t.componentName="slider",t}(u.Component);r.SliderComponent=l,u.ComponentService.register(l),r.default=l},{"../../Component":291,"../../Render":297,"../../State":298,"../../Utils":301,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/fromEvent":43,"rxjs/add/observable/of":46,"rxjs/add/observable/zip":49,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/scan":78,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/withLatestFrom":90,"rxjs/add/operator/zip":91}],327:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});!function(e){e[e.Hidden=0]="Hidden",e[e.Loading=1]="Loading",e[e.Visible=2]="Visible"}(r.CoverState||(r.CoverState={}))},{}],328:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./ICoverConfiguration");r.CoverState=n.CoverState},{"./ICoverConfiguration":327}],329:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../Component"),o=e("../../Edge"),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._enable=function(){var e=this;this._keyDownSubscription=this._container.keyboardService.keyDown$.withLatestFrom(this._navigator.playService.playing$,this._navigator.playService.direction$,this._navigator.playService.speed$,this._navigator.stateService.currentNode$.switchMap(function(e){return e.sequenceEdges$})).subscribe(function(t){var r=t[0],n=t[1],i=t[2],a=t[3],s=t[4];if(!(r.altKey||r.ctrlKey||r.metaKey)){switch(r.key){case"D":if(!r.shiftKey)return;var c=n?null:i===o.EdgeDirection.Next?o.EdgeDirection.Prev:i===o.EdgeDirection.Prev?o.EdgeDirection.Next:null;null!=c&&e._navigator.playService.setDirection(c);break;case" ":if(r.shiftKey)return;if(n)e._navigator.playService.stop();else for(var u=0,h=s.edges;u<h.length;u++){h[u].data.direction===i&&e._navigator.playService.play()}break;case"<":e._navigator.playService.setSpeed(a-.05);break;case">":e._navigator.playService.setSpeed(a+.05);break;default:return}r.preventDefault()}})},t.prototype._disable=function(){this._keyDownSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{keyZoom:e}},t}(i.HandlerBase);r.KeyPlayHandler=a,r.default=a},{"../../Component":291,"../../Edge":292}],330:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0}),e("rxjs/add/operator/switchMap"),e("rxjs/add/operator/withLatestFrom");var i=e("../../Component"),o=e("../../Edge"),a=e("../../Error"),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._enable=function(){var e=this,t=this._navigator.stateService.currentNode$.switchMap(function(e){return e.sequenceEdges$});this._keyDownSubscription=this._container.keyboardService.keyDown$.withLatestFrom(t).subscribe(function(t){var r=t[0],n=t[1],i=null;switch(r.keyCode){case 38:i=o.EdgeDirection.Next;break;case 40:i=o.EdgeDirection.Prev;break;default:return}if(r.preventDefault(),r.altKey&&!r.shiftKey&&n.cached)for(var s=0,c=n.edges;s<c.length;s++){var u=c[s];if(u.data.direction===i)return void e._navigator.moveToKey$(u.to).subscribe(void 0,function(e){e instanceof a.AbortMapillaryError||console.error(e)})}})},t.prototype._disable=function(){this._keyDownSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{keySequenceNavigation:e}},t}(i.HandlerBase);r.KeySequenceNavigationHandler=s,r.default=s},{"../../Component":291,"../../Edge":292,"../../Error":293,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/withLatestFrom":90}],331:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0}),e("rxjs/add/operator/switchMap"),e("rxjs/add/operator/withLatestFrom");var i=e("../../Component"),o=e("../../Edge"),a=e("../../Error"),s=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._spatial=i,o}return n(t,e),t.prototype._enable=function(){var e=this,t=this._navigator.stateService.currentNode$.switchMap(function(e){return e.spatialEdges$});this._keyDownSubscription=this._container.keyboardService.keyDown$.withLatestFrom(t,this._navigator.stateService.currentState$).subscribe(function(t){var r=t[0],n=t[1],i=t[2],a=i.state.currentNode.pano,s=null;switch(r.keyCode){case 37:s=r.shiftKey&&!a?o.EdgeDirection.TurnLeft:o.EdgeDirection.StepLeft;break;case 38:s=r.shiftKey&&!a?o.EdgeDirection.Pano:o.EdgeDirection.StepForward;break;case 39:s=r.shiftKey&&!a?o.EdgeDirection.TurnRight:o.EdgeDirection.StepRight;break;case 40:s=r.shiftKey&&!a?o.EdgeDirection.TurnU:o.EdgeDirection.StepBackward;break;default:return}if(r.preventDefault(),!(r.altKey||!n.cached||r.shiftKey&&a))if(a){var c={};c[o.EdgeDirection.StepBackward]=Math.PI,c[o.EdgeDirection.StepForward]=0,c[o.EdgeDirection.StepLeft]=Math.PI/2,c[o.EdgeDirection.StepRight]=-Math.PI/2;for(var u=e._rotationFromCamera(i.state.camera).phi,h=e._spatial.wrapAngle(u+c[s]),l=Math.PI/4,p=n.edges.filter(function(e){return e.data.direction===o.EdgeDirection.Pano||e.data.direction===s}),d=Number.MAX_VALUE,f=null,m=0,v=p;m<v.length;m++){var g=v[m],y=Math.abs(e._spatial.wrapAngle(g.data.worldMotionAzimuth-h));y<Math.min(d,l)&&(d=y,f=g.to)}if(null==f)return;e._moveToKey(f)}else e._moveDir(s,n)})},t.prototype._disable=function(){this._keyDownSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{keySpatialNavigation:e}},t.prototype._moveDir=function(e,t){for(var r=0,n=t.edges;r<n.length;r++){var i=n[r];if(i.data.direction===e)return void this._moveToKey(i.to)}},t.prototype._moveToKey=function(e){this._navigator.moveToKey$(e).subscribe(void 0,function(e){e instanceof a.AbortMapillaryError||console.error(e)})},t.prototype._rotationFromCamera=function(e){var t=e.lookat.clone().sub(e.position),r=t.clone().dot(e.up),n=t.clone().sub(e.up.clone().multiplyScalar(r));return{phi:Math.atan2(n.y,n.x),theta:Math.PI/2-this._spatial.angleToPlane(t.toArray(),[0,0,1])}},t}(i.HandlerBase);r.KeySpatialNavigationHandler=s,r.default=s},{"../../Component":291,"../../Edge":292,"../../Error":293,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/withLatestFrom":90}],332:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0}),e("rxjs/add/operator/withLatestFrom");var i=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._viewportCoords=i,o}return n(t,e),t.prototype._enable=function(){var e=this;this._keyDownSubscription=this._container.keyboardService.keyDown$.withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).subscribe(function(t){var r=t[0],n=t[1],i=t[2];if(!(r.altKey||r.shiftKey||r.ctrlKey||r.metaKey)){var o=0;switch(r.key){case"+":o=1;break;case"-":o=-1;break;default:return}r.preventDefault();var a=e._viewportCoords.unprojectFromViewport(0,0,n.perspective),s=i.projectBasic(a.toArray());e._navigator.stateService.zoomIn(o,s)}})},t.prototype._disable=function(){this._keyDownSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{keyZoom:e}},t}(e("../../Component").HandlerBase);r.KeyZoomHandler=i,r.default=i},{"../../Component":291,"rxjs/add/operator/withLatestFrom":90}],333:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../Component"),o=e("../../Geo"),a=function(e){function t(t,r,n){var a=e.call(this,t,r,n)||this;return a._keyPlayHandler=new i.KeyPlayHandler(a,r,n),a._keySequenceNavigationHandler=new i.KeySequenceNavigationHandler(a,r,n),a._keySpatialNavigationHandler=new i.KeySpatialNavigationHandler(a,r,n,new o.Spatial),a._keyZoomHandler=new i.KeyZoomHandler(a,r,n,new o.ViewportCoords),a}return n(t,e),Object.defineProperty(t.prototype,"keyPlay",{get:function(){return this._keyPlayHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keySequenceNavigation",{get:function(){return this._keySequenceNavigationHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keySpatialNavigation",{get:function(){return this._keySpatialNavigationHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keyZoom",{get:function(){return this._keyZoomHandler},enumerable:!0,configurable:!0}),t.prototype._activate=function(){var e=this;this._configurationSubscription=this._configuration$.subscribe(function(t){t.keyPlay?e._keyPlayHandler.enable():e._keyPlayHandler.disable(),t.keySequenceNavigation?e._keySequenceNavigationHandler.enable():e._keySequenceNavigationHandler.disable(),t.keySpatialNavigation?e._keySpatialNavigationHandler.enable():e._keySpatialNavigationHandler.disable(),t.keyZoom?e._keyZoomHandler.enable():e._keyZoomHandler.disable()})},t.prototype._deactivate=function(){this._configurationSubscription.unsubscribe(),this._keyPlayHandler.disable(),this._keySequenceNavigationHandler.disable(),this._keySpatialNavigationHandler.disable(),this._keyZoomHandler.disable()},t.prototype._getDefaultConfiguration=function(){return{keyPlay:!0,keySequenceNavigation:!0,keySpatialNavigation:!0,keyZoom:!0}},t.componentName="keyboard",t}(i.Component);r.KeyboardComponent=a,i.ComponentService.register(a),r.default=a},{"../../Component":291,"../../Geo":294}],334:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./MarkerComponent");r.MarkerComponent=n.MarkerComponent;var i=e("./marker/SimpleMarker");r.SimpleMarker=i.SimpleMarker;var o=e("./marker/CircleMarker");r.CircleMarker=o.CircleMarker},{"./MarkerComponent":335,"./marker/CircleMarker":338,"./marker/SimpleMarker":340}],335:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=e("when"),a=e("rxjs/Observable");e("rxjs/add/observable/combineLatest"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/map");var s=e("../../Component"),c=e("../../Render"),u=e("../../Graph"),h=e("../../Geo"),l=function(e){function t(t,r,n){var i=e.call(this,t,r,n)||this;return i._relativeGroundAltitude=-2,i._geoCoords=new h.GeoCoords,i._graphCalculator=new u.GraphCalculator,i._markerScene=new s.MarkerScene,i._markerSet=new s.MarkerSet,i._viewportCoords=new h.ViewportCoords,i}return n(t,e),t.prototype.add=function(e){this._markerSet.add(e)},t.prototype.get=function(e){return this._markerSet.get(e)},t.prototype.getAll=function(){return this._markerSet.getAll()},t.prototype.getMarkerIdAt=function(e){var t=this;return o.promise(function(r,n){t._container.renderService.renderCamera$.first().map(function(r){var n=t._viewportCoords.canvasToViewport(e[0],e[1],t._container.element);return t._markerScene.intersectObjects(n,r.perspective)}).subscribe(function(e){r(e)},function(e){n(e)})})},t.prototype.has=function(e){return this._markerSet.has(e)},t.prototype.remove=function(e){this._markerSet.remove(e)},t.prototype.removeAll=function(){this._markerSet.removeAll()},t.prototype._activate=function(){var e=this,r=this._navigator.stateService.currentState$.map(function(t){return t.state.camera.position.z+e._relativeGroundAltitude}).distinctUntilChanged(function(e,t){return Math.abs(e-t)<.01}).publishReplay(1).refCount(),n=a.Observable.combineLatest(r,this._navigator.stateService.reference$).first().map(function(){}).publishReplay(1).refCount(),o=this._configuration$.map(function(e){return{visibleBBoxSize:Math.max(1,Math.min(200,e.visibleBBoxSize))}}),s=this._navigator.stateService.currentNode$.map(function(e){return e.latLon}).publishReplay(1).refCount(),u=a.Observable.combineLatest(o,s).map(function(t){var r=t[0],n=t[1];return e._graphCalculator.boundingBoxCorners(n,r.visibleBBoxSize/2)}).publishReplay(1).refCount(),h=a.Observable.combineLatest(a.Observable.of(this._markerSet).concat(this._markerSet.changed$),u).map(function(e){var t=e[0],r=e[1];return t.search(r)});this._setChangedSubscription=n.switchMap(function(){return h.withLatestFrom(e._navigator.stateService.reference$,r)}).subscribe(function(t){for(var r=t[0],n=t[1],i=t[2],o=e._geoCoords,a=e._markerScene,s=a.markers,c=Object.assign({},s),u=0,h=r;u<h.length;u++){var l=h[u];if(l.id in s)delete c[l.id];else{var p=o.geodeticToEnu(l.latLon.lat,l.latLon.lon,n.alt+i,n.lat,n.lon,n.alt);a.add(l,p)}}for(var d in c)c.hasOwnProperty(d)&&a.remove(d)}),this._markersUpdatedSubscription=n.switchMap(function(){return e._markerSet.updated$.withLatestFrom(u,e._navigator.stateService.reference$,r)}).subscribe(function(t){for(var r=t[0],n=t[1],i=n[0],o=n[1],a=t[2],s=t[3],c=e._geoCoords,u=e._markerScene,h=0,l=r;h<l.length;h++){var p=l[h],d=u.has(p.id),f=p.latLon.lat>i.lat&&p.latLon.lat<o.lat&&p.latLon.lon>i.lon&&p.latLon.lon<o.lon;if(f){var m=c.geodeticToEnu(p.latLon.lat,p.latLon.lon,a.alt+s,a.lat,a.lon,a.alt);u.add(p,m)}else!f&&d&&u.remove(p.id)}}),this._referenceSubscription=this._navigator.stateService.reference$.skip(1).withLatestFrom(r).subscribe(function(t){for(var r=t[0],n=t[1],i=e._geoCoords,o=e._markerScene,a=0,s=o.getAll();a<s.length;a++){var c=s[a],u=i.geodeticToEnu(c.latLon.lat,c.latLon.lon,r.alt+n,r.lat,r.lon,r.alt);o.update(c.id,u)}}),this._adjustHeightSubscription=r.skip(1).withLatestFrom(this._navigator.stateService.reference$,s).subscribe(function(t){for(var r=t[0],n=t[1],i=t[2],o=e._geoCoords,a=e._markerScene,s=o.geodeticToEnu(i.lat,i.lon,n.alt+r,n.lat,n.lon,n.alt),c=0,u=a.getAll();c<u.length;c++){var h=u[c],l=o.geodeticToEnu(h.latLon.lat,h.latLon.lon,n.alt+r,n.lat,n.lon,n.alt),p=l[0]-s[0],d=l[1]-s[1],f=Math.sqrt(p*p+d*d);f>50||a.lerpAltitude(h.id,r,Math.min(1,Math.max(0,1.2-1.2*f/50)))}}),this._renderSubscription=this._navigator.stateService.currentState$.map(function(t){var r=e._markerScene;return{name:e._name,render:{frameId:t.id,needsRender:r.needsRender,render:r.render.bind(r),stage:c.GLRenderStage.Foreground}}}).subscribe(this._container.glRenderer.render$);var l=a.Observable.combineLatest(this._container.renderService.renderCamera$,this._container.mouseService.mouseMove$).map(function(t){var r=t[0],n=t[1],i=e._container.element,o=e._viewportCoords.canvasPosition(n,i),a=o[0],s=o[1],c=e._viewportCoords.canvasToViewport(a,s,i);return e._markerScene.intersectObjects(c,r.perspective)}).publishReplay(1).refCount(),p=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragStart$).map(function(e){return!0}),d=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragEnd$).map(function(e){return!1}),f=a.Observable.merge(p,d).startWith(!1);this._dragEventSubscription=p.withLatestFrom(l).merge(a.Observable.combineLatest(d,a.Observable.of(null))).startWith([!1,null]).pairwise().subscribe(function(r){var n=r[0],i=r[1],o=i[0],a=o?t.dragstart:t.dragend,s=o?i[1]:n[1],c={marker:e._markerScene.get(s),target:e,type:a};e.fire(a,c)});var m=a.Observable.merge(this._container.mouseService.mouseDown$.map(function(e){return!0}),this._container.mouseService.documentMouseUp$.map(function(e){return!1})).startWith(!1);this._mouseClaimSubscription=a.Observable.combineLatest(this._container.mouseService.active$,l.distinctUntilChanged(),m,f).map(function(e){var t=e[0],r=e[1],n=e[2],i=e[3];return!t&&null!=r&&n||i}).distinctUntilChanged().subscribe(function(t){t?(e._container.mouseService.claimMouse(e._name,1),e._container.mouseService.claimWheel(e._name,1)):(e._container.mouseService.unclaimMouse(e._name),e._container.mouseService.unclaimWheel(e._name))});var v=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragStart$).withLatestFrom(l,this._container.renderService.renderCamera$).map(function(t){var r=t[0],n=t[1],i=t[2],o=e._markerScene.get(n),a=e._container.element,s=e._viewportCoords.projectToCanvas(o.geometry.position.toArray(),a,i.perspective),c=s[0],u=s[1],h=e._viewportCoords.canvasPosition(r,a);return[o,[h[0]-c,h[1]-u],i]}).publishReplay(1).refCount();this._updateMarkerSubscription=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDrag$).withLatestFrom(v,this._navigator.stateService.reference$,o).subscribe(function(r){var n=r[0],o=r[1],a=o[0],s=o[1],c=o[2],u=r[2],h=r[3];if(e._markerScene.has(a.id)){var l=e._container.element,p=e._viewportCoords.canvasPosition(n,l),d=p[0],f=p[1],m=d-s[0],v=f-s[1],g=e._viewportCoords.canvasToViewport(m,v,l),y=g[0],b=g[1],_=new i.Vector3(y,b,1).unproject(c.perspective).sub(c.perspective.position).normalize(),x=Math.min(e._relativeGroundAltitude/_.z,h.visibleBBoxSize/2-.1);if(!(x<0)){var w=_.clone().multiplyScalar(x).add(c.perspective.position);w.z=c.perspective.position.z+e._relativeGroundAltitude;var S=e._geoCoords.enuToGeodetic(w.x,w.y,w.z,u.lat,u.lon,u.alt),M=S[0],E=S[1];e._markerScene.update(a.id,w.toArray(),{lat:M,lon:E}),e._markerSet.update(a);var C={marker:a,target:e,type:t.changed};e.fire(t.changed,C)}}})},t.prototype._deactivate=function(){this._adjustHeightSubscription.unsubscribe(),this._dragEventSubscription.unsubscribe(),this._markersUpdatedSubscription.unsubscribe(),this._mouseClaimSubscription.unsubscribe(),this._referenceSubscription.unsubscribe(),this._renderSubscription.unsubscribe(),this._setChangedSubscription.unsubscribe(),this._updateMarkerSubscription.unsubscribe(),this._markerScene.clear()},t.prototype._getDefaultConfiguration=function(){return{visibleBBoxSize:100}},t.componentName="marker",t.changed="changed",t.dragstart="dragstart",t.dragend="dragend",t}(s.Component);r.MarkerComponent=l,s.ComponentService.register(l),r.default=l},{"../../Component":291,"../../Geo":294,"../../Graph":295,"../../Render":297,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/map":67,three:241,when:288}],336:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(e,t){this._needsRender=!1,this._interactiveObjects=[],this._markers={},this._objectMarkers={},this._raycaster=t||new n.Raycaster,this._scene=e||new n.Scene}return Object.defineProperty(e.prototype,"markers",{get:function(){return this._markers},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"needsRender",{get:function(){return this._needsRender},enumerable:!0,configurable:!0}),e.prototype.add=function(e,t){e.id in this._markers&&this._dispose(e.id),e.createGeometry(t),this._scene.add(e.geometry),this._markers[e.id]=e;for(var r=0,n=e.getInteractiveObjects();r<n.length;r++){var i=n[r];this._interactiveObjects.push(i),this._objectMarkers[i.uuid]=e.id}this._needsRender=!0},e.prototype.clear=function(){for(var e in this._markers)this._markers.hasOwnProperty&&this._dispose(e);this._needsRender=!0},e.prototype.get=function(e){return this._markers[e]},e.prototype.getAll=function(){var e=this;return Object.keys(this._markers).map(function(t){return e._markers[t]})},e.prototype.has=function(e){return e in this._markers},e.prototype.intersectObjects=function(e,t){var r=e[0],i=e[1];this._raycaster.setFromCamera(new n.Vector2(r,i),t);for(var o=0,a=this._raycaster.intersectObjects(this._interactiveObjects);o<a.length;o++){var s=a[o];if(s.object.uuid in this._objectMarkers)return this._objectMarkers[s.object.uuid]}return null},e.prototype.lerpAltitude=function(e,t,r){e in this._markers&&(this._markers[e].lerpAltitude(t,r),this._needsRender=!0)},e.prototype.remove=function(e){e in this._markers&&(this._dispose(e),this._needsRender=!0)},e.prototype.render=function(e,t){t.render(this._scene,e),this._needsRender=!1},e.prototype.update=function(e,t,r){if(e in this._markers){this._markers[e].updatePosition(t,r),this._needsRender=!0}},e.prototype._dispose=function(e){var t=this._markers[e];this._scene.remove(t.geometry);for(var r=0,n=t.getInteractiveObjects();r<n.length;r++){var i=n[r],o=this._interactiveObjects.indexOf(i);-1!==o?this._interactiveObjects.splice(o,1):console.warn("Object does not exist ("+i.id+") for "+e),delete this._objectMarkers[i.uuid]}t.disposeGeometry(),delete this._markers[e]},e}();r.MarkerScene=i,r.default=i},{three:241}],337:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rbush"),i=e("rxjs/Subject");e("rxjs/add/operator/map"),e("rxjs/add/operator/publishReplay"),e("rxjs/add/operator/scan");var o=function(){function e(){this._hash={},this._index=n(16,[".lon",".lat",".lon",".lat"]),this._indexChanged$=new i.Subject,this._updated$=new i.Subject}return Object.defineProperty(e.prototype,"changed$",{get:function(){return this._indexChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"updated$",{get:function(){return this._updated$},enumerable:!0,configurable:!0}),e.prototype.add=function(e){for(var t=[],r=this._hash,n=this._index,i=0,o=e;i<o.length;i++){var a=o[i],s=a.id;s in r&&(n.remove(r[s]),t.push(a));var c={lat:a.latLon.lat,lon:a.latLon.lon,marker:a};r[s]=c,n.insert(c)}t.length>0&&this._updated$.next(t),e.length>t.length&&this._indexChanged$.next(this)},e.prototype.has=function(e){return e in this._hash},e.prototype.get=function(e){return this.has(e)?this._hash[e].marker:void 0},e.prototype.getAll=function(){return this._index.all().map(function(e){return e.marker})},e.prototype.remove=function(e){for(var t=this._hash,r=this._index,n=!1,i=0,o=e;i<o.length;i++){var a=o[i];if(a in t){var s=t[a];r.remove(s),delete t[a],n=!0}}n&&this._indexChanged$.next(this)},e.prototype.removeAll=function(){this._hash={},this._index.clear(),this._indexChanged$.next(this)},e.prototype.search=function(e){var t=e[0],r=e[1];return this._index.search({maxX:r.lon,maxY:r.lat,minX:t.lon,minY:t.lat}).map(function(e){return e.marker})},e.prototype.update=function(e){var t=this._hash,r=this._index,n=e.id;if(n in t){r.remove(t[n]);var i={lat:e.latLon.lat,lon:e.latLon.lon,marker:e};t[n]=i,r.insert(i)}},e}();r.MarkerSet=o,r.default=o},{rbush:25,"rxjs/Subject":34,"rxjs/add/operator/map":67,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78}],338:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=function(e){function t(t,r,n){var i=e.call(this,t,r)||this;return n=n||{},i._color=null!=n.color?n.color:16777215,i._opacity=null!=n.opacity?n.opacity:.4,i._radius=null!=n.radius?n.radius:1,i}return n(t,e),t.prototype._createGeometry=function(e){var t=new i.Mesh(new i.CircleGeometry(this._radius,16),new i.MeshBasicMaterial({color:this._color,opacity:this._opacity,transparent:!0}));t.up.fromArray([0,0,1]),t.renderOrder=-1;var r=new i.Object3D;r.add(t),r.position.fromArray(e),this._geometry=r},t.prototype._disposeGeometry=function(){for(var e=0,t=this._geometry.children;e<t.length;e++){var r=t[e];r.geometry.dispose(),r.material.dispose()}},t.prototype._getInteractiveObjects=function(){return[]},t}(e("../../../Component").Marker);r.CircleMarker=o,r.default=o},{"../../../Component":291,three:241}],339:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t){this._id=e,this._latLon=t}return Object.defineProperty(e.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"geometry",{get:function(){return this._geometry},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"latLon",{get:function(){return this._latLon},enumerable:!0,configurable:!0}),e.prototype.createGeometry=function(e){this._geometry||(this._createGeometry(e),this._geometry.updateMatrixWorld(!0))},e.prototype.disposeGeometry=function(){this._geometry&&(this._disposeGeometry(),this._geometry=void 0)},e.prototype.getInteractiveObjects=function(){return this._geometry?this._getInteractiveObjects():[]},e.prototype.lerpAltitude=function(e,t){this._geometry&&(this._geometry.position.z=(1-t)*this._geometry.position.z+t*e)},e.prototype.updatePosition=function(e,t){t&&(this._latLon.lat=t.lat,this._latLon.lon=t.lon),this._geometry&&(this._geometry.position.fromArray(e),this._geometry.updateMatrixWorld(!0))},e}();r.Marker=n,r.default=n},{}],340:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=function(e){function t(t,r,n){var i=e.call(this,t,r)||this;return n=n||{},i._ballColor=null!=n.ballColor?n.ballColor:16711680,i._ballOpacity=null!=n.ballOpacity?n.ballOpacity:.8,i._circleToRayAngle=2,i._color=null!=n.color?n.color:16711680,i._interactive=!!n.interactive,i._opacity=null!=n.opacity?n.opacity:.4,i._radius=null!=n.radius?n.radius:1,i}return n(t,e),t.prototype._createGeometry=function(e){var t=this._radius,r=new i.Mesh(this._markerGeometry(t,8,8),new i.MeshBasicMaterial({color:this._color,opacity:this._opacity,transparent:!0}));r.renderOrder=1;var n=new i.Mesh(new i.SphereGeometry(t/2,8,8),new i.MeshBasicMaterial({color:this._ballColor,opacity:this._ballOpacity,transparent:!0}));n.position.z=this._markerHeight(t);var o=new i.Object3D;o.add(n),o.add(r),o.position.fromArray(e),this._geometry=o},t.prototype._disposeGeometry=function(){for(var e=0,t=this._geometry.children;e<t.length;e++){var r=t[e];r.geometry.dispose(),r.material.dispose()}},t.prototype._getInteractiveObjects=function(){return this._interactive?[this._geometry.children[0]]:[]},t.prototype._markerHeight=function(e){var t=Math.tan(Math.PI-this._circleToRayAngle);return e*Math.sqrt(1+t*t)},t.prototype._markerGeometry=function(e,t,r){var n=new i.Geometry;t=Math.max(3,Math.floor(t)||8),r=Math.max(2,Math.floor(r)||6);for(var o=this._markerHeight(e),a=[],s=0;s<=r;++s){for(var c=[],u=0;u<=t;++u){var h=u/t*Math.PI*2,l=s/r*Math.PI,p=void 0;if(l<this._circleToRayAngle)p=e;else{var d=Math.tan(l-this._circleToRayAngle);p=e*Math.sqrt(1+d*d)}var f=new i.Vector3;f.x=p*Math.cos(h)*Math.sin(l),f.y=p*Math.sin(h)*Math.sin(l),f.z=p*Math.cos(l)+o,n.vertices.push(f),c.push(n.vertices.length-1)}a.push(c)}for(s=0;s<r;++s)for(u=0;u<t;++u){var m=a[s][u+1],v=a[s][u],g=a[s+1][u],y=a[s+1][u+1],b=n.vertices[m].clone().normalize(),_=n.vertices[v].clone().normalize(),x=n.vertices[g].clone().normalize(),w=n.vertices[y].clone().normalize();n.faces.push(new i.Face3(m,v,y,[b,_,w])),n.faces.push(new i.Face3(v,g,y,[_.clone(),x,w.clone()]))}return n.computeFaceNormals(),n.boundingSphere=new i.Sphere(new i.Vector3,e+o),n},t}(e("../../../Component").Marker);r.SimpleMarker=o,r.default=o},{"../../../Component":291,three:241}],341:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=function(e){function t(t,r,n,i,o){var a=e.call(this,t,r,n)||this;return a._spatial=o,a._viewportCoords=i,a._basicDistanceThreshold=.001,a._basicRotationThreshold=.05,a._bounceCoeff=.1,a}return n(t,e),t.prototype._enable=function(){var e=this,t=this._navigator.stateService.currentState$.map(function(e){return e.state.alpha<1});this._bounceSubscription=i.Observable.combineLatest(t,this._navigator.stateService.inTranslation$,this._container.mouseService.active$,this._container.touchService.active$).map(function(e){return e[0]||e[1]||e[2]||e[3]}).distinctUntilChanged().switchMap(function(t){return t?i.Observable.empty():i.Observable.combineLatest(e._container.renderService.renderCamera$,e._navigator.stateService.currentTransform$.first())}).subscribe(function(t){var r=t[0],n=r.perspective,i=t[1];if((i.hasValidScale||!(r.camera.focal<.1))&&0!==r.perspective.aspect&&r.perspective.aspect!==Number.POSITIVE_INFINITY){var o=e._basicDistanceThreshold/Math.pow(2,r.zoom),a=e._viewportCoords.viewportToBasic(0,0,i,n);if(!(Math.abs(a[0]-.5)<o&&Math.abs(a[1]-.5)<o)){var s=e._viewportCoords.getBasicDistances(i,n),c=0,u=0;if(!(s[0]<o&&s[1]<o&&s[2]<o&&s[3]<o||Math.abs(s[0]-s[2])<o&&Math.abs(s[1]-s[3])<o)){var h=e._bounceCoeff;s[1]>0&&0===s[3]?c=-h*s[1]:0===s[1]&&s[3]>0?c=h*s[3]:s[1]>0&&s[3]>0&&(c=h*(s[3]-s[1])/2),s[0]>0&&0===s[2]?u=h*s[0]:0===s[0]&&s[2]>0?u=-h*s[2]:s[0]>0&&s[2]>0&&(u=h*(s[0]-s[2])/2);var l=e._basicRotationThreshold;c=e._spatial.clamp(c,-l,l),u=e._spatial.clamp(u,-l,l),e._navigator.stateService.rotateBasicUnbounded([c,u])}}}})},t.prototype._disable=function(){this._bounceSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{}},t}(e("../../Component").HandlerBase);r.BounceHandler=o,r.default=o},{"../../Component":291,"rxjs/Observable":29}],342:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._viewportCoords=i,o}return n(t,e),t.prototype._enable=function(){var e=this;this._zoomSubscription=i.Observable.merge(this._container.mouseService.filtered$(this._component.name,this._container.mouseService.dblClick$),this._container.touchService.doubleTap$.map(function(e){var t=e.touches[0];return{clientX:t.clientX,clientY:t.clientY,shiftKey:e.shiftKey}})).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).subscribe(function(t){var r=t[0],n=t[1],i=t[2],o=e._container.element,a=e._viewportCoords.canvasPosition(r,o),s=a[0],c=a[1],u=e._viewportCoords.unprojectFromCanvas(s,c,o,n.perspective),h=i.projectBasic(u.toArray()),l=r.shiftKey?-1:1;e._navigator.stateService.zoomIn(l,h)})},t.prototype._disable=function(){this._zoomSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{doubleClickZoom:e}},t}(e("../../Component").HandlerBase);r.DoubleClickZoomHandler=o,r.default=o},{"../../Component":291,"rxjs/Observable":29}],343:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=e("rxjs/Observable");e("rxjs/add/operator/concat"),e("rxjs/add/operator/sample"),e("rxjs/add/operator/takeWhile");var a=function(e){function t(t,r,n,i,o){var a=e.call(this,t,r,n)||this;return a._spatial=o,a._viewportCoords=i,a._basicRotationThreshold=.05,a._forceCoeff=.2,a}return n(t,e),t.prototype._enable=function(){var e=this,t=this._container.mouseService.filtered$(this._component.name,this._container.mouseService.mouseDragStart$).map(function(e){return!0}).share(),r=this._container.mouseService.filtered$(this._component.name,this._container.mouseService.mouseDragEnd$).map(function(e){return!1}).share();this._activeMouseSubscription=o.Observable.merge(t,r).subscribe(this._container.mouseService.activate$),this._preventDefaultSubscription=o.Observable.merge(t,r).switchMap(function(t){return t?e._container.mouseService.documentMouseMove$:o.Observable.empty()}).merge(this._container.touchService.touchMove$).subscribe(function(e){e.preventDefault()});var n=this._container.touchService.singleTouchDragStart$.map(function(e){return!0}),a=this._container.touchService.singleTouchDragEnd$.map(function(e){return!1});this._activeTouchSubscription=o.Observable.merge(n,a).subscribe(this._container.touchService.activate$);var s=this._navigator.stateService.currentState$.map(function(e){return e.state.currentNode.fullPano||e.state.nodesAhead<1}).distinctUntilChanged().switchMap(function(t){if(!t)return o.Observable.empty();var r=e._container.mouseService.filtered$(e._component.name,e._container.mouseService.mouseDragStart$).switchMap(function(t){return o.Observable.of(t).concat(e._container.mouseService.filtered$(e._component.name,e._container.mouseService.mouseDrag$)).merge(e._container.mouseService.filtered$(e._component.name,e._container.mouseService.mouseDragEnd$).map(function(e){return null})).takeWhile(function(e){return!!e}).startWith(null)}).pairwise().filter(function(e){return null!=e[0]&&null!=e[1]}),n=o.Observable.merge(e._container.touchService.singleTouchDragStart$,e._container.touchService.singleTouchDrag$,e._container.touchService.singleTouchDragEnd$.map(function(e){return null})).map(function(e){return null!=e&&e.touches.length>0?e.touches[0]:null}).pairwise().filter(function(e){return null!=e[0]&&null!=e[1]});return o.Observable.merge(r,n)}).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$,this._navigator.stateService.currentCamera$).map(function(t){var r=t[0],n=t[1],o=t[2],a=t[3].clone(),s=r[0],c=r[1],u=c.clientX-s.clientX,h=c.clientY-s.clientY,l=e._container.element,p=e._viewportCoords.canvasPosition(c,l),d=p[0],f=p[1],m=e._viewportCoords.unprojectFromCanvas(d,f,l,n.perspective).sub(n.perspective.position),v=e._viewportCoords.unprojectFromCanvas(d-u,f,l,n.perspective).sub(n.perspective.position),g=e._viewportCoords.unprojectFromCanvas(d,f-h,l,n.perspective).sub(n.perspective.position),y=(u>0?1:-1)*v.angleTo(m),b=(h>0?-1:1)*g.angleTo(m),_=(new i.Quaternion).setFromUnitVectors(a.up,new i.Vector3(0,0,1)),x=_.clone().inverse(),w=new i.Vector3;w.copy(a.lookat).sub(a.position),w.applyQuaternion(_);var S=w.length(),M=Math.atan2(w.y,w.x);M+=y;var E=Math.atan2(Math.sqrt(w.x*w.x+w.y*w.y),w.z);E+=b,E=Math.max(.01,Math.min(Math.PI-.01,E)),w.x=Math.sin(E)*Math.cos(M),w.y=Math.sin(E)*Math.sin(M),w.z=Math.cos(E),w.applyQuaternion(x);var C=(new i.Vector3).copy(a.position).add(w.multiplyScalar(S)),T=o.projectBasic(C.toArray()),O=o.projectBasic(a.lookat.toArray()),P=T[0]-O[0],j=T[1]-O[1];Math.abs(P)>1?P=0:P>.5?P-=1:P<-.5&&(P+=1);var A=e._basicRotationThreshold;if(P=e._spatial.clamp(P,-A,A),j=e._spatial.clamp(j,-A,A),o.fullPano)return[P,j];var R=e._viewportCoords.getPixelDistances(e._container.element,o,n.perspective),L=e._forceCoeff;return R[0]>0&&j<0&&T[1]<.5&&(j/=Math.max(1,L*R[0])),R[1]>0&&P>0&&T[0]>.5&&(P/=Math.max(1,L*R[1])),R[2]>0&&j>0&&T[1]>.5&&(j/=Math.max(1,L*R[2])),R[3]>0&&P<0&&T[0]<.5&&(P/=Math.max(1,L*R[3])),[P,j]}).share();this._rotateBasicWithoutInertiaSubscription=s.subscribe(function(t){e._navigator.stateService.rotateBasicWithoutInertia(t)}),this._rotateBasicSubscription=s.scan(function(t,r){return e._drainBuffer(t),t.push([Date.now(),r]),t},[]).sample(o.Observable.merge(this._container.mouseService.filtered$(this._component.name,this._container.mouseService.mouseDragEnd$),this._container.touchService.singleTouchDragEnd$)).map(function(t){for(var r=e._drainBuffer(t.slice()),n=[0,0],i=0,o=r;i<o.length;i++){var a=o[i];n[0]+=a[1][0],n[1]+=a[1][1]}var s=r.length;return s>0&&(n[0]/=s,n[1]/=s),n}).subscribe(function(t){e._navigator.stateService.rotateBasic(t)})},t.prototype._disable=function(){this._activeMouseSubscription.unsubscribe(),this._activeTouchSubscription.unsubscribe(),this._preventDefaultSubscription.unsubscribe(),this._rotateBasicSubscription.unsubscribe(),this._rotateBasicWithoutInertiaSubscription.unsubscribe(),this._activeMouseSubscription=null,this._activeTouchSubscription=null,this._preventDefaultSubscription=null,this._rotateBasicSubscription=null},t.prototype._getConfiguration=function(e){return{dragPan:e}},t.prototype._drainBuffer=function(e){for(var t=Date.now();e.length>0&&t-e[0][0]>50;)e.shift();return e},t}(e("../../Component").HandlerBase);r.DragPanHandler=a,r.default=a},{"../../Component":291,"rxjs/Observable":29,"rxjs/add/operator/concat":56,"rxjs/add/operator/sample":77,"rxjs/add/operator/takeWhile":87,three:241}],344:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0}),e("rxjs/add/observable/merge"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/withLatestFrom");var i=e("../../Component"),o=e("../../Geo"),a=function(e){function t(t,r,n){var a=e.call(this,t,r,n)||this,s=new o.Spatial,c=new o.ViewportCoords;return a._bounceHandler=new i.BounceHandler(a,r,n,c,s),a._doubleClickZoomHandler=new i.DoubleClickZoomHandler(a,r,n,c),a._dragPanHandler=new i.DragPanHandler(a,r,n,c,s),a._scrollZoomHandler=new i.ScrollZoomHandler(a,r,n,c),a._touchZoomHandler=new i.TouchZoomHandler(a,r,n,c),a}return n(t,e),Object.defineProperty(t.prototype,"doubleClickZoom",{get:function(){return this._doubleClickZoomHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dragPan",{get:function(){return this._dragPanHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollZoom",{get:function(){return this._scrollZoomHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touchZoom",{get:function(){return this._touchZoomHandler},enumerable:!0,configurable:!0}),t.prototype._activate=function(){var e=this;this._bounceHandler.enable(),this._configurationSubscription=this._configuration$.subscribe(function(t){t.doubleClickZoom?e._doubleClickZoomHandler.enable():e._doubleClickZoomHandler.disable(),t.dragPan?e._dragPanHandler.enable():e._dragPanHandler.disable(),t.scrollZoom?e._scrollZoomHandler.enable():e._scrollZoomHandler.disable(),t.touchZoom?e._touchZoomHandler.enable():e._touchZoomHandler.disable()}),this._container.mouseService.claimMouse(this._name,0)},t.prototype._deactivate=function(){this._container.mouseService.unclaimMouse(this._name),this._configurationSubscription.unsubscribe(),this._bounceHandler.disable(),this._doubleClickZoomHandler.disable(),this._dragPanHandler.disable(),this._scrollZoomHandler.disable(),this._touchZoomHandler.disable()},t.prototype._getDefaultConfiguration=function(){return{doubleClickZoom:!1,dragPan:!0,scrollZoom:!0,touchZoom:!0}},t.componentName="mouse",t}(i.Component);r.MouseComponent=a,i.ComponentService.register(a),r.default=a},{"../../Component":291,"../../Geo":294,"rxjs/add/observable/merge":45,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/withLatestFrom":90}],345:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._viewportCoords=i,o}return n(t,e),t.prototype._enable=function(){var e=this;this._container.mouseService.claimWheel(this._component.name,0),this._preventDefaultSubscription=this._container.mouseService.mouseWheel$.subscribe(function(e){e.preventDefault()}),this._zoomSubscription=this._container.mouseService.filteredWheel$(this._component.name,this._container.mouseService.mouseWheel$).withLatestFrom(this._navigator.stateService.currentState$,function(e,t){return[e,t]}).filter(function(e){var t=e[1].state;return t.currentNode.fullPano||t.nodesAhead<1}).map(function(e){return e[0]}).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$,function(e,t,r){return[e,t,r]}).subscribe(function(t){var r=t[0],n=t[1],i=t[2],o=e._container.element,a=e._viewportCoords.canvasPosition(r,o),s=a[0],c=a[1],u=e._viewportCoords.unprojectFromCanvas(s,c,o,n.perspective),h=i.projectBasic(u.toArray()),l=r.deltaY;1===r.deltaMode?l*=40:2===r.deltaMode&&(l*=800);var p=-3*l/e._viewportCoords.containerToCanvas(o)[1];e._navigator.stateService.zoomIn(p,h)})},t.prototype._disable=function(){this._container.mouseService.unclaimWheel(this._component.name),this._preventDefaultSubscription.unsubscribe(),this._zoomSubscription.unsubscribe(),this._preventDefaultSubscription=null,this._zoomSubscription=null},t.prototype._getConfiguration=function(e){return{scrollZoom:e}},t}(e("../../Component").HandlerBase);r.ScrollZoomHandler=i,r.default=i},{"../../Component":291}],346:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._viewportCoords=i,o}return n(t,e),t.prototype._enable=function(){var e=this;this._preventDefaultSubscription=this._container.touchService.pinch$.subscribe(function(e){e.originalEvent.preventDefault()});var t=this._container.touchService.pinchStart$.map(function(e){return!0}),r=this._container.touchService.pinchEnd$.map(function(e){return!1});this._activeSubscription=i.Observable.merge(t,r).subscribe(this._container.touchService.activate$),this._zoomSubscription=this._container.touchService.pinch$.withLatestFrom(this._navigator.stateService.currentState$).filter(function(e){var t=e[1].state;return t.currentNode.fullPano||t.nodesAhead<1}).map(function(e){return e[0]}).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).subscribe(function(t){var r=t[0],n=t[1],i=t[2],o=e._container.element,a=e._viewportCoords.canvasPosition(r,o),s=a[0],c=a[1],u=e._viewportCoords.unprojectFromCanvas(s,c,o,n.perspective),h=i.projectBasic(u.toArray()),l=e._viewportCoords.containerToCanvas(o),p=l[0],d=l[1],f=3*r.distanceChange/Math.min(p,d);e._navigator.stateService.zoomIn(f,h)})},t.prototype._disable=function(){this._activeSubscription.unsubscribe(),this._preventDefaultSubscription.unsubscribe(),this._zoomSubscription.unsubscribe(),this._preventDefaultSubscription=null,this._zoomSubscription=null},t.prototype._getConfiguration=function(e){return{touchZoom:e}},t}(e("../../Component").HandlerBase);r.TouchZoomHandler=o,r.default=o},{"../../Component":291,"rxjs/Observable":29}],347:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./popup/Popup");r.Popup=n.Popup;var i=e("./PopupComponent");r.PopupComponent=i.PopupComponent},{"./PopupComponent":348,"./popup/Popup":349}],348:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("rxjs/Subject"),a=e("../../Component"),s=e("../../Utils"),c=function(e){function t(t,r,n,i){var a=e.call(this,t,r,n)||this;return a._dom=i||new s.DOM,a._popups=[],a._added$=new o.Subject,a._popups$=new o.Subject,a}return n(t,e),t.prototype.add=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];-1===this._popups.indexOf(n)&&(this._popups.push(n),this._activated&&n.setParentContainer(this._popupContainer))}this._added$.next(e),this._popups$.next(this._popups)},t.prototype.getAll=function(){return this._popups.slice()},t.prototype.remove=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];this._remove(n)}this._popups$.next(this._popups)},t.prototype.removeAll=function(){for(var e=0,t=this._popups.slice();e<t.length;e++){var r=t[e];this._remove(r)}this._popups$.next(this._popups)},t.prototype._activate=function(){var e=this;this._popupContainer=this._dom.createElement("div","mapillary-js-popup-container",this._container.element);for(var t=0,r=this._popups;t<r.length;t++){r[t].setParentContainer(this._popupContainer)}this._updateAllSubscription=i.Observable.combineLatest(this._container.renderService.renderCamera$,this._container.renderService.size$,this._navigator.stateService.currentTransform$).subscribe(function(t){for(var r=t[0],n=t[1],i=t[2],o=0,a=e._popups;o<a.length;o++){a[o].update(r,n,i)}});var n=this._popups$.startWith(this._popups).switchMap(function(e){return i.Observable.from(e).mergeMap(function(e){return e.changed$})}).map(function(e){return[e]});this._updateAddedChangedSubscription=this._added$.merge(n).withLatestFrom(this._container.renderService.renderCamera$,this._container.renderService.size$,this._navigator.stateService.currentTransform$).subscribe(function(e){for(var t=e[0],r=e[1],n=e[2],i=e[3],o=0,a=t;o<a.length;o++){a[o].update(r,n,i)}})},t.prototype._deactivate=function(){this._updateAllSubscription.unsubscribe(),this._updateAddedChangedSubscription.unsubscribe();for(var e=0,t=this._popups;e<t.length;e++){t[e].remove()}this._container.element.removeChild(this._popupContainer),delete this._popupContainer},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._remove=function(e){var t=this._popups.indexOf(e);if(-1!==t){var r=this._popups.splice(t,1)[0];this._activated&&r.remove()}},t.componentName="popup",t}(a.Component);r.PopupComponent=c,a.ComponentService.register(c),r.default=c},{"../../Component":291,"../../Utils":301,"rxjs/Observable":29,"rxjs/Subject":34}],349:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=e("../../../Geo"),o=e("../../../Utils"),a=e("../../../Viewer"),s=function(){function e(e,t,r){this._options={},e&&(this._options.capturePointer=null==e.capturePointer||e.capturePointer,this._options.clean=e.clean,this._options.float=e.float,this._options.offset=e.offset,this._options.opacity=e.opacity,this._options.position=e.position),this._dom=r||new o.DOM,this._viewportCoords=t||new i.ViewportCoords,this._notifyChanged$=new n.Subject}return Object.defineProperty(e.prototype,"changed$",{get:function(){return this._notifyChanged$},enumerable:!0,configurable:!0}),e.prototype.remove=function(){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._container&&(this._container.parentNode.removeChild(this._container),delete this._container),this._parentContainer&&delete this._parentContainer},e.prototype.setBasicPoint=function(e){this._point=e.slice(),this._rect=null,this._notifyChanged$.next(this)},e.prototype.setBasicRect=function(e){this._rect=e.slice(),this._point=null,this._notifyChanged$.next(this)},e.prototype.setDOMContent=function(e){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content);var t="mapillaryjs-popup-content"+(!0===this._options.clean?"-clean":"")+(!0===this._options.capturePointer?" mapillaryjs-popup-capture-pointer":"");this._content=this._dom.createElement("div",t,this._container),this._content.appendChild(e),this._notifyChanged$.next(this)},e.prototype.setHTML=function(e){var t,r=this._dom.document.createDocumentFragment(),n=this._dom.createElement("body");for(n.innerHTML=e;;){if(!(t=n.firstChild))break;r.appendChild(t)}this.setDOMContent(r)},e.prototype.setText=function(e){this.setDOMContent(this._dom.document.createTextNode(e))},e.prototype.setParentContainer=function(e){this._parentContainer=e},e.prototype.update=function(e,t,r){if(this._parentContainer&&this._content&&(this._point||this._rect)){if(!this._container){this._container=this._dom.createElement("div","mapillaryjs-popup",this._parentContainer);if(!0!==this._options.clean&&this._options.float!==a.Alignment.Center){var n="mapillaryjs-popup-tip"+(!0===this._options.capturePointer?" mapillaryjs-popup-capture-pointer":"");this._tip=this._dom.createElement("div",n,this._container),this._dom.createElement("div","mapillaryjs-popup-tip-inner",this._tip)}this._container.appendChild(this._content),this._parentContainer.appendChild(this._container),null!=this._options.opacity&&(this._container.style.opacity=this._options.opacity.toString())}var i=null,o=this._alignmentToPopupAligment(this._options.position),s=this._alignmentToPopupAligment(this._options.float),c=this._container.classList;if(null!=this._point)i=this._viewportCoords.basicToCanvasSafe(this._point[0],this._point[1],{offsetHeight:t.height,offsetWidth:t.width},r,e.perspective);else{for(var u=null,h=0,l=["center","top","bottom","left","right","top-left","top-right","bottom-left","bottom-right"];h<l.length;h++){var p=l[h];if(c.contains("mapillaryjs-popup-float-"+p)){u=p;break}}i=(b=this._rectToPixel(this._rect,o,u,e,t,r))[0],o=b[1],s||(s=o)}if(null!=i){if(this._container.style.visibility="visible",!s){var d=this._container.offsetWidth,f=this._container.offsetHeight,m=this._pixelToFloats(i,t,d,f);s=0===m.length?"top":m.join("-")}var v=this._normalizeOffset(this._options.offset);i=[i[0]+v[s][0],i[1]+v[s][1]],i=[Math.round(i[0]),Math.round(i[1])];var g={bottom:"translate(-50%,0)","bottom-left":"translate(-100%,0)","bottom-right":"translate(0,0)",center:"translate(-50%,-50%)",left:"translate(-100%,-50%)",right:"translate(0,-50%)",top:"translate(-50%,-100%)","top-left":"translate(-100%,-100%)","top-right":"translate(0,-100%)"};for(var y in g)g.hasOwnProperty(y)&&c.remove("mapillaryjs-popup-float-"+y);c.add("mapillaryjs-popup-float-"+s),this._container.style.transform=g[s]+" translate("+i[0]+"px,"+i[1]+"px)";var b}else this._container.style.visibility="hidden"}},e.prototype._rectToPixel=function(e,t,r,n,i,o){if(!t){for(var a=this._container.offsetWidth,s=this._container.offsetHeight,c={bottom:[0,s/2],"bottom-left":[-a/2,s/2],"bottom-right":[a/2,s/2],left:[-a/2,0],right:[a/2,0],top:[0,-s/2],"top-left":[-a/2,-s/2],"top-right":[a/2,-s/2]},u=[0,null,null],h=0,l=["top","bottom","left","right"];h<l.length;h++){var p=l[h],d=this._pointFromRectPosition(e,p),f=this._viewportCoords.basicToCanvasSafe(d[0],d[1],{offsetHeight:i.height,offsetWidth:i.width},o,n.perspective);if(null!=f){var m=c[p],v=[f[0]+m[0],f[1]+m[1]],g=null!=r&&r===p?1:.7;if(0===this._pixelToFloats(v,i,a/g,s/(2*g)).length&&f[0]>0&&f[0]<i.width&&f[1]>0&&f[1]<i.height)return[f,p];var y=Math.max(v[0]-a/2,0),b=Math.min(v[0]+a/2,i.width),_=Math.max(v[1]-s/2,0),x=Math.min(v[1]+s/2,i.height),w=g*Math.max(0,b-y)*Math.max(0,x-_);w>u[0]&&(u[0]=w,u[1]=f,u[2]=p)}}if(u[0]>0)return[u[1],u[2]]}var S=this._pointFromRectPosition(e,t);return[this._viewportCoords.basicToCanvasSafe(S[0],S[1],{offsetHeight:i.height,offsetWidth:i.width},o,n.perspective),null!=t?t:"top"]},e.prototype._alignmentToPopupAligment=function(e){switch(e){case a.Alignment.Bottom:return"bottom";case a.Alignment.BottomLeft:return"bottom-left";case a.Alignment.BottomRight:return"bottom-right";case a.Alignment.Center:return"center";case a.Alignment.Left:return"left";case a.Alignment.Right:return"right";case a.Alignment.Top:return"top";case a.Alignment.TopLeft:return"top-left";case a.Alignment.TopRight:return"top-right";default:return null}},e.prototype._normalizeOffset=function(e){if(null==e)return this._normalizeOffset(0);if("number"==typeof e){var t=e,r=(t>=0?1:-1)*Math.round(Math.sqrt(.5*Math.pow(t,2)));return{bottom:[0,t],"bottom-left":[-r,r],"bottom-right":[r,r],center:[0,0],left:[-t,0],right:[t,0],top:[0,-t],"top-left":[-r,-r],"top-right":[r,-r]}}return{bottom:e.bottom||[0,0],"bottom-left":e.bottomLeft||[0,0],"bottom-right":e.bottomRight||[0,0],center:e.center||[0,0],left:e.left||[0,0],right:e.right||[0,0],top:e.top||[0,0],"top-left":e.topLeft||[0,0],"top-right":e.topRight||[0,0]}},e.prototype._pixelToFloats=function(e,t,r,n){var i=[];return e[1]<n?i.push("bottom"):e[1]>t.height-n&&i.push("top"),e[0]<r/2?i.push("right"):e[0]>t.width-r/2&&i.push("left"),i},e.prototype._pointFromRectPosition=function(e,t){var r=e[0],n=e[0]<e[2]?e[2]:e[2]+1,i=e[1],o=e[3];switch(t){case"bottom":return[(r+n)/2,o];case"bottom-left":return[r,o];case"bottom-right":return[n,o];case"center":return[(r+n)/2,(i+o)/2];case"left":return[r,(i+o)/2];case"right":return[n,(i+o)/2];case"top":return[(r+n)/2,i];case"top-left":return[r,i];case"top-right":return[n,i];default:return[(r+n)/2,o]}},e}();r.Popup=s,r.default=s},{"../../../Geo":294,"../../../Utils":301,"../../../Viewer":302,"rxjs/Subject":34}],350:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("rxjs/Subject");e("rxjs/add/observable/combineLatest"),e("rxjs/add/observable/of"),e("rxjs/add/observable/concat"),e("rxjs/add/operator/auditTime"),e("rxjs/add/operator/bufferCount"),e("rxjs/add/operator/concat"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/finally"),e("rxjs/add/operator/first"),e("rxjs/add/operator/map"),e("rxjs/add/operator/publishReplay"),e("rxjs/add/operator/retry"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/share"),e("rxjs/add/operator/switchMap"),e("rxjs/add/operator/takeUntil"),e("rxjs/add/operator/withLatestFrom");var a=e("../../Component"),s=e("../../Edge"),c=e("../../Graph"),u=function(e){function t(r,n,i,s,c){var u=e.call(this,r,n,i)||this;return u._sequenceDOMRenderer=s||new a.SequenceDOMRenderer(n),u._scheduler=c,u._containerWidth$=new o.Subject,u._hoveredKeySubject$=new o.Subject,u._hoveredKey$=u._hoveredKeySubject$.share(),u._navigator.playService.playing$.skip(1).withLatestFrom(u._configuration$).subscribe(function(e){var r=e[0],n=e[1];u.fire(t.playingchanged,r),r!==n.playing&&(r?u.play():u.stop())}),u._navigator.playService.direction$.skip(1).withLatestFrom(u._configuration$).subscribe(function(e){var t=e[0];t!==e[1].direction&&u.setDirection(t)}),u}return n(t,e),Object.defineProperty(t.prototype,"hoveredKey$",{get:function(){return this._hoveredKey$},enumerable:!0,configurable:!0}),t.prototype.play=function(){this.configure({playing:!0})},t.prototype.stop=function(){this.configure({playing:!1})},t.prototype.setDirection=function(e){this.configure({direction:e})},t.prototype.setHighlightKey=function(e){this.configure({highlightKey:e})},t.prototype.setMaxWidth=function(e){this.configure({maxWidth:e})},t.prototype.setMinWidth=function(e){this.configure({minWidth:e})},t.prototype.setVisible=function(e){this.configure({visible:e})},t.prototype.resize=function(){var e=this;this._configuration$.first().map(function(t){return e._sequenceDOMRenderer.getContainerWidth(e._container.element,t)}).subscribe(function(t){e._containerWidth$.next(t)})},t.prototype._activate=function(){var e=this;this._sequenceDOMRenderer.activate();var t=this._navigator.stateService.currentNode$.switchMap(function(e){return e.sequenceEdges$}).publishReplay(1).refCount(),r=this._navigator.stateService.currentNode$.distinctUntilChanged(void 0,function(e){return e.sequenceKey}).switchMap(function(t){return i.Observable.concat(i.Observable.of(null),e._navigator.graphService.cacheSequence$(t.sequenceKey).retry(3).catch(function(e){return console.error("Failed to cache sequence",e),i.Observable.of(null)}))}).startWith(null).publishReplay(1).refCount();this._sequenceSubscription=r.subscribe();var n=this._sequenceDOMRenderer.index$.withLatestFrom(r).map(function(e){var t=e[0],r=e[1];return null!=r?r.keys[t]:null}).filter(function(e){return!!e}).distinctUntilChanged().publish().refCount();this._moveSubscription=i.Observable.merge(n.debounceTime(100,this._scheduler),n.auditTime(400,this._scheduler)).distinctUntilChanged().switchMap(function(t){return e._navigator.moveToKey$(t).catch(function(e){return i.Observable.empty()})}).subscribe(),this._setSequenceGraphModeSubscription=this._sequenceDOMRenderer.changingPositionChanged$.filter(function(e){return e}).subscribe(function(){e._navigator.graphService.setGraphMode(c.GraphMode.Sequence)}),this._setSpatialGraphModeSubscription=this._sequenceDOMRenderer.changingPositionChanged$.filter(function(e){return!e}).subscribe(function(){e._navigator.graphService.setGraphMode(c.GraphMode.Spatial)}),this._navigator.graphService.graphMode$.switchMap(function(t){return t===c.GraphMode.Spatial?e._navigator.stateService.currentNode$.take(2):i.Observable.empty()}).filter(function(e){return!e.spatialEdges.cached}).switchMap(function(t){return e._navigator.graphService.cacheNode$(t.key).catch(function(e){return i.Observable.empty()})}).subscribe(),this._stopSubscription=this._sequenceDOMRenderer.changingPositionChanged$.filter(function(e){return e}).subscribe(function(){e._navigator.playService.stop()}),this._cacheSequenceNodesSubscription=i.Observable.combineLatest(this._navigator.graphService.graphMode$,this._sequenceDOMRenderer.changingPositionChanged$.startWith(!1).distinctUntilChanged()).withLatestFrom(this._navigator.stateService.currentNode$).switchMap(function(t){var r=t[0],n=r[0],o=r[1],a=t[1];return o&&n===c.GraphMode.Sequence?e._navigator.graphService.cacheSequenceNodes$(a.sequenceKey,a.key).retry(3).catch(function(e){return console.error("Failed to cache sequence nodes.",e),i.Observable.empty()}):i.Observable.empty()}).subscribe();var o=r.switchMap(function(t){if(!t)return i.Observable.of({index:null,max:null});var r=!0;return e._sequenceDOMRenderer.changingPositionChanged$.startWith(!1).distinctUntilChanged().switchMap(function(t){var i=!t&&r?0:1;return r=!1,t?n:e._navigator.stateService.currentNode$.map(function(e){return e.key}).distinctUntilChanged().skip(i)}).map(function(e){var r=t.keys.indexOf(e);return-1===r?{index:null,max:null}:{index:r,max:t.keys.length-1}})});this._renderSubscription=i.Observable.combineLatest(t,this._configuration$,this._containerWidth$,this._sequenceDOMRenderer.changed$.startWith(this._sequenceDOMRenderer),this._navigator.playService.speed$,o).map(function(t){var r=t[0],n=t[1],i=t[2],o=(t[3],t[4]),a=t[5],s=e._sequenceDOMRenderer.render(r,n,i,o,a.index,a.max,e,e._navigator);return{name:e._name,vnode:s}}).subscribe(this._container.domRenderer.render$),this._setSpeedSubscription=this._sequenceDOMRenderer.speed$.subscribe(function(t){e._navigator.playService.setSpeed(t)}),this._setDirectionSubscription=this._configuration$.map(function(e){return e.direction}).distinctUntilChanged().subscribe(function(t){e._navigator.playService.setDirection(t)}),this._containerWidthSubscription=this._configuration$.distinctUntilChanged(function(e,t){return e[0]===t[0]&&e[1]===t[1]},function(e){return[e.minWidth,e.maxWidth]}).map(function(t){return e._sequenceDOMRenderer.getContainerWidth(e._container.element,t)}).subscribe(this._containerWidth$),this._playingSubscription=this._configuration$.map(function(e){return e.playing}).distinctUntilChanged().subscribe(function(t){t?e._navigator.playService.play():e._navigator.playService.stop()}),this._hoveredKeySubscription=this._sequenceDOMRenderer.mouseEnterDirection$.switchMap(function(r){return t.map(function(e){for(var t=0,n=e.edges;t<n.length;t++){var i=n[t];if(i.data.direction===r)return i.to}return null}).takeUntil(e._sequenceDOMRenderer.mouseLeaveDirection$).concat(i.Observable.of(null))}).distinctUntilChanged().subscribe(this._hoveredKeySubject$)},t.prototype._deactivate=function(){this._renderSubscription.unsubscribe(),this._playingSubscription.unsubscribe(),this._containerWidthSubscription.unsubscribe(),this._hoveredKeySubscription.unsubscribe(),this._setSpeedSubscription.unsubscribe(),this._setDirectionSubscription.unsubscribe(),this._setSequenceGraphModeSubscription.unsubscribe(),this._setSpatialGraphModeSubscription.unsubscribe(),this._sequenceSubscription.unsubscribe(),this._moveSubscription.unsubscribe(),this._cacheSequenceNodesSubscription.unsubscribe(),this._stopSubscription.unsubscribe(),this._sequenceDOMRenderer.deactivate()},t.prototype._getDefaultConfiguration=function(){return{direction:s.EdgeDirection.Next,maxWidth:108,minWidth:70,playing:!1,visible:!0}},t.componentName="sequence",t.playingchanged="playingchanged",t}(a.Component);r.SequenceComponent=u,a.ComponentService.register(u),r.default=u},{"../../Component":291,"../../Edge":292,"../../Graph":295,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/concat":39,"rxjs/add/observable/of":46,"rxjs/add/operator/auditTime":50,"rxjs/add/operator/bufferCount":52,"rxjs/add/operator/concat":56,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/finally":64,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/retry":76,"rxjs/add/operator/scan":78,"rxjs/add/operator/share":79,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/takeUntil":86,"rxjs/add/operator/withLatestFrom":90}],351:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("virtual-dom"),i=e("rxjs/Observable"),o=e("rxjs/Subject"),a=e("../../Component"),s=e("../../Edge"),c=e("../../Error"),u=function(){function e(e){this._container=e,this._minThresholdWidth=320,this._maxThresholdWidth=1480,this._minThresholdHeight=240,this._maxThresholdHeight=820,this._stepperDefaultWidth=108,this._controlsDefaultWidth=88,this._defaultHeight=30,this._expandControls=!1,this._mode=a.SequenceMode.Default,this._speed=.5,this._changingSpeed=!1,this._index=null,this._changingPosition=!1,this._mouseEnterDirection$=new o.Subject,this._mouseLeaveDirection$=new o.Subject,this._notifyChanged$=new o.Subject,this._notifyChangingPositionChanged$=new o.Subject,this._notifySpeedChanged$=new o.Subject,this._notifyIndexChanged$=new o.Subject}return Object.defineProperty(e.prototype,"changed$",{get:function(){return this._notifyChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"changingPositionChanged$",{get:function(){return this._notifyChangingPositionChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"speed$",{get:function(){return this._notifySpeedChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"index$",{get:function(){return this._notifyIndexChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseEnterDirection$",{get:function(){return this._mouseEnterDirection$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseLeaveDirection$",{get:function(){return this._mouseLeaveDirection$},enumerable:!0,configurable:!0}),e.prototype.activate=function(){var e=this;this._changingSubscription||(this._changingSubscription=i.Observable.merge(this._container.mouseService.documentMouseUp$,this._container.touchService.touchEnd$.filter(function(e){return 0===e.touches.length})).subscribe(function(t){e._changingSpeed&&(e._changingSpeed=!1),e._changingPosition&&e._setChangingPosition(!1)}))},e.prototype.deactivate=function(){this._changingSubscription&&(this._changingSpeed=!1,this._changingPosition=!1,this._expandControls=!1,this._mode=a.SequenceMode.Default,this._changingSubscription.unsubscribe(),this._changingSubscription=null)},e.prototype.render=function(e,t,r,i,o,a,s,c){if(!1===t.visible)return n.h("div.SequenceContainer",{},[]);var u=this._createStepper(e,t,r,s,c),h=this._createSequenceControls(r),l=this._createPlaybackControls(r,i,s,t),p=this._createTimelineControls(r,o,a);return n.h("div.SequenceContainer",[u,h,l,p])},e.prototype.getContainerWidth=function(e,t){var r=e.offsetWidth,n=e.offsetHeight,i=t.minWidth,o=t.maxWidth;o<i&&(o=i);var a=(r-this._minThresholdWidth)/(this._maxThresholdWidth-this._minThresholdWidth),s=(n-this._minThresholdHeight)/(this._maxThresholdHeight-this._minThresholdHeight);return i+Math.max(0,Math.min(1,Math.min(a,s)))*(o-i)},e.prototype._createPositionInput=function(e,t){var r=this;this._index=e;var i=function(e){r._index=Number(e.target.value),r._notifyIndexChanged$.next(r._index)},o=this._container.domContainer.getBoundingClientRect(),a=Math.max(276,Math.min(410,5+.8*o.width))-65,s=function(e){e.stopPropagation(),r._setChangingPosition(!0)},c=function(e){!0===r._changingPosition&&e.stopPropagation()},u={max:null!=t?t:1,min:0,onchange:i,oninput:i,onkeydown:function(e){"ArrowDown"!==e.key&&"ArrowLeft"!==e.key&&"ArrowRight"!==e.key&&"ArrowUp"!==e.key||e.preventDefault()},onmousedown:s,onmousemove:c,ontouchmove:c,ontouchstart:s,style:{width:a+"px"},type:"range",value:null!=e?e:0},h=null==e||null==t||t<=1;h&&(u.disabled="true");var l=n.h("input.SequencePosition",u,[]),p=h?".SequencePositionContainerDisabled":".SequencePositionContainer";return n.h("div"+p,[l])},e.prototype._createSpeedInput=function(e){var t=this;this._speed=e;var r=function(e){t._speed=Number(e.target.value)/1e3,t._notifySpeedChanged$.next(t._speed)},i=this._container.domContainer.getBoundingClientRect(),o=Math.max(276,Math.min(410,5+.8*i.width))-160,a=function(e){t._changingSpeed=!0,e.stopPropagation()},s=function(e){!0===t._changingSpeed&&e.stopPropagation()},c=n.h("input.SequenceSpeed",{max:1e3,min:0,onchange:r,oninput:r,onkeydown:function(e){"ArrowDown"!==e.key&&"ArrowLeft"!==e.key&&"ArrowRight"!==e.key&&"ArrowUp"!==e.key||e.preventDefault()},onmousedown:a,onmousemove:s,ontouchmove:s,ontouchstart:a,style:{width:o+"px"},type:"range",value:1e3*e},[]);return n.h("div.SequenceSpeedContainer",[c])},e.prototype._createPlaybackControls=function(e,t,r,i){var o=this;if(this._mode!==a.SequenceMode.Playback)return n.h("div.SequencePlayback",[]);var c=n.h("div.SequenceSwitchIcon.SequenceIconVisible",[]),u=i.direction===s.EdgeDirection.Next?s.EdgeDirection.Prev:s.EdgeDirection.Next,h=i.playing,l={onclick:function(){h||r.setDirection(u)}},p=i.playing?".SequenceSwitchButtonDisabled":".SequenceSwitchButton",d=n.h("div"+p,l,[c]),f=n.h("div.SequenceSlowIcon.SequenceIconVisible",[]),m=n.h("div.SequenceSlowContainer",[f]),v=n.h("div.SequenceFastIconGrey.SequenceIconVisible",[]),g=n.h("div.SequenceFastContainer",[v]),y=n.h("div.SequenceCloseIcon.SequenceIconVisible",[]),b={onclick:function(){o._mode=a.SequenceMode.Default,o._notifyChanged$.next(o)}},_=n.h("div.SequenceCloseButton",b,[y]),x=[d,m,this._createSpeedInput(t),g,_],w={style:{top:Math.round(e/this._stepperDefaultWidth*this._defaultHeight+10)+"px"}};return n.h("div.SequencePlayback",w,x)},e.prototype._createPlayingButton=function(e,t,r,i){var o=r.direction===s.EdgeDirection.Next&&null!=e||r.direction===s.EdgeDirection.Prev&&null!=t,a={onclick:r.playing?function(e){i.stop()}:o?function(e){i.play()}:null},c={className:r.playing?"Stop":o?"Play":"PlayDisabled"};r.direction===s.EdgeDirection.Prev&&(c.style={transform:"rotate(180deg) translate(50%, 50%)"});var u=n.h("div.SequenceComponentIcon",c,[]),h=o?"SequencePlay":"SequencePlayDisabled";return n.h("div."+h,a,[u])},e.prototype._createSequenceControls=function(e){var t=this,r=Math.round(8/this._stepperDefaultWidth*e),i={onclick:function(){t._expandControls=!t._expandControls,t._mode=a.SequenceMode.Default,t._notifyChanged$.next(t)},style:{"border-bottom-right-radius":r+"px","border-top-right-radius":r+"px"}},o=n.h("div.SequenceExpanderBar",[]),s=n.h("div.SequenceExpanderButton",i,[o]),c=this._mode===a.SequenceMode.Playback?".SequenceFastIconGrey.SequenceIconVisible":".SequenceFastIcon",u=n.h("div"+c,[]),h={onclick:function(){t._mode=t._mode===a.SequenceMode.Playback?a.SequenceMode.Default:a.SequenceMode.Playback,t._notifyChanged$.next(t)}},l=n.h("div.SequencePlaybackButton",h,[u]),p=this._mode===a.SequenceMode.Timeline?".SequenceTimelineIconGrey.SequenceIconVisible":".SequenceTimelineIcon",d=n.h("div"+p,[]),f={onclick:function(){t._mode=t._mode===a.SequenceMode.Timeline?a.SequenceMode.Default:a.SequenceMode.Timeline,t._notifyChanged$.next(t)}},m=n.h("div.SequenceTimelineButton",f,[d]),v={style:{height:this._defaultHeight/this._stepperDefaultWidth*e+"px",transform:"translate("+(e/2+2)+"px, 0)",width:this._controlsDefaultWidth/this._stepperDefaultWidth*e+"px"}},g=".SequenceControls"+(this._expandControls?".SequenceControlsExpanded":"");return n.h("div"+g,v,[l,m,s])},e.prototype._createSequenceArrows=function(e,t,r,i,o){var a=this,u={onclick:null!=e?function(e){o.moveDir$(s.EdgeDirection.Next).subscribe(void 0,function(e){e instanceof c.AbortMapillaryError||console.error(e)})}:null,onmouseenter:function(e){a._mouseEnterDirection$.next(s.EdgeDirection.Next)},onmouseleave:function(e){a._mouseLeaveDirection$.next(s.EdgeDirection.Next)}},h=Math.round(8/this._stepperDefaultWidth*r),l={onclick:null!=t?function(e){o.moveDir$(s.EdgeDirection.Prev).subscribe(void 0,function(e){e instanceof c.AbortMapillaryError||console.error(e)})}:null,onmouseenter:function(e){a._mouseEnterDirection$.next(s.EdgeDirection.Prev)},onmouseleave:function(e){a._mouseLeaveDirection$.next(s.EdgeDirection.Prev)},style:{"border-bottom-left-radius":h+"px","border-top-left-radius":h+"px"}},p=this._getStepClassName(s.EdgeDirection.Next,e,i.highlightKey),d=this._getStepClassName(s.EdgeDirection.Prev,t,i.highlightKey),f=n.h("div.SequenceComponentIcon",[]),m=n.h("div.SequenceComponentIcon",[]);return[n.h("div."+d,l,[m]),n.h("div."+p,u,[f])]},e.prototype._createStepper=function(e,t,r,i,o){for(var a=null,c=null,u=0,h=e.edges;u<h.length;u++){var l=h[u];l.data.direction===s.EdgeDirection.Next&&(a=l.to),l.data.direction===s.EdgeDirection.Prev&&(c=l.to)}var p=this._createPlayingButton(a,c,t,i),d=this._createSequenceArrows(a,c,r,t,o);d.splice(1,0,p);var f={oncontextmenu:function(e){e.preventDefault()},style:{height:this._defaultHeight/this._stepperDefaultWidth*r+"px",width:r+"px"}};return n.h("div.SequenceStepper",f,d)},e.prototype._createTimelineControls=function(e,t,r){var i=this;if(this._mode!==a.SequenceMode.Timeline)return n.h("div.SequenceTimeline",[]);var o=this._createPositionInput(t,r),s=n.h("div.SequenceCloseIcon.SequenceIconVisible",[]),c={onclick:function(){i._mode=a.SequenceMode.Default,i._notifyChanged$.next(i)}},u=n.h("div.SequenceCloseButton",c,[s]),h={style:{top:Math.round(e/this._stepperDefaultWidth*this._defaultHeight+10)+"px"}};return n.h("div.SequenceTimeline",h,[o,u])},e.prototype._getStepClassName=function(e,t,r){var n=e===s.EdgeDirection.Next?"SequenceStepNext":"SequenceStepPrev";return null==t?n+="Disabled":r===t&&(n+="Highlight"),n},e.prototype._setChangingPosition=function(e){this._changingPosition=e,this._notifyChangingPositionChanged$.next(e)},e}();r.SequenceDOMRenderer=u,r.default=u},{"../../Component":291,"../../Edge":292,"../../Error":293,"rxjs/Observable":29,"rxjs/Subject":34,"virtual-dom":247}],352:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Default=0]="Default",e[e.Playback=1]="Playback",e[e.Timeline=2]="Timeline"}(n=r.SequenceMode||(r.SequenceMode={})),r.default=n},{}],353:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./error/GeometryTagError");r.GeometryTagError=n.GeometryTagError;var i=e("./geometry/PointGeometry");r.PointGeometry=i.PointGeometry;var o=e("./geometry/RectGeometry");r.RectGeometry=o.RectGeometry;var a=e("./geometry/PolygonGeometry");r.PolygonGeometry=a.PolygonGeometry;var s=e("./tag/OutlineTag");r.OutlineTag=s.OutlineTag;var c=e("./tag/SpotTag");r.SpotTag=c.SpotTag;var u=e("./TagComponent");r.TagComponent=u.TagComponent;var h=e("./TagMode");r.TagMode=h.TagMode},{"./TagComponent":354,"./TagMode":357,"./error/GeometryTagError":361,"./geometry/PointGeometry":363,"./geometry/PolygonGeometry":364,"./geometry/RectGeometry":365,"./tag/OutlineTag":377,"./tag/SpotTag":380}],354:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("when"),o=e("rxjs/Observable");e("rxjs/add/observable/combineLatest"),e("rxjs/add/observable/empty"),e("rxjs/add/observable/from"),e("rxjs/add/observable/merge"),e("rxjs/add/observable/of"),e("rxjs/add/operator/combineLatest"),e("rxjs/add/operator/concat"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/do"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/merge"),e("rxjs/add/operator/mergeMap"),e("rxjs/add/operator/publishReplay"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/share"),e("rxjs/add/operator/skip"),e("rxjs/add/operator/skipUntil"),e("rxjs/add/operator/startWith"),e("rxjs/add/operator/switchMap"),e("rxjs/add/operator/take"),e("rxjs/add/operator/takeUntil"),e("rxjs/add/operator/withLatestFrom");var a=e("../../Component"),s=e("../../Geo"),c=e("../../Render"),u=function(e){function t(r,n,i){var c=e.call(this,r,n,i)||this;return c._tagDomRenderer=new a.TagDOMRenderer,c._tagScene=new a.TagScene,c._tagSet=new a.TagSet,c._tagCreator=new a.TagCreator(c,i),c._viewportCoords=new s.ViewportCoords,c._createHandlers={CreatePoint:new a.CreatePointHandler(c,n,i,c._viewportCoords,c._tagCreator),CreatePolygon:new a.CreatePolygonHandler(c,n,i,c._viewportCoords,c._tagCreator),CreateRect:new a.CreateRectHandler(c,n,i,c._viewportCoords,c._tagCreator),CreateRectDrag:new a.CreateRectDragHandler(c,n,i,c._viewportCoords,c._tagCreator),Default:void 0},c._editVertexHandler=new a.EditVertexHandler(c,n,i,c._viewportCoords,c._tagSet),c._renderTags$=c._tagSet.changed$.map(function(e){var t=e.getAll();return t.sort(function(e,t){var r=e.tag.id,n=t.tag.id;return r<n?-1:r>n?1:0}),t}).share(),c._tagChanged$=c._renderTags$.switchMap(function(e){return o.Observable.from(e).mergeMap(function(e){return o.Observable.merge(e.tag.changed$,e.tag.geometryChanged$)})}).share(),c._renderTagGLChanged$=c._renderTags$.switchMap(function(e){return o.Observable.from(e).mergeMap(function(e){return e.glObjectsChanged$})}).share(),c._createGeometryChanged$=c._tagCreator.tag$.switchMap(function(e){return null!=e?e.geometryChanged$:o.Observable.empty()}).share(),c._createGLObjectsChanged$=c._tagCreator.tag$.switchMap(function(e){return null!=e?e.glObjectsChanged$:o.Observable.empty()}).share(),c._creatingConfiguration$=c._configuration$.distinctUntilChanged(function(e,t){return e.mode===t.mode},function(e){return{createColor:e.createColor,mode:e.mode}}).publishReplay(1).refCount(),c._creatingConfiguration$.subscribe(function(e){c.fire(t.modechanged,e.mode)}),c}return n(t,e),t.prototype.add=function(e){var t=this;this._activated?this._navigator.stateService.currentTransform$.first().subscribe(function(r){t._tagSet.add(e,r);var n=e.map(function(e){return t._tagSet.get(e.id)});t._tagScene.add(n)}):this._tagSet.addDeactivated(e)},t.prototype.changeMode=function(e){this.configure({mode:e})},t.prototype.get=function(e){if(this._activated){var t=this._tagSet.get(e);return void 0!==t?t.tag:void 0}return this._tagSet.getDeactivated(e)},t.prototype.getAll=function(){return this.activated?this._tagSet.getAll().map(function(e){return e.tag}):this._tagSet.getAllDeactivated()},t.prototype.getTagIdsAt=function(e){var t=this;return i.promise(function(r,n){t._container.renderService.renderCamera$.first().map(function(r){var n=t._viewportCoords.canvasToViewport(e[0],e[1],t._container.element);return t._tagScene.intersectObjects(n,r.perspective)}).subscribe(function(e){r(e)},function(e){n(e)})})},t.prototype.has=function(e){return this._activated?this._tagSet.has(e):this._tagSet.hasDeactivated(e)},t.prototype.remove=function(e){this._activated?(this._tagSet.remove(e),this._tagScene.remove(e)):this._tagSet.removeDeactivated(e)},t.prototype.removeAll=function(){this._activated?(this._tagSet.removeAll(),this._tagScene.removeAll()):this._tagSet.removeAllDeactivated()},t.prototype._activate=function(){var e=this;this._editVertexHandler.enable();var r=o.Observable.from(Object.keys(this._createHandlers)).map(function(t){return e._createHandlers[t]}).filter(function(e){return!!e}).mergeMap(function(e){return e.geometryCreated$}).share();this._fireGeometryCreatedSubscription=r.subscribe(function(r){e.fire(t.geometrycreated,r)}),this._fireCreateGeometryEventSubscription=this._tagCreator.tag$.skipWhile(function(e){return null==e}).distinctUntilChanged().subscribe(function(r){var n=null!=r?t.creategeometrystart:t.creategeometryend;e.fire(n,e)}),this._handlerStopCreateSubscription=r.subscribe(function(){e.changeMode(a.TagMode.Default)}),this._handlerEnablerSubscription=this._creatingConfiguration$.subscribe(function(t){e._disableCreateHandlers();var r=a.TagMode[t.mode],n=e._createHandlers[r];n&&n.enable()}),this._fireTagsChangedSubscription=this._renderTags$.subscribe(function(r){e.fire(t.tagschanged,e)}),this._stopCreateSubscription=this._tagCreator.tag$.switchMap(function(e){return null!=e?e.aborted$.map(function(e){return null}):o.Observable.empty()}).subscribe(function(){e.changeMode(a.TagMode.Default)}),this._setGLCreateTagSubscription=this._tagCreator.tag$.subscribe(function(t){e._tagScene.hasCreateTag()&&e._tagScene.removeCreateTag(),null!=t&&e._tagScene.addCreateTag(t)}),this._createGLObjectsChangedSubscription=this._createGLObjectsChanged$.subscribe(function(t){e._tagScene.updateCreateTagObjects(t)}),this._updateGLObjectsSubscription=this._renderTagGLChanged$.subscribe(function(t){e._tagScene.updateObjects(t)}),this._updateTagSceneSubscription=this._tagChanged$.subscribe(function(t){e._tagScene.update()}),this._domSubscription=this._renderTags$.startWith([]).do(function(t){e._container.domRenderer.render$.next({name:e._name,vnode:e._tagDomRenderer.clear()})}).combineLatest(this._container.renderService.renderCamera$,this._container.spriteService.spriteAtlas$,this._container.renderService.size$,this._tagChanged$.startWith(null),this._tagCreator.tag$.merge(this._createGeometryChanged$).startWith(null),function(e,t,r,n,i,o){return[t,r,n,e,i,o]}).map(function(t){return{name:e._name,vnode:e._tagDomRenderer.render(t[3],t[5],t[1],t[0].perspective,t[2])}}).subscribe(this._container.domRenderer.render$),this._glSubscription=this._navigator.stateService.currentState$.map(function(t){var r=e._tagScene;return{name:e._name,render:{frameId:t.id,needsRender:r.needsRender,render:r.render.bind(r),stage:c.GLRenderStage.Foreground}}}).subscribe(this._container.glRenderer.render$),this._navigator.stateService.currentTransform$.first().subscribe(function(t){e._tagSet.activate(t),e._tagScene.add(e._tagSet.getAll())})},t.prototype._deactivate=function(){this._editVertexHandler.disable(),this._disableCreateHandlers(),this._tagScene.clear(),this._tagSet.deactivate(),this._tagCreator.delete$.next(null),this._updateGLObjectsSubscription.unsubscribe(),this._updateTagSceneSubscription.unsubscribe(),this._stopCreateSubscription.unsubscribe(),this._setGLCreateTagSubscription.unsubscribe(),this._createGLObjectsChangedSubscription.unsubscribe(),this._domSubscription.unsubscribe(),this._glSubscription.unsubscribe(),this._fireCreateGeometryEventSubscription.unsubscribe(),this._fireGeometryCreatedSubscription.unsubscribe(),this._fireTagsChangedSubscription.unsubscribe(),this._handlerStopCreateSubscription.unsubscribe(),this._handlerEnablerSubscription.unsubscribe(),this._container.element.classList.remove("component-tag-create")},t.prototype._getDefaultConfiguration=function(){return{createColor:16777215,mode:a.TagMode.Default}},t.prototype._disableCreateHandlers=function(){var e=this._createHandlers;for(var t in e)if(e.hasOwnProperty(t)){var r=e[t];r&&r.disable()}},t.componentName="tag",t.creategeometryend="creategeometryend",t.creategeometrystart="creategeometrystart",t.modechanged="modechanged",t.geometrycreated="geometrycreated",t.tagschanged="tagschanged",t}(a.Component);r.TagComponent=u,a.ComponentService.register(u),r.default=u},{"../../Component":291,"../../Geo":294,"../../Render":297,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/empty":41,"rxjs/add/observable/from":42,"rxjs/add/observable/merge":45,"rxjs/add/observable/of":46,"rxjs/add/operator/combineLatest":55,"rxjs/add/operator/concat":56,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/do":61,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/share":79,"rxjs/add/operator/skip":80,"rxjs/add/operator/skipUntil":81,"rxjs/add/operator/startWith":83,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/take":85,"rxjs/add/operator/takeUntil":86,"rxjs/add/operator/withLatestFrom":90,when:288}],355:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject");e("rxjs/add/operator/map"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/share"),e("rxjs/add/operator/withLatestFrom");var i=e("../../Component"),o=function(){function e(e,t){this._component=e,this._navigator=t,this._tagOperation$=new n.Subject,this._createPolygon$=new n.Subject,this._createRect$=new n.Subject,this._delete$=new n.Subject,this._tag$=this._tagOperation$.scan(function(e,t){return t(e)},null).share(),this._createRect$.withLatestFrom(this._component.configuration$,this._navigator.stateService.currentTransform$).map(function(e){var t=e[0],r=e[1],n=e[2];return function(e){var o=new i.RectGeometry([t[0],t[1],t[0],t[1]]);return new i.OutlineCreateTag(o,{color:r.createColor},n)}}).subscribe(this._tagOperation$),this._createPolygon$.withLatestFrom(this._component.configuration$,this._navigator.stateService.currentTransform$).map(function(e){var t=e[0],r=e[1],n=e[2];return function(e){var o=new i.PolygonGeometry([[t[0],t[1]],[t[0],t[1]],[t[0],t[1]]]);return new i.OutlineCreateTag(o,{color:r.createColor},n)}}).subscribe(this._tagOperation$),this._delete$.map(function(){return function(e){return null}}).subscribe(this._tagOperation$)}return Object.defineProperty(e.prototype,"createRect$",{get:function(){return this._createRect$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"createPolygon$",{get:function(){return this._createPolygon$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"delete$",{get:function(){return this._delete$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tag$",{get:function(){return this._tag$},enumerable:!0,configurable:!0}),e}();r.TagCreator=o,r.default=o},{"../../Component":291,"rxjs/Subject":34,"rxjs/add/operator/map":67,"rxjs/add/operator/scan":78,"rxjs/add/operator/share":79,"rxjs/add/operator/withLatestFrom":90}],356:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("virtual-dom"),i=function(){function e(){}return e.prototype.render=function(e,t,r,i,o){for(var a=[],s=0,c=e;s<c.length;s++){var u=c[s];a=a.concat(u.getDOMObjects(r,i,o))}return null!=t&&(a=a.concat(t.getDOMObjects(i,o))),n.h("div.TagContainer",{},a)},e.prototype.clear=function(){return n.h("div",{},[])},e}();r.TagDOMRenderer=i},{"virtual-dom":247}],357:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Default=0]="Default",e[e.CreatePoint=1]="CreatePoint",e[e.CreatePolygon=2]="CreatePolygon",e[e.CreateRect=3]="CreateRect",e[e.CreateRectDrag=4]="CreateRectDrag"}(n=r.TagMode||(r.TagMode={})),r.default=n},{}],358:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.None=0]="None",e[e.Centroid=1]="Centroid",e[e.Vertex=2]="Vertex"}(n=r.TagOperation||(r.TagOperation={})),r.default=n},{}],359:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(e,t){this._createTag=null,this._needsRender=!1,this._raycaster=t||new n.Raycaster,this._scene=e||new n.Scene,this._objectTags={},this._retrievableObjects=[],this._tags={}}return Object.defineProperty(e.prototype,"needsRender",{get:function(){return this._needsRender},enumerable:!0,configurable:!0}),e.prototype.add=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];n.tag.id in this._tags&&this._remove(n.tag.id),this._add(n)}this._needsRender=!0},e.prototype.addCreateTag=function(e){for(var t=0,r=e.glObjects;t<r.length;t++){var n=r[t];this._scene.add(n)}this._createTag={tag:e,objects:e.glObjects},this._needsRender=!0},e.prototype.clear=function(){for(var e=0,t=Object.keys(this._tags);e<t.length;e++){var r=t[e];this._remove(r)}this._needsRender=!1},e.prototype.get=function(e){return this.has(e)?this._tags[e].tag:void 0},e.prototype.has=function(e){return e in this._tags},e.prototype.hasCreateTag=function(){return null!=this._createTag},e.prototype.intersectObjects=function(e,t){var r=e[0],i=e[1];this._raycaster.setFromCamera(new n.Vector2(r,i),t);for(var o=[],a=0,s=this._raycaster.intersectObjects(this._retrievableObjects);a<s.length;a++){var c=s[a];c.object.uuid in this._objectTags&&o.push(this._objectTags[c.object.uuid])}return o},e.prototype.remove=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];this._remove(n)}this._needsRender=!0},e.prototype.removeAll=function(){for(var e=0,t=Object.keys(this._tags);e<t.length;e++){var r=t[e];this._remove(r)}this._needsRender=!0},e.prototype.removeCreateTag=function(){if(null!=this._createTag){for(var e=0,t=this._createTag.objects;e<t.length;e++){var r=t[e];this._scene.remove(r)}this._createTag.tag.dispose(),this._createTag=null,this._needsRender=!0}},e.prototype.render=function(e,t){t.render(this._scene,e),this._needsRender=!1},e.prototype.update=function(){this._needsRender=!0},e.prototype.updateCreateTagObjects=function(e){if(this._createTag.tag!==e)throw new Error("Create tags do not have the same reference.");for(var t=0,r=this._createTag.objects;t<r.length;t++){o=r[t];this._scene.remove(o)}for(var n=0,i=e.glObjects;n<i.length;n++){var o=i[n];this._scene.add(o)}this._createTag.objects=e.glObjects,this._needsRender=!0},e.prototype.updateObjects=function(e){var t=e.tag.id;if(this._tags[t].tag!==e)throw new Error("Tags do not have the same reference.");var r=this._tags[t];this._removeObjects(r),delete this._tags[t],this._add(e),this._needsRender=!0},e.prototype._add=function(e){var t=e.tag.id,r={tag:e,objects:[],retrievableObjects:[]};this._tags[t]=r;for(var n=0,i=e.getGLObjects();n<i.length;n++){var o=i[n];r.objects.push(o),this._scene.add(o)}for(var a=0,s=e.getRetrievableObjects();a<s.length;a++){var c=s[a];r.retrievableObjects.push(c),this._retrievableObjects.push(c),this._objectTags[c.uuid]=e.tag.id}},e.prototype._remove=function(e){var t=this._tags[e];this._removeObjects(t),t.tag.dispose(),delete this._tags[e]},e.prototype._removeObjects=function(e){for(var t=0,r=e.objects;t<r.length;t++){var n=r[t];this._scene.remove(n)}for(var i=0,o=e.retrievableObjects;i<o.length;i++){var a=o[i],s=this._retrievableObjects.indexOf(a);-1!==s&&this._retrievableObjects.splice(s,1)}},e}();r.TagScene=i,r.default=i},{three:241}],360:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject");e("rxjs/add/operator/map"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/share");var i=e("../../Component"),o=function(){function e(){this._active=!1,this._hash={},this._hashDeactivated={},this._notifyChanged$=new n.Subject}return Object.defineProperty(e.prototype,"active",{get:function(){return this._active},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"changed$",{get:function(){return this._notifyChanged$},enumerable:!0,configurable:!0}),e.prototype.activate=function(e){if(!this._active){for(var t in this._hashDeactivated)if(this._hashDeactivated.hasOwnProperty(t)){var r=this._hashDeactivated[t];this._add(r,e)}this._hashDeactivated={},this._active=!0,this._notifyChanged$.next(this)}},e.prototype.deactivate=function(){if(this._active){for(var e in this._hash)this._hash.hasOwnProperty(e)&&(this._hashDeactivated[e]=this._hash[e].tag);this._hash={},this._active=!1}},e.prototype.add=function(e,t){this._assertActivationState(!0);for(var r=0,n=e;r<n.length;r++){var i=n[r];this._add(i,t)}this._notifyChanged$.next(this)},e.prototype.addDeactivated=function(e){this._assertActivationState(!1);for(var t=0,r=e;t<r.length;t++){var n=r[t];if(!(n instanceof i.OutlineTag||n instanceof i.SpotTag))throw new Error("Tag type not supported");this._hashDeactivated[n.id]=n}},e.prototype.get=function(e){return this.has(e)?this._hash[e]:void 0},e.prototype.getAll=function(){var e=this._hash;return Object.keys(e).map(function(t){return e[t]})},e.prototype.getAllDeactivated=function(){var e=this._hashDeactivated;return Object.keys(e).map(function(t){return e[t]})},e.prototype.getDeactivated=function(e){return this.hasDeactivated(e)?this._hashDeactivated[e]:void 0},e.prototype.has=function(e){return e in this._hash},e.prototype.hasDeactivated=function(e){return e in this._hashDeactivated},e.prototype.remove=function(e){this._assertActivationState(!0);for(var t=this._hash,r=0,n=e;r<n.length;r++){var i=n[r];i in t&&delete t[i]}this._notifyChanged$.next(this)},e.prototype.removeAll=function(){this._assertActivationState(!0),this._hash={},this._notifyChanged$.next(this)},e.prototype.removeAllDeactivated=function(){this._assertActivationState(!1),this._hashDeactivated={}},e.prototype.removeDeactivated=function(e){this._assertActivationState(!1);for(var t=this._hashDeactivated,r=0,n=e;r<n.length;r++){var i=n[r];i in t&&delete t[i]}},e.prototype._add=function(e,t){if(e instanceof i.OutlineTag)this._hash[e.id]=new i.OutlineRenderTag(e,t);else{if(!(e instanceof i.SpotTag))throw new Error("Tag type not supported");this._hash[e.id]=new i.SpotRenderTag(e,t)}},e.prototype._assertActivationState=function(e){if(e!==this._active)throw new Error("Tag set not in correct state for operation.")},e}();r.TagSet=o,r.default=o},{"../../Component":291,"rxjs/Subject":34,"rxjs/add/operator/map":67,"rxjs/add/operator/scan":78,"rxjs/add/operator/share":79}],361:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../../Error"),o=function(e){function t(t){var r=e.call(this,null!=t?t:"The provided geometry value is incorrect")||this;return r.name="GeometryTagError",r}return n(t,e),t}(i.MapillaryError);r.GeometryTagError=o,r.default=i.MapillaryError},{"../../../Error":293}],362:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=function(){function e(){this._notifyChanged$=new n.Subject}return Object.defineProperty(e.prototype,"changed$",{get:function(){return this._notifyChanged$},enumerable:!0,configurable:!0}),e}();r.Geometry=i,r.default=i},{"rxjs/Subject":34}],363:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../../Component"),o=function(e){function t(t){var r=e.call(this)||this,n=t[0],o=t[1];if(n<0||n>1||o<0||o>1)throw new i.GeometryTagError("Basic coordinates must be on the interval [0, 1].");return r._point=t.slice(),r}return n(t,e),Object.defineProperty(t.prototype,"point",{get:function(){return this._point},enumerable:!0,configurable:!0}),t.prototype.getCentroid2d=function(){return this._point.slice()},t.prototype.getCentroid3d=function(e){return e.unprojectBasic(this._point,200)},t.prototype.setCentroid2d=function(e,t){var r=[Math.max(0,Math.min(1,e[0])),Math.max(0,Math.min(1,e[1]))];this._point[0]=r[0],this._point[1]=r[1],this._notifyChanged$.next(this)},t}(i.Geometry);r.PointGeometry=o},{"../../../Component":291}],364:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../../Component"),o=function(e){function t(t,r){var n=e.call(this)||this,o=t.length;if(o<3)throw new i.GeometryTagError("A polygon must have three or more positions.");if(t[0][0]!==t[o-1][0]||t[0][1]!==t[o-1][1])throw new i.GeometryTagError("First and last positions must be equivalent.");n._polygon=[];for(var a=0,s=t;a<s.length;a++){if((d=s[a])[0]<0||d[0]>1||d[1]<0||d[1]>1)throw new i.GeometryTagError("Basic coordinates of polygon must be on the interval [0, 1].");n._polygon.push(d.slice())}if(n._holes=[],null==r)return n;for(var c=0;c<r.length;c++){var u=r[c],h=u.length;if(h<3)throw new i.GeometryTagError("A polygon hole must have three or more positions.");if(u[0][0]!==u[h-1][0]||u[0][1]!==u[h-1][1])throw new i.GeometryTagError("First and last positions of hole must be equivalent.");n._holes.push([]);for(var l=0,p=u;l<p.length;l++){var d=p[l];if(d[0]<0||d[0]>1||d[1]<0||d[1]>1)throw new i.GeometryTagError("Basic coordinates of hole must be on the interval [0, 1].");n._holes[c].push(d.slice())}}return n}return n(t,e),Object.defineProperty(t.prototype,"polygon",{get:function(){return this._polygon},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"holes",{get:function(){return this._holes},enumerable:!0,configurable:!0}),t.prototype.addVertex2d=function(e){var t=[Math.max(0,Math.min(1,e[0])),Math.max(0,Math.min(1,e[1]))];this._polygon.splice(this._polygon.length-1,0,t),this._notifyChanged$.next(this)},t.prototype.getVertex2d=function(e){return this._polygon[e].slice()},t.prototype.removeVertex2d=function(e){if(e<0||e>=this._polygon.length||this._polygon.length<4)throw new i.GeometryTagError("Index for removed vertex must be valid.");if(e>0&&e<this._polygon.length-1)this._polygon.splice(e,1);else{this._polygon.splice(0,1),this._polygon.pop();var t=this._polygon[0].slice();this._polygon.push(t)}this._notifyChanged$.next(this)},t.prototype.setVertex2d=function(e,t,r){var n=[Math.max(0,Math.min(1,t[0])),Math.max(0,Math.min(1,t[1]))];0===e||e===this._polygon.length-1?(this._polygon[0]=n.slice(),this._polygon[this._polygon.length-1]=n.slice()):this._polygon[e]=n.slice(),this._notifyChanged$.next(this)},t.prototype.setCentroid2d=function(e,t){for(var r=this._polygon.map(function(e){return e[0]}),n=this._polygon.map(function(e){return e[1]}),i=Math.min.apply(Math,r),o=Math.max.apply(Math,r),a=Math.min.apply(Math,n),s=Math.max.apply(Math,n),c=this.getCentroid2d(),u=-i,h=1-o,l=-a,p=1-s,d=Math.max(u,Math.min(h,e[0]-c[0])),f=Math.max(l,Math.min(p,e[1]-c[1])),m=0,v=this._polygon;m<v.length;m++){var g=v[m];g[0]+=d,g[1]+=f}this._notifyChanged$.next(this)},t.prototype.getPoints3d=function(e){return this.getVertices3d(e)},t.prototype.getVertex3d=function(e,t){return t.unprojectBasic(this._polygon[e],200)},t.prototype.getVertices2d=function(){return this._polygon.slice()},t.prototype.getVertices3d=function(e){return this._polygon.map(function(t){return e.unprojectBasic(t,200)})},t.prototype.getHoleVertices3d=function(e){for(var t=[],r=0,n=this._holes;r<n.length;r++){var i=n[r].map(function(t){return e.unprojectBasic(t,200)});t.push(i)}return t},t.prototype.getCentroid2d=function(){for(var e=this._polygon,t=0,r=0,n=0,i=0;i<e.length-1;i++){var o=e[i][0],a=e[i][1],s=e[i+1][0],c=e[i+1][1],u=o*c-s*a;t+=u,r+=(o+s)*u,n+=(a+c)*u}return t/=2,r/=6*t,n/=6*t,[r,n]},t.prototype.getCentroid3d=function(e){var t=this.getCentroid2d();return e.unprojectBasic(t,200)},t.prototype.getTriangles3d=function(e){return this._triangulate(this._polygon,this.getPoints3d(e),this._holes,this.getHoleVertices3d(e))},t.prototype.getPoleOfAccessibility2d=function(){return this._getPoleOfInaccessibility2d(this._polygon.slice())},t.prototype.getPoleOfAccessibility3d=function(e){var t=this._getPoleOfInaccessibility2d(this._polygon.slice());return e.unprojectBasic(t,200)},t}(i.VertexGeometry);r.PolygonGeometry=o,r.default=o},{"../../../Component":291}],365:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../../Component"),o=function(e){function t(t){var r=e.call(this)||this;if(t[1]>t[3])throw new i.GeometryTagError("Basic Y coordinates values can not be inverted.");for(var n=0,o=t;n<o.length;n++){var a=o[n];if(a<0||a>1)throw new i.GeometryTagError("Basic coordinates must be on the interval [0, 1].")}return r._anchorIndex=void 0,r._rect=t.slice(0,4),r._inverted=r._rect[0]>r._rect[2],r}return n(t,e),Object.defineProperty(t.prototype,"anchorIndex",{get:function(){return this._anchorIndex},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inverted",{get:function(){return this._inverted},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rect",{get:function(){return this._rect},enumerable:!0,configurable:!0}),t.prototype.initializeAnchorIndexing=function(e){if(void 0!==this._anchorIndex)throw new Error("Anchor indexing is already initialized.");if(e<0||e>3)throw new Error("Invalid anchor index: "+e+".");this._anchorIndex=void 0===e?0:e},t.prototype.terminateAnchorIndexing=function(){this._anchorIndex=void 0},t.prototype.setOppositeVertex2d=function(e,t){if(void 0===this._anchorIndex)throw new Error("Anchor indexing needs to be initialized.");var r=[Math.max(0,Math.min(1,e[0])),Math.max(0,Math.min(1,e[1]))],n=this._rect.slice(),i=0===this._anchorIndex?[n[0],n[3]]:1===this._anchorIndex?[n[0],n[1]]:2===this._anchorIndex?[n[2],n[1]]:[n[2],n[3]];if(t.fullPano){var o=this._anchorIndex<2?r[0]-n[2]:r[0]-n[0];!this._inverted&&this._anchorIndex<2&&r[0]<.25&&n[2]>.75&&o<-.5?(this._inverted=!0,this._anchorIndex=i[1]>r[1]?0:1):!this._inverted&&this._anchorIndex>=2&&r[0]<.25&&n[2]>.75&&o<-.5?(this._inverted=!0,this._anchorIndex=i[1]>r[1]?0:1):this._inverted&&this._anchorIndex>=2&&r[0]<.25&&n[0]>.75&&o<-.5?(this._inverted=!1,this._anchorIndex=i[0]>r[0]?i[1]>r[1]?3:2:i[1]>r[1]?0:1):!this._inverted&&this._anchorIndex>=2&&r[0]>.75&&n[0]<.25&&o>.5?(this._inverted=!0,this._anchorIndex=i[1]>r[1]?3:2):!this._inverted&&this._anchorIndex<2&&r[0]>.75&&n[0]<.25&&o>.5?(this._inverted=!0,this._anchorIndex=i[1]>r[1]?3:2):this._inverted&&this._anchorIndex<2&&r[0]>.75&&n[2]<.25&&o>.5?(this._inverted=!1,this._anchorIndex=i[0]>r[0]?i[1]>r[1]?3:2:i[1]>r[1]?0:1):this._inverted&&this._anchorIndex<2&&r[0]>n[0]?(this._inverted=!1,this._anchorIndex=i[1]>r[1]?0:1):this._inverted&&this._anchorIndex>=2&&r[0]<n[2]?(this._inverted=!1,this._anchorIndex=i[1]>r[1]?3:2):this._inverted?this._anchorIndex<2?this._anchorIndex=i[1]>r[1]?0:1:this._anchorIndex=i[1]>r[1]?3:2:this._anchorIndex=i[0]<=r[0]&&i[1]>r[1]?0:i[0]<=r[0]&&i[1]<=r[1]?1:i[0]>r[0]&&i[1]<=r[1]?2:3;a=[];0===this._anchorIndex?(a[0]=i[0],a[1]=r[1],a[2]=r[0],a[3]=i[1]):1===this._anchorIndex?(a[0]=i[0],a[1]=i[1],a[2]=r[0],a[3]=r[1]):2===this._anchorIndex?(a[0]=r[0],a[1]=i[1],a[2]=i[0],a[3]=r[1]):(a[0]=r[0],a[1]=r[1],a[2]=i[0],a[3]=i[1]),(!this._inverted&&a[0]>a[2]||this._inverted&&a[0]<a[2])&&(a[0]=n[0],a[2]=n[2]),a[1]>a[3]&&(a[1]=n[1],a[3]=n[3]),this._rect[0]=a[0],this._rect[1]=a[1],this._rect[2]=a[2],this._rect[3]=a[3]}else{this._anchorIndex=i[0]<=r[0]&&i[1]>r[1]?0:i[0]<=r[0]&&i[1]<=r[1]?1:i[0]>r[0]&&i[1]<=r[1]?2:3;var a=[];0===this._anchorIndex?(a[0]=i[0],a[1]=r[1],a[2]=r[0],a[3]=i[1]):1===this._anchorIndex?(a[0]=i[0],a[1]=i[1],a[2]=r[0],a[3]=r[1]):2===this._anchorIndex?(a[0]=r[0],a[1]=i[1],a[2]=i[0],a[3]=r[1]):(a[0]=r[0],a[1]=r[1],a[2]=i[0],a[3]=i[1]),a[0]>a[2]&&(a[0]=n[0],a[2]=n[2]),a[1]>a[3]&&(a[1]=n[1],a[3]=n[3]),this._rect[0]=a[0],this._rect[1]=a[1],this._rect[2]=a[2],this._rect[3]=a[3]}this._notifyChanged$.next(this)},t.prototype.setVertex2d=function(e,t,r){var n=this._rect.slice(),i=[Math.max(0,Math.min(1,t[0])),Math.max(0,Math.min(1,t[1]))],o=[];if(0===e?(o[0]=i[0],o[1]=n[1],o[2]=n[2],o[3]=i[1]):1===e?(o[0]=i[0],o[1]=i[1],o[2]=n[2],o[3]=n[3]):2===e?(o[0]=n[0],o[1]=i[1],o[2]=i[0],o[3]=n[3]):3===e&&(o[0]=n[0],o[1]=n[1],o[2]=i[0],o[3]=i[1]),r.fullPano){var a=e<2&&i[0]>.75&&n[0]<.25||e>=2&&this._inverted&&i[0]>.75&&n[2]<.25,s=e<2&&this._inverted&&i[0]<.25&&n[0]>.75||e>=2&&i[0]<.25&&n[2]>.75;a||s?this._inverted=!this._inverted:(o[0]-n[0]<-.25&&(o[0]=n[0]),o[2]-n[2]>.25&&(o[2]=n[2])),(!this._inverted&&o[0]>o[2]||this._inverted&&o[0]<o[2])&&(o[0]=n[0],o[2]=n[2])}else o[0]>o[2]&&(o[0]=n[0],o[2]=n[2]);o[1]>o[3]&&(o[1]=n[1],o[3]=n[3]),this._rect[0]=o[0],this._rect[1]=o[1],this._rect[2]=o[2],this._rect[3]=o[3],this._notifyChanged$.next(this)},t.prototype.setCentroid2d=function(e,t){var r=this._rect.slice(),n=r[0],i=this._inverted?r[2]+1:r[2],o=r[1],a=r[3],s=n+(i-n)/2,c=o+(a-o)/2,u=0;if(null!=t.gpano&&t.gpano.CroppedAreaImageWidthPixels===t.gpano.FullPanoWidthPixels)u=this._inverted?e[0]+1-s:e[0]-s;else{var h=-n,l=1-i;u=Math.max(h,Math.min(l,e[0]-s))}var p=-o,d=1-a,f=Math.max(p,Math.min(d,e[1]-c));this._rect[0]=r[0]+u,this._rect[1]=r[1]+f,this._rect[2]=r[2]+u,this._rect[3]=r[3]+f,this._rect[0]<0?(this._rect[0]+=1,this._inverted=!this._inverted):this._rect[0]>1&&(this._rect[0]-=1,this._inverted=!this._inverted),this._rect[2]<0?(this._rect[2]+=1,this._inverted=!this._inverted):this._rect[2]>1&&(this._rect[2]-=1,this._inverted=!this._inverted),this._notifyChanged$.next(this)},t.prototype.getPoints3d=function(e){return this._getPoints2d(e).map(function(t){return e.unprojectBasic(t,200)})},t.prototype.getVertex2d=function(e){return this._rectToVertices2d(this._rect)[e]},t.prototype.getNonAdjustedVertex2d=function(e){return this._rectToNonAdjustedVertices2d(this._rect)[e]},t.prototype.getVertex3d=function(e,t){return t.unprojectBasic(this._rectToVertices2d(this._rect)[e],200)},t.prototype.getVertices2d=function(){return this._rectToVertices2d(this._rect)},t.prototype.getVertices3d=function(e){return this._rectToVertices2d(this._rect).map(function(t){return e.unprojectBasic(t,200)})},t.prototype.getCentroid2d=function(){var e=this._rect,t=e[0],r=this._inverted?e[2]+1:e[2],n=e[1];return[t+(r-t)/2,n+(e[3]-n)/2]},t.prototype.getCentroid3d=function(e){var t=this.getCentroid2d();return e.unprojectBasic(t,200)},t.prototype.getPoleOfAccessibility2d=function(){return this._getPoleOfInaccessibility2d(this._rectToVertices2d(this._rect))},t.prototype.getPoleOfAccessibility3d=function(e){var t=this._getPoleOfInaccessibility2d(this._rectToVertices2d(this._rect));return e.unprojectBasic(t,200)},t.prototype.getTriangles3d=function(e){return this._triangulate(this._rectToVertices2d(this._rect),this.getVertices3d(e))},t.prototype.validate=function(e){var t=this._rect;return!(!this._inverted&&e[0]<t[0]||e[0]-t[2]>.25||e[1]<t[1])},t.prototype._getPoints2d=function(e){for(var t=this._rectToVertices2d(this._rect),r=t.length-1,n=[],i=0;i<r;++i)for(var o=t[i][0],a=t[i][1],s=(t[i+1][0]-o)/9,c=(t[i+1][1]-a)/9,u=0;u<10;++u){var h=[o+u*s,a+u*c];n.push(h)}return n},t.prototype._rectToVertices2d=function(e){return[[e[0],e[3]],[e[0],e[1]],[this._inverted?e[2]+1:e[2],e[1]],[this._inverted?e[2]+1:e[2],e[3]],[e[0],e[3]]]},t.prototype._rectToNonAdjustedVertices2d=function(e){return[[e[0],e[3]],[e[0],e[1]],[e[2],e[1]],[e[2],e[3]],[e[0],e[3]]]},t}(i.VertexGeometry);r.RectGeometry=o,r.default=o},{"../../../Component":291}],366:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("earcut"),o=e("@mapbox/polylabel"),a=function(e){function t(){return e.call(this)||this}return n(t,e),t.prototype._getPoleOfInaccessibility2d=function(e){return o([e],.03)},t.prototype._triangulate=function(e,t,r,n){for(var o=[e.slice(0,-1)],a=0,s=null!=r?r:[];a<s.length;a++){var c=s[a];o.push(c.slice(0,-1))}for(var u=t.slice(0,-1),h=0,l=null!=n?n:[];h<l.length;h++){var p=l[h];u=u.concat(p.slice(0,-1))}for(var d=i.flatten(o),f=i(d.vertices,d.holes,d.dimensions),m=[],v=0;v<f.length;++v){var g=u[f[v]];m.push(g[0]),m.push(g[1]),m.push(g[2])}return m},t}(e("../../../Component").Geometry);r.VertexGeometry=a,r.default=a},{"../../../Component":291,"@mapbox/polylabel":1,earcut:8}],367:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Subject"),o=function(e){function t(t,r,n,o,a){var s=e.call(this,t,r,n,o)||this;return s._tagCreator=a,s._geometryCreated$=new i.Subject,s}return n(t,e),Object.defineProperty(t.prototype,"geometryCreated$",{get:function(){return this._geometryCreated$},enumerable:!0,configurable:!0}),t.prototype._enable=function(){this._enableCreate(),this._container.element.classList.add("component-tag-create")},t.prototype._disable=function(){this._container.element.classList.remove("component-tag-create"),this._disableCreate()},t.prototype._validateBasic=function(e){var t=e[0],r=e[1];return 0<=t&&t<=1&&0<=r&&r<=1},t.prototype._mouseEventToBasic$=function(e){var t=this;return e.withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).map(function(e){var r=e[0],n=e[1],i=e[2];return t._mouseEventToBasic(r,t._container.element,n,i)})},t}(e("../../../Component").TagHandlerBase);r.CreateHandlerBase=o,r.default=o},{"../../../Component":291,"rxjs/Subject":34}],368:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../../Component"),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._enableCreate=function(){this._container.mouseService.deferPixels(this._name,4),this._geometryCreatedSubscription=this._mouseEventToBasic$(this._container.mouseService.proximateClick$).filter(this._validateBasic).map(function(e){return new i.PointGeometry(e)}).subscribe(this._geometryCreated$)},t.prototype._disableCreate=function(){this._container.mouseService.undeferPixels(this._name),this._geometryCreatedSubscription.unsubscribe()},t.prototype._getNameExtension=function(){return"create-point"},t}(i.CreateHandlerBase);r.CreatePointHandler=o,r.default=o},{"../../../Component":291}],369:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._addPoint=function(e,t){e.addPoint(t)},Object.defineProperty(t.prototype,"_create$",{get:function(){return this._tagCreator.createPolygon$},enumerable:!0,configurable:!0}),t.prototype._getNameExtension=function(){return"create-polygon"},t.prototype._setVertex2d=function(e,t,r){e.geometry.setVertex2d(e.geometry.polygon.length-2,t,r)},t}(e("../../../Component").CreateVertexHandler);r.CreatePolygonHandler=i,r.default=i},{"../../../Component":291}],370:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._enableCreate=function(){var e=this;this._container.mouseService.claimMouse(this._name,2),this._deleteSubscription=this._navigator.stateService.currentTransform$.map(function(e){return null}).skip(1).subscribe(this._tagCreator.delete$),this._createSubscription=this._mouseEventToBasic$(this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragStart$)).filter(this._validateBasic).subscribe(this._tagCreator.createRect$),this._initializeAnchorIndexingSubscription=this._tagCreator.tag$.filter(function(e){return!!e}).subscribe(function(e){e.geometry.initializeAnchorIndexing()});var t=i.Observable.merge(this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseMove$),this._container.mouseService.filtered$(this._name,this._container.mouseService.domMouseMove$)).combineLatest(this._container.renderService.renderCamera$).withLatestFrom(this._navigator.stateService.currentTransform$).map(function(t){var r=t[0],n=r[0],i=r[1],o=t[1];return e._mouseEventToBasic(n,e._container.element,i,o)});this._setVertexSubscription=this._tagCreator.tag$.switchMap(function(r){return r?i.Observable.combineLatest(i.Observable.of(r),t,e._navigator.stateService.currentTransform$):i.Observable.empty()}).subscribe(function(e){var t=e[0],r=e[1],n=e[2];t.geometry.setOppositeVertex2d(r,n)});var r=this._container.mouseService.mouseDragEnd$.withLatestFrom(this._mouseEventToBasic$(this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDrag$)).filter(this._validateBasic),function(e,t){return t}).share();this._addPointSubscription=this._tagCreator.tag$.switchMap(function(e){return e?i.Observable.combineLatest(i.Observable.of(e),r):i.Observable.empty()}).subscribe(function(e){var t=e[0],r=e[1],n=t.geometry;n.validate(r)||(r=n.getNonAdjustedVertex2d(3)),t.addPoint(r)}),this._geometryCreatedSubscription=this._tagCreator.tag$.switchMap(function(e){return e?e.created$.map(function(e){return e.geometry}):i.Observable.empty()}).subscribe(this._geometryCreated$)},t.prototype._disableCreate=function(){this._container.mouseService.unclaimMouse(this._name),this._tagCreator.delete$.next(null),this._addPointSubscription.unsubscribe(),this._createSubscription.unsubscribe(),this._deleteSubscription.unsubscribe(),this._geometryCreatedSubscription.unsubscribe(),this._initializeAnchorIndexingSubscription.unsubscribe(),this._setVertexSubscription.unsubscribe()},t.prototype._getNameExtension=function(){return"create-rect-drag"},t}(e("../../../Component").CreateHandlerBase);r.CreateRectDragHandler=o,r.default=o},{"../../../Component":291,"rxjs/Observable":29}],371:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),Object.defineProperty(t.prototype,"_create$",{get:function(){return this._tagCreator.createRect$},enumerable:!0,configurable:!0}),t.prototype._addPoint=function(e,t){var r=e.geometry;r.validate(t)||(t=r.getNonAdjustedVertex2d(3)),e.addPoint(t)},t.prototype._enable=function(){e.prototype._enable.call(this),this._initializeAnchorIndexingSubscription=this._tagCreator.tag$.filter(function(e){return!!e}).subscribe(function(e){e.geometry.initializeAnchorIndexing()})},t.prototype._disable=function(){e.prototype._disable.call(this),this._initializeAnchorIndexingSubscription.unsubscribe()},t.prototype._getNameExtension=function(){return"create-rect"},t.prototype._setVertex2d=function(e,t,r){e.geometry.setOppositeVertex2d(t,r)},t}(e("../../../Component").CreateVertexHandler);r.CreateRectHandler=i,r.default=i},{"../../../Component":291}],372:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._enableCreate=function(){var e=this;this._container.mouseService.deferPixels(this._name,4);var t=this._navigator.stateService.currentTransform$.map(function(e){}).publishReplay(1).refCount();this._deleteSubscription=t.skip(1).subscribe(this._tagCreator.delete$);var r=this._mouseEventToBasic$(this._container.mouseService.proximateClick$).share();this._createSubscription=t.switchMap(function(){return r.filter(e._validateBasic).take(1)}).subscribe(this._create$),this._setVertexSubscription=this._tagCreator.tag$.switchMap(function(t){return t?i.Observable.combineLatest(i.Observable.of(t),i.Observable.merge(e._container.mouseService.mouseMove$,e._container.mouseService.domMouseMove$),e._container.renderService.renderCamera$,e._navigator.stateService.currentTransform$):i.Observable.empty()}).subscribe(function(t){var r=t[0],n=t[1],i=t[2],o=t[3],a=e._mouseEventToBasic(n,e._container.element,i,o);e._setVertex2d(r,a,o)}),this._addPointSubscription=this._tagCreator.tag$.switchMap(function(e){return e?i.Observable.combineLatest(i.Observable.of(e),r):i.Observable.empty()}).subscribe(function(t){var r=t[0],n=t[1];e._addPoint(r,n)}),this._geometryCreateSubscription=this._tagCreator.tag$.switchMap(function(e){return e?e.created$.map(function(e){return e.geometry}):i.Observable.empty()}).subscribe(this._geometryCreated$)},t.prototype._disableCreate=function(){this._container.mouseService.undeferPixels(this._name),this._tagCreator.delete$.next(null),this._addPointSubscription.unsubscribe(),this._createSubscription.unsubscribe(),this._deleteSubscription.unsubscribe(),this._geometryCreateSubscription.unsubscribe(),this._setVertexSubscription.unsubscribe()},t}(e("../../../Component").CreateHandlerBase);r.CreateVertexHandler=o,r.default=o},{"../../../Component":291,"rxjs/Observable":29}],373:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("../../../Component"),a=function(e){function t(t,r,n,i,o){var a=e.call(this,t,r,n,i)||this;return a._tagSet=o,a}return n(t,e),t.prototype._enable=function(){var e=this,t=this._tagSet.changed$.map(function(e){return e.getAll()}).switchMap(function(e){return i.Observable.from(e).mergeMap(function(e){return e.interact$})}).switchMap(function(t){return i.Observable.of(t).concat(e._container.mouseService.documentMouseUp$.map(function(){return{offsetX:0,offsetY:0,operation:o.TagOperation.None,tag:null}}).first())}).share(),r=i.Observable.merge(this._container.mouseService.mouseMove$,this._container.mouseService.domMouseMove$).share();this._claimMouseSubscription=t.switchMap(function(t){return t.tag?e._container.mouseService.domMouseDragStart$:i.Observable.empty()}).subscribe(function(){e._container.mouseService.claimMouse(e._name,3)}),this._cursorSubscription=t.map(function(e){return e.cursor}).distinctUntilChanged().subscribe(function(t){for(var r=0,n=["crosshair","move","nesw-resize","nwse-resize"];r<n.length;r++){var i=n[r];e._container.element.classList.remove("component-tag-edit-"+i)}t&&e._container.element.classList.add("component-tag-edit-"+t)}),this._unclaimMouseSubscription=this._container.mouseService.filtered$(this._name,this._container.mouseService.domMouseDragEnd$).subscribe(function(t){e._container.mouseService.unclaimMouse(e._name)}),this._preventDefaultSubscription=t.switchMap(function(t){return t.tag?e._container.mouseService.documentMouseMove$:i.Observable.empty()}).subscribe(function(e){e.preventDefault()}),this._updateGeometrySubscription=t.withLatestFrom(r).switchMap(function(t){var r=t[0],n=t[1];if(r.operation===o.TagOperation.None||!r.tag)return i.Observable.empty();var a=i.Observable.of(n).concat(e._container.mouseService.filtered$(e._name,e._container.mouseService.domMouseDrag$).filter(function(t){return e._viewportCoords.insideElement(t,e._container.element)}));return i.Observable.combineLatest(a,e._container.renderService.renderCamera$).withLatestFrom(i.Observable.of(r),e._navigator.stateService.currentTransform$,function(e,t,r){return[e[0],e[1],t,r]})}).subscribe(function(t){var r=t[0],n=t[1],i=t[2],a=t[3],s=e._mouseEventToBasic(r,e._container.element,n,a,i.offsetX,i.offsetY),c=i.tag.geometry;i.operation===o.TagOperation.Centroid?c.setCentroid2d(s,a):i.operation===o.TagOperation.Vertex&&c.setVertex2d(i.vertexIndex,s,a)})},t.prototype._disable=function(){this._claimMouseSubscription.unsubscribe(),this._cursorSubscription.unsubscribe(),this._preventDefaultSubscription.unsubscribe(),this._unclaimMouseSubscription.unsubscribe(),this._updateGeometrySubscription.unsubscribe()},t.prototype._getNameExtension=function(){return"edit-vertex"},t}(o.TagHandlerBase);r.EditVertexHandler=a,r.default=a},{"../../../Component":291,"rxjs/Observable":29}],374:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._name=o._component.name+"-"+o._getNameExtension(),o._viewportCoords=i,o}return n(t,e),t.prototype._getConfiguration=function(e){return{}},t.prototype._mouseEventToBasic=function(e,t,r,n,i,o){i=null!=i?i:0,o=null!=o?o:0;var a=this._viewportCoords.canvasPosition(e,t),s=a[0],c=a[1];return this._viewportCoords.canvasToBasic(s-i,c-o,t,n,r.perspective)},t}(e("../../../Component").HandlerBase);r.TagHandlerBase=i,r.default=i},{"../../../Component":291}],375:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("virtual-dom"),o=e("rxjs/Subject"),a=e("../../../Component"),s=e("../../../Geo"),c=function(){function e(e,t,r,n){var i=this;this._geometry=e,this._options={color:null==t.color?16777215:t.color},this._transform=r,this._viewportCoords=n||new s.ViewportCoords,this._outline=this._createOutine(),this._glObjects=[this._outline],this._aborted$=new o.Subject,this._created$=new o.Subject,this._glObjectsChanged$=new o.Subject,this._geometryChangedSubscription=this._geometry.changed$.subscribe(function(e){i._disposeOutline(),i._outline=i._createOutine(),i._glObjects=[i._outline],i._glObjectsChanged$.next(i)})}return Object.defineProperty(e.prototype,"geometry",{get:function(){return this._geometry},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"glObjects",{get:function(){return this._glObjects},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"aborted$",{get:function(){return this._aborted$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"created$",{get:function(){return this._created$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"glObjectsChanged$",{get:function(){return this._glObjectsChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"geometryChanged$",{get:function(){var e=this;return this._geometry.changed$.map(function(t){return e})},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._disposeOutline(),this._geometryChangedSubscription.unsubscribe()},e.prototype.getDOMObjects=function(e,t){var r=this,n=[],o={offsetHeight:t.height,offsetWidth:t.width},s=function(e){e.stopPropagation(),r._aborted$.next(r)};if(this._geometry instanceof a.RectGeometry){var c=this._geometry.anchorIndex,u=void 0===c?1:c,h=this._geometry.getVertex2d(u),l=h[0],p=h[1],d=this._viewportCoords.basicToCanvasSafe(l,p,o,this._transform,e);if(null!=d){var f={style:{background:A=this._colorToBackground(this._options.color),transform:R=this._canvasToTransform(d)}},m={onclick:s,style:{transform:R}};n.push(i.h("div.TagInteractor",m,[])),n.push(i.h("div.TagVertex",f,[]))}}else if(this._geometry instanceof a.PolygonGeometry){var v=this._geometry,g=v.getVertex2d(0),y=g[0],b=g[1],_=this._viewportCoords.basicToCanvasSafe(y,b,o,this._transform,e);if(null!=_){var m={onclick:v.polygon.length>4?function(e){e.stopPropagation(),v.removeVertex2d(v.polygon.length-2),r._created$.next(r)}:s,style:{transform:R=this._canvasToTransform(_)}},x=v.polygon.length>4?"TagCompleter":"TagInteractor";n.push(i.h("div."+x,m,[]))}if(v.polygon.length>3){var w=v.getVertex2d(v.polygon.length-3),S=w[0],M=w[1],E=this._viewportCoords.basicToCanvasSafe(S,M,o,this._transform,e);if(null!=E){m={onclick:function(e){e.stopPropagation(),v.removeVertex2d(v.polygon.length-3)},style:{transform:R=this._canvasToTransform(E)}};n.push(i.h("div.TagInteractor",m,[]))}}var C=v.polygon.slice();C.splice(-2,2);for(var T=0,O=C;T<O.length;T++){var P=O[T],j=this._viewportCoords.basicToCanvasSafe(P[0],P[1],o,this._transform,e);if(null!=j){var A=this._colorToBackground(this._options.color),R=this._canvasToTransform(j),f={style:{background:A,transform:R}};n.push(i.h("div.TagVertex",f,[]))}}}return n},e.prototype.addPoint=function(e){if(this._geometry instanceof a.RectGeometry){if(!this._geometry.validate(e))return;this._created$.next(this)}else if(this._geometry instanceof a.PolygonGeometry){this._geometry.addVertex2d(e)}},e.prototype._canvasToTransform=function(e){return"translate(-50%,-50%) translate("+Math.round(e[0])+"px,"+Math.round(e[1])+"px)"},e.prototype._colorToBackground=function(e){return"#"+("000000"+e.toString(16)).substr(-6)},e.prototype._createOutine=function(){var e=this._geometry.getPoints3d(this._transform),t=this._getLinePositions(e),r=new n.BufferGeometry;r.addAttribute("position",new n.BufferAttribute(t,3));var i=new n.LineBasicMaterial({color:this._options.color,linewidth:1});return new n.Line(r,i)},e.prototype._disposeOutline=function(){if(null!=this._outline){var e=this._outline;e.geometry.dispose(),e.material.dispose(),this._outline=null,this._glObjects=[]}},e.prototype._getLinePositions=function(e){for(var t=e.length,r=new Float32Array(3*t),n=0;n<t;++n){var i=3*n,o=e[n];r[i]=o[0],r[i+1]=o[1],r[i+2]=o[2]}return r},e}();r.OutlineCreateTag=c,r.default=c},{"../../../Component":291,"../../../Geo":294,"rxjs/Subject":34,three:241,"virtual-dom":247}],376:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=e("virtual-dom"),a=e("../../../Component"),s=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n._fill=r.gpano?null:n._createFill(),n._holes=n._tag.lineWidth>=1?n._createHoles():[],n._outline=n._tag.lineWidth>=1?n._createOutline():null,n._geometryChangedSubscription=n._tag.geometry.changed$.subscribe(function(e){null!=n._fill&&n._updateFillGeometry(),n._holes.length>0&&n._updateHoleGeometries(),null!=n._outline&&n._updateOulineGeometry()}),n._changedSubscription=n._tag.changed$.subscribe(function(e){var t=!1;null!=n._fill&&n._updateFillMaterial(n._fill.material),null==n._outline?n._tag.lineWidth>=1&&(n._holes=n._createHoles(),n._outline=n._createOutline(),t=!0):(n._updateHoleMaterials(),n._updateOutlineMaterial()),t&&n._glObjectsChanged$.next(n)}),n}return n(t,e),t.prototype.dispose=function(){this._disposeFill(),this._disposeHoles(),this._disposeOutline(),this._changedSubscription.unsubscribe(),this._geometryChangedSubscription.unsubscribe()},t.prototype.getDOMObjects=function(e,t,r){var n=this,i=[],s=this._tag.geometry instanceof a.RectGeometry,c=!this._transform.gpano,u={offsetHeight:r.height,offsetWidth:r.width};if(null!=this._tag.icon&&(s||c)){var h=this._tag.geometry instanceof a.RectGeometry?this._tag.geometry.getVertex2d(this._tag.iconIndex):this._tag.geometry.getPoleOfAccessibility2d(),l=h[0],p=h[1],d=this._viewportCoords.basicToCanvasSafe(l,p,u,this._transform,t);if(null!=d){N=function(e){n._interact$.next({offsetX:0,offsetY:0,operation:a.TagOperation.None,tag:n._tag})};if(e.loaded){var f=e.getDOMSprite(this._tag.icon,this._tag.iconFloat),m={onclick:function(e){e.stopPropagation(),n._tag.click$.next(n._tag)},onmousedown:N,style:{transform:w="translate("+Math.round(d[0])+"px,"+Math.round(d[1])+"px)"}};i.push(o.h("div.TagSymbol",m,[f]))}}}else if(null!=this._tag.text&&(s||c)){var v=this._tag.geometry instanceof a.RectGeometry?this._tag.geometry.getVertex2d(3):this._tag.geometry.getPoleOfAccessibility2d(),g=v[0],y=v[1],b=this._viewportCoords.basicToCanvasSafe(g,y,u,this._transform,t);if(null!=b){var _=Math.round(b[0]),x=Math.round(b[1]),w=this._tag.geometry instanceof a.RectGeometry?"translate("+_+"px,"+x+"px)":"translate(-50%, -50%) translate("+_+"px,"+x+"px)",m={onmousedown:N=function(e){n._interact$.next({offsetX:0,offsetY:0,operation:a.TagOperation.None,tag:n._tag})},style:{color:this._colorToCss(this._tag.textColor),transform:w},textContent:this._tag.text};i.push(o.h("span.TagSymbol",m,[]))}}if(!this._tag.editable)return i;var S=this._colorToCss(this._tag.lineColor);if(this._tag.geometry instanceof a.RectGeometry){var M=this._tag.geometry.getCentroid2d(),E=M[0],C=M[1],T=this._viewportCoords.basicToCanvasSafe(E,C,u,this._transform,t);if(null!=T){m={onmousedown:N=this._interact(a.TagOperation.Centroid,"move"),style:{background:S,transform:w="translate(-50%, -50%) translate("+Math.round(T[0])+"px,"+Math.round(T[1])+"px)"}};i.push(o.h("div.TagMover",m,[]))}}for(var O=this._tag.geometry.getVertices2d(),P=0;P<O.length-1;P++)if(!s||!(null!=this._tag.icon&&P===this._tag.iconIndex||null==this._tag.icon&&null!=this._tag.text&&3===P)){var j=O[P],A=j[0],R=j[1],L=this._viewportCoords.basicToCanvasSafe(A,R,u,this._transform,t);if(null!=L){var N,I=s?P%2==0?"nesw-resize":"nwse-resize":"crosshair",m={onmousedown:N=this._interact(a.TagOperation.Vertex,I,P),style:{background:S,transform:w="translate(-50%, -50%) translate("+Math.round(L[0])+"px,"+Math.round(L[1])+"px)",cursor:I}};if(i.push(o.h("div.TagResizer",m,[])),this._tag.indicateVertices){var D={style:{background:S,transform:w}};i.push(o.h("div.TagVertex",D,[]))}}}return i},t.prototype.getGLObjects=function(){var e=[];null!=this._fill&&e.push(this._fill);for(var t=0,r=this._holes;t<r.length;t++){var n=r[t];e.push(n)}return null!=this._outline&&e.push(this._outline),e},t.prototype.getRetrievableObjects=function(){return null!=this._fill?[this._fill]:[]},t.prototype._colorToCss=function(e){return"#"+("000000"+e.toString(16)).substr(-6)},t.prototype._createFill=function(){var e=this._tag.geometry.getTriangles3d(this._transform),t=new Float32Array(e),r=new i.BufferGeometry;r.addAttribute("position",new i.BufferAttribute(t,3)),r.computeBoundingSphere();var n=new i.MeshBasicMaterial({side:i.DoubleSide,transparent:!0});return this._updateFillMaterial(n),new i.Mesh(r,n)},t.prototype._createHoles=function(){var e=[];if(this._tag.geometry instanceof a.PolygonGeometry)for(var t=0,r=this._tag.geometry.getHoleVertices3d(this._transform);t<r.length;t++){var n=r[t],i=this._createLine(n);e.push(i)}return e},t.prototype._createLine=function(e){var t=this._getLinePositions(e),r=new i.BufferGeometry;r.addAttribute("position",new i.BufferAttribute(t,3)),r.computeBoundingSphere();var n=new i.LineBasicMaterial;this._updateLineBasicMaterial(n);var o=new i.Line(r,n);return o.renderOrder=1,o},t.prototype._createOutline=function(){var e=this._tag.geometry.getPoints3d(this._transform);return this._createLine(e)},t.prototype._disposeFill=function(){null!=this._fill&&(this._fill.geometry.dispose(),this._fill.material.dispose(),this._fill=null)},t.prototype._disposeHoles=function(){for(var e=0,t=this._holes;e<t.length;e++){var r=t[e];r.geometry.dispose(),r.material.dispose()}this._holes=[]},t.prototype._disposeOutline=function(){null!=this._outline&&(this._outline.geometry.dispose(),this._outline.material.dispose(),this._outline=null)},t.prototype._getLinePositions=function(e){for(var t=e.length,r=new Float32Array(3*t),n=0;n<t;++n){var i=3*n,o=e[n];r[i+0]=o[0],r[i+1]=o[1],r[i+2]=o[2]}return r},t.prototype._interact=function(e,t,r){var n=this;return function(i){var o=i.offsetX-i.target.offsetWidth/2,a=i.offsetY-i.target.offsetHeight/2;n._interact$.next({cursor:t,offsetX:o,offsetY:a,operation:e,tag:n._tag,vertexIndex:r})}},t.prototype._updateFillGeometry=function(){var e=this._tag.geometry.getTriangles3d(this._transform),t=new Float32Array(e),r=this._fill.geometry,n=r.getAttribute("position");n.array.length===t.length?(n.set(t),n.needsUpdate=!0):(r.removeAttribute("position"),r.addAttribute("position",new i.BufferAttribute(t,3))),r.computeBoundingSphere()},t.prototype._updateFillMaterial=function(e){e.color=new i.Color(this._tag.fillColor),e.opacity=this._tag.fillOpacity,e.needsUpdate=!0},t.prototype._updateHoleGeometries=function(){var e=this._tag.geometry.getHoleVertices3d(this._transform);if(e.length!==this._holes.length)throw new Error("Changing the number of holes is not supported.");for(var t=0;t<this._holes.length;t++){var r=e[t],n=this._holes[t];this._updateLine(n,r)}},t.prototype._updateHoleMaterials=function(){for(var e=0,t=this._holes;e<t.length;e++){var r=t[e].material;this._updateLineBasicMaterial(r)}},t.prototype._updateLine=function(e,t){var r=this._getLinePositions(t),n=e.geometry,i=n.getAttribute("position");i.set(r),i.needsUpdate=!0,n.computeBoundingSphere()},t.prototype._updateOulineGeometry=function(){var e=this._tag.geometry.getPoints3d(this._transform);this._updateLine(this._outline,e)},t.prototype._updateOutlineMaterial=function(){var e=this._outline.material;this._updateLineBasicMaterial(e)},t.prototype._updateLineBasicMaterial=function(e){e.color=new i.Color(this._tag.lineColor),e.linewidth=Math.max(this._tag.lineWidth,1),e.visible=this._tag.lineWidth>=1&&this._tag.lineOpacity>0,e.opacity=this._tag.lineOpacity,e.transparent=this._tag.lineOpacity<1,e.needsUpdate=!0},t}(a.RenderTag);r.OutlineRenderTag=s},{"../../../Component":291,three:241,"virtual-dom":247}],377:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Subject"),o=e("../../../Component"),a=e("../../../Viewer"),s=function(e){function t(r,n,o){var s=e.call(this,r,n)||this;return o=o||{},s._editable=null!=o.editable&&o.editable,s._fillColor=null==o.fillColor?16777215:o.fillColor,s._fillOpacity=null==o.fillOpacity?0:o.fillOpacity,s._icon=void 0===o.icon?null:o.icon,s._iconFloat=null==o.iconFloat?a.Alignment.Center:o.iconFloat,s._iconIndex=null==o.iconIndex?3:o.iconIndex,s._indicateVertices=null==o.indicateVertices||o.indicateVertices,s._lineColor=null==o.lineColor?16777215:o.lineColor,s._lineOpacity=null==o.lineOpacity?1:o.lineOpacity,s._lineWidth=null==o.lineWidth?1:o.lineWidth,s._text=void 0===o.text?null:o.text,s._textColor=null==o.textColor?16777215:o.textColor,s._click$=new i.Subject,s._click$.subscribe(function(e){s.fire(t.click,s)}),s}return n(t,e),Object.defineProperty(t.prototype,"click$",{get:function(){return this._click$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"editable",{get:function(){return this._editable},set:function(e){this._editable=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"fillColor",{get:function(){return this._fillColor},set:function(e){this._fillColor=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"fillOpacity",{get:function(){return this._fillOpacity},set:function(e){this._fillOpacity=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"geometry",{get:function(){return this._geometry},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"icon",{get:function(){return this._icon},set:function(e){this._icon=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"iconFloat",{get:function(){return this._iconFloat},set:function(e){this._iconFloat=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"iconIndex",{get:function(){return this._iconIndex},set:function(e){this._iconIndex=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"indicateVertices",{get:function(){return this._indicateVertices},set:function(e){this._indicateVertices=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lineColor",{get:function(){return this._lineColor},set:function(e){this._lineColor=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lineOpacity",{get:function(){return this._lineOpacity},set:function(e){this._lineOpacity=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lineWidth",{get:function(){return this._lineWidth},set:function(e){this._lineWidth=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"text",{get:function(){return this._text},set:function(e){this._text=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"textColor",{get:function(){return this._textColor},set:function(e){this._textColor=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),t.prototype.setOptions=function(e){this._editable=null==e.editable?this._editable:e.editable,this._icon=void 0===e.icon?this._icon:e.icon,this._iconFloat=null==e.iconFloat?this._iconFloat:e.iconFloat,this._iconIndex=null==e.iconIndex?this._iconIndex:e.iconIndex,this._indicateVertices=null==e.indicateVertices?this._indicateVertices:e.indicateVertices,this._lineColor=null==e.lineColor?this._lineColor:e.lineColor,this._lineWidth=null==e.lineWidth?this._lineWidth:e.lineWidth,this._fillColor=null==e.fillColor?this._fillColor:e.fillColor,this._fillOpacity=null==e.fillOpacity?this._fillOpacity:e.fillOpacity,this._text=void 0===e.text?this._text:e.text,this._textColor=null==e.textColor?this._textColor:e.textColor,this._notifyChanged$.next(this)},t.click="click",t}(o.Tag);r.OutlineTag=s,r.default=s},{"../../../Component":291,"../../../Viewer":302,"rxjs/Subject":34}],378:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=e("../../../Geo"),o=function(){function e(e,t,r){this._tag=e,this._transform=t,this._viewportCoords=r||new i.ViewportCoords,this._glObjectsChanged$=new n.Subject,this._interact$=new n.Subject}return Object.defineProperty(e.prototype,"glObjectsChanged$",{get:function(){return this._glObjectsChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"interact$",{get:function(){return this._interact$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tag",{get:function(){return this._tag},enumerable:!0,configurable:!0}),e}();r.RenderTag=o,r.default=o},{"../../../Geo":294,"rxjs/Subject":34}],379:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("../../../Component"),a=e("../../../Viewer"),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.dispose=function(){},t.prototype.getDOMObjects=function(e,t,r){var n=this,s=this._tag,c={offsetHeight:r.height,offsetWidth:r.width},u=[],h=s.geometry.getCentroid2d(),l=h[0],p=h[1],d=this._viewportCoords.basicToCanvasSafe(l,p,c,this._transform,t);if(null!=d){var f=function(e){n._interact$.next({offsetX:0,offsetY:0,operation:o.TagOperation.None,tag:s})},m=Math.round(d[0]),v=Math.round(d[1]);if(null!=s.icon){if(e.loaded){var g=e.getDOMSprite(s.icon,a.Alignment.Bottom),y={onmousedown:f,style:{pointerEvents:"all",transform:"translate("+m+"px,"+(v+8)+"px)"}};u.push(i.h("div",y,[g]))}}else if(null!=s.text){var b="translate(-50%,0%) translate("+m+"px,"+(v+8)+"px)",y={onmousedown:f,style:{color:this._colorToCss(s.textColor),transform:b},textContent:s.text};u.push(i.h("span.TagSymbol",y,[]))}var _=this._interact(o.TagOperation.Centroid,s,"move"),x=this._colorToCss(s.color),w="translate(-50%,-50%) translate("+m+"px,"+v+"px)";if(s.editable){var S={onmousedown:_,style:{background:x,transform:w}};u.push(i.h("div.TagSpotInteractor",S,[]))}var M={style:{background:x,transform:w}};u.push(i.h("div.TagVertex",M,[]))}return u},t.prototype.getGLObjects=function(){return[]},t.prototype.getRetrievableObjects=function(){return[]},t.prototype._colorToCss=function(e){return"#"+("000000"+e.toString(16)).substr(-6)},t.prototype._interact=function(e,t,r,n){var i=this;return function(o){var a=o.offsetX-o.target.offsetWidth/2,s=o.offsetY-o.target.offsetHeight/2;i._interact$.next({cursor:r,offsetX:a,offsetY:s,operation:e,tag:t,vertexIndex:n})}},t}(o.RenderTag);r.SpotRenderTag=s},{"../../../Component":291,"../../../Viewer":302,"virtual-dom":247}],380:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(t,r,n){var i=e.call(this,t,r)||this;return n=n||{},i._color=null==n.color?16777215:n.color,i._editable=null!=n.editable&&n.editable,i._icon=void 0===n.icon?null:n.icon,i._text=void 0===n.text?null:n.text,i._textColor=null==n.textColor?16777215:n.textColor,i}return n(t,e),Object.defineProperty(t.prototype,"color",{get:function(){return this._color},set:function(e){this._color=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"editable",{get:function(){return this._editable},set:function(e){this._editable=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"icon",{get:function(){return this._icon},set:function(e){this._icon=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"text",{get:function(){return this._text},set:function(e){this._text=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"textColor",{get:function(){return this._textColor},set:function(e){this._textColor=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),t.prototype.setOptions=function(e){this._color=null==e.color?this._color:e.color,this._editable=null==e.editable?this._editable:e.editable,this._icon=void 0===e.icon?this._icon:e.icon,this._text=void 0===e.text?this._text:e.text,this._textColor=null==e.textColor?this._textColor:e.textColor,this._notifyChanged$.next(this)},t}(e("../../../Component").Tag);r.SpotTag=i,r.default=i},{"../../../Component":291}],381:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Subject");e("rxjs/add/operator/map"),e("rxjs/add/operator/share");var o=function(e){function t(r,n){var o=e.call(this)||this;return o._id=r,o._geometry=n,o._notifyChanged$=new i.Subject,o._notifyChanged$.subscribe(function(e){o.fire(t.changed,o)}),o._geometry.changed$.subscribe(function(e){o.fire(t.geometrychanged,o)}),o}return n(t,e),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"geometry",{get:function(){return this._geometry},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"changed$",{get:function(){return this._notifyChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"geometryChanged$",{get:function(){var e=this;return this._geometry.changed$.map(function(t){return e}).share()},enumerable:!0,configurable:!0}),t.changed="changed",t.geometrychanged="geometrychanged",t}(e("../../../Utils").EventEmitter);r.Tag=o,r.default=o},{"../../../Utils":301,"rxjs/Subject":34,"rxjs/add/operator/map":67,"rxjs/add/operator/share":79}],382:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t,r){this._component=e,this._container=t,this._navigator=r,this._enabled=!1}return Object.defineProperty(e.prototype,"isEnabled",{get:function(){return this._enabled},enumerable:!0,configurable:!0}),e.prototype.enable=function(){!this._enabled&&this._component.activated&&(this._enable(),this._enabled=!0,this._component.configure(this._getConfiguration(!0)))},e.prototype.disable=function(){this._enabled&&(this._disable(),this._enabled=!1,this._component.activated&&this._component.configure(this._getConfiguration(!1)))},e}();r.HandlerBase=n,r.default=n},{}],383:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(r){var n=e.call(this,null!=r?r:"The request was aborted.")||this;return Object.setPrototypeOf(n,t.prototype),n.name="AbortMapillaryError",n}return n(t,e),t}(e("./MapillaryError").MapillaryError);r.AbortMapillaryError=i,r.default=i},{"./MapillaryError":386}],384:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(r){var n=e.call(this,null!=r?r:"The argument is not valid.")||this;return Object.setPrototypeOf(n,t.prototype),n.name="ArgumentMapillaryError",n}return n(t,e),t}(e("./MapillaryError").MapillaryError);r.ArgumentMapillaryError=i,r.default=i},{"./MapillaryError":386}],385:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(r){var n=e.call(this,r)||this;return Object.setPrototypeOf(n,t.prototype),n.name="GraphMapillaryError",n}return n(t,e),t}(e("./MapillaryError").MapillaryError);r.GraphMapillaryError=i,r.default=i},{"./MapillaryError":386}],386:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(r){var n=e.call(this,r)||this;return Object.setPrototypeOf(n,t.prototype),n.name="MapillaryError",n}return n(t,e),t}(Error);r.MapillaryError=i,r.default=i},{}],387:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(e){null!=e?(this._position=(new n.Vector3).fromArray(e.unprojectSfM([0,0],0)),this._lookat=(new n.Vector3).fromArray(e.unprojectSfM([0,0],10)),this._up=e.upVector(),this._focal=this._getFocal(e)):(this._position=new n.Vector3(0,0,0),this._lookat=new n.Vector3(0,0,1),this._up=new n.Vector3(0,-1,0),this._focal=1)}return Object.defineProperty(e.prototype,"position",{get:function(){return this._position},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lookat",{get:function(){return this._lookat},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"up",{get:function(){return this._up},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"focal",{get:function(){return this._focal},set:function(e){this._focal=e},enumerable:!0,configurable:!0}),e.prototype.lerpCameras=function(e,t,r){this._position.subVectors(t.position,e.position).multiplyScalar(r).add(e.position),this._lookat.subVectors(t.lookat,e.lookat).multiplyScalar(r).add(e.lookat),this._up.subVectors(t.up,e.up).multiplyScalar(r).add(e.up),this._focal=(1-r)*e.focal+r*t.focal},e.prototype.copy=function(e){this._position.copy(e.position),this._lookat.copy(e.lookat),this._up.copy(e.up),this._focal=e.focal},e.prototype.clone=function(){var t=new e;return t.position.copy(this._position),t.lookat.copy(this._lookat),t.up.copy(this._up),t.focal=this._focal,t},e.prototype.diff=function(e){var t=this._position.distanceToSquared(e.position),r=this._lookat.distanceToSquared(e.lookat),n=this._up.distanceToSquared(e.up),i=100*Math.abs(this._focal-e.focal);return Math.max(t,r,n,i)},e.prototype._getFocal=function(e){if(null==e.gpano)return e.focal;var t=Math.PI*e.gpano.CroppedAreaImageHeightPixels/e.gpano.FullPanoHeightPixels,r=.5/Math.tan(t/2);return Math.min(1/(2*(Math.sqrt(2)-1)),Math.max(.5,r))},e}();r.Camera=i},{three:241}],388:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){this._wgs84a=6378137,this._wgs84b=6356752.31424518}return e.prototype.geodeticToEnu=function(e,t,r,n,i,o){var a=this.geodeticToEcef(e,t,r);return this.ecefToEnu(a[0],a[1],a[2],n,i,o)},e.prototype.enuToGeodetic=function(e,t,r,n,i,o){var a=this.enuToEcef(e,t,r,n,i,o);return this.ecefToGeodetic(a[0],a[1],a[2])},e.prototype.ecefToEnu=function(e,t,r,n,i,o){var a=this.geodeticToEcef(n,i,o),s=[e-a[0],t-a[1],r-a[2]];n=n*Math.PI/180,i=i*Math.PI/180;var c=Math.cos(n),u=Math.sin(n),h=Math.cos(i),l=Math.sin(i);return[-l*s[0]+h*s[1],-u*h*s[0]-u*l*s[1]+c*s[2],c*h*s[0]+c*l*s[1]+u*s[2]]},e.prototype.enuToEcef=function(e,t,r,n,i,o){var a=this.geodeticToEcef(n,i,o);n=n*Math.PI/180,i=i*Math.PI/180;var s=Math.cos(n),c=Math.sin(n),u=Math.cos(i),h=Math.sin(i);return[-h*e-c*u*t+s*u*r+a[0],u*e-c*h*t+s*h*r+a[1],s*t+c*r+a[2]]},e.prototype.geodeticToEcef=function(e,t,r){var n=this._wgs84a,i=this._wgs84b;e=e*Math.PI/180,t=t*Math.PI/180;var o=Math.cos(e),a=Math.sin(e),s=Math.cos(t),c=Math.sin(t),u=n*n,h=i*i,l=1/Math.sqrt(u*o*o+h*a*a),p=(u*l+r)*o;return[p*s,p*c,(h*l+r)*a]},e.prototype.ecefToGeodetic=function(e,t,r){var n=this._wgs84a,i=this._wgs84b,o=n*n,a=i*i,s=o-a,c=Math.sqrt(s/o),u=Math.sqrt(s/a),h=Math.sqrt(e*e+t*t),l=Math.atan2(r*n,h*i),p=Math.sin(l),d=Math.cos(l),f=Math.atan2(t,e),m=Math.atan2(r+u*u*i*p*p*p,h-c*c*n*d*d*d),v=Math.sin(m),g=h/Math.cos(m)-n/Math.sqrt(1-c*c*v*v);return[180*m/Math.PI,180*f/Math.PI,g]},e}();r.GeoCoords=n,r.default=n},{}],389:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(){this._epsilon=1e-9}return e.prototype.azimuthalToBearing=function(e){return-e+Math.PI/2},e.prototype.degToRad=function(e){return Math.PI*e/180},e.prototype.radToDeg=function(e){return 180*e/Math.PI},e.prototype.rotationMatrix=function(e){var t=new n.Vector3(e[0],e[1],e[2]),r=t.length();return r>0&&t.normalize(),(new n.Matrix4).makeRotationAxis(t,r)},e.prototype.rotate=function(e,t){var r=new n.Vector3(e[0],e[1],e[2]),i=this.rotationMatrix(t);return r.applyMatrix4(i),r},e.prototype.opticalCenter=function(e,t){var r=[-e[0],-e[1],-e[2]],n=[-t[0],-t[1],-t[2]];return this.rotate(n,r)},e.prototype.viewingDirection=function(e){var t=[-e[0],-e[1],-e[2]];return this.rotate([0,0,1],t)},e.prototype.wrap=function(e,t,r){if(r<t)throw new Error("Invalid arguments: max must be larger than min.");for(var n=r-t;e>r||e<t;)e>r?e-=n:e<t&&(e+=n);return e},e.prototype.wrapAngle=function(e){return this.wrap(e,-Math.PI,Math.PI)},e.prototype.clamp=function(e,t,r){return e<t?t:e>r?r:e},e.prototype.angleBetweenVector2=function(e,t,r,n){var i=Math.atan2(n,r)-Math.atan2(t,e);return this.wrapAngle(i)},e.prototype.angleDifference=function(e,t){var r=t-e;return this.wrapAngle(r)},e.prototype.relativeRotationAngle=function(e,t){var r=this.rotationMatrix([-e[0],-e[1],-e[2]]),n=this.rotationMatrix(t),i=r.multiply(n).elements;return Math.acos((i[0]+i[5]+i[10]-1)/2)},e.prototype.angleToPlane=function(e,t){var r=(new n.Vector3).fromArray(e),i=r.length();if(i<this._epsilon)return 0;var o=r.dot((new n.Vector3).fromArray(t));return Math.asin(o/i)},e.prototype.distanceFromLatLon=function(e,t,r,n){var i=this.degToRad(r-e),o=this.degToRad(n-t),a=Math.sin(i/2)*Math.sin(i/2)+Math.cos(this.degToRad(e))*Math.cos(this.degToRad(r))*Math.sin(o/2)*Math.sin(o/2);return 12742e3*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))},e}();r.Spatial=i,r.default=i},{three:241}],390:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(e,t,r){this._orientation=this._getValue(e.orientation,1);var n=null!=t?t.width:4,i=null!=t?t.height:3,o=this._orientation<5;this._width=this._getValue(e.width,o?n:i),this._height=this._getValue(e.height,o?i:n),this._basicAspect=o?this._width/this._height:this._height/this._width,this._basicWidth=o?e.width:e.height,this._basicHeight=o?e.height:e.width,this._focal=this._getValue(e.focal,1),this._scale=this._getValue(e.scale,0),this._gpano=null!=e.gpano?e.gpano:null,this._rt=this._getRt(e.rotation,r),this._srt=this._getSrt(this._rt,this._scale)}return Object.defineProperty(e.prototype,"basicAspect",{get:function(){return this._basicAspect},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"basicHeight",{get:function(){return this._basicHeight},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"basicWidth",{get:function(){return this._basicWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"focal",{get:function(){return this._focal},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullPano",{get:function(){return null!=this._gpano&&0===this._gpano.CroppedAreaLeftPixels&&0===this._gpano.CroppedAreaTopPixels&&this._gpano.CroppedAreaImageWidthPixels===this._gpano.FullPanoWidthPixels&&this._gpano.CroppedAreaImageHeightPixels===this._gpano.FullPanoHeightPixels},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gpano",{get:function(){return this._gpano},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this._height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orientation",{get:function(){return this._orientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rt",{get:function(){return this._rt},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"srt",{get:function(){return this._srt},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scale",{get:function(){return this._scale},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasValidScale",{get:function(){return this._scale>.01&&this._scale<50},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this._width},enumerable:!0,configurable:!0}),e.prototype.upVector=function(){var e=this._rt.elements;switch(this._orientation){case 1:return new n.Vector3(-e[1],-e[5],-e[9]);case 3:return new n.Vector3(e[1],e[5],e[9]);case 6:return new n.Vector3(-e[0],-e[4],-e[8]);case 8:return new n.Vector3(e[0],e[4],e[8]);default:return new n.Vector3(-e[1],-e[5],-e[9])}},e.prototype.projectorMatrix=function(){var e=this._normalizedToTextureMatrix(),t=this._focal,r=(new n.Matrix4).set(t,0,0,0,0,t,0,0,0,0,0,0,0,0,1,0);return e.multiply(r),e.multiply(this._rt),e},e.prototype.projectBasic=function(e){var t=this.projectSfM(e);return this._sfmToBasic(t)},e.prototype.unprojectBasic=function(e,t){var r=this._basicToSfm(e);return this.unprojectSfM(r,t)},e.prototype.projectSfM=function(e){var t=new n.Vector4(e[0],e[1],e[2],1);return t.applyMatrix4(this._rt),this._bearingToSfm([t.x,t.y,t.z])},e.prototype.unprojectSfM=function(e,t){var r=this._sfmToBearing(e),i=new n.Vector4(t*r[0],t*r[1],t*r[2],1);return i.applyMatrix4((new n.Matrix4).getInverse(this._rt)),[i.x/i.w,i.y/i.w,i.z/i.w]},e.prototype._sfmToBearing=function(e){if(this._fullPano()){var t=2*e[0]*Math.PI,r=2*-e[1]*Math.PI;return[a=Math.cos(r)*Math.sin(t),s=-Math.sin(r),c=Math.cos(r)*Math.cos(t)]}if(this._gpano){var i=Math.max(this.gpano.CroppedAreaImageWidthPixels,this.gpano.CroppedAreaImageHeightPixels),o=[e[0]*i+this.gpano.CroppedAreaImageWidthPixels/2+this.gpano.CroppedAreaLeftPixels,e[1]*i+this.gpano.CroppedAreaImageHeightPixels/2+this.gpano.CroppedAreaTopPixels],t=2*Math.PI*(o[0]/this.gpano.FullPanoWidthPixels-.5),r=-Math.PI*(o[1]/this.gpano.FullPanoHeightPixels-.5),a=Math.cos(r)*Math.sin(t),s=-Math.sin(r),c=Math.cos(r)*Math.cos(t);return[a,s,c]}var u=new n.Vector3(e[0],e[1],this._focal);return u.normalize(),[u.x,u.y,u.z]},e.prototype._bearingToSfm=function(e){if(this._fullPano()){var t=e[0],r=e[1],n=e[2],i=Math.atan2(t,n),o=Math.atan2(-r,Math.sqrt(t*t+n*n));return[i/(2*Math.PI),-o/(2*Math.PI)]}if(this._gpano){var t=e[0],r=e[1],n=e[2],i=Math.atan2(t,n),o=Math.atan2(-r,Math.sqrt(t*t+n*n)),a=[(i/(2*Math.PI)+.5)*this.gpano.FullPanoWidthPixels,(-o/Math.PI+.5)*this.gpano.FullPanoHeightPixels],s=Math.max(this.gpano.CroppedAreaImageWidthPixels,this.gpano.CroppedAreaImageHeightPixels);return[(a[0]-this.gpano.CroppedAreaLeftPixels-this.gpano.CroppedAreaImageWidthPixels/2)/s,(a[1]-this.gpano.CroppedAreaTopPixels-this.gpano.CroppedAreaImageHeightPixels/2)/s]}return e[2]>0?[e[0]*this._focal/e[2],e[1]*this._focal/e[2]]:[e[0]<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,e[1]<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY]},e.prototype._basicToSfm=function(e){var t,r;switch(this._orientation){case 1:t=e[0],r=e[1];break;case 3:t=1-e[0],r=1-e[1];break;case 6:t=e[1],r=1-e[0];break;case 8:t=1-e[1],r=e[0];break;default:t=e[0],r=e[1]}var n=this._width,i=this._height,o=Math.max(n,i);return[t*n/o-n/o/2,r*i/o-i/o/2]},e.prototype._sfmToBasic=function(e){var t,r,n=this._width,i=this._height,o=Math.max(n,i),a=(e[0]+n/o/2)/n*o,s=(e[1]+i/o/2)/i*o;switch(this._orientation){case 1:t=a,r=s;break;case 3:t=1-a,r=1-s;break;case 6:t=1-s,r=a;break;case 8:t=s,r=1-a;break;default:t=a,r=s}return[t,r]},e.prototype._fullPano=function(){return null!=this.gpano&&0===this.gpano.CroppedAreaLeftPixels&&0===this.gpano.CroppedAreaTopPixels&&this.gpano.CroppedAreaImageWidthPixels===this.gpano.FullPanoWidthPixels&&this.gpano.CroppedAreaImageHeightPixels===this.gpano.FullPanoHeightPixels},e.prototype._getValue=function(e,t){return null!=e&&e>0?e:t},e.prototype._getRt=function(e,t){var r=new n.Vector3(e[0],e[1],e[2]),i=r.length();i>0&&r.normalize();var o=new n.Matrix4;return o.makeRotationAxis(r,i),o.setPosition(new n.Vector3(t[0],t[1],t[2])),o},e.prototype._getSrt=function(e,t){var r=e.clone(),i=r.elements;return i[12]=t*i[12],i[13]=t*i[13],i[14]=t*i[14],r.scale(new n.Vector3(t,t,t)),r},e.prototype._normalizedToTextureMatrix=function(){var e=Math.max(this._width,this._height),t=e/this._width,r=e/this._height;switch(this._orientation){case 1:return(new n.Matrix4).set(t,0,0,.5,0,-r,0,.5,0,0,1,0,0,0,0,1);case 3:return(new n.Matrix4).set(-t,0,0,.5,0,r,0,.5,0,0,1,0,0,0,0,1);case 6:return(new n.Matrix4).set(0,-r,0,.5,-t,0,0,.5,0,0,1,0,0,0,0,1);case 8:return(new n.Matrix4).set(0,r,0,.5,t,0,0,.5,0,0,1,0,0,0,0,1);default:return(new n.Matrix4).set(t,0,0,.5,0,-r,0,.5,0,0,1,0,0,0,0,1)}},e}();r.Transform=i},{three:241}],391:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(){this._unprojectDepth=200}return e.prototype.basicToCanvas=function(e,t,r,n,i){var o=n.unprojectBasic([e,t],this._unprojectDepth);return this.projectToCanvas(o,r,i)},e.prototype.basicToCanvasSafe=function(e,t,r,n,i){var o=n.unprojectBasic([e,t],this._unprojectDepth),a=this.worldToCamera(o,i);if(a[2]>0)return null;var s=this.cameraToViewport(a,i),c=s[0],u=s[1];return this.viewportToCanvas(c,u,r)},e.prototype.basicToViewport=function(e,t,r,n){var i=r.unprojectBasic([e,t],this._unprojectDepth);return this.projectToViewport(i,n)},e.prototype.cameraToViewport=function(e,t){var r=(new n.Vector3).fromArray(e).applyMatrix4(t.projectionMatrix);return[r.x,r.y]},e.prototype.canvasPosition=function(e,t){var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]},e.prototype.canvasToBasic=function(e,t,r,n,i){var o=this.unprojectFromCanvas(e,t,r,i).toArray();return n.projectBasic(o)},e.prototype.canvasToViewport=function(e,t,r){var n=this.containerToCanvas(r);return[2*e/n[0]-1,1-2*t/n[1]]},e.prototype.containerToCanvas=function(e){return[e.offsetWidth,e.offsetHeight]},e.prototype.getBasicDistances=function(e,t){var r=this.viewportToBasic(-1,1,e,t),n=this.viewportToBasic(1,1,e,t),i=this.viewportToBasic(1,-1,e,t),o=this.viewportToBasic(-1,-1,e,t),a=0,s=0,c=0,u=0;return r[1]<0&&n[1]<0&&(a=r[1]>n[1]?-r[1]:-n[1]),n[0]>1&&i[0]>1&&(s=n[0]<i[0]?n[0]-1:i[0]-1),i[1]>1&&o[1]>1&&(c=i[1]<o[1]?i[1]-1:o[1]-1),o[0]<0&&r[0]<0&&(u=o[0]>r[0]?-o[0]:-r[0]),[a,s,c,u]},e.prototype.getPixelDistances=function(e,t,r){var n=this.viewportToBasic(-1,1,t,r),i=this.viewportToBasic(1,1,t,r),o=this.viewportToBasic(1,-1,t,r),a=this.viewportToBasic(-1,-1,t,r),s=0,c=0,u=0,h=0,l=this.containerToCanvas(e),p=l[0],d=l[1];if(n[1]<0&&i[1]<0){f=n[1]>i[1]?n[0]:i[0];s=(v=this.basicToCanvas(f,0,e,t,r))[1]>0?v[1]:0}if(i[0]>1&&o[0]>1){m=i[0]<o[0]?i[1]:o[1];c=(v=this.basicToCanvas(1,m,e,t,r))[0]<p?p-v[0]:0}if(o[1]>1&&a[1]>1){var f=o[1]<a[1]?o[0]:a[0];u=(v=this.basicToCanvas(f,1,e,t,r))[1]<d?d-v[1]:0}if(a[0]<0&&n[0]<0){var m=a[0]>n[0]?a[1]:n[1],v=this.basicToCanvas(0,m,e,t,r);h=v[0]>0?v[0]:0}return[s,c,u,h]},e.prototype.insideElement=function(e,t){var r=t.getBoundingClientRect(),n=r.left+t.clientLeft,i=n+t.clientWidth,o=r.top+t.clientTop,a=o+t.clientHeight;return e.clientX>n&&e.clientX<i&&e.clientY>o&&e.clientY<a},e.prototype.projectToCanvas=function(e,t,r){var n=this.projectToViewport(e,r);return this.viewportToCanvas(n[0],n[1],t)},e.prototype.projectToViewport=function(e,t){var r=new n.Vector3(e[0],e[1],e[2]).project(t);return[r.x,r.y]},e.prototype.unprojectFromCanvas=function(e,t,r,n){var i=this.canvasToViewport(e,t,r);return this.unprojectFromViewport(i[0],i[1],n)},e.prototype.unprojectFromViewport=function(e,t,r){return new n.Vector3(e,t,1).unproject(r)},e.prototype.viewportToBasic=function(e,t,r,i){var o=new n.Vector3(e,t,1).unproject(i).toArray();return r.projectBasic(o)},e.prototype.viewportToCanvas=function(e,t,r){var n=this.containerToCanvas(r);return[n[0]*(e+1)/2,-n[1]*(t-1)/2]},e.prototype.worldToCamera=function(e,t){return new n.Vector3(e[0],e[1],e[2]).applyMatrix4(t.matrixWorldInverse).toArray()},e}();r.ViewportCoords=i,r.default=i},{three:241}],392:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){}return e.prototype.createFilter=function(e){return new Function("node","return "+this._compile(e)+";")},e.prototype._compile=function(e){if(null==e||e.length<=1)return"true";var t=e[0];return"("+("=="===t?this._compileComparisonOp("===",e[1],e[2],!1):"!="===t?this._compileComparisonOp("!==",e[1],e[2],!1):">"===t||">="===t||"<"===t||"<="===t?this._compileComparisonOp(t,e[1],e[2],!0):"in"===t?this._compileInOp(e[1],e.slice(2)):"!in"===t?this._compileNegation(this._compileInOp(e[1],e.slice(2))):"all"===t?this._compileLogicalOp(e.slice(1),"&&"):"true")+")"},e.prototype._compare=function(e,t){return e<t?-1:e>t?1:0},e.prototype._compileComparisonOp=function(e,t,r,n){var i=this._compilePropertyReference(t),o=JSON.stringify(r);return(n?"typeof "+i+"===typeof "+o+"&&":"")+i+e+o},e.prototype._compileInOp=function(e,t){var r=this._compare;return JSON.stringify(t.sort(r))+".indexOf("+this._compilePropertyReference(e)+")!==-1"},e.prototype._compileLogicalOp=function(e,t){var r=this._compile.bind(this);return e.map(r).join(t)},e.prototype._compileNegation=function(e){return"!("+e+")"},e.prototype._compilePropertyReference=function(e){return"node["+JSON.stringify(e)+"]"},e}();r.FilterCreator=n,r.default=n},{}],393:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rbush"),i=e("rxjs/Observable"),o=e("rxjs/Subject");e("rxjs/add/observable/from"),e("rxjs/add/operator/catch"),e("rxjs/add/operator/do"),e("rxjs/add/operator/finally"),e("rxjs/add/operator/last"),e("rxjs/add/operator/map"),e("rxjs/add/operator/publish"),e("rxjs/add/operator/reduce");var a=e("../Edge"),s=e("../Error"),c=e("../Graph"),u=function(){function e(e,t,r,i,s,u){this._apiV3=e,this._cachedNodes={},this._cachedNodeTiles={},this._cachedSequenceNodes={},this._cachedSpatialEdges={},this._cachedTiles={},this._cachingFill$={},this._cachingFull$={},this._cachingSequenceNodes$={},this._cachingSequences$={},this._cachingSpatialArea$={},this._cachingTiles$={},this._changed$=new o.Subject,this._defaultAlt=2,this._edgeCalculator=null!=i?i:new a.EdgeCalculator,this._filterCreator=null!=s?s:new c.FilterCreator,this._filter=this._filterCreator.createFilter(void 0),this._graphCalculator=null!=r?r:new c.GraphCalculator,this._configuration=null!=u?u:{maxSequences:50,maxUnusedNodes:100,maxUnusedPreStoredNodes:30,maxUnusedTiles:20},this._nodes={},this._nodeIndex=null!=t?t:n(16,[".lat",".lon",".lat",".lon"]),this._nodeIndexTiles={},this._nodeToTile={},this._preStored={},this._requiredNodeTiles={},this._requiredSpatialArea={},this._sequences={},this._tilePrecision=7,this._tileThreshold=20}return Object.defineProperty(e.prototype,"changed$",{get:function(){return this._changed$},enumerable:!0,configurable:!0}),e.prototype.cacheBoundingBox$=function(e,t){var r=this,n=this._graphCalculator.encodeHsFromBoundingBox(e,t).filter(function(e){return!(e in r._cachedTiles)}).map(function(e){return e in r._cachingTiles$?r._cachingTiles$[e]:r._cacheTile$(e)});return 0===n.length&&n.push(i.Observable.of(this)),i.Observable.from(n).mergeAll().last().mergeMap(function(n){for(var o=[],a=[],s=0,c=r._nodeIndex.search({maxX:t.lat,maxY:t.lon,minX:e.lat,minY:e.lon}).map(function(e){return e.node});s<c.length;s++){var u=c[s];u.full?o.push(u):a.push(u.key)}for(var h=[];a.length>0;)h.push(a.splice(0,200));var l=i.Observable.of(o),p=h.map(function(e){return r._apiV3.imageByKeyFill$(e).map(function(e){var t=[];for(var n in e)if(e.hasOwnProperty(n)&&r.hasNode(n)){var i=r.getNode(n);i.full||r._makeFull(i,e[n]),t.push(i)}return t})});return i.Observable.merge(l,i.Observable.from(p).mergeAll())}).reduce(function(e,t){return e.concat(t)})},e.prototype.cacheFill$=function(e){var t=this;if(e in this._cachingFull$)throw new s.GraphMapillaryError("Cannot fill node while caching full ("+e+").");if(!this.hasNode(e))throw new s.GraphMapillaryError("Cannot fill node that does not exist in graph ("+e+").");if(e in this._cachingFill$)return this._cachingFill$[e];var r=this.getNode(e);if(r.full)throw new s.GraphMapillaryError("Cannot fill node that is already full ("+e+").");return this._cachingFill$[e]=this._apiV3.imageByKeyFill$([e]).do(function(n){r.full||t._makeFull(r,n[e]),delete t._cachingFill$[e]}).map(function(e){return t}).finally(function(){e in t._cachingFill$&&delete t._cachingFill$[e],t._changed$.next(t)}).publish().refCount(),this._cachingFill$[e]},e.prototype.cacheFull$=function(e){var t=this;if(e in this._cachingFull$)return this._cachingFull$[e];if(this.hasNode(e))throw new s.GraphMapillaryError("Cannot cache full node that already exist in graph ("+e+").");return this._cachingFull$[e]=this._apiV3.imageByKeyFull$([e]).do(function(r){var n=r[e];if(t.hasNode(e)){(i=t.getNode(e)).full||t._makeFull(i,n)}else{if(null==n.sequence_key)throw new s.GraphMapillaryError("Node has no sequence key ("+e+").");var i=new c.Node(n);t._makeFull(i,n);var o=t._graphCalculator.encodeH(i.originalLatLon,t._tilePrecision);t._preStore(o,i),t._setNode(i),delete t._cachingFull$[e]}}).map(function(e){return t}).finally(function(){e in t._cachingFull$&&delete t._cachingFull$[e],t._changed$.next(t)}).publish().refCount(),this._cachingFull$[e]},e.prototype.cacheNodeSequence$=function(e){if(!this.hasNode(e))throw new s.GraphMapillaryError("Cannot cache sequence edges of node that does not exist in graph ("+e+").");var t=this.getNode(e);if(t.sequenceKey in this._sequences)throw new s.GraphMapillaryError("Sequence already cached ("+e+"), ("+t.sequenceKey+").");return this._cacheSequence$(t.sequenceKey)},e.prototype.cacheSequence$=function(e){if(e in this._sequences)throw new s.GraphMapillaryError("Sequence already cached ("+e+")");return this._cacheSequence$(e)},e.prototype.cacheSequenceEdges=function(e){var t=this.getNode(e);if(!(t.sequenceKey in this._sequences))throw new s.GraphMapillaryError("Sequence is not cached ("+e+"), ("+t.sequenceKey+")");var r=this._sequences[t.sequenceKey].sequence,n=this._edgeCalculator.computeSequenceEdges(t,r);t.cacheSequenceEdges(n)},e.prototype.cacheSequenceNodes$=function(e,t){var r=this;if(!this.hasSequence(e))throw new s.GraphMapillaryError("Cannot cache sequence nodes of sequence that does not exist in graph ("+e+").");if(this.hasSequenceNodes(e))throw new s.GraphMapillaryError("Sequence nodes already cached ("+e+").");var n=this.getSequence(e);if(n.key in this._cachingSequenceNodes$)return this._cachingSequenceNodes$[n.key];var o=[],a=n.keys.slice();if(t&&a.length>50){var u=a.indexOf(t),h=Math.max(0,Math.min(u-25,a.length-50));o.push(a.splice(h,50))}for(;a.length>0;)o.push(a.splice(0,200));var l=o.length,p=i.Observable.from(o).mergeMap(function(e){return r._apiV3.imageByKeyFull$(e).do(function(e){for(var t in e)if(e.hasOwnProperty(t)){var n=e[t];if(r.hasNode(t)){(i=r.getNode(n.key)).full||r._makeFull(i,n)}else{null==n.sequence_key&&console.warn("Sequence missing, discarding node ("+n.key+")");var i=new c.Node(n);r._makeFull(i,n);var o=r._graphCalculator.encodeH(i.originalLatLon,r._tilePrecision);r._preStore(o,i),r._setNode(i)}}l--}).map(function(e){return r})},6).last().finally(function(){delete r._cachingSequenceNodes$[n.key],0===l&&(r._cachedSequenceNodes[n.key]=!0)}).publish().refCount();return this._cachingSequenceNodes$[n.key]=p,p},e.prototype.cacheSpatialArea$=function(e){var t=this;if(!this.hasNode(e))throw new s.GraphMapillaryError("Cannot cache spatial area of node that does not exist in graph ("+e+").");if(e in this._cachedSpatialEdges)throw new s.GraphMapillaryError("Node already spatially cached ("+e+").");if(!(e in this._requiredSpatialArea))throw new s.GraphMapillaryError("Spatial area not determined ("+e+").");var r=this._requiredSpatialArea[e];if(0===Object.keys(r.cacheNodes).length)throw new s.GraphMapillaryError("Spatial nodes already cached ("+e+").");if(e in this._cachingSpatialArea$)return this._cachingSpatialArea$[e];for(var n=[];r.cacheKeys.length>0;)n.push(r.cacheKeys.splice(0,200));for(var i=n.length,o=[],a=function(n){var a=c._apiV3.imageByKeyFill$(n).do(function(n){for(var o in n)if(n.hasOwnProperty(o)){var a=r.cacheNodes[o];if(a.full)delete r.cacheNodes[o];else{var s=n[o];t._makeFull(a,s),delete r.cacheNodes[o]}}0==--i&&delete t._cachingSpatialArea$[e]}).map(function(e){return t}).catch(function(o){for(var a=0,s=n;a<s.length;a++){var c=s[a];c in r.all&&delete r.all[c],c in r.cacheNodes&&delete r.cacheNodes[c]}throw 0==--i&&delete t._cachingSpatialArea$[e],o}).finally(function(){0===Object.keys(r.cacheNodes).length&&t._changed$.next(t)}).publish().refCount();o.push(a)},c=this,u=0,h=n;u<h.length;u++){a(h[u])}return this._cachingSpatialArea$[e]=o,o},e.prototype.cacheSpatialEdges=function(e){if(e in this._cachedSpatialEdges)throw new s.GraphMapillaryError("Spatial edges already cached ("+e+").");var t=this.getNode(e),r=this._sequences[t.sequenceKey].sequence,n=[],i=r.findPrevKey(t.key);null!=i&&n.push(i);var o=r.findNextKey(t.key);null!=o&&n.push(o);var a=this._requiredSpatialArea[e].all,c=[],u=this._filter;for(var h in a)if(a.hasOwnProperty(h)){var l=a[h];u(l)&&c.push(l)}var p=this._edgeCalculator.getPotentialEdges(t,c,n),d=this._edgeCalculator.computeStepEdges(t,p,i,o);d=(d=(d=(d=d.concat(this._edgeCalculator.computeTurnEdges(t,p))).concat(this._edgeCalculator.computePanoEdges(t,p))).concat(this._edgeCalculator.computePerspectiveToPanoEdges(t,p))).concat(this._edgeCalculator.computeSimilarEdges(t,p)),t.cacheSpatialEdges(d),this._cachedSpatialEdges[e]=t,delete this._requiredSpatialArea[e],delete this._cachedNodeTiles[e]},e.prototype.cacheTiles$=function(e){var t=this;if(e in this._cachedNodeTiles)throw new s.GraphMapillaryError("Tiles already cached ("+e+").");if(e in this._cachedSpatialEdges)throw new s.GraphMapillaryError("Spatial edges already cached so tiles considered cached ("+e+").");if(!(e in this._requiredNodeTiles))throw new s.GraphMapillaryError("Tiles have not been determined ("+e+").");var r=this._requiredNodeTiles[e];if(0===r.cache.length&&0===r.caching.length)throw new s.GraphMapillaryError("Tiles already cached ("+e+").");if(!this.hasNode(e))throw new s.GraphMapillaryError("Cannot cache tiles of node that does not exist in graph ("+e+").");var n=r.cache.slice();r.caching=this._requiredNodeTiles[e].caching.concat(n),r.cache=[];for(var i=[],o=function(n){var o=n in a._cachingTiles$?a._cachingTiles$[n]:a._cacheTile$(n);i.push(o.do(function(i){var o=r.caching.indexOf(n);o>-1&&r.caching.splice(o,1),0===r.caching.length&&0===r.cache.length&&(delete t._requiredNodeTiles[e],t._cachedNodeTiles[e]=!0)}).catch(function(i){var o=r.caching.indexOf(n);throw o>-1&&r.caching.splice(o,1),0===r.caching.length&&0===r.cache.length&&(delete t._requiredNodeTiles[e],t._cachedNodeTiles[e]=!0),i}).finally(function(){t._changed$.next(t)}).publish().refCount())},a=this,c=0,u=r.caching;c<u.length;c++){o(u[c])}return i},e.prototype.initializeCache=function(e){if(e in this._cachedNodes)throw new s.GraphMapillaryError("Node already in cache ("+e+").");var t=this.getNode(e);t.initializeCache(new c.NodeCache);var r=(new Date).getTime();this._cachedNodes[e]={accessed:r,node:t},this._updateCachedTileAccess(e,r)},e.prototype.isCachingFill=function(e){return e in this._cachingFill$},e.prototype.isCachingFull=function(e){return e in this._cachingFull$},e.prototype.isCachingNodeSequence=function(e){return this.getNode(e).sequenceKey in this._cachingSequences$},e.prototype.isCachingSequence=function(e){return e in this._cachingSequences$},e.prototype.isCachingSequenceNodes=function(e){return e in this._cachingSequenceNodes$},e.prototype.isCachingTiles=function(e){return e in this._requiredNodeTiles&&0===this._requiredNodeTiles[e].cache.length&&this._requiredNodeTiles[e].caching.length>0},e.prototype.hasInitializedCache=function(e){return e in this._cachedNodes},e.prototype.hasNode=function(e){var t=(new Date).getTime();return this._updateCachedNodeAccess(e,t),this._updateCachedTileAccess(e,t),e in this._nodes},e.prototype.hasNodeSequence=function(e){var t=this.getNode(e).sequenceKey,r=t in this._sequences;return r&&(this._sequences[t].accessed=(new Date).getTime()),r},e.prototype.hasSequence=function(e){var t=e in this._sequences;return t&&(this._sequences[e].accessed=(new Date).getTime()),t},e.prototype.hasSequenceNodes=function(e){return e in this._cachedSequenceNodes},e.prototype.hasSpatialArea=function(e){if(!this.hasNode(e))throw new s.GraphMapillaryError("Spatial area nodes cannot be determined if node not in graph ("+e+").");if(e in this._cachedSpatialEdges)return!0;if(e in this._requiredSpatialArea)return 0===Object.keys(this._requiredSpatialArea[e].cacheNodes).length;for(var t=this.getNode(e),r=this._graphCalculator.boundingBoxCorners(t.latLon,this._tileThreshold),n={all:{},cacheKeys:[],cacheNodes:{}},i=0,o=this._nodeIndex.search({maxX:r[1].lat,maxY:r[1].lon,minX:r[0].lat,minY:r[0].lon});i<o.length;i++){var a=o[i];n.all[a.node.key]=a.node,a.node.full||(n.cacheKeys.push(a.node.key),n.cacheNodes[a.node.key]=a.node)}return this._requiredSpatialArea[e]=n,0===n.cacheKeys.length},e.prototype.hasTiles=function(e){var t=this;if(e in this._cachedNodeTiles)return!0;if(e in this._cachedSpatialEdges)return!0;if(!this.hasNode(e))throw new s.GraphMapillaryError("Node does not exist in graph ("+e+").");var r={cache:[],caching:[]};if(e in this._requiredNodeTiles)r=this._requiredNodeTiles[e];else{var n=this.getNode(e);r.cache=this._graphCalculator.encodeHs(n.latLon,this._tilePrecision,this._tileThreshold).filter(function(e){return!(e in t._cachedTiles)}),r.cache.length>0&&(this._requiredNodeTiles[e]=r)}return 0===r.cache.length&&0===r.caching.length},e.prototype.getNode=function(e){var t=(new Date).getTime();return this._updateCachedNodeAccess(e,t),this._updateCachedTileAccess(e,t),this._nodes[e]},e.prototype.getSequence=function(e){var t=this._sequences[e];return t.accessed=(new Date).getTime(),t.sequence},e.prototype.resetSpatialEdges=function(){for(var e=0,t=Object.keys(this._cachedSpatialEdges);e<t.length;e++){var r=t[e];this._cachedSpatialEdges[r].resetSpatialEdges(),delete this._cachedSpatialEdges[r]}},e.prototype.reset=function(e){for(var t=[],r=0,n=e;r<n.length;r++){var i=n[r];if(!this.hasNode(i))throw new Error("Node does not exist "+i);(h=this.getNode(i)).resetSequenceEdges(),h.resetSpatialEdges(),t.push(h)}for(var o=0,a=Object.keys(this._cachedNodes);o<a.length;o++){var s=a[o];-1===e.indexOf(s)&&(this._cachedNodes[s].node.dispose(),delete this._cachedNodes[s])}this._cachedNodeTiles={},this._cachedSpatialEdges={},this._cachedTiles={},this._cachingFill$={},this._cachingFull$={},this._cachingSequences$={},this._cachingSpatialArea$={},this._cachingTiles$={},this._nodes={},this._nodeToTile={},this._preStored={};for(var c=0,u=t;c<u.length;c++){var h=u[c];this._nodes[h.key]=h;var l=this._graphCalculator.encodeH(h.originalLatLon,this._tilePrecision);this._preStore(l,h)}this._requiredNodeTiles={},this._requiredSpatialArea={},this._sequences={},this._nodeIndexTiles={},this._nodeIndex.clear()},e.prototype.setFilter=function(e){this._filter=this._filterCreator.createFilter(e)},e.prototype.uncache=function(e,t){var r={};this._addNewKeys(r,this._cachingFull$),this._addNewKeys(r,this._cachingFill$),this._addNewKeys(r,this._cachingSpatialArea$),this._addNewKeys(r,this._requiredNodeTiles),this._addNewKeys(r,this._requiredSpatialArea);for(var n=0,i=e;n<i.length;n++){(a=i[n])in r||(r[a]=!0)}var o={};for(var a in r)if(r.hasOwnProperty(a))for(var s=this._nodes[a],c=0,u=this._graphCalculator.encodeHs(s.latLon);c<u.length;c++){var h=u[c];h in o||(o[h]=!0)}var l=[];for(var p in this._cachedTiles)!this._cachedTiles.hasOwnProperty(p)||p in o||l.push([p,this._cachedTiles[p]]);for(var d=0,f=l.sort(function(e,t){return t[1].accessed-e[1].accessed}).slice(this._configuration.maxUnusedTiles).map(function(e){return e[0]});d<f.length;d++){var m=f[d];this._uncacheTile(m,t)}var v=[],g=[];for(var p in this._preStored)if(this._preStored.hasOwnProperty(p)&&!(p in this._cachingTiles$)){var y=this._preStored[p];for(var a in y)!y.hasOwnProperty(a)||a in r||y[a].sequenceKey!==t&&(a in this._cachedNodes?v.push([this._cachedNodes[a],p]):g.push([a,p]))}var b=v.sort(function(e,t){var r=e[0],n=(e[1],t[0]);t[1];return n.accessed-r.accessed}).slice(this._configuration.maxUnusedPreStoredNodes).map(function(e){var t=e[0],r=e[1];return[t.node.key,r]});this._uncachePreStored(g),this._uncachePreStored(b);var _=[];for(var a in this._cachedNodes)!this._cachedNodes.hasOwnProperty(a)||a in r||_.push(this._cachedNodes[a]);for(var x=0,w=_.sort(function(e,t){return t.accessed-e.accessed}).slice(this._configuration.maxUnusedNodes);x<w.length;x++){var S=w[x];S.node.uncache();a=S.node.key;delete this._cachedNodes[a],a in this._cachedNodeTiles&&delete this._cachedNodeTiles[a],a in this._cachedSpatialEdges&&delete this._cachedSpatialEdges[a]}var M=[];for(var E in this._sequences)!this._sequences.hasOwnProperty(E)||E in this._cachingSequences$||E===t||M.push(this._sequences[E]);for(var C=0,T=M.sort(function(e,t){return t.accessed-e.accessed}).slice(this._configuration.maxSequences);C<T.length;C++){var O=T[C],E=O.sequence.key;delete this._sequences[E],E in this._cachedSequenceNodes&&delete this._cachedSequenceNodes[E],O.sequence.dispose()}},e.prototype._addNewKeys=function(e,t){for(var r in t)t.hasOwnProperty(r)&&this.hasNode(r)&&(r in e||(e[r]=!0))},e.prototype._cacheSequence$=function(e){var t=this;return e in this._cachingSequences$?this._cachingSequences$[e]:(this._cachingSequences$[e]=this._apiV3.sequenceByKey$([e]).do(function(r){e in t._sequences||(t._sequences[e]={accessed:(new Date).getTime(),sequence:new c.Sequence(r[e])}),delete t._cachingSequences$[e]}).map(function(e){return t}).finally(function(){e in t._cachingSequences$&&delete t._cachingSequences$[e],t._changed$.next(t)}).publish().refCount(),this._cachingSequences$[e])},e.prototype._cacheTile$=function(e){var t=this;return this._cachingTiles$[e]=this._apiV3.imagesByH$([e]).do(function(r){var n=r[e];if(!(e in t._cachedTiles)){t._nodeIndexTiles[e]=[],t._cachedTiles[e]={accessed:(new Date).getTime(),nodes:[]};var i=t._cachedTiles[e].nodes,o=t._removeFromPreStore(e);for(var a in n)if(n.hasOwnProperty(a)){var s=n[a];if(null==s)break;if(null!=s.sequence_key)if(null!=o&&s.key in o){var u=o[s.key];delete o[s.key],i.push(u);var h={lat:u.latLon.lat,lon:u.latLon.lon,node:u};t._nodeIndex.insert(h),t._nodeIndexTiles[e].push(h),t._nodeToTile[u.key]=e}else{var l=new c.Node(s);i.push(l);var p={lat:l.latLon.lat,lon:l.latLon.lon,node:l};t._nodeIndex.insert(p),t._nodeIndexTiles[e].push(p),t._nodeToTile[l.key]=e,t._setNode(l)}else console.warn("Sequence missing, discarding node ("+s.key+")")}delete t._cachingTiles$[e]}}).map(function(e){return t}).catch(function(r){throw delete t._cachingTiles$[e],r}).publish().refCount(),this._cachingTiles$[e]},e.prototype._makeFull=function(e,t){null==t.calt&&(t.calt=this._defaultAlt),null==t.c_rotation&&(t.c_rotation=this._graphCalculator.rotationFromCompass(t.ca,t.orientation)),e.makeFull(t)},e.prototype._preStore=function(e,t){e in this._preStored||(this._preStored[e]={}),this._preStored[e][t.key]=t},e.prototype._removeFromPreStore=function(e){var t=null;return e in this._preStored&&(t=this._preStored[e],delete this._preStored[e]),t},e.prototype._setNode=function(e){var t=e.key;if(this.hasNode(t))throw new s.GraphMapillaryError("Node already exist ("+t+").");this._nodes[t]=e},e.prototype._uncacheTile=function(e,t){for(var r=0,n=this._cachedTiles[e].nodes;r<n.length;r++){var i=n[r],o=i.key;delete this._nodeToTile[o],o in this._cachedNodes&&delete this._cachedNodes[o],o in this._cachedNodeTiles&&delete this._cachedNodeTiles[o],o in this._cachedSpatialEdges&&delete this._cachedSpatialEdges[o],i.sequenceKey===t?(this._preStore(e,i),i.uncache()):(delete this._nodes[o],i.sequenceKey in this._cachedSequenceNodes&&delete this._cachedSequenceNodes[i.sequenceKey],i.dispose())}for(var a=0,s=this._nodeIndexTiles[e];a<s.length;a++){var c=s[a];this._nodeIndex.remove(c)}delete this._nodeIndexTiles[e],delete this._cachedTiles[e]},e.prototype._uncachePreStored=function(e){for(var t={},r=0,n=e;r<n.length;r++){var i=n[r],o=i[0],a=i[1];o in this._nodes&&delete this._nodes[o],o in this._cachedNodes&&delete this._cachedNodes[o];var s=this._preStored[a][o];s.sequenceKey in this._cachedSequenceNodes&&delete this._cachedSequenceNodes[s.sequenceKey],delete this._preStored[a][o],s.dispose(),t[a]=!0}for(var a in t)t.hasOwnProperty(a)&&0===Object.keys(this._preStored[a]).length&&delete this._preStored[a]},e.prototype._updateCachedTileAccess=function(e,t){e in this._nodeToTile&&(this._cachedTiles[this._nodeToTile[e]].accessed=t)},e.prototype._updateCachedNodeAccess=function(e,t){e in this._cachedNodes&&(this._cachedNodes[e].accessed=t)},e}();r.Graph=u,r.default=u},{"../Edge":292,"../Error":293,"../Graph":295,rbush:25,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/from":42,"rxjs/add/operator/catch":54,"rxjs/add/operator/do":61,"rxjs/add/operator/finally":64,"rxjs/add/operator/last":66,"rxjs/add/operator/map":67,"rxjs/add/operator/publish":73,"rxjs/add/operator/reduce":75}],394:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("latlon-geohash"),i=e("three"),o=e("../Error"),a=e("../Geo"),s=function(){function e(){}return e.n="n",e.nw="nw",e.w="w",e.sw="sw",e.s="s",e.se="se",e.e="e",e.ne="ne",e}(),c=function(){function e(e){this._geoCoords=null!=e?e:new a.GeoCoords}return e.prototype.encodeH=function(e,t){return void 0===t&&(t=7),n.encode(e.lat,e.lon,t)},e.prototype.encodeHs=function(e,t,r){void 0===t&&(t=7),void 0===r&&(r=20);var i=n.encode(e.lat,e.lon,t),o=n.bounds(i),a=o.ne,c=o.sw,u=n.neighbours(i),h=[0,0,0],l=this._geoCoords.geodeticToEnu(a.lat,a.lon,0,c.lat,c.lon,0),p=this._geoCoords.geodeticToEnu(e.lat,e.lon,0,c.lat,c.lon,0),d=p[0]-h[0]<r,f=l[0]-p[0]<r,m=p[1]-h[1]<r,v=l[1]-p[1]<r,g=[i];return v&&g.push(u[s.n]),v&&d&&g.push(u[s.nw]),d&&g.push(u[s.w]),d&&m&&g.push(u[s.sw]),m&&g.push(u[s.s]),m&&f&&g.push(u[s.se]),f&&g.push(u[s.e]),f&&v&&g.push(u[s.ne]),g},e.prototype.encodeHsFromBoundingBox=function(e,t,r){if(void 0===r&&(r=7),t.lat<=e.lat||t.lon<=e.lon)throw new o.GraphMapillaryError("North east needs to be top right of south west");var n=(e.lat+t.lat)/2,i=(e.lon+t.lon)/2,a=this._geoCoords.geodeticToEnu(t.lat,t.lon,0,n,i,0),s=Math.max(a[0],a[1]);return this.encodeHs({lat:n,lon:i},r,s)},e.prototype.boundingBoxCorners=function(e,t){var r=this._geoCoords.enuToGeodetic(-t,-t,0,e.lat,e.lon,0),n=this._geoCoords.enuToGeodetic(t,t,0,e.lat,e.lon,0);return[{lat:r[0],lon:r[1]},{lat:n[0],lon:n[1]}]},e.prototype.rotationFromCompass=function(e,t){var r=0,n=0,o=0;switch(t){case 1:r=Math.PI/2;break;case 3:r=-Math.PI/2,o=Math.PI;break;case 6:n=-Math.PI/2,o=-Math.PI/2;break;case 8:n=Math.PI/2,o=Math.PI/2}var a=(new i.Matrix4).makeRotationZ(o),s=new i.Euler(r,n,e*Math.PI/180,"XYZ"),c=(new i.Matrix4).makeRotationFromEuler(s),u=(new i.Vector4).setAxisAngleFromRotationMatrix(c.multiply(a));return u.multiplyScalar(u.w).toArray().slice(0,3)},e}();r.GraphCalculator=c,r.default=c},{"../Error":293,"../Geo":294,"latlon-geohash":21,three:241}],395:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Sequence=0]="Sequence",e[e.Spatial=1]="Spatial"}(n=r.GraphMode||(r.GraphMode={})),r.default=n},{}],396:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=e("rxjs/Subject");e("rxjs/add/operator/catch"),e("rxjs/add/operator/concat"),e("rxjs/add/operator/do"),e("rxjs/add/operator/expand"),e("rxjs/add/operator/finally"),e("rxjs/add/operator/first"),e("rxjs/add/operator/last"),e("rxjs/add/operator/map"),e("rxjs/add/operator/mergeMap"),e("rxjs/add/operator/publishReplay");var o=e("../Graph"),a=function(){function e(e,t){this._graph$=n.Observable.of(e).concat(e.changed$).publishReplay(1).refCount(),this._graph$.subscribe(function(){}),this._graphMode=o.GraphMode.Spatial,this._graphModeSubject$=new i.Subject,this._graphMode$=this._graphModeSubject$.startWith(this._graphMode).publishReplay(1).refCount(),this._graphMode$.subscribe(function(){}),this._imageLoadingService=t,this._firstGraphSubjects$=[],this._initializeCacheSubscriptions=[],this._sequenceSubscriptions=[],this._spatialSubscriptions=[]}return Object.defineProperty(e.prototype,"graphMode$",{get:function(){return this._graphMode$},enumerable:!0,configurable:!0}),e.prototype.cacheBoundingBox$=function(e,t){return this._graph$.first().mergeMap(function(r){return r.cacheBoundingBox$(e,t)})},e.prototype.cacheNode$=function(e){var t=this,r=new i.Subject;this._firstGraphSubjects$.push(r);var a=r.publishReplay(1).refCount(),s=a.map(function(t){return t.getNode(e)}).mergeMap(function(e){return e.assetsCached?n.Observable.of(e):e.cacheAssets$()}).publishReplay(1).refCount();s.subscribe(function(e){t._imageLoadingService.loadnode$.next(e)},function(t){console.error("Failed to cache node ("+e+")",t)});var c=this._graph$.first().mergeMap(function(t){return t.isCachingFull(e)||!t.hasNode(e)?t.cacheFull$(e):t.isCachingFill(e)||!t.getNode(e).full?t.cacheFill$(e):n.Observable.of(t)}).do(function(t){t.hasInitializedCache(e)||t.initializeCache(e)}).finally(function(){null!=c&&(t._removeFromArray(c,t._initializeCacheSubscriptions),t._removeFromArray(r,t._firstGraphSubjects$))}).subscribe(function(e){r.next(e),r.complete()},function(e){r.error(e)});c.closed||this._initializeCacheSubscriptions.push(c);var u=a.mergeMap(function(t){return t.isCachingNodeSequence(e)||!t.hasNodeSequence(e)?t.cacheNodeSequence$(e):n.Observable.of(t)}).publishReplay(1).refCount().do(function(t){t.getNode(e).sequenceEdges.cached||t.cacheSequenceEdges(e)}).finally(function(){null!=u&&t._removeFromArray(u,t._sequenceSubscriptions)}).subscribe(function(e){},function(t){console.error("Failed to cache sequence edges ("+e+").",t)});if(u.closed||this._sequenceSubscriptions.push(u),this._graphMode===o.GraphMode.Spatial){var h=a.expand(function(t){return t.hasTiles(e)?n.Observable.empty():n.Observable.from(t.cacheTiles$(e)).mergeMap(function(t){return t.mergeMap(function(t){return t.isCachingTiles(e)?n.Observable.empty():n.Observable.of(t)}).catch(function(t,r){return console.error("Failed to cache tile data ("+e+").",t),n.Observable.empty()})})}).last().mergeMap(function(t){return t.hasSpatialArea(e)?n.Observable.of(t):n.Observable.from(t.cacheSpatialArea$(e)).mergeMap(function(t){return t.catch(function(t,r){return console.error("Failed to cache spatial nodes ("+e+").",t),n.Observable.empty()})})}).last().mergeMap(function(t){return t.hasNodeSequence(e)?n.Observable.of(t):t.cacheNodeSequence$(e)}).do(function(t){t.getNode(e).spatialEdges.cached||t.cacheSpatialEdges(e)}).finally(function(){null!=h&&t._removeFromArray(h,t._spatialSubscriptions)}).subscribe(function(e){},function(t){console.error("Failed to cache spatial edges ("+e+").",t)});h.closed||this._spatialSubscriptions.push(h)}return s.first(function(e){return e.assetsCached})},e.prototype.cacheSequence$=function(e){return this._graph$.first().mergeMap(function(t){return t.isCachingSequence(e)||!t.hasSequence(e)?t.cacheSequence$(e):n.Observable.of(t)}).map(function(t){return t.getSequence(e)})},e.prototype.cacheSequenceNodes$=function(e,t){return this._graph$.first().mergeMap(function(t){return t.isCachingSequence(e)||!t.hasSequence(e)?t.cacheSequence$(e):n.Observable.of(t)}).mergeMap(function(r){return r.isCachingSequenceNodes(e)||!r.hasSequenceNodes(e)?r.cacheSequenceNodes$(e,t):n.Observable.of(r)}).map(function(t){return t.getSequence(e)})},e.prototype.setFilter$=function(e){return this._resetSubscriptions(this._spatialSubscriptions),this._graph$.first().do(function(t){t.resetSpatialEdges(),t.setFilter(e)}).map(function(e){})},e.prototype.setGraphMode=function(e){this._graphMode!==e&&(e===o.GraphMode.Sequence&&this._resetSubscriptions(this._spatialSubscriptions),this._graphMode=e,this._graphModeSubject$.next(this._graphMode))},e.prototype.reset$=function(e){return this._abortSubjects(this._firstGraphSubjects$),this._resetSubscriptions(this._initializeCacheSubscriptions),this._resetSubscriptions(this._sequenceSubscriptions),this._resetSubscriptions(this._spatialSubscriptions),this._graph$.first().do(function(t){t.reset(e)}).map(function(e){})},e.prototype.uncache$=function(e,t){return this._graph$.first().do(function(r){r.uncache(e,t)}).map(function(e){})},e.prototype._abortSubjects=function(e){for(var t=0,r=e.slice();t<r.length;t++){var n=r[t];this._removeFromArray(n,e),n.error(new Error("Cache node request was aborted."))}},e.prototype._removeFromArray=function(e,t){var r=t.indexOf(e);-1!==r&&t.splice(r,1)},e.prototype._resetSubscriptions=function(e){for(var t=0,r=e.slice();t<r.length;t++){var n=r[t];this._removeFromArray(n,e),n.closed||n.unsubscribe()}},e}();r.GraphService=a,r.default=a},{"../Graph":295,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/operator/catch":54,"rxjs/add/operator/concat":56,"rxjs/add/operator/do":61,"rxjs/add/operator/expand":62,"rxjs/add/operator/finally":64,"rxjs/add/operator/first":65,"rxjs/add/operator/last":66,"rxjs/add/operator/map":67,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/publishReplay":74}],397:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=function(){function e(){this._loadnode$=new n.Subject,this._loadstatus$=this._loadnode$.scan(function(e,t){var r=e[0],n=!1;return 0===t.loadStatus.total||t.loadStatus.loaded===t.loadStatus.total?t.key in r&&(delete r[t.key],n=!0):(r[t.key]=t.loadStatus,n=!0),[r,n]},[{},!1]).filter(function(e){e[0];return e[1]}).map(function(e){return e[0]}).publishReplay(1).refCount(),this._loadstatus$.subscribe(function(){})}return Object.defineProperty(e.prototype,"loadnode$",{get:function(){return this._loadnode$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loadstatus$",{get:function(){return this._loadstatus$},enumerable:!0,configurable:!0}),e}();r.ImageLoadingService=i},{"rxjs/Subject":34}],398:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("pbf"),i=function(){function e(){}return e.read=function(t){return new n(t).readFields(e._readMeshField,{faces:[],vertices:[]})},e._readMeshField=function(e,t,r){1===e?t.vertices.push(r.readFloat()):2===e&&t.faces.push(r.readVarint())},e}();r.MeshReader=i},{pbf:23}],399:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),e("rxjs/add/observable/combineLatest"),e("rxjs/add/operator/map");var n=function(){function e(e){this._cache=null,this._core=e,this._fill=null}return Object.defineProperty(e.prototype,"assetsCached",{get:function(){return null!=this._core&&null!=this._fill&&null!=this._cache&&null!=this._cache.image&&null!=this._cache.mesh},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"alt",{get:function(){return this._fill.calt},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ca",{get:function(){return null!=this._fill.cca?this._fill.cca:this._fill.ca},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"capturedAt",{get:function(){return this._fill.captured_at},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cameraUuid",{get:function(){return this._fill.captured_with_camera_uuid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"computedCA",{get:function(){return this._fill.cca},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"computedLatLon",{get:function(){return this._core.cl},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"focal",{get:function(){return this._fill.cfocal},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"full",{get:function(){return null!=this._fill},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullPano",{get:function(){return null!=this._fill.gpano&&0===this._fill.gpano.CroppedAreaLeftPixels&&0===this._fill.gpano.CroppedAreaTopPixels&&this._fill.gpano.CroppedAreaImageWidthPixels===this._fill.gpano.FullPanoWidthPixels&&this._fill.gpano.CroppedAreaImageHeightPixels===this._fill.gpano.FullPanoHeightPixels},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gpano",{get:function(){return this._fill.gpano},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this._fill.height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"image",{get:function(){return this._cache.image},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"key",{get:function(){return this._core.key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"latLon",{get:function(){return null!=this._core.cl?this._core.cl:this._core.l},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loadStatus",{get:function(){return this._cache.loadStatus},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"merged",{get:function(){return null!=this._fill&&null!=this._fill.merge_version&&this._fill.merge_version>0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mergeCC",{get:function(){return this._fill.merge_cc},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mergeVersion",{get:function(){return this._fill.merge_version},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mesh",{get:function(){return this._cache.mesh},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"organizationKey",{get:function(){return this._fill.organization_key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orientation",{get:function(){return this._fill.orientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"originalCA",{get:function(){return this._fill.ca},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"originalLatLon",{get:function(){return this._core.l},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pano",{get:function(){return null!=this._fill.gpano&&null!=this._fill.gpano.FullPanoWidthPixels},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"private",{get:function(){return this._fill.private},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"projectKey",{get:function(){return null!=this._fill.project?this._fill.project.key:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rotation",{get:function(){return this._fill.c_rotation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scale",{get:function(){return this._fill.atomic_scale},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sequenceKey",{get:function(){return this._core.sequence_key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sequenceEdges",{get:function(){return this._cache.sequenceEdges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sequenceEdges$",{get:function(){return this._cache.sequenceEdges$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"spatialEdges",{get:function(){return this._cache.spatialEdges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"spatialEdges$",{get:function(){return this._cache.spatialEdges$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"userKey",{get:function(){return this._fill.user.key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"username",{get:function(){return this._fill.user.username},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this._fill.width},enumerable:!0,configurable:!0}),e.prototype.cacheAssets$=function(){var e=this;return this._cache.cacheAssets$(this.key,this.pano,this.merged).map(function(t){return e})},e.prototype.cacheImage$=function(e){var t=this;return this._cache.cacheImage$(this.key,e).map(function(e){return t})},e.prototype.cacheSequenceEdges=function(e){this._cache.cacheSequenceEdges(e)},e.prototype.cacheSpatialEdges=function(e){this._cache.cacheSpatialEdges(e)},e.prototype.dispose=function(){null!=this._cache&&(this._cache.dispose(),this._cache=null),this._core=null,this._fill=null},e.prototype.initializeCache=function(e){if(null!=this._cache)throw new Error("Node cache already initialized ("+this.key+").");this._cache=e},e.prototype.makeFull=function(e){if(null==e)throw new Error("Fill can not be null.");this._fill=e},e.prototype.resetSequenceEdges=function(){this._cache.resetSequenceEdges()},e.prototype.resetSpatialEdges=function(){this._cache.resetSpatialEdges()},e.prototype.uncache=function(){null!=this._cache&&(this._cache.dispose(),this._cache=null)},e}();r.Node=n,r.default=n},{"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/map":67}],400:[function(e,t,r){(function(t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=e("rxjs/Observable");e("rxjs/add/observable/combineLatest"),e("rxjs/add/operator/publishReplay");var o=e("../Graph"),a=e("../Utils"),s=function(){function e(){this._disposed=!1,this._image=null,this._loadStatus={loaded:0,total:0},this._mesh=null,this._sequenceEdges={cached:!1,edges:[]},this._spatialEdges={cached:!1,edges:[]},this._sequenceEdgesChanged$=new n.Subject,this._sequenceEdges$=this._sequenceEdgesChanged$.startWith(this._sequenceEdges).publishReplay(1).refCount(),this._sequenceEdgesSubscription=this._sequenceEdges$.subscribe(function(){}),this._spatialEdgesChanged$=new n.Subject,this._spatialEdges$=this._spatialEdgesChanged$.startWith(this._spatialEdges).publishReplay(1).refCount(),this._spatialEdgesSubscription=this._spatialEdges$.subscribe(function(){}),this._cachingAssets$=null}return Object.defineProperty(e.prototype,"image",{get:function(){return this._image},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loadStatus",{get:function(){return this._loadStatus},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mesh",{get:function(){return this._mesh},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sequenceEdges",{get:function(){return this._sequenceEdges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sequenceEdges$",{get:function(){return this._sequenceEdges$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"spatialEdges",{get:function(){return this._spatialEdges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"spatialEdges$",{get:function(){return this._spatialEdges$},enumerable:!0,configurable:!0}),e.prototype.cacheAssets$=function(e,t,r){var n=this;if(null!=this._cachingAssets$)return this._cachingAssets$;var o=t?a.Settings.basePanoramaSize:a.Settings.baseImageSize;return this._cachingAssets$=i.Observable.combineLatest(this._cacheImage$(e,o),this._cacheMesh$(e,r),function(e,t){return n._loadStatus.loaded=0,n._loadStatus.total=0,t&&(n._mesh=t.object,n._loadStatus.loaded+=t.loaded.loaded,n._loadStatus.total+=t.loaded.total),e&&(n._image=e.object,n._loadStatus.loaded+=e.loaded.loaded,n._loadStatus.total+=e.loaded.total),n}).finally(function(){n._cachingAssets$=null}).publishReplay(1).refCount(),this._cachingAssets$},e.prototype.cacheImage$=function(e,t){var r=this;return null!=this._image&&t<=Math.max(this._image.width,this._image.height)?i.Observable.of(this):this._cacheImage$(e,t).first(function(e){return null!=e.object}).do(function(e){r._disposeImage(),r._image=e.object}).map(function(e){return r})},e.prototype.cacheSequenceEdges=function(e){this._sequenceEdges={cached:!0,edges:e},this._sequenceEdgesChanged$.next(this._sequenceEdges)},e.prototype.cacheSpatialEdges=function(e){this._spatialEdges={cached:!0,edges:e},this._spatialEdgesChanged$.next(this._spatialEdges)},e.prototype.dispose=function(){this._sequenceEdgesSubscription.unsubscribe(),this._spatialEdgesSubscription.unsubscribe(),this._disposeImage(),this._mesh=null,this._loadStatus.loaded=0,this._loadStatus.total=0,this._sequenceEdges={cached:!1,edges:[]},this._spatialEdges={cached:!1,edges:[]},this._sequenceEdgesChanged$.next(this._sequenceEdges),this._spatialEdgesChanged$.next(this._spatialEdges),this._disposed=!0,null!=this._imageRequest&&this._imageRequest.abort(),null!=this._meshRequest&&this._meshRequest.abort()},e.prototype.resetSequenceEdges=function(){this._sequenceEdges={cached:!1,edges:[]},this._sequenceEdgesChanged$.next(this._sequenceEdges)},e.prototype.resetSpatialEdges=function(){this._spatialEdges={cached:!1,edges:[]},this._spatialEdgesChanged$.next(this._spatialEdges)},e.prototype._cacheImage$=function(e,t){var r=this;return i.Observable.create(function(n){var i=new XMLHttpRequest;i.open("GET",a.Urls.thumbnail(e,t,a.Urls.origin),!0),i.responseType="arraybuffer",i.timeout=15e3,i.onload=function(t){if(200!==i.status)return r._imageRequest=null,void n.error(new Error("Failed to fetch image ("+e+"). Status: "+i.status+", "+i.statusText));var o=new Image;o.crossOrigin="Anonymous",o.onload=function(i){if(r._imageRequest=null,r._disposed)return window.URL.revokeObjectURL(o.src),void n.error(new Error("Image load was aborted ("+e+")"));n.next({loaded:{loaded:t.loaded,total:t.total},object:o}),n.complete()},o.onerror=function(t){r._imageRequest=null,n.error(new Error("Failed to load image ("+e+")"))};var a=new Blob([i.response]);o.src=window.URL.createObjectURL(a)},i.onprogress=function(e){r._disposed||n.next({loaded:{loaded:e.loaded,total:e.total},object:null})},i.onerror=function(t){r._imageRequest=null,n.error(new Error("Failed to fetch image ("+e+")"))},i.ontimeout=function(t){r._imageRequest=null,n.error(new Error("Image request timed out ("+e+")"))},i.onabort=function(t){r._imageRequest=null,n.error(new Error("Image request was aborted ("+e+")"))},r._imageRequest=i,i.send(null)})},e.prototype._cacheMesh$=function(e,r){var n=this;return i.Observable.create(function(i){if(!r)return i.next(n._createEmptyMeshLoadStatus()),void i.complete();var s=new XMLHttpRequest;s.open("GET",a.Urls.protoMesh(e),!0),s.responseType="arraybuffer",s.timeout=15e3,s.onload=function(e){if(n._meshRequest=null,!n._disposed){var r=200===s.status?o.MeshReader.read(new t(s.response)):{faces:[],vertices:[]};i.next({loaded:{loaded:e.loaded,total:e.total},object:r}),i.complete()}},s.onprogress=function(e){n._disposed||i.next({loaded:{loaded:e.loaded,total:e.total},object:null})},s.onerror=function(t){n._meshRequest=null,console.error("Failed to cache mesh ("+e+")"),i.next(n._createEmptyMeshLoadStatus()),i.complete()},s.ontimeout=function(t){n._meshRequest=null,console.error("Mesh request timed out ("+e+")"),i.next(n._createEmptyMeshLoadStatus()),i.complete()},s.onabort=function(t){n._meshRequest=null,i.error(new Error("Mesh request was aborted ("+e+")"))},n._meshRequest=s,s.send(null)})},e.prototype._createEmptyMeshLoadStatus=function(){return{loaded:{loaded:0,total:0},object:{faces:[],vertices:[]}}},e.prototype._disposeImage=function(){null!=this._image&&window.URL.revokeObjectURL(this._image.src),this._image=null},e}();r.NodeCache=s,r.default=s}).call(this,e("buffer").Buffer)},{"../Graph":295,"../Utils":301,buffer:7,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/publishReplay":74}],401:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("underscore"),i=function(){function e(e){this._key=e.key,this._keys=e.keys}return Object.defineProperty(e.prototype,"key",{get:function(){return this._key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"keys",{get:function(){return this._keys},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._key=null,this._keys=null},e.prototype.findNextKey=function(e){var t=n.indexOf(this._keys,e);return t+1>=this._keys.length||-1===t?null:this._keys[t+1]},e.prototype.findPrevKey=function(e){var t=n.indexOf(this._keys,e);return 0===t||-1===t?null:this._keys[t-1]},e}();r.Sequence=i,r.default=i},{underscore:243}],402:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("../../Edge"),o=e("../../Error"),a=e("../../Geo"),s=function(){function e(e,t,r){this._spatial=new a.Spatial,this._geoCoords=new a.GeoCoords,this._settings=null!=e?e:new i.EdgeCalculatorSettings,this._directions=null!=t?t:new i.EdgeCalculatorDirections,this._coefficients=null!=r?r:new i.EdgeCalculatorCoefficients}return e.prototype.getPotentialEdges=function(e,t,r){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");if(!e.merged)return[];for(var i=this._spatial.viewingDirection(e.rotation),a=this._spatial.angleToPlane(i.toArray(),[0,0,1]),s=[],c=0,u=t;c<u.length;c++){var h=u[c];if(h.merged&&h.key!==e.key){var l=this._geoCoords.geodeticToEnu(h.latLon.lat,h.latLon.lon,h.alt,e.latLon.lat,e.latLon.lon,e.alt),p=new n.Vector3(l[0],l[1],l[2]),d=p.length();if(!(d>this._settings.maxDistance&&r.indexOf(h.key)<0)){var f=this._spatial.angleBetweenVector2(i.x,i.y,p.x,p.y),m=this._spatial.angleToPlane(p.toArray(),[0,0,1]),v=this._spatial.viewingDirection(h.rotation),g=this._spatial.angleBetweenVector2(i.x,i.y,v.x,v.y),y=this._spatial.angleToPlane(v.toArray(),[0,0,1])-a,b=this._spatial.relativeRotationAngle(e.rotation,h.rotation),_=this._spatial.angleBetweenVector2(1,0,p.x,p.y),x=null!=h.sequenceKey&&null!=e.sequenceKey&&h.sequenceKey===e.sequenceKey,w=null==h.mergeCC&&null==e.mergeCC||h.mergeCC===e.mergeCC,S=h.userKey===e.userKey,M={capturedAt:h.capturedAt,croppedPano:h.pano&&!h.fullPano,directionChange:g,distance:d,fullPano:h.fullPano,key:h.key,motionChange:f,rotation:b,sameMergeCC:w,sameSequence:x,sameUser:S,sequenceKey:h.sequenceKey,verticalDirectionChange:y,verticalMotion:m,worldMotionAzimuth:_};s.push(M)}}}return s},e.prototype.computeSequenceEdges=function(e,t){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");if(e.sequenceKey!==t.key)throw new o.ArgumentMapillaryError("Node and sequence does not correspond.");var r=[],n=t.findNextKey(e.key);null!=n&&r.push({data:{direction:i.EdgeDirection.Next,worldMotionAzimuth:Number.NaN},from:e.key,to:n});var a=t.findPrevKey(e.key);return null!=a&&r.push({data:{direction:i.EdgeDirection.Prev,worldMotionAzimuth:Number.NaN},from:e.key,to:a}),r},e.prototype.computeSimilarEdges=function(e,t){var r=this;if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");for(var n=e.fullPano,a={},s=0,c=t;s<c.length;s++){if(null!=(v=c[s]).sequenceKey&&(!v.sameSequence&&v.sameMergeCC)){if(n){if(!v.fullPano)continue}else if(!v.fullPano&&Math.abs(v.directionChange)>this._settings.similarMaxDirectionChange)continue;v.distance>this._settings.similarMaxDistance||v.sameUser&&Math.abs(v.capturedAt-e.capturedAt)<this._settings.similarMinTimeDifference||(null==a[v.sequenceKey]&&(a[v.sequenceKey]=[]),a[v.sequenceKey].push(v))}}var u=[],h=e.fullPano?function(e){return e.distance}:function(e){return r._coefficients.similarDistance*e.distance+r._coefficients.similarRotation*e.rotation};for(var l in a)if(a.hasOwnProperty(l)){for(var p=Number.MAX_VALUE,d=null,f=0,m=a[l];f<m.length;f++){var v=m[f],g=h(v);g<p&&(p=g,d=v)}null!=d&&u.push(d)}return u.map(function(t){return{data:{direction:i.EdgeDirection.Similar,worldMotionAzimuth:t.worldMotionAzimuth},from:e.key,to:t.key}})},e.prototype.computeStepEdges=function(e,t,r,n){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");var i=[];if(e.pano)return i;for(var a in this._directions.steps)if(this._directions.steps.hasOwnProperty(a)){for(var s=this._directions.steps[a],c=Number.MAX_VALUE,u=null,h=null,l=0,p=t;l<p.length;l++){var d=p[l];if(!d.croppedPano&&!d.fullPano&&!(Math.abs(d.directionChange)>this._settings.stepMaxDirectionChange)){var f=this._spatial.angleDifference(s.motionChange,d.motionChange),m=this._spatial.angleDifference(d.directionChange,f),v=Math.max(Math.abs(f),Math.abs(m));if(!(Math.abs(v)>this._settings.stepMaxDrift)){var g=d.key;if(!s.useFallback||g!==r&&g!==n||(h=d),!(d.distance>this._settings.stepMaxDistance)){f=Math.sqrt(f*f+d.verticalMotion*d.verticalMotion);var y=this._coefficients.stepPreferredDistance*Math.abs(d.distance-this._settings.stepPreferredDistance)/this._settings.stepMaxDistance+this._coefficients.stepMotion*f/this._settings.stepMaxDrift+this._coefficients.stepRotation*d.rotation/this._settings.stepMaxDirectionChange+this._coefficients.stepSequencePenalty*(d.sameSequence?0:1)+this._coefficients.stepMergeCCPenalty*(d.sameMergeCC?0:1);y<c&&(c=y,u=d)}}}}null!=(u=null==u?h:u)&&i.push({data:{direction:s.direction,worldMotionAzimuth:u.worldMotionAzimuth},from:e.key,to:u.key})}return i},e.prototype.computeTurnEdges=function(e,t){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");var r=[];if(e.pano)return r;for(var n in this._directions.turns)if(this._directions.turns.hasOwnProperty(n)){for(var a=this._directions.turns[n],s=Number.MAX_VALUE,c=null,u=0,h=t;u<h.length;u++){var l=h[u];if(!l.croppedPano&&!l.fullPano&&!(l.distance>this._settings.turnMaxDistance)){var p=a.direction!==i.EdgeDirection.TurnU&&l.distance<this._settings.turnMaxRigDistance&&Math.abs(l.directionChange)>this._settings.turnMinRigDirectionChange,d=this._spatial.angleDifference(a.directionChange,l.directionChange),f=void 0;if(p&&l.directionChange*a.directionChange>0&&Math.abs(l.directionChange)<Math.abs(a.directionChange))f=-Math.PI/2+Math.abs(l.directionChange);else{if(Math.abs(d)>this._settings.turnMaxDirectionChange)continue;var m=a.motionChange?this._spatial.angleDifference(a.motionChange,l.motionChange):0;m=Math.sqrt(m*m+l.verticalMotion*l.verticalMotion),f=this._coefficients.turnDistance*l.distance/this._settings.turnMaxDistance+this._coefficients.turnMotion*m/Math.PI+this._coefficients.turnSequencePenalty*(l.sameSequence?0:1)+this._coefficients.turnMergeCCPenalty*(l.sameMergeCC?0:1)}f<s&&(s=f,c=l)}}null!=c&&r.push({data:{direction:a.direction,worldMotionAzimuth:c.worldMotionAzimuth},from:e.key,to:c.key})}return r},e.prototype.computePerspectiveToPanoEdges=function(e,t){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");if(e.pano)return[];for(var r=Number.MAX_VALUE,n=null,a=0,s=t;a<s.length;a++){var c=s[a];if(c.fullPano){var u=this._coefficients.panoPreferredDistance*Math.abs(c.distance-this._settings.panoPreferredDistance)/this._settings.panoMaxDistance+this._coefficients.panoMotion*Math.abs(c.motionChange)/Math.PI+this._coefficients.panoMergeCCPenalty*(c.sameMergeCC?0:1);u<r&&(r=u,n=c)}}return null==n?[]:[{data:{direction:i.EdgeDirection.Pano,worldMotionAzimuth:n.worldMotionAzimuth},from:e.key,to:n.key}]},e.prototype.computePanoEdges=function(e,t){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");if(!e.fullPano)return[];for(var r=[],n=[],a=[],s=0,c=t;s<c.length;s++){if(!((w=c[s]).distance>this._settings.panoMaxDistance))if(w.fullPano){if(w.distance<this._settings.panoMinDistance)continue;n.push(w)}else{if(w.croppedPano)continue;for(var u in this._directions.panos)if(this._directions.panos.hasOwnProperty(u)){var h=this._directions.panos[u],l=this._spatial.angleDifference(w.directionChange,w.motionChange),p=this._spatial.angleDifference(h.directionChange,l);if(!(Math.abs(p)>this._settings.panoMaxStepTurnChange)){a.push([h.direction,w]);break}}}}for(var d=Math.PI/this._settings.panoMaxItems,f=[],m=[],v=0;v<this._settings.panoMaxItems;v++){for(var g=v/this._settings.panoMaxItems*2*Math.PI,y=Number.MAX_VALUE,b=null,_=0,x=n;_<x.length;_++){var w=x[_],S=this._spatial.angleDifference(g,w.motionChange);if(!(Math.abs(S)>d)){for(var M=Number.MAX_VALUE,E=0,C=f;E<C.length;E++){var T=C[E],O=Math.abs(this._spatial.angleDifference(T,w.motionChange));O<M&&(M=O)}if(!(M<=d)){($=this._coefficients.panoPreferredDistance*Math.abs(w.distance-this._settings.panoPreferredDistance)/this._settings.panoMaxDistance+this._coefficients.panoMotion*Math.abs(S)/d+this._coefficients.panoSequencePenalty*(w.sameSequence?0:1)+this._coefficients.panoMergeCCPenalty*(w.sameMergeCC?0:1))<y&&(y=$,b=w)}}}null!=b?(f.push(b.motionChange),r.push({data:{direction:i.EdgeDirection.Pano,worldMotionAzimuth:b.worldMotionAzimuth},from:e.key,to:b.key})):m.push(g)}var P={};P[i.EdgeDirection.Pano]=f,P[i.EdgeDirection.StepForward]=[],P[i.EdgeDirection.StepLeft]=[],P[i.EdgeDirection.StepBackward]=[],P[i.EdgeDirection.StepRight]=[];for(var j=0,A=m;j<A.length;j++){var R=A[j],L=[];for(var u in this._directions.panos)if(this._directions.panos.hasOwnProperty(u)){for(var h=this._directions.panos[u],N=P[i.EdgeDirection.Pano].concat(P[h.direction]).concat(P[h.prev]).concat(P[h.next]),y=Number.MAX_VALUE,b=null,I=0,D=a;I<D.length;I++){if((w=D[I])[0]===h.direction){var k=this._spatial.angleDifference(R,w[1].motionChange);if(!(Math.abs(k)>d)){for(var B=Number.MAX_VALUE,F=0,U=N;F<U.length;F++){T=U[F];(M=Math.abs(this._spatial.angleDifference(T,w[1].motionChange)))<B&&(B=M)}if(!(B<=d)){var $=this._coefficients.panoPreferredDistance*Math.abs(w[1].distance-this._settings.panoPreferredDistance)/this._settings.panoMaxDistance+this._coefficients.panoMotion*Math.abs(k)/d+this._coefficients.panoMergeCCPenalty*(w[1].sameMergeCC?0:1);$<y&&(y=$,b=w)}}}}null!=b&&(L.push(b),r.push({data:{direction:b[0],worldMotionAzimuth:b[1].worldMotionAzimuth},from:e.key,to:b[1].key}))}for(var z=0,G=L;z<G.length;z++){var V=G[z];P[V[0]].push(V[1].motionChange)}}return r},e}();r.EdgeCalculator=s,r.default=s},{"../../Edge":292,"../../Error":293,"../../Geo":294,three:241}],403:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){return function(){this.panoPreferredDistance=2,this.panoMotion=2,this.panoSequencePenalty=1,this.panoMergeCCPenalty=4,this.stepPreferredDistance=4,this.stepMotion=3,this.stepRotation=4,this.stepSequencePenalty=2,this.stepMergeCCPenalty=6,this.similarDistance=2,this.similarRotation=3,this.turnDistance=4,this.turnMotion=2,this.turnSequencePenalty=1,this.turnMergeCCPenalty=4}}();r.EdgeCalculatorCoefficients=n,r.default=n},{}],404:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../../Edge"),i=function(){return function(){this.steps={},this.turns={},this.panos={},this.steps[n.EdgeDirection.StepForward]={direction:n.EdgeDirection.StepForward,motionChange:0,useFallback:!0},this.steps[n.EdgeDirection.StepBackward]={direction:n.EdgeDirection.StepBackward,motionChange:Math.PI,useFallback:!0},this.steps[n.EdgeDirection.StepLeft]={direction:n.EdgeDirection.StepLeft,motionChange:Math.PI/2,useFallback:!1},this.steps[n.EdgeDirection.StepRight]={direction:n.EdgeDirection.StepRight,motionChange:-Math.PI/2,useFallback:!1},this.turns[n.EdgeDirection.TurnLeft]={direction:n.EdgeDirection.TurnLeft,directionChange:Math.PI/2,motionChange:Math.PI/4},this.turns[n.EdgeDirection.TurnRight]={direction:n.EdgeDirection.TurnRight,directionChange:-Math.PI/2,motionChange:-Math.PI/4},this.turns[n.EdgeDirection.TurnU]={direction:n.EdgeDirection.TurnU,directionChange:Math.PI,motionChange:null},this.panos[n.EdgeDirection.StepForward]={direction:n.EdgeDirection.StepForward,directionChange:0,next:n.EdgeDirection.StepLeft,prev:n.EdgeDirection.StepRight},this.panos[n.EdgeDirection.StepBackward]={direction:n.EdgeDirection.StepBackward,directionChange:Math.PI,next:n.EdgeDirection.StepRight,prev:n.EdgeDirection.StepLeft},this.panos[n.EdgeDirection.StepLeft]={direction:n.EdgeDirection.StepLeft,directionChange:Math.PI/2,next:n.EdgeDirection.StepBackward,prev:n.EdgeDirection.StepForward},this.panos[n.EdgeDirection.StepRight]={direction:n.EdgeDirection.StepRight,directionChange:-Math.PI/2,next:n.EdgeDirection.StepForward,prev:n.EdgeDirection.StepBackward}}}();r.EdgeCalculatorDirections=i},{"../../Edge":292}],405:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){this.panoMinDistance=.1,this.panoMaxDistance=20,this.panoPreferredDistance=5,this.panoMaxItems=4,this.panoMaxStepTurnChange=Math.PI/8,this.rotationMaxDistance=this.turnMaxRigDistance,this.rotationMaxDirectionChange=Math.PI/6,this.rotationMaxVerticalDirectionChange=Math.PI/8,this.similarMaxDirectionChange=Math.PI/8,this.similarMaxDistance=12,this.similarMinTimeDifference=432e5,this.stepMaxDistance=20,this.stepMaxDirectionChange=Math.PI/6,this.stepMaxDrift=Math.PI/6,this.stepPreferredDistance=4,this.turnMaxDistance=15,this.turnMaxDirectionChange=2*Math.PI/9,this.turnMaxRigDistance=.65,this.turnMinRigDirectionChange=Math.PI/6}return Object.defineProperty(e.prototype,"maxDistance",{get:function(){return Math.max(this.panoMaxDistance,this.similarMaxDistance,this.stepMaxDistance,this.turnMaxDistance)},enumerable:!0,configurable:!0}),e}();r.EdgeCalculatorSettings=n,r.default=n},{}],406:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});!function(e){e[e.Next=0]="Next",e[e.Prev=1]="Prev",e[e.StepLeft=2]="StepLeft",e[e.StepRight=3]="StepRight",e[e.StepForward=4]="StepForward",e[e.StepBackward=5]="StepBackward",e[e.TurnLeft=6]="TurnLeft",e[e.TurnRight=7]="TurnRight",e[e.TurnU=8]="TurnU",e[e.Pano=9]="Pano",e[e.Similar=10]="Similar"}(r.EdgeDirection||(r.EdgeDirection={}))},{}],407:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("underscore"),i=e("virtual-dom"),o=e("rxjs/Subject");e("rxjs/add/operator/combineLatest"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/pluck"),e("rxjs/add/operator/scan");var a=e("../Render"),s=function(){function e(e,t,r){this._adaptiveOperation$=new o.Subject,this._render$=new o.Subject,this._renderAdaptive$=new o.Subject,this._renderService=t,this._currentFrame$=r;var s=i.create(i.h("div.domRenderer",[]));e.appendChild(s),this._offset$=this._adaptiveOperation$.scan(function(e,t){return t(e)},{elementHeight:e.offsetHeight,elementWidth:e.offsetWidth,imageAspect:0,renderMode:a.RenderMode.Fill}).filter(function(e){return e.imageAspect>0&&e.elementWidth>0&&e.elementHeight>0}).map(function(e){var t=e.elementWidth/e.elementHeight,r=e.imageAspect/t,n=0,i=0;return e.renderMode===a.RenderMode.Letterbox?e.imageAspect>t?n=e.elementHeight*(1-1/r)/2:i=e.elementWidth*(1-r)/2:e.imageAspect>t?i=-e.elementWidth*(r-1)/2:n=-e.elementHeight*(1/r-1)/2,{bottom:n,left:i,right:i,top:n}}),this._currentFrame$.filter(function(e){return null!=e.state.currentNode}).distinctUntilChanged(function(e,t){return e===t},function(e){return e.state.currentNode.key}).map(function(e){return e.state.currentTransform.basicAspect}).map(function(e){return function(t){return t.imageAspect=e,t}}).subscribe(this._adaptiveOperation$),this._renderAdaptive$.scan(function(e,t){return null==t.vnode?delete e[t.name]:e[t.name]=t.vnode,e},{}).combineLatest(this._offset$).map(function(e){var t=n.values(e[0]),r=e[1],o={style:{bottom:r.bottom+"px",left:r.left+"px","pointer-events":"none",position:"absolute",right:r.right+"px",top:r.top+"px"}};return{name:"adaptiveDomRenderer",vnode:i.h("div.adaptiveDomRenderer",o,t)}}).subscribe(this._render$),this._vNode$=this._render$.scan(function(e,t){return null==t.vnode?delete e[t.name]:e[t.name]=t.vnode,e},{}).map(function(e){var t=n.values(e);return i.h("div.domRenderer",t)}),this._vPatch$=this._vNode$.scan(function(e,t){return e.vpatch=i.diff(e.vnode,t),e.vnode=t,e},{vnode:i.h("div.domRenderer",[]),vpatch:null}).pluck("vpatch"),this._element$=this._vPatch$.scan(function(e,t){return i.patch(e,t)},s).publishReplay(1).refCount(),this._element$.subscribe(function(){}),this._renderService.size$.map(function(e){return function(t){return t.elementWidth=e.width,t.elementHeight=e.height,t}}).subscribe(this._adaptiveOperation$),this._renderService.renderMode$.map(function(e){return function(t){return t.renderMode=e,t}}).subscribe(this._adaptiveOperation$)}return Object.defineProperty(e.prototype,"element$",{get:function(){return this._element$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"render$",{get:function(){return this._render$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderAdaptive$",{get:function(){return this._renderAdaptive$},enumerable:!0,configurable:!0}),e.prototype.clear=function(e){this._renderAdaptive$.next({name:e,vnode:null}),this._render$.next({name:e,vnode:null})},e}();r.DOMRenderer=s,r.default=s},{"../Render":297,"rxjs/Subject":34,"rxjs/add/operator/combineLatest":55,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/pluck":72,"rxjs/add/operator/scan":78,underscore:243,"virtual-dom":247}],408:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Background=0]="Background",e[e.Foreground=1]="Foreground"}(n=r.GLRenderStage||(r.GLRenderStage={})),r.default=n},{}],409:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("rxjs/Observable"),o=e("rxjs/Subject");e("rxjs/add/observable/combineLatest"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/first"),e("rxjs/add/operator/map"),e("rxjs/add/operator/merge"),e("rxjs/add/operator/mergeMap"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/share"),e("rxjs/add/operator/startWith");var a=e("../Render"),s=e("../Utils"),c=function(){function e(e,t,r){var c=this;this._renderFrame$=new o.Subject,this._renderCameraOperation$=new o.Subject,this._render$=new o.Subject,this._clear$=new o.Subject,this._renderOperation$=new o.Subject,this._rendererOperation$=new o.Subject,this._eraserOperation$=new o.Subject,this._renderService=t,this._dom=r||new s.DOM,this._renderer$=this._rendererOperation$.scan(function(e,t){return t(e)},{needsRender:!1,renderer:null}),this._renderCollection$=this._renderOperation$.scan(function(e,t){return t(e)},{}).share(),this._renderCamera$=this._renderCameraOperation$.scan(function(e,t){return t(e)},{frameId:-1,needsRender:!1,perspective:null}),this._eraser$=this._eraserOperation$.startWith(function(e){return e}).scan(function(e,t){return t(e)},{needsRender:!1}),i.Observable.combineLatest([this._renderer$,this._renderCollection$,this._renderCamera$,this._eraser$],function(e,t,r,n){return{camera:r,eraser:n,renderer:e,renders:Object.keys(t).map(function(e){return t[e]})}}).filter(function(e){for(var t=e.renderer.needsRender||e.camera.needsRender||e.eraser.needsRender,r=e.camera.frameId,n=0,i=e.renders;n<i.length;n++){var o=i[n];if(o.frameId!==r)return!1;t=t||o.needsRender}return t}).distinctUntilChanged(function(e,t){return e===t},function(e){return e.eraser.needsRender?-1:e.camera.frameId}).subscribe(function(e){e.renderer.needsRender=!1,e.camera.needsRender=!1,e.eraser.needsRender=!1;for(var t=e.camera.perspective,r=[],n=[],i=0,o=e.renders;i<o.length;i++){(p=o[i]).stage===a.GLRenderStage.Background?r.push(p.render):p.stage===a.GLRenderStage.Foreground&&n.push(p.render)}var s=e.renderer.renderer;s.clear();for(var c=0,u=r;c<u.length;c++){(p=u[c])(t,s)}s.clearDepth();for(var h=0,l=n;h<l.length;h++){var p=l[h];p(t,s)}}),this._renderFrame$.map(function(e){return function(t){return t.frameId=e.frameId,t.perspective=e.perspective,!0===e.changed&&(t.needsRender=!0),t}}).subscribe(this._renderCameraOperation$),this._renderFrameSubscribe();var u=this._render$.map(function(e){return function(t){return t[e.name]=e.render,t}}),h=this._clear$.map(function(e){return function(t){return delete t[e],t}});i.Observable.merge(u,h).subscribe(this._renderOperation$),this._webGLRenderer$=this._render$.first().map(function(r){var i=c._dom.createElement("canvas","mapillary-js-canvas");i.style.position="absolute",i.setAttribute("tabindex","0"),e.appendChild(i);var o=t.element,a=new n.WebGLRenderer({canvas:i});return a.setPixelRatio(window.devicePixelRatio),a.setSize(o.offsetWidth,o.offsetHeight),a.setClearColor(new n.Color(2105376),1),a.autoClear=!1,a}).publishReplay(1).refCount(),this._webGLRenderer$.subscribe(function(){});var l=this._webGLRenderer$.first().map(function(e){return function(t){return t.needsRender=!0,t.renderer=e,t}}),p=this._renderService.size$.map(function(e){return function(t){return null==t.renderer?t:(t.renderer.setSize(e.width,e.height),t.needsRender=!0,t)}}),d=this._clear$.map(function(e){return function(e){return null==e.renderer?e:(e.needsRender=!0,e)}});i.Observable.merge(l,p,d).subscribe(this._rendererOperation$);var f=this._renderCollection$.filter(function(e){return 0===Object.keys(e).length}).share();f.subscribe(function(e){null!=c._renderFrameSubscription&&(c._renderFrameSubscription.unsubscribe(),c._renderFrameSubscription=null,c._renderFrameSubscribe())}),f.map(function(e){return function(e){return e.needsRender=!0,e}}).subscribe(this._eraserOperation$)}return Object.defineProperty(e.prototype,"render$",{get:function(){return this._render$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"webGLRenderer$",{get:function(){return this._webGLRenderer$},enumerable:!0,configurable:!0}),e.prototype.clear=function(e){this._clear$.next(e)},e.prototype._renderFrameSubscribe=function(){var e=this;this._render$.first().map(function(e){return function(e){return e.needsRender=!0,e}}).subscribe(function(t){e._renderCameraOperation$.next(t)}),this._renderFrameSubscription=this._render$.first().mergeMap(function(t){return e._renderService.renderCameraFrame$}).subscribe(this._renderFrame$)},e}();r.GLRenderer=c,r.default=c},{"../Render":297,"../Utils":301,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/scan":78,"rxjs/add/operator/share":79,"rxjs/add/operator/startWith":83,three:241}],410:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("../Geo"),o=e("../Render"),a=function(){function e(e,t,r){this.alpha=-1,this.zoom=0,this._frameId=-1,this._changed=!1,this._changedForFrame=-1,this.currentAspect=1,this.currentPano=!1,this.previousAspect=1,this.previousPano=!1,this.renderMode=r,this._spatial=new i.Spatial,this._camera=new i.Camera;var o=this._getPerspectiveCameraAspect(e,t);this._perspective=new n.PerspectiveCamera(50,o,.4,1e4),this._perspective.matrixAutoUpdate=!1,this._rotation={phi:0,theta:0}}return Object.defineProperty(e.prototype,"camera",{get:function(){return this._camera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"changed",{get:function(){return this.frameId===this._changedForFrame},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"frameId",{get:function(){return this._frameId},set:function(e){this._frameId=e,this._changed&&(this._changed=!1,this._changedForFrame=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"perspective",{get:function(){return this._perspective},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rotation",{get:function(){return this._rotation},enumerable:!0,configurable:!0}),e.prototype.updateAspect=function(e,t){var r=this._getPerspectiveCameraAspect(e,t);this._perspective.aspect=r,this._changed=!0},e.prototype.updateProjection=function(){var e=this._getAspect(this.currentAspect,this.currentPano,this.perspective.aspect),t=this._getAspect(this.previousAspect,this.previousPano,this.perspective.aspect),r=(1-this.alpha)*t+this.alpha*e,n=this._getVerticalFov(r,this._camera.focal,this.zoom);this._perspective.fov=n,this._perspective.updateProjectionMatrix(),this._changed=!0},e.prototype.updatePerspective=function(e){this._perspective.up.copy(e.up),this._perspective.position.copy(e.position),this._perspective.lookAt(e.lookat),this._perspective.updateMatrix(),this._perspective.updateMatrixWorld(!1),this._changed=!0},e.prototype.updateRotation=function(e){this._rotation=this._getRotation(e)},e.prototype._getVerticalFov=function(e,t,r){return 2*Math.atan(.5/(Math.pow(2,r)*e*t))*180/Math.PI},e.prototype._getAspect=function(e,t,r){if(t)return 1;var n=Math.max(1,1/e);return(this.renderMode===o.RenderMode.Letterbox?e>r:e<r)?n*r:n*e},e.prototype._getPerspectiveCameraAspect=function(e,t){return 0===e?0:e/t},e.prototype._getRotation=function(e){var t=e.lookat.clone().sub(e.position),r=e.up.clone(),n=t.clone().dot(r),i=t.clone().sub(r.clone().multiplyScalar(n));return{phi:Math.atan2(i.y,i.x),theta:Math.PI/2-this._spatial.angleToPlane(t.toArray(),[0,0,1])}},e}();r.RenderCamera=a,r.default=a},{"../Geo":294,"../Render":297,three:241}],411:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Letterbox=0]="Letterbox",e[e.Fill=1]="Fill"}(n=r.RenderMode||(r.RenderMode={})),r.default=n},{}],412:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=e("rxjs/BehaviorSubject");e("rxjs/add/observable/combineLatest"),e("rxjs/add/operator/do"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/publishReplay"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/skip"),e("rxjs/add/operator/startWith"),e("rxjs/add/operator/withLatestFrom");var o=e("../Geo"),a=e("../Render"),s=function(){function e(e,t,r){var s=this;this._element=e,this._currentFrame$=t,this._spatial=new o.Spatial,r=null!=r?r:a.RenderMode.Fill,this._resize$=new n.Subject,this._renderCameraOperation$=new n.Subject,this._size$=new i.BehaviorSubject({height:this._element.offsetHeight,width:this._element.offsetWidth}),this._resize$.map(function(){return{height:s._element.offsetHeight,width:s._element.offsetWidth}}).subscribe(this._size$),this._renderMode$=new i.BehaviorSubject(r),this._renderCameraHolder$=this._renderCameraOperation$.startWith(function(e){return e}).scan(function(e,t){return t(e)},new a.RenderCamera(this._element.offsetWidth,this._element.offsetHeight,r)).publishReplay(1).refCount(),this._renderCameraFrame$=this._currentFrame$.withLatestFrom(this._renderCameraHolder$,function(e,t){return[e,t]}).do(function(e){var t=e[0],r=e[1],n=t.state.camera;if(r.alpha!==t.state.alpha||r.zoom!==t.state.zoom||r.camera.diff(n)>1e-9){var i=t.state.currentTransform,o=null!=t.state.previousTransform?t.state.previousTransform:t.state.currentTransform,a=null!=t.state.previousNode?t.state.previousNode:t.state.currentNode;r.currentAspect=i.basicAspect,r.currentPano=t.state.currentNode.pano,r.previousAspect=o.basicAspect,r.previousPano=a.pano,r.alpha=t.state.alpha,r.zoom=t.state.zoom,r.camera.copy(n),r.updatePerspective(n),r.updateRotation(n),r.updateProjection()}r.frameId=t.id}).map(function(e){return e[1]}).publishReplay(1).refCount(),this._renderCamera$=this._renderCameraFrame$.filter(function(e){return e.changed}).publishReplay(1).refCount(),this._bearing$=this._renderCamera$.map(function(e){var t=s._spatial.radToDeg(s._spatial.azimuthalToBearing(e.rotation.phi));return s._spatial.wrap(t,0,360)}).publishReplay(1).refCount(),this._size$.skip(1).map(function(e){return function(t){return t.updateAspect(e.width,e.height),t.updateProjection(),t}}).subscribe(this._renderCameraOperation$),this._renderMode$.skip(1).map(function(e){return function(t){return t.renderMode=e,t.updateProjection(),t}}).subscribe(this._renderCameraOperation$),this._bearing$.subscribe(function(){}),this._renderCameraHolder$.subscribe(function(){}),this._size$.subscribe(function(){}),this._renderMode$.subscribe(function(){}),this._renderCamera$.subscribe(function(){}),this._renderCameraFrame$.subscribe(function(){})}return Object.defineProperty(e.prototype,"bearing$",{get:function(){return this._bearing$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"element",{get:function(){return this._element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"resize$",{get:function(){return this._resize$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"size$",{get:function(){return this._size$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderMode$",{get:function(){return this._renderMode$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderCameraFrame$",{get:function(){return this._renderCameraFrame$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderCamera$",{get:function(){return this._renderCamera$},enumerable:!0,configurable:!0}),e}();r.RenderService=s,r.default=s},{"../Geo":294,"../Render":297,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/do":61,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/skip":80,"rxjs/add/operator/startWith":83,"rxjs/add/operator/withLatestFrom":90}],413:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Traversing=0]="Traversing",e[e.Waiting=1]="Waiting"}(n=r.State||(r.State={})),r.default=n},{}],414:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../State"),i=e("../Geo"),o=function(){function e(e){this._state=new n.TraversingState({alpha:1,camera:new i.Camera,currentIndex:-1,reference:{alt:0,lat:0,lon:0},trajectory:[],transitionMode:null==e?n.TransitionMode.Default:e,zoom:0})}return e.prototype.traverse=function(){this._state=this._state.traverse()},e.prototype.wait=function(){this._state=this._state.wait()},Object.defineProperty(e.prototype,"state",{get:function(){if(this._state instanceof n.TraversingState)return n.State.Traversing;if(this._state instanceof n.WaitingState)return n.State.Waiting;throw new Error("Invalid state")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"reference",{get:function(){return this._state.reference},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"alpha",{get:function(){return this._state.alpha},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"camera",{get:function(){return this._state.camera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"zoom",{get:function(){return this._state.zoom},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentNode",{get:function(){return this._state.currentNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"previousNode",{get:function(){return this._state.previousNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentCamera",{get:function(){return this._state.currentCamera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentTransform",{get:function(){return this._state.currentTransform},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"previousTransform",{get:function(){return this._state.previousTransform},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trajectory",{get:function(){return this._state.trajectory},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentIndex",{get:function(){return this._state.currentIndex},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lastNode",{get:function(){return this._state.trajectory[this._state.trajectory.length-1]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nodesAhead",{get:function(){return this._state.trajectory.length-1-this._state.currentIndex},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"motionless",{get:function(){return this._state.motionless},enumerable:!0,configurable:!0}),e.prototype.getCenter=function(){return this._state.getCenter()},e.prototype.setCenter=function(e){this._state.setCenter(e)},e.prototype.setZoom=function(e){this._state.setZoom(e)},e.prototype.update=function(e){this._state.update(e)},e.prototype.append=function(e){this._state.append(e)},e.prototype.prepend=function(e){this._state.prepend(e)},e.prototype.remove=function(e){this._state.remove(e)},e.prototype.clear=function(){this._state.clear()},e.prototype.clearPrior=function(){this._state.clearPrior()},e.prototype.cut=function(){this._state.cut()},e.prototype.set=function(e){this._state.set(e)},e.prototype.rotate=function(e){this._state.rotate(e)},e.prototype.rotateBasic=function(e){this._state.rotateBasic(e)},e.prototype.rotateBasicUnbounded=function(e){this._state.rotateBasicUnbounded(e)},e.prototype.rotateBasicWithoutInertia=function(e){this._state.rotateBasicWithoutInertia(e)},e.prototype.rotateToBasic=function(e){this._state.rotateToBasic(e)},e.prototype.move=function(e){this._state.move(e)},e.prototype.moveTo=function(e){this._state.moveTo(e)},e.prototype.zoomIn=function(e,t){this._state.zoomIn(e,t)},e.prototype.setSpeed=function(e){this._state.setSpeed(e)},e.prototype.setTransitionMode=function(e){this._state.setTransitionMode(e)},e}();r.StateContext=o},{"../Geo":294,"../State":298}],415:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/BehaviorSubject"),i=e("rxjs/Subject"),o=e("rxjs/util/AnimationFrame");e("rxjs/add/operator/bufferCount"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/do"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/first"),e("rxjs/add/operator/map"),e("rxjs/add/operator/pairwise"),e("rxjs/add/operator/publishReplay"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/startWith"),e("rxjs/add/operator/switchMap"),e("rxjs/add/operator/withLatestFrom");var a=e("../State"),s=function(){function e(e){var t=this;this._appendNode$=new i.Subject,this._start$=new i.Subject,this._frame$=new i.Subject,this._fpsSampleRate=30,this._contextOperation$=new n.BehaviorSubject(function(e){return e}),this._context$=this._contextOperation$.scan(function(e,t){return t(e)},new a.StateContext(e)).publishReplay(1).refCount(),this._state$=this._context$.map(function(e){return e.state}).distinctUntilChanged().publishReplay(1).refCount(),this._fps$=this._start$.switchMap(function(){return t._frame$.bufferCount(1,t._fpsSampleRate).map(function(e){return(new Date).getTime()}).pairwise().map(function(e){return Math.max(20,1e3*t._fpsSampleRate/(e[1]-e[0]))}).startWith(60)}).share(),this._currentState$=this._frame$.withLatestFrom(this._fps$,this._context$,function(e,t,r){return[e,t,r]}).filter(function(e){return null!=e[2].currentNode}).do(function(e){e[2].update(e[1])}).map(function(e){return{fps:e[1],id:e[0],state:e[2]}}).share(),this._lastState$=this._currentState$.publishReplay(1).refCount();var r=this._currentState$.distinctUntilChanged(void 0,function(e){return e.state.currentNode.key}).publishReplay(1).refCount(),s=new i.Subject;r.subscribe(s),this._currentKey$=new n.BehaviorSubject(null),s.map(function(e){return e.state.currentNode.key}).subscribe(this._currentKey$),this._currentNode$=s.map(function(e){return e.state.currentNode}).publishReplay(1).refCount(),this._currentCamera$=s.map(function(e){return e.state.currentCamera}).publishReplay(1).refCount(),this._currentTransform$=s.map(function(e){return e.state.currentTransform}).publishReplay(1).refCount(),this._reference$=s.map(function(e){return e.state.reference}).distinctUntilChanged(function(e,t){return e.lat===t.lat&&e.lon===t.lon},function(e){return{lat:e.lat,lon:e.lon}}).publishReplay(1).refCount(),this._currentNodeExternal$=r.map(function(e){return e.state.currentNode}).publishReplay(1).refCount(),this._appendNode$.map(function(e){return function(t){return t.append([e]),t}}).subscribe(this._contextOperation$),this._inMotionOperation$=new i.Subject,r.map(function(e){return!0}).subscribe(this._inMotionOperation$),this._inMotionOperation$.distinctUntilChanged().filter(function(e){return e}).switchMap(function(e){return t._currentState$.filter(function(e){return 0===e.state.nodesAhead}).map(function(e){return[e.state.camera.clone(),e.state.zoom]}).pairwise().map(function(e){var t=e[0][0],r=e[1][0],n=e[0][1],i=e[1][1];return t.diff(r)>1e-5||Math.abs(n-i)>1e-5}).first(function(e){return!e})}).subscribe(this._inMotionOperation$),this._inMotion$=this._inMotionOperation$.distinctUntilChanged().publishReplay(1).refCount(),this._inTranslationOperation$=new i.Subject,r.map(function(e){return!0}).subscribe(this._inTranslationOperation$),this._inTranslationOperation$.distinctUntilChanged().filter(function(e){return e}).switchMap(function(e){return t._currentState$.filter(function(e){return 0===e.state.nodesAhead}).map(function(e){return e.state.camera.position.clone()}).pairwise().map(function(e){return 0!==e[0].distanceToSquared(e[1])}).first(function(e){return!e})}).subscribe(this._inTranslationOperation$),this._inTranslation$=this._inTranslationOperation$.distinctUntilChanged().publishReplay(1).refCount(),this._state$.subscribe(function(){}),this._currentNode$.subscribe(function(){}),this._currentCamera$.subscribe(function(){}),this._currentTransform$.subscribe(function(){}),this._reference$.subscribe(function(){}),this._currentNodeExternal$.subscribe(function(){}),this._lastState$.subscribe(function(){}),this._inMotion$.subscribe(function(){}),this._inTranslation$.subscribe(function(){}),this._frameId=null,this._frameGenerator=new o.RequestAnimationFrameDefinition(window)}return Object.defineProperty(e.prototype,"currentState$",{get:function(){return this._currentState$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentNode$",{get:function(){return this._currentNode$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentKey$",{get:function(){return this._currentKey$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentNodeExternal$",{get:function(){return this._currentNodeExternal$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentCamera$",{get:function(){return this._currentCamera$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentTransform$",{get:function(){return this._currentTransform$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"state$",{get:function(){return this._state$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"reference$",{get:function(){return this._reference$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inMotion$",{get:function(){return this._inMotion$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inTranslation$",{get:function(){return this._inTranslation$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"appendNode$",{get:function(){return this._appendNode$},enumerable:!0,configurable:!0}),e.prototype.traverse=function(){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(e){e.traverse()})},e.prototype.wait=function(){this._invokeContextOperation(function(e){e.wait()})},e.prototype.appendNodes=function(e){this._invokeContextOperation(function(t){t.append(e)})},e.prototype.prependNodes=function(e){this._invokeContextOperation(function(t){t.prepend(e)})},e.prototype.removeNodes=function(e){this._invokeContextOperation(function(t){t.remove(e)})},e.prototype.clearNodes=function(){this._invokeContextOperation(function(e){e.clear()})},e.prototype.clearPriorNodes=function(){this._invokeContextOperation(function(e){e.clearPrior()})},e.prototype.cutNodes=function(){this._invokeContextOperation(function(e){e.cut()})},e.prototype.setNodes=function(e){this._invokeContextOperation(function(t){t.set(e)})},e.prototype.rotate=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.rotate(e)})},e.prototype.rotateBasic=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.rotateBasic(e)})},e.prototype.rotateBasicUnbounded=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.rotateBasicUnbounded(e)})},e.prototype.rotateBasicWithoutInertia=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.rotateBasicWithoutInertia(e)})},e.prototype.rotateToBasic=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.rotateToBasic(e)})},e.prototype.move=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.move(e)})},e.prototype.moveTo=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.moveTo(e)})},e.prototype.zoomIn=function(e,t){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(r){r.zoomIn(e,t)})},e.prototype.getCenter=function(){return this._lastState$.first().map(function(e){return e.state.getCenter()})},e.prototype.getZoom=function(){return this._lastState$.first().map(function(e){return e.state.zoom})},e.prototype.setCenter=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.setCenter(e)})},e.prototype.setSpeed=function(e){this._invokeContextOperation(function(t){t.setSpeed(e)})},e.prototype.setTransitionMode=function(e){this._invokeContextOperation(function(t){t.setTransitionMode(e)})},e.prototype.setZoom=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.setZoom(e)})},e.prototype.start=function(){null==this._frameId&&(this._start$.next(null),this._frameId=this._frameGenerator.requestAnimationFrame(this._frame.bind(this)),this._frame$.next(this._frameId))},e.prototype.stop=function(){null!=this._frameId&&(this._frameGenerator.cancelAnimationFrame(this._frameId),this._frameId=null)},e.prototype._invokeContextOperation=function(e){this._contextOperation$.next(function(t){return e(t),t})},e.prototype._frame=function(e){this._frameId=this._frameGenerator.requestAnimationFrame(this._frame.bind(this)),this._frame$.next(this._frameId)},e}();r.StateService=s},{"../State":298,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/operator/bufferCount":52,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/do":61,"rxjs/add/operator/filter":63,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"rxjs/add/operator/pairwise":71,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/startWith":83,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/withLatestFrom":90,"rxjs/util/AnimationFrame":218}],416:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Default=0]="Default",e[e.Instantaneous=1]="Instantaneous"}(n=r.TransitionMode||(r.TransitionMode={})),r.default=n},{}],417:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../../Error"),i=e("../../Geo"),o=e("../../State"),a=function(){function e(e){this._spatial=new i.Spatial,this._geoCoords=new i.GeoCoords,this._referenceThreshold=.01,this._transitionMode=e.transitionMode,this._reference=e.reference,this._alpha=e.alpha,this._camera=e.camera.clone(),this._zoom=e.zoom,this._currentIndex=e.currentIndex,this._trajectory=e.trajectory.slice(),this._trajectoryTransforms=[],this._trajectoryCameras=[];for(var t=0,r=this._trajectory;t<r.length;t++){var n=r[t],o=this._nodeToTranslation(n),a=new i.Transform(n,n.image,o);this._trajectoryTransforms.push(a),this._trajectoryCameras.push(new i.Camera(a))}this._currentNode=this._trajectory.length>0?this._trajectory[this._currentIndex]:null,this._previousNode=this._trajectory.length>1&&this.currentIndex>0?this._trajectory[this._currentIndex-1]:null,this._currentCamera=this._trajectoryCameras.length>0?this._trajectoryCameras[this._currentIndex].clone():new i.Camera,this._previousCamera=this._trajectoryCameras.length>1&&this.currentIndex>0?this._trajectoryCameras[this._currentIndex-1].clone():this._currentCamera.clone()}return Object.defineProperty(e.prototype,"reference",{get:function(){return this._reference},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"alpha",{get:function(){return this._getAlpha()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"camera",{get:function(){return this._camera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"zoom",{get:function(){return this._zoom},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trajectory",{get:function(){return this._trajectory},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentIndex",{get:function(){return this._currentIndex},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentNode",{get:function(){return this._currentNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"previousNode",{get:function(){return this._previousNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentCamera",{get:function(){return this._currentCamera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentTransform",{get:function(){return this._trajectoryTransforms.length>0?this._trajectoryTransforms[this.currentIndex]:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"previousTransform",{get:function(){return this._trajectoryTransforms.length>1&&this.currentIndex>0?this._trajectoryTransforms[this.currentIndex-1]:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"motionless",{get:function(){return this._motionless},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"transitionMode",{get:function(){return this._transitionMode},enumerable:!0,configurable:!0}),e.prototype.append=function(e){if(e.length<1)throw Error("Trajectory can not be empty");this._currentIndex<0?this.set(e):(this._trajectory=this._trajectory.concat(e),this._appendToTrajectories(e))},e.prototype.prepend=function(e){if(e.length<1)throw Error("Trajectory can not be empty");this._trajectory=e.slice().concat(this._trajectory),this._currentIndex+=e.length,this._setCurrentNode();this._setReference(this._currentNode)?this._setTrajectories():this._prependToTrajectories(e),this._setCurrentCamera()},e.prototype.remove=function(e){if(e<0)throw Error("n must be a positive integer");if(this._currentIndex-1<e)throw Error("Current and previous nodes can not be removed");for(var t=0;t<e;t++)this._trajectory.shift(),this._trajectoryTransforms.shift(),this._trajectoryCameras.shift(),this._currentIndex--;this._setCurrentNode()},e.prototype.clearPrior=function(){this._currentIndex>0&&this.remove(this._currentIndex-1)},e.prototype.clear=function(){this.cut(),this._currentIndex>0&&this.remove(this._currentIndex-1)},e.prototype.cut=function(){for(;this._trajectory.length-1>this._currentIndex;)this._trajectory.pop(),this._trajectoryTransforms.pop(),this._trajectoryCameras.pop()},e.prototype.set=function(e){this._setTrajectory(e),this._setCurrentNode(),this._setReference(this._currentNode),this._setTrajectories(),this._setCurrentCamera()},e.prototype.getCenter=function(){return null!=this._currentNode?this.currentTransform.projectBasic(this._camera.lookat.toArray()):[.5,.5]},e.prototype.setTransitionMode=function(e){this._transitionMode=e},e.prototype._setCurrent=function(){this._setCurrentNode();this._setReference(this._currentNode)&&this._setTrajectories(),this._setCurrentCamera()},e.prototype._setCurrentCamera=function(){this._currentCamera=this._trajectoryCameras[this._currentIndex].clone(),this._previousCamera=this._currentIndex>0?this._trajectoryCameras[this._currentIndex-1].clone():this._currentCamera.clone()},e.prototype._motionlessTransition=function(){return null!=this._currentNode&&null!=this._previousNode&&(this._transitionMode===o.TransitionMode.Instantaneous||!(this._currentNode.merged&&this._previousNode.merged&&this._withinOriginalDistance()&&this._sameConnectedComponent()))},e.prototype._setReference=function(e){return!(Math.abs(e.latLon.lat-this.reference.lat)<this._referenceThreshold&&Math.abs(e.latLon.lon-this.reference.lon)<this._referenceThreshold)&&(!(null!=this._previousNode&&!this._motionlessTransition())&&(this._reference.lat=e.latLon.lat,this._reference.lon=e.latLon.lon,this._reference.alt=e.alt,!0))},e.prototype._setCurrentNode=function(){this._currentNode=this._trajectory.length>0?this._trajectory[this._currentIndex]:null,this._previousNode=this._currentIndex>0?this._trajectory[this._currentIndex-1]:null},e.prototype._setTrajectory=function(e){if(e.length<1)throw new n.ArgumentMapillaryError("Trajectory can not be empty");null!=this._currentNode?(this._trajectory=[this._currentNode].concat(e),this._currentIndex=1):(this._trajectory=e.slice(),this._currentIndex=0)},e.prototype._setTrajectories=function(){this._trajectoryTransforms.length=0,this._trajectoryCameras.length=0,this._appendToTrajectories(this._trajectory)},e.prototype._appendToTrajectories=function(e){for(var t=0,r=e;t<r.length;t++){var o=r[t];if(!o.assetsCached)throw new n.ArgumentMapillaryError("Assets must be cached when node is added to trajectory");var a=this._nodeToTranslation(o),s=new i.Transform(o,o.image,a);this._trajectoryTransforms.push(s),this._trajectoryCameras.push(new i.Camera(s))}},e.prototype._prependToTrajectories=function(e){for(var t=0,r=e.reverse();t<r.length;t++){var o=r[t];if(!o.assetsCached)throw new n.ArgumentMapillaryError("Assets must be cached when added to trajectory");var a=this._nodeToTranslation(o),s=new i.Transform(o,o.image,a);this._trajectoryTransforms.unshift(s),this._trajectoryCameras.unshift(new i.Camera(s))}},e.prototype._nodeToTranslation=function(e){var t=this._geoCoords.geodeticToEnu(e.latLon.lat,e.latLon.lon,e.alt,this._reference.lat,this._reference.lon,this._reference.alt),r=this._spatial.rotate(t,e.rotation);return[-r.x,-r.y,-r.z]},e.prototype._sameConnectedComponent=function(){var e=this._currentNode,t=this._previousNode;return!(e&&e.mergeCC&&t&&t.mergeCC)||e.mergeCC===t.mergeCC},e.prototype._withinOriginalDistance=function(){var e=this._currentNode,t=this._previousNode;if(!e||!t)return!0;return this._spatial.distanceFromLatLon(e.originalLatLon.lat,e.originalLatLon.lon,t.originalLatLon.lat,t.originalLatLon.lon)<25},e}();r.StateBase=a},{"../../Error":293,"../../Geo":294,"../../State":298}],418:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=e("@mapbox/unitbezier"),a=e("../../State"),s=function(){function e(e,t){this._phi=e,this._theta=t}return Object.defineProperty(e.prototype,"phi",{get:function(){return this._phi},set:function(e){this._phi=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"theta",{get:function(){return this._theta},set:function(e){this._theta=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isZero",{get:function(){return 0===this._phi&&0===this._theta},enumerable:!0,configurable:!0}),e.prototype.copy=function(e){this._phi=e.phi,this._theta=e.theta},e.prototype.lerp=function(e,t){this._phi=(1-t)*this._phi+t*e.phi,this._theta=(1-t)*this._theta+t*e.theta},e.prototype.multiply=function(e){this._phi*=e,this._theta*=e},e.prototype.threshold=function(e){this._phi=Math.abs(this._phi)>e?this._phi:0,this._theta=Math.abs(this._theta)>e?this._theta:0},e.prototype.lengthSquared=function(){return this._phi*this._phi+this._theta*this._theta},e.prototype.reset=function(){this._phi=0,this._theta=0},e}(),c=function(e){function t(t){var r=e.call(this,t)||this;return r._adjustCameras(),r._motionless=r._motionlessTransition(),r._baseAlpha=r._alpha,r._animationSpeed=.025,r._speedCoefficient=1,r._unitBezier=new o(.74,.67,.38,.96),r._useBezier=!1,r._rotationDelta=new s(0,0),r._requestedRotationDelta=null,r._basicRotation=[0,0],r._requestedBasicRotation=null,r._requestedBasicRotationUnbounded=null,r._rotationAcceleration=.86,r._rotationIncreaseAlpha=.97,r._rotationDecreaseAlpha=.9,r._rotationThreshold=.001,r._unboundedRotationAlpha=.8,r._desiredZoom=t.zoom,r._minZoom=0,r._maxZoom=3,r._lookatDepth=10,r._desiredLookat=null,r._desiredCenter=null,r}return n(t,e),t.prototype.traverse=function(){throw new Error("Not implemented")},t.prototype.wait=function(){return new a.WaitingState(this)},t.prototype.append=function(t){var r=0===this._trajectory.length;r&&this._resetTransition(),e.prototype.append.call(this,t),r&&(this._setDesiredCenter(),this._setDesiredZoom())},t.prototype.prepend=function(t){var r=0===this._trajectory.length;r&&this._resetTransition(),e.prototype.prepend.call(this,t),r&&(this._setDesiredCenter(),this._setDesiredZoom())},t.prototype.set=function(t){e.prototype.set.call(this,t),this._desiredLookat=null,this._resetTransition(),this._clearRotation(),this._setDesiredCenter(),this._setDesiredZoom(),this._trajectory.length<3&&(this._useBezier=!0)},t.prototype.move=function(e){throw new Error("Not implemented")},t.prototype.moveTo=function(e){throw new Error("Not implemented")},t.prototype.rotate=function(e){null!=this._currentNode&&(this._desiredZoom=this._zoom,this._desiredLookat=null,this._requestedBasicRotation=null,null!=this._requestedRotationDelta?(this._requestedRotationDelta.phi=this._requestedRotationDelta.phi+e.phi,this._requestedRotationDelta.theta=this._requestedRotationDelta.theta+e.theta):this._requestedRotationDelta=new s(e.phi,e.theta))},t.prototype.rotateBasic=function(e){if(null!=this._currentNode)if(this._desiredZoom=this._zoom,this._desiredLookat=null,this._requestedRotationDelta=null,null!=this._requestedBasicRotation){this._requestedBasicRotation[0]+=e[0],this._requestedBasicRotation[1]+=e[1];var t=.05/Math.pow(2,this._zoom);this._requestedBasicRotation[0]=this._spatial.clamp(this._requestedBasicRotation[0],-t,t),this._requestedBasicRotation[1]=this._spatial.clamp(this._requestedBasicRotation[1],-t,t)}else this._requestedBasicRotation=e.slice()},t.prototype.rotateBasicUnbounded=function(e){null!=this._currentNode&&(null!=this._requestedBasicRotationUnbounded?(this._requestedBasicRotationUnbounded[0]+=e[0],this._requestedBasicRotationUnbounded[1]+=e[1]):this._requestedBasicRotationUnbounded=e.slice())},t.prototype.rotateBasicWithoutInertia=function(e){if(null!=this._currentNode){this._desiredZoom=this._zoom,this._desiredLookat=null,this._requestedRotationDelta=null,this._requestedBasicRotation=null;var t=.05/Math.pow(2,this._zoom),r=e.slice();r[0]=this._spatial.clamp(r[0],-t,t),r[1]=this._spatial.clamp(r[1],-t,t),this._applyRotationBasic(r)}},t.prototype.rotateToBasic=function(e){if(null!=this._currentNode){this._desiredZoom=this._zoom,this._desiredLookat=null,e[0]=this._spatial.clamp(e[0],0,1),e[1]=this._spatial.clamp(e[1],0,1);var t=this.currentTransform.unprojectBasic(e,this._lookatDepth);this._currentCamera.lookat.fromArray(t)}},t.prototype.setSpeed=function(e){this._speedCoefficient=this._spatial.clamp(e,0,10)},t.prototype.zoomIn=function(e,t){if(null!=this._currentNode){this._desiredZoom=Math.max(this._minZoom,Math.min(this._maxZoom,this._desiredZoom+e));var r=this.currentTransform.projectBasic(this._currentCamera.lookat.toArray()),n=r[0],o=r[1],a=Math.pow(2,this._zoom),s=Math.pow(2,this._desiredZoom),c=t[0],u=t[1];null!=this.currentTransform.gpano&&this.currentTransform.gpano.CroppedAreaImageWidthPixels===this.currentTransform.gpano.FullPanoWidthPixels&&(c-n>.5?c-=1:n-c>.5&&(c=1+c));var h=c-a/s*(c-n),l=u-a/s*(u-o),p=this.currentTransform.gpano;this._currentNode.fullPano?(h=this._spatial.wrap(h+this._basicRotation[0],0,1),l=this._spatial.clamp(l+this._basicRotation[1],.05,.95)):null!=p&&this.currentTransform.gpano.CroppedAreaImageWidthPixels===this.currentTransform.gpano.FullPanoWidthPixels?(h=this._spatial.wrap(h+this._basicRotation[0],0,1),l=this._spatial.clamp(l+this._basicRotation[1],0,1)):(h=this._spatial.clamp(h,0,1),l=this._spatial.clamp(l,0,1)),this._desiredLookat=(new i.Vector3).fromArray(this.currentTransform.unprojectBasic([h,l],this._lookatDepth))}},t.prototype.setCenter=function(e){this._desiredLookat=null,this._requestedRotationDelta=null,this._requestedBasicRotation=null,this._desiredZoom=this._zoom;var t=[this._spatial.clamp(e[0],0,1),this._spatial.clamp(e[1],0,1)];if(null!=this._currentNode){this._desiredCenter=null;var r=(new i.Vector3).fromArray(this.currentTransform.unprojectBasic(t,this._lookatDepth)),n=null!=this.previousTransform?this.previousTransform:this.currentTransform,o=(new i.Vector3).fromArray(n.unprojectBasic(t,this._lookatDepth));this._currentCamera.lookat.copy(r),this._previousCamera.lookat.copy(o)}else this._desiredCenter=t},t.prototype.setZoom=function(e){this._desiredLookat=null,this._requestedRotationDelta=null,this._requestedBasicRotation=null,this._zoom=this._spatial.clamp(e,this._minZoom,this._maxZoom),this._desiredZoom=this._zoom},t.prototype.update=function(e){1===this._alpha&&this._currentIndex+this._alpha<this._trajectory.length&&(this._currentIndex+=1,this._useBezier=this._trajectory.length<3&&this._currentIndex+1===this._trajectory.length,this._setCurrent(),this._resetTransition(),this._clearRotation(),this._desiredZoom=this._currentNode.fullPano?this._zoom:0,this._desiredLookat=null);var t=this._animationSpeed*(60/e);this._baseAlpha=Math.min(1,this._baseAlpha+this._speedCoefficient*t),this._useBezier?this._alpha=this._unitBezier.solve(this._baseAlpha):this._alpha=this._baseAlpha,this._updateRotation(),this._rotationDelta.isZero||(this._applyRotation(this._previousCamera),this._applyRotation(this._currentCamera)),this._updateRotationBasic(),0===this._basicRotation[0]&&0===this._basicRotation[1]||this._applyRotationBasic(this._basicRotation),this._updateZoom(t),this._updateLookat(t),this._camera.lerpCameras(this._previousCamera,this._currentCamera,this.alpha)},t.prototype._getAlpha=function(){return this._motionless?Math.ceil(this._alpha):this._alpha},t.prototype._setCurrentCamera=function(){e.prototype._setCurrentCamera.call(this),this._adjustCameras()},t.prototype._adjustCameras=function(){if(null!=this._previousNode){var e=this._camera.lookat.clone().sub(this._camera.position);this._previousCamera.lookat.copy(e.clone().add(this._previousCamera.position)),this._currentNode.fullPano&&this._currentCamera.lookat.copy(e.clone().add(this._currentCamera.position))}},t.prototype._resetTransition=function(){this._alpha=0,this._baseAlpha=0,this._motionless=this._motionlessTransition()},t.prototype._applyRotation=function(e){if(null!=e){var t=(new i.Quaternion).setFromUnitVectors(e.up,new i.Vector3(0,0,1)),r=t.clone().inverse(),n=new i.Vector3;n.copy(e.lookat).sub(e.position),n.applyQuaternion(t);var o=n.length(),a=Math.atan2(n.y,n.x);a+=this._rotationDelta.phi;var s=Math.atan2(Math.sqrt(n.x*n.x+n.y*n.y),n.z);s+=this._rotationDelta.theta,s=Math.max(.1,Math.min(Math.PI-.1,s)),n.x=Math.sin(s)*Math.cos(a),n.y=Math.sin(s)*Math.sin(a),n.z=Math.cos(s),n.applyQuaternion(r),e.lookat.copy(e.position).add(n.multiplyScalar(o))}},t.prototype._applyRotationBasic=function(e){var t=this._currentNode,r=null!=this._previousNode?this.previousNode:this.currentNode,n=this._currentCamera,i=this._previousCamera,o=this.currentTransform,a=null!=this.previousTransform?this.previousTransform:this.currentTransform,s=o.projectBasic(n.lookat.toArray()),c=a.projectBasic(i.lookat.toArray()),u=o.gpano,h=a.gpano;t.fullPano?(s[0]=this._spatial.wrap(s[0]+e[0],0,1),s[1]=this._spatial.clamp(s[1]+e[1],.05,.95)):null!=u&&o.gpano.CroppedAreaImageWidthPixels===o.gpano.FullPanoWidthPixels?(s[0]=this._spatial.wrap(s[0]+e[0],0,1),s[1]=this._spatial.clamp(s[1]+e[1],0,1)):(s[0]=this._spatial.clamp(s[0]+e[0],0,1),s[1]=this._spatial.clamp(s[1]+e[1],0,1)),r.fullPano?(c[0]=this._spatial.wrap(c[0]+e[0],0,1),c[1]=this._spatial.clamp(c[1]+e[1],.05,.95)):null!=h&&a.gpano.CroppedAreaImageWidthPixels===a.gpano.FullPanoWidthPixels?(c[0]=this._spatial.wrap(c[0]+e[0],0,1),c[1]=this._spatial.clamp(c[1]+e[1],0,1)):(c[0]=this._spatial.clamp(c[0]+e[0],0,1),c[1]=this._spatial.clamp(s[1]+e[1],0,1));var l=o.unprojectBasic(s,this._lookatDepth);n.lookat.fromArray(l);var p=a.unprojectBasic(c,this._lookatDepth);i.lookat.fromArray(p)},t.prototype._updateZoom=function(e){var t=this._desiredZoom-this._zoom,r=t>0?1:t<0?-1:0;0!==t&&(Math.abs(t)<.002?(this._zoom=this._desiredZoom,null!=this._desiredLookat&&(this._desiredLookat=null)):this._zoom+=r*Math.max(Math.abs(5*e*t),.002))},t.prototype._updateLookat=function(e){if(null!==this._desiredLookat){var t=this._desiredLookat.distanceToSquared(this._currentCamera.lookat);Math.abs(t)<1e-6?(this._currentCamera.lookat.copy(this._desiredLookat),this._desiredLookat=null):this._currentCamera.lookat.lerp(this._desiredLookat,5*e)}},t.prototype._updateRotation=function(){if(null!=this._requestedRotationDelta){var e=this._rotationDelta.lengthSquared();return this._requestedRotationDelta.lengthSquared()>e?this._rotationDelta.lerp(this._requestedRotationDelta,this._rotationIncreaseAlpha):this._rotationDelta.lerp(this._requestedRotationDelta,this._rotationDecreaseAlpha),void(this._requestedRotationDelta=null)}this._rotationDelta.isZero||(this._rotationDelta.multiply(this._rotationAcceleration),this._rotationDelta.threshold(this._rotationThreshold))},t.prototype._updateRotationBasic=function(){if(null!=this._requestedBasicRotation){var e=this._basicRotation[0],t=this._basicRotation[1],r=this._requestedBasicRotation[0],n=this._requestedBasicRotation[1];return Math.abs(r)>Math.abs(e)?this._basicRotation[0]=(1-this._rotationIncreaseAlpha)*e+this._rotationIncreaseAlpha*r:this._basicRotation[0]=(1-this._rotationDecreaseAlpha)*e+this._rotationDecreaseAlpha*r,Math.abs(n)>Math.abs(t)?this._basicRotation[1]=(1-this._rotationIncreaseAlpha)*t+this._rotationIncreaseAlpha*n:this._basicRotation[1]=(1-this._rotationDecreaseAlpha)*t+this._rotationDecreaseAlpha*n,void(this._requestedBasicRotation=null)}if(null!=this._requestedBasicRotationUnbounded){var r=this._requestedBasicRotationUnbounded[0],n=this._requestedBasicRotationUnbounded[1];if(Math.abs(r)>0&&(this._basicRotation[0]=(1-this._unboundedRotationAlpha)*this._basicRotation[0]+this._unboundedRotationAlpha*r),Math.abs(n)>0&&(this._basicRotation[1]=(1-this._unboundedRotationAlpha)*this._basicRotation[1]+this._unboundedRotationAlpha*n),null!=this._desiredLookat){var o=this.currentTransform.projectBasic(this._desiredLookat.toArray());o[0]+=r,o[1]+=n,this._desiredLookat=(new i.Vector3).fromArray(this.currentTransform.unprojectBasic(o,this._lookatDepth))}this._requestedBasicRotationUnbounded=null}0===this._basicRotation[0]&&0===this._basicRotation[1]||(this._basicRotation[0]=this._rotationAcceleration*this._basicRotation[0],this._basicRotation[1]=this._rotationAcceleration*this._basicRotation[1],Math.abs(this._basicRotation[0])<this._rotationThreshold/Math.pow(2,this._zoom)&&Math.abs(this._basicRotation[1])<this._rotationThreshold/Math.pow(2,this._zoom)&&(this._basicRotation=[0,0]))},t.prototype._clearRotation=function(){this._currentNode.fullPano||(null!=this._requestedRotationDelta&&(this._requestedRotationDelta=null),this._rotationDelta.isZero||this._rotationDelta.reset(),null!=this._requestedBasicRotation&&(this._requestedBasicRotation=null),(this._basicRotation[0]>0||this._basicRotation[1]>0)&&(this._basicRotation=[0,0]))},t.prototype._setDesiredCenter=function(){if(null!=this._desiredCenter){var e=(new i.Vector3).fromArray(this.currentTransform.unprojectBasic(this._desiredCenter,this._lookatDepth)).sub(this._currentCamera.position);this._currentCamera.lookat.copy(this._currentCamera.position.clone().add(e)),this._previousCamera.lookat.copy(this._previousCamera.position.clone().add(e)),this._desiredCenter=null}},t.prototype._setDesiredZoom=function(){this._desiredZoom=this._currentNode.fullPano||null==this._previousNode?this._zoom:0},t}(a.StateBase);r.TraversingState=c},{"../../State":298,"@mapbox/unitbezier":2,three:241}],419:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../State"),o=function(e){function t(t){var r=e.call(this,t)||this;return r._zoom=0,r._adjustCameras(),r._motionless=r._motionlessTransition(),r}return n(t,e),t.prototype.traverse=function(){return new i.TraversingState(this)},t.prototype.wait=function(){throw new Error("Not implemented")},t.prototype.prepend=function(t){e.prototype.prepend.call(this,t),this._motionless=this._motionlessTransition()},t.prototype.set=function(t){e.prototype.set.call(this,t),this._motionless=this._motionlessTransition()},t.prototype.rotate=function(e){},t.prototype.rotateBasic=function(e){},t.prototype.rotateBasicUnbounded=function(e){},t.prototype.rotateBasicWithoutInertia=function(e){},t.prototype.rotateToBasic=function(e){},t.prototype.setSpeed=function(e){},t.prototype.zoomIn=function(e,t){},t.prototype.move=function(e){this._alpha=Math.max(0,Math.min(1,this._alpha+e))},t.prototype.moveTo=function(e){this._alpha=Math.max(0,Math.min(1,e))},t.prototype.update=function(e){this._camera.lerpCameras(this._previousCamera,this._currentCamera,this.alpha)},t.prototype.setCenter=function(e){},t.prototype.setZoom=function(e){},t.prototype._getAlpha=function(){return this._motionless?Math.round(this._alpha):this._alpha},t.prototype._setCurrentCamera=function(){e.prototype._setCurrentCamera.call(this),this._adjustCameras()},t.prototype._adjustCameras=function(){if(null!=this._previousNode){if(this._currentNode.fullPano){e=this._camera.lookat.clone().sub(this._camera.position);this._currentCamera.lookat.copy(e.clone().add(this._currentCamera.position))}if(this._previousNode.fullPano){var e=this._currentCamera.lookat.clone().sub(this._currentCamera.position);this._previousCamera.lookat.copy(e.clone().add(this._previousCamera.position))}}},t}(i.StateBase);r.WaitingState=o},{"../../State":298}],420:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=function(){function e(e,t,r){this._scheme=e,this._host=t,this._origin=null!=r?"?origin="+r:""}return e.prototype.getTile=function(e,t,r,i,o,a,s){var c="/"+e+"/"+t+","+r+","+i+","+o+"/"+a+","+s+"/0/default.jpg",u=this._scheme+"://"+this._host+c+this._origin,h=null;return[n.Observable.create(function(n){(h=new XMLHttpRequest).open("GET",u,!0),h.responseType="arraybuffer",h.timeout=15e3,h.onload=function(a){if(200===h.status){var s=new Image;s.crossOrigin="Anonymous",s.onload=function(e){n.next(s),n.complete()},s.onerror=function(a){n.error(new Error("Failed to load tile image ("+e+": "+t+","+r+","+i+","+o+")"))};var c=new Blob([h.response]);s.src=window.URL.createObjectURL(c)}else n.error(new Error("Failed to fetch tile ("+e+": "+t+","+r+","+i+","+o+"). Status: "+h.status+", "+h.statusText))},h.onerror=function(a){n.error(new Error("Failed to fetch tile ("+e+": "+t+","+r+","+i+","+o+")"))},h.ontimeout=function(a){n.error(new Error("Tile request timed out ("+e+": "+t+","+r+","+i+","+o+")"))},h.onabort=function(a){n.error(new Error("Tile request was aborted ("+e+": "+t+","+r+","+i+","+o+")"))},h.send(null)}),function(){null!=h&&h.abort()}]},e}();r.ImageTileLoader=i,r.default=i},{"rxjs/Observable":29}],421:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){this._images={}}return e.prototype.addImage=function(e,t,r){r in this._images||(this._images[r]={}),this._images[r][t]=e},e.prototype.dispose=function(){for(var e=0,t=Object.keys(this._images);e<t.length;e++){for(var r=t[e],n=this._images[r],i=0,o=Object.keys(n);i<o.length;i++){var a=o[i];window.URL.revokeObjectURL(n[a].src),delete n[a]}delete this._images[r]}},e.prototype.getImage=function(e,t){return this._images[t][e]},e.prototype.hasImage=function(e,t){return t in this._images&&e in this._images[t]},e}();r.ImageTileStore=n,r.default=n},{}],422:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../Geo"),i=function(){function e(){this._viewportCoords=new n.ViewportCoords}return e.prototype.computeRegionOfInterest=function(e,t,r){var n=this._viewportBoundaryPoints(4),i=this._viewportPointsBoundingBox(n,e,r);this._clipBoundingBox(i);var o=2/t.width,a=2/t.height,s=[[-.5*o,.5*a],[.5*o,.5*a],[.5*o,-.5*a],[-.5*o,-.5*a]],c=this._viewportPointsBoundingBox(s,e,r);return{bbox:i,pixelHeight:c.maxY-c.minY,pixelWidth:c.maxX-c.minX+(c.minX<c.maxX?0:1)}},e.prototype._viewportBoundaryPoints=function(e){for(var t=[],r=[[-1,1],[1,1],[1,-1],[-1,-1]],n=[[2,0],[0,-2],[-2,0],[0,2]],i=0;i<4;++i)for(var o=r[i],a=n[i],s=0;s<e;++s)t.push([o[0]+a[0]*s/e,o[1]+a[1]*s/e]);return t},e.prototype._viewportPointsBoundingBox=function(e,t,r){var n=this,i=e.map(function(e){return n._viewportCoords.viewportToBasic(e[0],e[1],r,t.perspective)});return null!=r.gpano?this._boundingBoxPano(i):this._boundingBox(i)},e.prototype._boundingBox=function(e){for(var t={maxX:Number.NEGATIVE_INFINITY,maxY:Number.NEGATIVE_INFINITY,minX:Number.POSITIVE_INFINITY,minY:Number.POSITIVE_INFINITY},r=0;r<e.length;++r)t.minX=Math.min(t.minX,e[r][0]),t.maxX=Math.max(t.maxX,e[r][0]),t.minY=Math.min(t.minY,e[r][1]),t.maxY=Math.max(t.maxY,e[r][1]);return t},e.prototype._boundingBoxPano=function(e){for(var t=this,r=[],n=[],i=0;i<e.length;++i)r.push(e[i][0]),n.push(e[i][1]);r.sort(function(e,r){return t._sign(e-r)}),n.sort(function(e,r){return t._sign(e-r)});var o=this._intervalPano(r);return{maxX:o[1],maxY:n[n.length-1],minX:o[0],minY:n[0]}},e.prototype._intervalPano=function(e){for(var t=0,r=-1,n=0;n<e.length-1;++n){var i=e[n+1]-e[n];i>t&&(t=i,r=n)}return e[0]+1-e[e.length-1]>t?[e[0],e[e.length-1]]:[e[r+1],e[r]]},e.prototype._clipBoundingBox=function(e){e.minX=Math.max(0,Math.min(1,e.minX)),e.maxX=Math.max(0,Math.min(1,e.maxX)),e.minY=Math.max(0,Math.min(1,e.minY)),e.maxY=Math.max(0,Math.min(1,e.maxY))},e.prototype._sign=function(e){return e>0?1:e<0?-1:0},e}();r.RegionOfInterestCalculator=i,r.default=i},{"../Geo":294}],423:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("rxjs/Subject"),o=function(){function e(e,t,r,n,o,a,s,c){this._disposed=!1,this._key=e,(t<=0||r<=0)&&console.warn("Original image size ("+t+", "+r+") is invalid ("+e+"). Tiles will not be loaded."),this._width=t,this._height=r,this._maxLevel=Math.ceil(Math.log(Math.max(r,t))/Math.log(2)),this._currentLevel=-1,this._tileSize=n,this._updated$=new i.Subject,this._createdSubject$=new i.Subject,this._created$=this._createdSubject$.publishReplay(1).refCount(),this._createdSubscription=this._created$.subscribe(function(){}),this._hasSubject$=new i.Subject,this._has$=this._hasSubject$.startWith(!1).publishReplay(1).refCount(),this._hasSubscription=this._has$.subscribe(function(){}),this._abortFunctions=[],this._tileSubscriptions={},this._renderedCurrentLevelTiles={},this._renderedTiles={},this._background=o,this._camera=null,this._imageTileLoader=a,this._imageTileStore=s,this._renderer=c,this._renderTarget=null,this._roi=null}return Object.defineProperty(e.prototype,"disposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasTexture$",{get:function(){return this._has$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"key",{get:function(){return this._key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textureUpdated$",{get:function(){return this._updated$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textureCreated$",{get:function(){return this._created$},enumerable:!0,configurable:!0}),e.prototype.abort=function(){for(var e in this._tileSubscriptions)this._tileSubscriptions.hasOwnProperty(e)&&this._tileSubscriptions[e].unsubscribe();this._tileSubscriptions={};for(var t=0,r=this._abortFunctions;t<r.length;t++){(0,r[t])()}this._abortFunctions=[]},e.prototype.dispose=function(){this._disposed?console.warn("Texture already disposed ("+this._key+")"):(this.abort(),null!=this._renderTarget&&(this._renderTarget.dispose(),this._renderTarget=null),this._imageTileStore.dispose(),this._imageTileStore=null,this._background=null,this._camera=null,this._imageTileLoader=null,this._renderer=null,this._roi=null,this._createdSubscription.unsubscribe(),this._hasSubscription.unsubscribe(),this._disposed=!0)},e.prototype.setRegionOfInterest=function(e){if(!(this._width<=0||this._height<=0)){this._roi=e;var t=1/this._roi.pixelWidth,r=1/this._roi.pixelHeight,i=Math.max(r,t),o=Math.max(0,Math.min(this._maxLevel,Math.ceil(Math.log(i)/Math.log(2))));if(o!==this._currentLevel){this.abort(),this._currentLevel=o,this._currentLevel in this._renderedTiles||(this._renderedTiles[this._currentLevel]=[]),this._renderedCurrentLevelTiles={};for(var a=0,s=this._renderedTiles[this._currentLevel];a<s.length;a++){var c=s[a];this._renderedCurrentLevelTiles[this._tileKey(this._tileSize,c)]=!0}}var u=this._getTileCoords([this._roi.bbox.minX,this._roi.bbox.minY]),h=this._getTileCoords([this._roi.bbox.maxX,this._roi.bbox.maxY]),l=this._getTiles(u,h);if(null==this._camera){this._camera=new n.OrthographicCamera(-this._width/2,this._width/2,this._height/2,-this._height/2,-1,1),this._camera.position.z=1;var p=this._renderer.getContext(),d=p.getParameter(p.MAX_TEXTURE_SIZE),f=Math.max(this._width,this._height),m=d>f?1:d/f,v=Math.floor(m*this._width),g=Math.floor(m*this._height);this._renderTarget=new n.WebGLRenderTarget(v,g,{depthBuffer:!1,format:n.RGBFormat,magFilter:n.LinearFilter,minFilter:n.LinearFilter,stencilBuffer:!1}),this._renderToTarget(0,0,this._width,this._height,this._background),this._createdSubject$.next(this._renderTarget.texture),this._hasSubject$.next(!0)}this._fetchTiles(l)}},e.prototype.setTileSize=function(e){this._tileSize=e},e.prototype.updateBackground=function(e){this._background=e},e.prototype._fetchTile=function(e,t,r,n,i,o,a,s){var c=this,u=this._imageTileLoader.getTile(this._key,r,n,i,o,a,s),h=u[0],l=u[1];this._abortFunctions.push(l);var p=this._tileKey(this._tileSize,e),d=h.subscribe(function(a){c._renderToTarget(r,n,i,o,a),c._removeFromDictionary(p,c._tileSubscriptions),c._removeFromArray(l,c._abortFunctions),c._setTileRendered(e,c._currentLevel),c._imageTileStore.addImage(a,p,t),c._updated$.next(!0)},function(e){c._removeFromDictionary(p,c._tileSubscriptions),c._removeFromArray(l,c._abortFunctions),console.error(e)});d.closed||(this._tileSubscriptions[p]=d)},e.prototype._fetchTiles=function(e){for(var t=this._tileSize*Math.pow(2,this._maxLevel-this._currentLevel),r=0,n=e;r<n.length;r++){var i=n[r],o=this._tileKey(this._tileSize,i);if(!(o in this._renderedCurrentLevelTiles||o in this._tileSubscriptions)){var a=t*i[0],s=t*i[1],c=a+t>this._width?this._width-a:t,u=s+t>this._height?this._height-s:t;if(this._imageTileStore.hasImage(o,this._currentLevel))this._renderToTarget(a,s,c,u,this._imageTileStore.getImage(o,this._currentLevel)),this._setTileRendered(i,this._currentLevel),this._updated$.next(!0);else{var h=Math.floor(c/t*this._tileSize),l=Math.floor(u/t*this._tileSize);this._fetchTile(i,this._currentLevel,a,s,c,u,h,l)}}}},e.prototype._getTileCoords=function(e){var t=this._tileSize*Math.pow(2,this._maxLevel-this._currentLevel),r=Math.ceil(this._width/t)-1,n=Math.ceil(this._height/t)-1;return[Math.min(Math.floor(this._width*e[0]/t),r),Math.min(Math.floor(this._height*e[1]/t),n)]},e.prototype._getTiles=function(e,t){var r=[];if(e[0]>t[0]){for(var n=this._tileSize*Math.pow(2,this._maxLevel-this._currentLevel),i=Math.ceil(this._width/n)-1,o=e[0];o<=i;o++)r.push(o);for(o=0;o<=t[0];o++)r.push(o)}else for(o=e[0];o<=t[0];o++)r.push(o);for(var a=[],s=0,c=r;s<c.length;s++)for(var o=c[s],u=e[1];u<=t[1];u++)a.push([o,u]);return a},e.prototype._removeFromArray=function(e,t){var r=t.indexOf(e);-1!==r&&t.splice(r,1)},e.prototype._removeFromDictionary=function(e,t){e in t&&delete t[e]},e.prototype._renderToTarget=function(e,t,r,i,o){var a=new n.Texture(o);a.minFilter=n.LinearFilter,a.needsUpdate=!0;var s=new n.PlaneGeometry(r,i),c=new n.MeshBasicMaterial({map:a,side:n.FrontSide}),u=new n.Mesh(s,c);u.position.x=-this._width/2+e+r/2,u.position.y=this._height/2-t-i/2;var h=new n.Scene;h.add(u),this._renderer.render(h,this._camera,this._renderTarget),this._renderer.setRenderTarget(void 0),h.remove(u),s.dispose(),c.dispose(),a.dispose()},e.prototype._setTileRendered=function(e,t){for(var r=0,n=Object.keys(this._renderedTiles).map(function(e){return parseInt(e,10)}).filter(function(e){return e!==t});r<n.length;r++){var i=n[r],o=Math.pow(2,i-t);if(i<t)for(var a=Math.floor(o*e[0]),s=Math.floor(o*e[1]),c=0,u=this._renderedTiles[i].slice();c<u.length;c++){if((v=u[c])[0]===a&&v[1]===s){g=this._renderedTiles[i].indexOf(v);this._renderedTiles[i].splice(g,1)}}else for(var h=o*e[0],l=h+o-1,p=o*e[1],d=p+o-1,f=0,m=this._renderedTiles[i].slice();f<m.length;f++){var v=m[f];if(v[0]>=h&&v[0]<=l&&v[1]>=p&&v[1]<=d){var g=this._renderedTiles[i].indexOf(v);this._renderedTiles[i].splice(g,1)}}0===this._renderedTiles[i].length&&delete this._renderedTiles[i]}this._renderedTiles[t].push(e),this._renderedCurrentLevelTiles[this._tileKey(this._tileSize,e)]=!0},e.prototype._tileKey=function(e,t){return e+"-"+t[0]+"-"+t[1]},e}();r.TextureProvider=o,r.default=o},{"rxjs/Subject":34,three:241}],424:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e){this._document=e||document}return Object.defineProperty(e.prototype,"document",{get:function(){return this._document},enumerable:!0,configurable:!0}),e.prototype.createElement=function(e,t,r){var n=this._document.createElement(e);return t&&(n.className=t),r&&r.appendChild(n),n},e}();r.DOM=n,r.default=n},{}],425:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){this._events={}}return e.prototype.on=function(e,t){this._events[e]=this._events[e]||[],this._events[e].push(t)},e.prototype.off=function(e,t){if(e)if(this._listens(e))delete this._events[e];else{var r=this._events[e].indexOf(t);r>=0&&this._events[e].splice(r,1),this._events[e].length&&delete this._events[e]}else this._events={}},e.prototype.fire=function(e,t){if(this._listens(e))for(var r=0,n=this._events[e];r<n.length;r++){n[r].call(this,t)}},e.prototype._listens=function(e){return!(!this._events||!this._events[e])},e}();r.EventEmitter=n,r.default=n},{}],426:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../Viewer"),i=function(){function e(){}return e.setOptions=function(t){e._baseImageSize=null!=t.baseImageSize?t.baseImageSize:n.ImageSize.Size640,e._basePanoramaSize=null!=t.basePanoramaSize?t.basePanoramaSize:n.ImageSize.Size2048,e._maxImageSize=null!=t.maxImageSize?t.maxImageSize:n.ImageSize.Size2048},Object.defineProperty(e,"baseImageSize",{get:function(){return e._baseImageSize},enumerable:!0,configurable:!0}),Object.defineProperty(e,"basePanoramaSize",{get:function(){return e._basePanoramaSize},enumerable:!0,configurable:!0}),Object.defineProperty(e,"maxImageSize",{get:function(){return e._maxImageSize},enumerable:!0,configurable:!0}),e}();r.Settings=i,r.default=i},{"../Viewer":302}],427:[function(e,t,r){"use strict";function n(){var e={alpha:!1,antialias:!1,depth:!0,failIfMajorPerformanceCaveat:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,stencil:!0},t=document.createElement("canvas"),r=t.getContext("webgl",e)||t.getContext("experimental-webgl",e);if(!r)return!1;for(var n=r.getSupportedExtensions(),i=0,o=["OES_standard_derivatives"];i<o.length;i++){var a=o[i];if(-1===n.indexOf(a))return!1}return!0}Object.defineProperty(r,"__esModule",{value:!0}),r.isBrowser=function(){return"undefined"!=typeof window&&"undefined"!=typeof document},r.isArraySupported=function(){return!!(Array.prototype&&Array.prototype.filter&&Array.prototype.indexOf&&Array.prototype.map&&Array.prototype.reverse)},r.isFunctionSupported=function(){return!(!Function.prototype||!Function.prototype.bind)},r.isJSONSupported=function(){return"JSON"in window&&"parse"in JSON&&"stringify"in JSON},r.isObjectSupported=function(){return!(!Object.keys||!Object.assign)};var i=void 0;r.isWebGLSupportedCached=function(){return void 0===i&&(i=n()),i},r.isWebGLSupported=n},{}],428:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){}return Object.defineProperty(e,"explore",{get:function(){return e._scheme+"://"+e._exploreHost},enumerable:!0,configurable:!0}),Object.defineProperty(e,"origin",{get:function(){return e._origin},enumerable:!0,configurable:!0}),Object.defineProperty(e,"tileScheme",{get:function(){return e._scheme},enumerable:!0,configurable:!0}),Object.defineProperty(e,"tileDomain",{get:function(){return e._imageTileHost},enumerable:!0,configurable:!0}),e.exporeImage=function(t){return e._scheme+"://"+e._exploreHost+"/app/?pKey="+t+"&focus=photo"},e.exporeUser=function(t){return e._scheme+"://"+e._exploreHost+"/app/user/"+t},e.falcorModel=function(t){return e._scheme+"://"+e._apiHost+"/v3/model.json?client_id="+t},e.protoMesh=function(t){return e._scheme+"://"+e._meshHost+"/v2/mesh/"+t},e.thumbnail=function(t,r,n){return e._scheme+"://"+e._imageHost+"/"+t+"/thumb-"+r+".jpg"+(n?"?origin="+n:"")},e.setOptions=function(t){t&&(t.apiHost&&(e._apiHost=t.apiHost),t.exploreHost&&(e._exploreHost=t.exploreHost),t.imageHost&&(e._imageHost=t.imageHost),t.imageTileHost&&(e._imageTileHost=t.imageTileHost),t.meshHost&&(e._meshHost=t.meshHost),t.scheme&&(e._scheme=t.scheme))},e._apiHost="a.mapillary.com",e._exploreHost="www.mapillary.com",e._imageHost="d1cuyjsrcm0gby.cloudfront.net",e._imageTileHost="d2qb1440i7l50o.cloudfront.net",e._meshHost="d1brzeo354iq2l.cloudfront.net",e._origin="mapillary.webgl",e._scheme="https",e}();r.Urls=n,r.default=n},{}],429:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Bottom=0]="Bottom",e[e.BottomLeft=1]="BottomLeft",e[e.BottomRight=2]="BottomRight",e[e.Center=3]="Center",e[e.Left=4]="Left",e[e.Right=5]="Right",e[e.Top=6]="Top",e[e.TopLeft=7]="TopLeft",e[e.TopRight=8]="TopRight"}(n=r.Alignment||(r.Alignment={})),r.default=n},{}],430:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable");e("rxjs/add/operator/bufferCount"),e("rxjs/add/operator/delay"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/map"),e("rxjs/add/operator/switchMap"),e("rxjs/add/operator/timeout");var i=e("../Graph"),o=function(){function e(e,t){this._graphService=e,this._stateService=t,this._started=!1}return Object.defineProperty(e.prototype,"started",{get:function(){return this._started},enumerable:!0,configurable:!0}),e.prototype.start=function(){var e=this;this._started||(this._uncacheSubscription=this._stateService.currentState$.distinctUntilChanged(void 0,function(e){return e.state.currentNode.key}).map(function(e){var t=e.state.trajectory;return[t.map(function(e){return e.key}),t[t.length-1].sequenceKey]}).bufferCount(1,5).withLatestFrom(this._graphService.graphMode$).switchMap(function(t){var r=t[0],n=t[1],o=r[0][0],a=n===i.GraphMode.Sequence?r[0][1]:void 0;return e._graphService.uncache$(o,a)}).subscribe(function(){}),this._cacheNodeSubscription=this._graphService.graphMode$.skip(1).withLatestFrom(this._stateService.currentState$).switchMap(function(t){var r=t[0],o=t[1];return r===i.GraphMode.Sequence?e._keyToEdges(o.state.currentNode.key,function(e){return e.sequenceEdges$}):n.Observable.from(o.state.trajectory.map(function(e){return e.key}).slice(o.state.currentIndex)).mergeMap(function(t){return e._keyToEdges(t,function(e){return e.spatialEdges$})},6)}).subscribe(function(){}),this._started=!0)},e.prototype.stop=function(){this._started&&(this._uncacheSubscription.unsubscribe(),this._uncacheSubscription=null,this._cacheNodeSubscription.unsubscribe(),this._cacheNodeSubscription=null,this._started=!1)},e.prototype._keyToEdges=function(e,t){return this._graphService.cacheNode$(e).switchMap(t).first(function(e){return e.cached}).timeout(15e3).catch(function(t){return console.error("Failed to cache edges ("+e+").",t),n.Observable.empty()})},e}();r.CacheService=o,r.default=o},{"../Graph":295,"rxjs/Observable":29,"rxjs/add/operator/bufferCount":52,"rxjs/add/operator/delay":58,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/map":67,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/timeout":89}],431:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../Component"),i=function(){function e(e,t,r,i,o,a){var s=this;this._container=e,this._observer=r,this._navigator=t,this._options=null!=o?o:{},this._key=i,this._navigable=null==i,this._componentService=a||new n.ComponentService(this._container,this._navigator),this._coverComponent=this._componentService.getCover(),this._initializeComponents(),i?(this._initilizeCoverComponent(),this._subscribeCoverComponent()):this._navigator.movedToKey$.first(function(e){return null!=e}).subscribe(function(e){s._key=e,s._componentService.deactivateCover(),s._coverComponent.configure({key:s._key,state:n.CoverState.Hidden}),s._subscribeCoverComponent(),s._navigator.stateService.start(),s._navigator.cacheService.start(),s._observer.startEmit()})}return Object.defineProperty(e.prototype,"navigable",{get:function(){return this._navigable},enumerable:!0,configurable:!0}),e.prototype.get=function(e){return this._componentService.get(e)},e.prototype.activate=function(e){this._componentService.activate(e)},e.prototype.activateCover=function(){this._coverComponent.configure({state:n.CoverState.Visible})},e.prototype.deactivate=function(e){this._componentService.deactivate(e)},e.prototype.deactivateCover=function(){this._coverComponent.configure({state:n.CoverState.Loading})},e.prototype.resize=function(){this._componentService.resize()},e.prototype._initializeComponents=function(){var e=this._options;this._uFalse(e.background,"background"),this._uFalse(e.debug,"debug"),this._uFalse(e.image,"image"),this._uFalse(e.marker,"marker"),this._uFalse(e.navigation,"navigation"),this._uFalse(e.popup,"popup"),this._uFalse(e.route,"route"),this._uFalse(e.slider,"slider"),this._uFalse(e.tag,"tag"),this._uTrue(e.attribution,"attribution"),this._uTrue(e.bearing,"bearing"),this._uTrue(e.cache,"cache"),this._uTrue(e.direction,"direction"),this._uTrue(e.imagePlane,"imagePlane"),this._uTrue(e.keyboard,"keyboard"),this._uTrue(e.loading,"loading"),this._uTrue(e.mouse,"mouse"),this._uTrue(e.sequence,"sequence"),this._uTrue(e.stats,"stats")},e.prototype._initilizeCoverComponent=function(){var e=this._options;this._coverComponent.configure({key:this._key}),void 0===e.cover||e.cover?this.activateCover():this.deactivateCover()},e.prototype._setNavigable=function(e){this._navigable!==e&&(this._navigable=e,this._observer.navigable$.next(e))},e.prototype._subscribeCoverComponent=function(){var e=this;this._coverComponent.configuration$.subscribe(function(t){t.state===n.CoverState.Loading?e._navigator.stateService.currentKey$.first().switchMap(function(r){var n=null==r||r!==t.key;return n&&e._setNavigable(!1),n?e._navigator.moveToKey$(t.key):e._navigator.stateService.currentNode$.first()}).subscribe(function(t){e._navigator.stateService.start(),e._navigator.cacheService.start(),e._observer.startEmit(),e._coverComponent.configure({state:n.CoverState.Hidden}),e._componentService.deactivateCover(),e._setNavigable(!0)},function(t){console.error("Failed to deactivate cover.",t),e._coverComponent.configure({state:n.CoverState.Visible})}):t.state===n.CoverState.Visible&&(e._observer.stopEmit(),e._navigator.stateService.stop(),e._navigator.cacheService.stop(),e._navigator.playService.stop(),e._componentService.activateCover(),e._setNavigable(null==t.key))})},e.prototype._uFalse=function(e,t){void 0!==e?"boolean"!=typeof e?(this._componentService.configure(t,e),this._componentService.activate(t)):e?this._componentService.activate(t):this._componentService.deactivate(t):this._componentService.deactivate(t)},e.prototype._uTrue=function(e,t){void 0!==e?"boolean"!=typeof e?(this._componentService.configure(t,e),this._componentService.activate(t)):e?this._componentService.activate(t):this._componentService.deactivate(t):this._componentService.activate(t)},e}();r.ComponentController=i},{"../Component":291}],432:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../Render"),i=e("../Utils"),o=e("../Viewer"),a=function(){function e(e,t,r,a){if(this.id=e,this._dom=a||new i.DOM,this._container=this._dom.document.getElementById(e),!this._container)throw new Error("Container '"+e+"' not found.");this._container.classList.add("mapillary-js"),this._canvasContainer=this._dom.createElement("div","mapillary-js-interactive",this._container),this._domContainer=this._dom.createElement("div","mapillary-js-dom",this._container),this.renderService=new n.RenderService(this._container,t.currentState$,r.renderMode),this.glRenderer=new n.GLRenderer(this._canvasContainer,this.renderService,this._dom),this.domRenderer=new n.DOMRenderer(this._domContainer,this.renderService,t.currentState$),this.keyboardService=new o.KeyboardService(this._canvasContainer),this.mouseService=new o.MouseService(this._container,this._canvasContainer,this._domContainer,document),this.touchService=new o.TouchService(this._canvasContainer,this._domContainer),this.spriteService=new o.SpriteService(r.sprite)}return Object.defineProperty(e.prototype,"element",{get:function(){return this._container},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canvasContainer",{get:function(){return this._canvasContainer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domContainer",{get:function(){return this._domContainer},enumerable:!0,configurable:!0}),e}();r.Container=a,r.default=a},{"../Render":297,"../Utils":301,"../Viewer":302}],433:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});!function(e){e[e.Size320=320]="Size320",e[e.Size640=640]="Size640",e[e.Size1024=1024]="Size1024",e[e.Size2048=2048]="Size2048"}(r.ImageSize||(r.ImageSize={}))},{}],434:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=function(){function e(e){this._keyDown$=n.Observable.fromEvent(e,"keydown")}return Object.defineProperty(e.prototype,"keyDown$",{get:function(){return this._keyDown$},enumerable:!0,configurable:!0}),e}();r.KeyboardService=i,r.default=i},{"rxjs/Observable":29}],435:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("underscore"),i=e("rxjs/Subject");e("rxjs/add/operator/debounceTime"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/map"),e("rxjs/add/operator/publishReplay"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/startWith");var o=function(){function e(){this._loadersSubject$=new i.Subject,this._loaders$=this._loadersSubject$.scan(function(e,t){return void 0!==t.task&&(e[t.task]=t.loading),e},{}).startWith({}).publishReplay(1).refCount()}return Object.defineProperty(e.prototype,"loading$",{get:function(){return this._loaders$.map(function(e){return n.reduce(e,function(e,t){return e||t},!1)}).debounceTime(100).distinctUntilChanged()},enumerable:!0,configurable:!0}),e.prototype.taskLoading$=function(e){return this._loaders$.map(function(t){return!!t[e]}).debounceTime(100).distinctUntilChanged()},e.prototype.startLoading=function(e){this._loadersSubject$.next({loading:!0,task:e})},e.prototype.stopLoading=function(e){this._loadersSubject$.next({loading:!1,task:e})},e}();r.LoadingService=o,r.default=o},{"rxjs/Subject":34,"rxjs/add/operator/debounceTime":57,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/map":67,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/startWith":83,underscore:243}],436:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/BehaviorSubject"),i=e("rxjs/Observable"),o=e("rxjs/Subject");e("rxjs/add/observable/fromEvent"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/merge"),e("rxjs/add/operator/mergeMap"),e("rxjs/add/operator/publishReplay"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/switchMap"),e("rxjs/add/operator/withLatestFrom");var a=e("../Geo"),s=function(){function e(e,t,r,s,c){var u=this;c=null!=c?c:new a.ViewportCoords,this._activeSubject$=new n.BehaviorSubject(!1),this._active$=this._activeSubject$.distinctUntilChanged().publishReplay(1).refCount(),this._claimMouse$=new o.Subject,this._claimWheel$=new o.Subject,this._deferPixelClaims$=new o.Subject,this._deferPixels$=this._deferPixelClaims$.scan(function(e,t){return null==t.deferPixels?delete e[t.name]:e[t.name]=t.deferPixels,e},{}).map(function(e){var t=-1;for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];n>t&&(t=n)}return t}).startWith(-1).publishReplay(1).refCount(),this._deferPixels$.subscribe(function(){}),this._documentMouseMove$=i.Observable.fromEvent(s,"mousemove"),this._documentMouseUp$=i.Observable.fromEvent(s,"mouseup"),this._mouseDown$=i.Observable.fromEvent(t,"mousedown"),this._mouseLeave$=i.Observable.fromEvent(t,"mouseleave"),this._mouseMove$=i.Observable.fromEvent(t,"mousemove"),this._mouseUp$=i.Observable.fromEvent(t,"mouseup"),this._mouseOut$=i.Observable.fromEvent(t,"mouseout"),this._mouseOver$=i.Observable.fromEvent(t,"mouseover"),this._domMouseDown$=i.Observable.fromEvent(r,"mousedown"),this._domMouseMove$=i.Observable.fromEvent(r,"mousemove"),this._click$=i.Observable.fromEvent(t,"click"),this._contextMenu$=i.Observable.fromEvent(t,"contextmenu"),this._dblClick$=i.Observable.merge(i.Observable.fromEvent(e,"click"),i.Observable.fromEvent(t,"dblclick")).bufferCount(3,1).filter(function(e){var r=e[0],n=e[1],i=e[2];return"click"===r.type&&"click"===n.type&&"dblclick"===i.type&&r.target.parentNode===t&&n.target.parentNode===t}).map(function(e){return e[2]}).share(),i.Observable.merge(this._domMouseDown$,this._domMouseMove$,this._dblClick$,this._contextMenu$).subscribe(function(e){e.preventDefault()}),this._mouseWheel$=i.Observable.merge(i.Observable.fromEvent(t,"wheel"),i.Observable.fromEvent(r,"wheel")).share(),this._consistentContextMenu$=i.Observable.merge(this._mouseDown$,this._mouseMove$,this._mouseOut$,this._mouseUp$,this._contextMenu$).bufferCount(3,1).filter(function(e){return"mousedown"===e[0].type&&"contextmenu"===e[1].type&&"mouseup"===e[2].type}).map(function(e){return e[1]}).share();var h=i.Observable.merge(i.Observable.fromEvent(window,"blur"),this._documentMouseUp$.filter(function(e){return 0===e.button})).share(),l=this._createMouseDragInitiate$(this._mouseDown$,h,!0).share();this._mouseDragStart$=this._createMouseDragStart$(l).share(),this._mouseDrag$=this._createMouseDrag$(l,h).share(),this._mouseDragEnd$=this._createMouseDragEnd$(this._mouseDragStart$,h).share();var p=this._createMouseDragInitiate$(this._domMouseDown$,h,!1).share();this._domMouseDragStart$=this._createMouseDragStart$(p).share(),this._domMouseDrag$=this._createMouseDrag$(p,h).share(),this._domMouseDragEnd$=this._createMouseDragEnd$(this._domMouseDragStart$,h).share(),this._proximateClick$=this._mouseDown$.switchMap(function(e){return u._click$.takeUntil(u._createDeferredMouseMove$(e,u._documentMouseMove$)).take(1)}).share(),this._staticClick$=this._mouseDown$.switchMap(function(e){return u._click$.takeUntil(u._documentMouseMove$).take(1)}).share(),this._mouseDragStart$.subscribe(),this._mouseDrag$.subscribe(),this._mouseDragEnd$.subscribe(),this._domMouseDragStart$.subscribe(),this._domMouseDrag$.subscribe(),this._domMouseDragEnd$.subscribe(),this._staticClick$.subscribe(),this._mouseOwner$=this._createOwner$(this._claimMouse$).publishReplay(1).refCount(),this._wheelOwner$=this._createOwner$(this._claimWheel$).publishReplay(1).refCount(),this._mouseOwner$.subscribe(function(){}),this._wheelOwner$.subscribe(function(){})}return Object.defineProperty(e.prototype,"active$",{get:function(){return this._active$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activate$",{get:function(){return this._activeSubject$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"documentMouseMove$",{get:function(){return this._documentMouseMove$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"documentMouseUp$",{get:function(){return this._documentMouseUp$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domMouseDragStart$",{get:function(){return this._domMouseDragStart$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domMouseDrag$",{get:function(){return this._domMouseDrag$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domMouseDragEnd$",{get:function(){return this._domMouseDragEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domMouseDown$",{get:function(){return this._domMouseDown$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domMouseMove$",{get:function(){return this._domMouseMove$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseOwner$",{get:function(){return this._mouseOwner$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseDown$",{get:function(){return this._mouseDown$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseMove$",{get:function(){return this._mouseMove$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseLeave$",{get:function(){return this._mouseLeave$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseOut$",{get:function(){return this._mouseOut$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseOver$",{get:function(){return this._mouseOver$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseUp$",{get:function(){return this._mouseUp$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"click$",{get:function(){return this._click$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dblClick$",{get:function(){return this._dblClick$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"contextMenu$",{get:function(){return this._consistentContextMenu$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseWheel$",{get:function(){return this._mouseWheel$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseDragStart$",{get:function(){return this._mouseDragStart$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseDrag$",{get:function(){return this._mouseDrag$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseDragEnd$",{get:function(){return this._mouseDragEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"proximateClick$",{get:function(){return this._proximateClick$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"staticClick$",{get:function(){return this._staticClick$},enumerable:!0,configurable:!0}),e.prototype.claimMouse=function(e,t){this._claimMouse$.next({name:e,zindex:t})},e.prototype.unclaimMouse=function(e){this._claimMouse$.next({name:e,zindex:null})},e.prototype.deferPixels=function(e,t){this._deferPixelClaims$.next({name:e,deferPixels:t})},e.prototype.undeferPixels=function(e){this._deferPixelClaims$.next({name:e,deferPixels:null})},e.prototype.claimWheel=function(e,t){this._claimWheel$.next({name:e,zindex:t})},e.prototype.unclaimWheel=function(e){this._claimWheel$.next({name:e,zindex:null})},e.prototype.filtered$=function(e,t){return this._filtered(e,t,this._mouseOwner$)},e.prototype.filteredWheel$=function(e,t){return this._filtered(e,t,this._wheelOwner$)},e.prototype._createDeferredMouseMove$=function(e,t){return t.map(function(t){var r=t.clientX-e.clientX,n=t.clientY-e.clientY;return[t,Math.sqrt(r*r+n*n)]}).withLatestFrom(this._deferPixels$).filter(function(e){var t=e[0];t[0];return t[1]>e[1]}).map(function(e){var t=e[0],r=t[0];t[1],e[1];return r})},e.prototype._createMouseDrag$=function(e,t){var r=this;return e.map(function(e){e[0];return e[1]}).switchMap(function(e){return i.Observable.of(e).concat(r._documentMouseMove$).takeUntil(t)})},e.prototype._createMouseDragEnd$=function(e,t){return e.switchMap(function(e){return t.first()})},e.prototype._createMouseDragStart$=function(e){return e.map(function(e){var t=e[0];e[1];return t})},e.prototype._createMouseDragInitiate$=function(e,t,r){var n=this;return e.filter(function(e){return 0===e.button}).switchMap(function(e){return i.Observable.combineLatest(i.Observable.of(e),r?n._createDeferredMouseMove$(e,n._documentMouseMove$):n._documentMouseMove$).takeUntil(t).take(1)})},e.prototype._createOwner$=function(e){return e.scan(function(e,t){return null==t.zindex?delete e[t.name]:e[t.name]=t.zindex,e},{}).map(function(e){var t=null,r=-1;for(var n in e)e.hasOwnProperty(n)&&e[n]>r&&(r=e[n],t=n);return t}).startWith(null)},e.prototype._filtered=function(e,t,r){return t.withLatestFrom(r).filter(function(t){t[0];return t[1]===e}).map(function(e){var t=e[0];e[1];return t})},e}();r.MouseService=s,r.default=s},{"../Geo":294,"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/fromEvent":43,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/withLatestFrom":90}],437:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/BehaviorSubject"),i=e("rxjs/Observable"),o=e("rxjs/ReplaySubject");e("rxjs/add/observable/throw"),e("rxjs/add/operator/do"),e("rxjs/add/operator/finally"),e("rxjs/add/operator/first"),e("rxjs/add/operator/map"),e("rxjs/add/operator/mergeMap");var a=e("../API"),s=e("../Graph"),c=e("../Edge"),u=e("../Error"),h=e("../State"),l=e("../Viewer"),p=function(){function e(e,t,r,i,o,c,u,p,d,f){this._apiV3=null!=i?i:new a.APIv3(e,r),this._imageLoadingService=null!=c?c:new s.ImageLoadingService,this._graphService=null!=o?o:new s.GraphService(new s.Graph(this.apiV3),this._imageLoadingService),this._loadingService=null!=u?u:new l.LoadingService,this._loadingName="navigator",this._stateService=null!=p?p:new h.StateService(t.transitionMode),this._cacheService=null!=d?d:new l.CacheService(this._graphService,this._stateService),this._playService=null!=f?f:new l.PlayService(this._graphService,this._stateService),this._keyRequested$=new n.BehaviorSubject(null),this._movedToKey$=new n.BehaviorSubject(null),this._request$=null,this._requestSubscription=null,this._nodeRequestSubscription=null}return Object.defineProperty(e.prototype,"apiV3",{get:function(){return this._apiV3},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cacheService",{get:function(){return this._cacheService},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"graphService",{get:function(){return this._graphService},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageLoadingService",{get:function(){return this._imageLoadingService},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loadingService",{get:function(){return this._loadingService},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"movedToKey$",{get:function(){return this._movedToKey$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"playService",{get:function(){return this._playService},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stateService",{get:function(){return this._stateService},enumerable:!0,configurable:!0}),e.prototype.moveToKey$=function(e){this._abortRequest("to key "+e),this._loadingService.startLoading(this._loadingName);var t=this._moveToKey$(e);return this._makeRequest$(t)},e.prototype.moveDir$=function(e){var t=this;this._abortRequest("in dir "+c.EdgeDirection[e]),this._loadingService.startLoading(this._loadingName);var r=this.stateService.currentNode$.first().mergeMap(function(t){return([c.EdgeDirection.Next,c.EdgeDirection.Prev].indexOf(e)>-1?t.sequenceEdges$:t.spatialEdges$).first().map(function(t){for(var r=0,n=t.edges;r<n.length;r++){var i=n[r];if(i.data.direction===e)return i.to}return null})}).mergeMap(function(r){return null==r?(t._loadingService.stopLoading(t._loadingName),i.Observable.throw(new Error("Direction ("+e+") does not exist for current node."))):t._moveToKey$(r)});return this._makeRequest$(r)},e.prototype.moveCloseTo$=function(e,t){var r=this;this._abortRequest("to lat "+e+", lon "+t),this._loadingService.startLoading(this._loadingName);var n=this.apiV3.imageCloseTo$(e,t).mergeMap(function(n){return null==n?(r._loadingService.stopLoading(r._loadingName),i.Observable.throw(new Error("No image found close to lat "+e+", lon "+t+"."))):r._moveToKey$(n.key)});return this._makeRequest$(n)},e.prototype.setFilter$=function(e){var t=this;return this._stateService.clearNodes(),this._movedToKey$.first().mergeMap(function(r){return null!=r?t._trajectoryKeys$().mergeMap(function(r){return t._graphService.setFilter$(e).mergeMap(function(){return t._cacheKeys$(r)})}).last():t._keyRequested$.first().mergeMap(function(r){return null!=r?t._graphService.setFilter$(e).mergeMap(function(){return t._graphService.cacheNode$(r)}):t._graphService.setFilter$(e).map(function(){})})}).map(function(e){})},e.prototype.setToken$=function(e){var t=this;return this._abortRequest("to set token"),this._stateService.clearNodes(),this._movedToKey$.first().do(function(r){t._apiV3.setToken(e)}).mergeMap(function(e){return null==e?t._graphService.reset$([]):t._trajectoryKeys$().mergeMap(function(e){return t._graphService.reset$(e).mergeMap(function(){return t._cacheKeys$(e)})}).last().map(function(e){})})},e.prototype._cacheKeys$=function(e){var t=this,r=e.map(function(e){return t._graphService.cacheNode$(e)});return i.Observable.from(r).mergeAll()},e.prototype._abortRequest=function(e){null!=this._requestSubscription&&(this._requestSubscription.unsubscribe(),this._requestSubscription=null),null!=this._nodeRequestSubscription&&(this._nodeRequestSubscription.unsubscribe(),this._nodeRequestSubscription=null),null!=this._request$&&(this._request$.error(new u.AbortMapillaryError("Request aborted by a subsequent request "+e+".")),this._request$=null)},e.prototype._makeRequest$=function(e){var t=this;return this._request$=new o.ReplaySubject(1),this._requestSubscription=this._request$.subscribe(void 0,function(e){}),this._nodeRequestSubscription=e.subscribe(function(e){t._request$.next(e),t._request$.complete()},function(e){t._request$.error(e)}),this._request$},e.prototype._moveToKey$=function(e){var t=this;return this._keyRequested$.next(e),this._graphService.cacheNode$(e).do(function(e){t._stateService.setNodes([e]),t._movedToKey$.next(e.key)}).finally(function(){t._loadingService.stopLoading(t._loadingName)})},e.prototype._trajectoryKeys$=function(){return this._stateService.currentState$.first().map(function(e){return e.state.trajectory.map(function(e){return e.key})})},e}();r.Navigator=p,r.default=p},{"../API":290,"../Edge":292,"../Error":293,"../Graph":295,"../State":298,"../Viewer":302,"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/ReplaySubject":32,"rxjs/add/observable/throw":47,"rxjs/add/operator/do":61,"rxjs/add/operator/finally":64,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"rxjs/add/operator/mergeMap":70}],438:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=e("rxjs/Subject");e("rxjs/add/observable/combineLatest"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/map"),e("rxjs/add/operator/throttleTime");var o=e("../Viewer"),a=function(){function e(e,t,r){var n=this;this._container=r,this._eventEmitter=e,this._navigator=t,this._projection=new o.Projection,this._started=!1,this._navigable$=new i.Subject,this._navigable$.subscribe(function(e){n._eventEmitter.fire(o.Viewer.navigablechanged,e)}),this._navigator.loadingService.loading$.subscribe(function(e){n._eventEmitter.fire(o.Viewer.loadingchanged,e)})}return Object.defineProperty(e.prototype,"started",{get:function(){return this._started},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"navigable$",{get:function(){return this._navigable$},enumerable:!0,configurable:!0}),e.prototype.projectBasic$=function(e){var t=this;return n.Observable.combineLatest(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).first().map(function(r){var n=r[0],i=r[1],o=t._projection.basicToCanvas(e,t._container.element,n,i);return[Math.round(o[0]),Math.round(o[1])]})},e.prototype.startEmit=function(){var e=this;if(!this._started){this._started=!0,this._currentNodeSubscription=this._navigator.stateService.currentNodeExternal$.subscribe(function(t){e._eventEmitter.fire(o.Viewer.nodechanged,t)}),this._sequenceEdgesSubscription=this._navigator.stateService.currentNodeExternal$.switchMap(function(e){return e.sequenceEdges$}).subscribe(function(t){e._eventEmitter.fire(o.Viewer.sequenceedgeschanged,t)}),this._spatialEdgesSubscription=this._navigator.stateService.currentNodeExternal$.switchMap(function(e){return e.spatialEdges$}).subscribe(function(t){e._eventEmitter.fire(o.Viewer.spatialedgeschanged,t)}),this._moveSubscription=n.Observable.combineLatest(this._navigator.stateService.inMotion$,this._container.mouseService.active$,this._container.touchService.active$).map(function(e){return e[0]||e[1]||e[2]}).distinctUntilChanged().subscribe(function(t){t?e._eventEmitter.fire(o.Viewer.movestart,null):e._eventEmitter.fire(o.Viewer.moveend,null)}),this._bearingSubscription=this._container.renderService.bearing$.throttleTime(100).distinctUntilChanged(function(e,t){return Math.abs(t-e)<1}).subscribe(function(t){e._eventEmitter.fire(o.Viewer.bearingchanged,t)});var t=this._container.mouseService.active$.switchMap(function(t){return t?n.Observable.empty():e._container.mouseService.mouseMove$});this._viewerMouseEventSubscription=n.Observable.merge(this._mapMouseEvent$(o.Viewer.click,this._container.mouseService.staticClick$),this._mapMouseEvent$(o.Viewer.contextmenu,this._container.mouseService.contextMenu$),this._mapMouseEvent$(o.Viewer.dblclick,this._container.mouseService.dblClick$),this._mapMouseEvent$(o.Viewer.mousedown,this._container.mouseService.mouseDown$),this._mapMouseEvent$(o.Viewer.mousemove,t),this._mapMouseEvent$(o.Viewer.mouseout,this._container.mouseService.mouseOut$),this._mapMouseEvent$(o.Viewer.mouseover,this._container.mouseService.mouseOver$),this._mapMouseEvent$(o.Viewer.mouseup,this._container.mouseService.mouseUp$)).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.reference$,this._navigator.stateService.currentTransform$).map(function(t){var r=t[0],n=r[0],i=r[1],o=t[1],a=t[2],s=t[3],c=e._projection.eventToUnprojection(i,e._container.element,o,a,s);return{basicPoint:c.basicPoint,latLon:c.latLon,originalEvent:i,pixelPoint:c.pixelPoint,target:e._eventEmitter,type:n}}).subscribe(function(t){e._eventEmitter.fire(t.type,t)})}},e.prototype.stopEmit=function(){this.started&&(this._started=!1,this._bearingSubscription.unsubscribe(),this._currentNodeSubscription.unsubscribe(),this._moveSubscription.unsubscribe(),this._sequenceEdgesSubscription.unsubscribe(),this._spatialEdgesSubscription.unsubscribe(),this._viewerMouseEventSubscription.unsubscribe(),this._bearingSubscription=null,this._currentNodeSubscription=null,this._moveSubscription=null,this._sequenceEdgesSubscription=null,this._spatialEdgesSubscription=null,this._viewerMouseEventSubscription=null)},e.prototype.unproject$=function(e){var t=this;return n.Observable.combineLatest(this._container.renderService.renderCamera$,this._navigator.stateService.reference$,this._navigator.stateService.currentTransform$).first().map(function(r){var n=r[0],i=r[1],o=r[2];return t._projection.canvasToUnprojection(e,t._container.element,n,i,o).latLon})},e.prototype.unprojectBasic$=function(e){var t=this;return n.Observable.combineLatest(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).first().map(function(r){var n=r[0],i=r[1];return t._projection.canvasToBasic(e,t._container.element,n,i)})},e.prototype._mapMouseEvent$=function(e,t){return t.map(function(t){return[e,t]})},e}();r.Observer=a,r.default=a},{"../Viewer":302,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/map":67,"rxjs/add/operator/throttleTime":88}],439:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=e("rxjs/Subject");e("rxjs/add/operator/timeout");var o=e("../Edge"),a=e("../Graph"),s=function(){function e(e,t,r){this._graphService=e,this._stateService=t,this._graphCalculator=r||new a.GraphCalculator,this._directionSubject$=new i.Subject,this._direction$=this._directionSubject$.startWith(o.EdgeDirection.Next).publishReplay(1).refCount(),this._direction$.subscribe(),this._playing=!1,this._playingSubject$=new i.Subject,this._playing$=this._playingSubject$.startWith(this._playing).publishReplay(1).refCount(),this._playing$.subscribe(),this._speed=.5,this._speedSubject$=new i.Subject,this._speed$=this._speedSubject$.startWith(this._speed).publishReplay(1).refCount(),this._speed$.subscribe(),this._nodesAhead=this._mapNodesAhead(this._mapSpeed(this._speed)),this._bridging$=null}return Object.defineProperty(e.prototype,"playing",{get:function(){return this._playing},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"direction$",{get:function(){return this._direction$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"playing$",{get:function(){return this._playing$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"speed$",{get:function(){return this._speed$},enumerable:!0,configurable:!0}),e.prototype.play=function(){var e=this;if(!this._playing){this._stateService.cutNodes();var t=this._setSpeed(this._speed);this._stateService.setSpeed(t),this._graphModeSubscription=this._speed$.map(function(e){return e>.54?a.GraphMode.Sequence:a.GraphMode.Spatial}).distinctUntilChanged().subscribe(function(t){e._graphService.setGraphMode(t)}),this._cacheSubscription=this._stateService.currentNode$.map(function(e){return[e.sequenceKey,e.key]}).distinctUntilChanged(void 0,function(e){var t=e[0];e[1];return t}).combineLatest(this._graphService.graphMode$,this._direction$).switchMap(function(t){var r=t[0],i=r[0],s=r[1],c=t[1],u=t[2];if(u!==o.EdgeDirection.Next&&u!==o.EdgeDirection.Prev)return n.Observable.of([void 0,u]);var h=(c===a.GraphMode.Sequence?e._graphService.cacheSequenceNodes$(i,s):e._graphService.cacheSequence$(i)).retry(3).catch(function(e){return console.error(e),n.Observable.of(void 0)});return n.Observable.combineLatest(h,n.Observable.of(u))}).switchMap(function(t){var r=t[0],i=t[1];if(void 0===r)return n.Observable.empty();var a=r.keys.slice();return i===o.EdgeDirection.Prev&&a.reverse(),e._stateService.currentState$.map(function(e){return[e.state.trajectory[e.state.trajectory.length-1].key,e.state.nodesAhead]}).scan(function(t,r){var n=t[0],i=(t[1],r[0]),o=r[1];void 0===n&&(n=i);var s=a.length-1;if(o>=e._nodesAhead||a[s]===n)return[n,[]];var c=a.indexOf(i),u=a.indexOf(n)+1,h=Math.min(s,c+e._nodesAhead-o)+1;return h<=u?[n,[]]:[a[h-1],a.slice(u,h)]},[void 0,[]]).mergeMap(function(e){e[0];var t=e[1];return n.Observable.from(t)})}).mergeMap(function(t){return e._graphService.cacheNode$(t).catch(function(){return n.Observable.empty()})},6).subscribe(),this._playingSubscription=this._stateService.currentState$.filter(function(t){return t.state.nodesAhead<e._nodesAhead}).distinctUntilChanged(void 0,function(e){return e.state.lastNode.key}).map(function(e){for(var t=e.state.lastNode,r=e.state.trajectory,n=void 0,i=r.length-2;i>=0;i--){var o=r[i];if(o.sequenceKey!==t.sequenceKey)break;if(o.capturedAt!==t.capturedAt){n=o.capturedAt<t.capturedAt;break}}return[e.state.lastNode,n]}).withLatestFrom(this._direction$).switchMap(function(t){var r=t[0],i=r[0],a=r[1],s=t[1];return([o.EdgeDirection.Next,o.EdgeDirection.Prev].indexOf(s)>-1?i.sequenceEdges$:i.spatialEdges$).first(function(e){return e.cached}).timeout(15e3).zip(n.Observable.of(s)).map(function(e){for(var t=e[0],r=e[1],n=0,i=t.edges;n<i.length;n++){var o=i[n];if(o.data.direction===r)return o.to}return null}).switchMap(function(t){return null!=t?e._graphService.cacheNode$(t):e._bridge$(i,a).filter(function(e){return!!e})})}).subscribe(function(t){e._stateService.appendNodes([t])},function(t){console.error(t),e.stop()}),this._clearSubscription=this._stateService.currentNode$.bufferCount(1,10).subscribe(function(t){e._stateService.clearPriorNodes()}),this._setPlaying(!0);var r=this._stateService.currentState$.map(function(e){return e.state}).distinctUntilChanged(function(e,t){var r=e[0],n=e[1],i=t[0],o=t[1];return r===i&&n===o},function(e){return[e.currentNode.key,e.lastNode.key]}).filter(function(e){return e.currentNode.key===e.lastNode.key&&e.currentIndex===e.trajectory.length-1}).map(function(e){return e.currentNode});this._stopSubscription=n.Observable.combineLatest(r,this._direction$).switchMap(function(e){var t=e[0],r=e[1],i=([o.EdgeDirection.Next,o.EdgeDirection.Prev].indexOf(r)>-1?t.sequenceEdges$:t.spatialEdges$).first(function(e){return e.cached}).timeout(15e3).catch(function(e){return console.error(e),n.Observable.of({cached:!1,edges:[]})});return n.Observable.combineLatest(n.Observable.of(r),i).map(function(e){for(var t=e[0],r=0,n=e[1].edges;r<n.length;r++){if(n[r].data.direction===t)return!0}return!1})}).mergeMap(function(t){return t||!e._bridging$?n.Observable.of(t):e._bridging$.map(function(e){return null!=e}).catch(function(e){return console.error(e),n.Observable.of(!1)})}).first(function(e){return!e}).subscribe(void 0,void 0,function(){e.stop()}),this._stopSubscription.closed&&(this._stopSubscription=null)}},e.prototype.setDirection=function(e){this._directionSubject$.next(e)},e.prototype.setSpeed=function(e){if((e=Math.max(0,Math.min(1,e)))!==this._speed){var t=this._setSpeed(e);this._playing&&this._stateService.setSpeed(t),this._speedSubject$.next(this._speed)}},e.prototype.stop=function(){this._playing&&(this._stopSubscription&&(this._stopSubscription.closed||this._stopSubscription.unsubscribe(),this._stopSubscription=null),this._graphModeSubscription.unsubscribe(),this._graphModeSubscription=null,this._cacheSubscription.unsubscribe(),this._cacheSubscription=null,this._playingSubscription.unsubscribe(),this._playingSubscription=null,this._clearSubscription.unsubscribe(),this._clearSubscription=null,this._stateService.setSpeed(1),this._stateService.cutNodes(),this._graphService.setGraphMode(a.GraphMode.Spatial),this._setPlaying(!1))},e.prototype._bridge$=function(e,t){var r=this;if(void 0===t)return n.Observable.of(null);var i=this._graphCalculator.boundingBoxCorners(e.latLon,25);return this._bridging$=this._graphService.cacheBoundingBox$(i[0],i[1]).mergeMap(function(i){for(var o=null,a=0,s=i;a<s.length;a++){var c=s[a];if(c.sequenceKey!==e.sequenceKey&&c.cameraUuid&&c.cameraUuid===e.cameraUuid&&c.capturedAt!==e.capturedAt&&c.capturedAt>e.capturedAt===t){var u=Math.abs(c.capturedAt-e.capturedAt);u>15e3||(!o||u<Math.abs(o.capturedAt-e.capturedAt))&&(o=c)}}return o?r._graphService.cacheNode$(o.key):n.Observable.of(null)}).finally(function(){r._bridging$=null}).publish().refCount(),this._bridging$},e.prototype._mapSpeed=function(e){var t=2*e-1;return Math.pow(10,t)-.2*t},e.prototype._mapNodesAhead=function(e){return Math.round(Math.max(10,Math.min(50,8+6*e)))},e.prototype._setPlaying=function(e){this._playing=e,this._playingSubject$.next(e)},e.prototype._setSpeed=function(e){this._speed=e;var t=this._mapSpeed(this._speed);return this._nodesAhead=this._mapNodesAhead(t),t},e}();r.PlayService=s,r.default=s},{"../Edge":292,"../Graph":295,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/operator/timeout":89}],440:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("../Geo"),o=function(){function e(e,t){this._geoCoords=e||new i.GeoCoords,this._viewportCoords=t||new i.ViewportCoords}return e.prototype.basicToCanvas=function(e,t,r,n){return this._viewportCoords.basicToCanvas(e[0],e[1],t,n,r.perspective)},e.prototype.canvasToBasic=function(e,t,r,n){var i=this._viewportCoords.canvasToBasic(e[0],e[1],t,n,r.perspective);return(i[0]<0||i[0]>1||i[1]<0||i[1]>1)&&(i=null),i},e.prototype.eventToUnprojection=function(e,t,r,n,i){var o=this._viewportCoords.canvasPosition(e,t);return this.canvasToUnprojection(o,t,r,n,i)},e.prototype.canvasToUnprojection=function(e,t,r,i,o){var a=e[0],s=e[1],c=this._viewportCoords.canvasToViewport(a,s,t),u=c[0],h=c[1],l=new n.Vector3(u,h,1).unproject(r.perspective),p=o.projectBasic(l.toArray());(p[0]<0||p[0]>1||p[1]<0||p[1]>1)&&(p=null);var d=l.clone().sub(r.camera.position).normalize(),f=-2/d.z,m=null;if(f>0&&f<100&&p){var v=d.clone().multiplyScalar(f).add(r.camera.position),g=this._geoCoords.enuToGeodetic(v.x,v.y,v.z,i.lat,i.lon,i.alt).slice(0,2);m={lat:g[0],lon:g[1]}}return{basicPoint:p,latLon:m,pixelPoint:[a,s]}},e}();r.Projection=o,r.default=o},{"../Geo":294,three:241}],441:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("virtual-dom"),o=e("rxjs/Subject");e("rxjs/add/operator/publishReplay"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/startWith");var a=e("../Viewer"),s=function(){function e(){}return Object.defineProperty(e.prototype,"json",{set:function(e){this._json=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"image",{set:function(e){this._image=e,this._texture=new n.Texture(this._image),this._texture.minFilter=n.NearestFilter},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loaded",{get:function(){return!(!this._image||!this._json)},enumerable:!0,configurable:!0}),e.prototype.getGLSprite=function(e){if(!this.loaded)throw new Error("Sprites cannot be retrieved before the atlas is loaded.");var t=this._json[e];if(!t)return console.warn("Sprite with key"+e+"does not exist in sprite definition."),new n.Object3D;var r=this._texture.clone();r.needsUpdate=!0;var i=this._image.width,o=this._image.height;r.offset.x=t.x/i,r.offset.y=(o-t.y-t.height)/o,r.repeat.x=t.width/i,r.repeat.y=t.height/o;var a=new n.SpriteMaterial({map:r});return new n.Sprite(a)},e.prototype.getDOMSprite=function(e,t){if(!this.loaded)throw new Error("Sprites cannot be retrieved before the atlas is loaded.");null==t&&(t=a.Alignment.Center);var r=this._json[e];if(!r)return console.warn("Sprite with key"+e+"does not exist in sprite definition."),i.h("div",{},[]);var n=r.y,o=r.x+r.width,s=r.y+r.height,c=r.x,u=-r.x,h=-r.y,l=this._image.height,p=this._image.width;switch(t){case a.Alignment.Bottom:case a.Alignment.Center:case a.Alignment.Top:u-=r.width/2;break;case a.Alignment.BottomLeft:case a.Alignment.Left:case a.Alignment.TopLeft:u-=r.width;break;case a.Alignment.BottomRight:case a.Alignment.Right:case a.Alignment.TopRight:}switch(t){case a.Alignment.Center:case a.Alignment.Left:case a.Alignment.Right:h-=r.height/2;break;case a.Alignment.Top:case a.Alignment.TopLeft:case a.Alignment.TopRight:h-=r.height;break;case a.Alignment.Bottom:case a.Alignment.BottomLeft:case a.Alignment.BottomRight:}var d=1/r.pixelRatio;n*=d,o*=d,s*=d,c*=d,u*=d,h*=d,l*=d,p*=d;var f={src:this._image.src,style:{clip:"rect("+n+"px, "+o+"px, "+s+"px, "+c+"px)",height:l+"px",left:u+"px",position:"absolute",top:h+"px",width:p+"px"}};return i.h("img",f,[])},e}(),c=function(){function e(e){var t=this;if(this._retina=window.devicePixelRatio>1,this._spriteAtlasOperation$=new o.Subject,this._spriteAtlas$=this._spriteAtlasOperation$.startWith(function(e){return e}).scan(function(e,t){return t(e)},new s).publishReplay(1).refCount(),this._spriteAtlas$.subscribe(function(){}),null!=e){var r=this._retina?"@2x":"",n=new XMLHttpRequest;n.open("GET",e+r+".png",!0),n.responseType="arraybuffer",n.onload=function(){var e=new Image;e.onload=function(){t._spriteAtlasOperation$.next(function(t){return t.image=e,t})};var r=new Blob([n.response]);e.src=window.URL.createObjectURL(r)},n.onerror=function(t){console.error(new Error("Failed to fetch sprite sheet ("+e+r+".png)"))},n.send();var i=new XMLHttpRequest;i.open("GET",e+r+".json",!0),i.responseType="text",i.onload=function(){var e=JSON.parse(i.response);t._spriteAtlasOperation$.next(function(t){return t.json=e,t})},i.onerror=function(t){console.error(new Error("Failed to fetch sheet ("+e+r+".json)"))},i.send()}}return Object.defineProperty(e.prototype,"spriteAtlas$",{get:function(){return this._spriteAtlas$},enumerable:!0,configurable:!0}),e}();r.SpriteService=c,r.default=c},{"../Viewer":302,"rxjs/Subject":34,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/startWith":83,three:241,"virtual-dom":247}],442:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/BehaviorSubject"),i=e("rxjs/Observable"),o=e("rxjs/Subject");e("rxjs/add/observable/timer"),e("rxjs/add/operator/bufferWhen"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/map"),e("rxjs/add/operator/merge"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/switchMap");var a=function(){function e(e,t){var r=this;this._activeSubject$=new n.BehaviorSubject(!1),this._active$=this._activeSubject$.distinctUntilChanged().publishReplay(1).refCount(),i.Observable.fromEvent(t,"touchmove").subscribe(function(e){e.preventDefault()}),this._touchStart$=i.Observable.fromEvent(e,"touchstart"),this._touchMove$=i.Observable.fromEvent(e,"touchmove"),this._touchEnd$=i.Observable.fromEvent(e,"touchend"),this._touchCancel$=i.Observable.fromEvent(e,"touchcancel");var a=this._touchStart$.filter(function(e){return 1===e.touches.length&&1===e.targetTouches.length}).share();this._doubleTap$=a.bufferWhen(function(){return a.first().switchMap(function(e){return i.Observable.timer(300).merge(a).take(1)})}).filter(function(e){return 2===e.length}).map(function(e){return e[e.length-1]}).share(),this._doubleTap$.subscribe(function(e){e.preventDefault()}),this._singleTouchMove$=this._touchMove$.filter(function(e){return 1===e.touches.length&&1===e.targetTouches.length}).share();var s=i.Observable.merge(this._touchStart$,this._touchEnd$,this._touchCancel$).filter(function(e){return 1===e.touches.length&&1===e.targetTouches.length}),c=i.Observable.merge(this._touchStart$,this._touchEnd$,this._touchCancel$).filter(function(e){return e.touches.length>=1}),u=i.Observable.merge(this._touchEnd$,this._touchCancel$).filter(function(e){return 0===e.touches.length});this._singleTouchDragStart$=s.mergeMap(function(e){return r._singleTouchMove$.takeUntil(i.Observable.merge(u,c)).take(1)}),this._singleTouchDragEnd$=s.mergeMap(function(e){return i.Observable.merge(u,c).first()}),this._singleTouchDrag$=s.switchMap(function(e){return r._singleTouchMove$.skip(1).takeUntil(i.Observable.merge(c,u))});var h=i.Observable.merge(this._touchStart$,this._touchEnd$,this._touchCancel$);this._pinchStart$=h.filter(function(e){return 2===e.touches.length&&2===e.targetTouches.length}),this._pinchEnd$=h.filter(function(e){return 2!==e.touches.length||2!==e.targetTouches.length}),this._pinchOperation$=new o.Subject,this._pinch$=this._pinchOperation$.scan(function(e,t){return t(e)},{changeX:0,changeY:0,clientX:0,clientY:0,distance:0,distanceChange:0,distanceX:0,distanceY:0,originalEvent:null,pageX:0,pageY:0,screenX:0,screenY:0,touch1:null,touch2:null}),this._touchMove$.filter(function(e){return 2===e.touches.length&&2===e.targetTouches.length}).map(function(e){return function(t){var r=e.touches[0],n=e.touches[1],i=Math.min(r.clientX,n.clientX),o=Math.max(r.clientX,n.clientX),a=Math.min(r.clientY,n.clientY),s=i+(o-i)/2,c=a+(Math.max(r.clientY,n.clientY)-a)/2,u=s+r.pageX-r.clientX,h=c+r.pageY-r.clientY,l=s+r.screenX-r.clientX,p=c+r.screenY-r.clientY,d=Math.abs(r.clientX-n.clientX),f=Math.abs(r.clientY-n.clientY),m=Math.sqrt(d*d+f*f),v=m-t.distance;return{changeX:d-t.distanceX,changeY:f-t.distanceY,clientX:s,clientY:c,distance:m,distanceChange:v,distanceX:d,distanceY:f,originalEvent:e,pageX:u,pageY:h,screenX:l,screenY:p,touch1:r,touch2:n}}}).subscribe(this._pinchOperation$),this._pinchChange$=this._pinchStart$.switchMap(function(e){return r._pinch$.skip(1).takeUntil(r._pinchEnd$)})}return Object.defineProperty(e.prototype,"active$",{get:function(){return this._active$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activate$",{get:function(){return this._activeSubject$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"doubleTap$",{get:function(){return this._doubleTap$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"touchStart$",{get:function(){return this._touchStart$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"touchMove$",{get:function(){return this._touchMove$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"touchEnd$",{get:function(){return this._touchEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"touchCancel$",{get:function(){return this._touchCancel$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"singleTouchDragStart$",{get:function(){return this._singleTouchDragStart$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"singleTouchDrag$",{get:function(){return this._singleTouchDrag$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"singleTouchDragEnd$",{get:function(){return this._singleTouchDragEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pinch$",{get:function(){return this._pinchChange$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pinchStart$",{get:function(){return this._pinchStart$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pinchEnd$",{get:function(){return this._pinchEnd$},enumerable:!0,configurable:!0}),e}();r.TouchService=a},{"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/timer":48,"rxjs/add/operator/bufferWhen":53,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/scan":78,"rxjs/add/operator/switchMap":84}],443:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("when"),o=e("rxjs/Observable"),a=e("../Viewer"),s=e("../Utils"),c=function(e){function t(t,r,n,i,o){var c=e.call(this)||this;return i=null!=i?i:{},s.Settings.setOptions(i),s.Urls.setOptions(i.url),c._navigator=new a.Navigator(r,i,o),c._container=new a.Container(t,c._navigator.stateService,i),c._observer=new a.Observer(c,c._navigator,c._container),c._componentController=new a.ComponentController(c._container,c._navigator,c._observer,n,i.component),c}return n(t,e),Object.defineProperty(t.prototype,"isNavigable",{get:function(){return this._componentController.navigable},enumerable:!0,configurable:!0}),t.prototype.activateComponent=function(e){this._componentController.activate(e)},t.prototype.activateCover=function(){this._componentController.activateCover()},t.prototype.deactivateComponent=function(e){this._componentController.deactivate(e)},t.prototype.deactivateCover=function(){this._componentController.deactivateCover()},t.prototype.getBearing=function(){var e=this;return i.promise(function(t,r){e._container.renderService.bearing$.first().subscribe(function(e){t(e)},function(e){r(e)})})},t.prototype.getCenter=function(){var e=this;return i.promise(function(t,r){e._navigator.stateService.getCenter().subscribe(function(e){t(e)},function(e){r(e)})})},t.prototype.getComponent=function(e){return this._componentController.get(e)},t.prototype.getContainer=function(){return this._container.element},t.prototype.getZoom=function(){var e=this;return i.promise(function(t,r){e._navigator.stateService.getZoom().subscribe(function(e){t(e)},function(e){r(e)})})},t.prototype.moveCloseTo=function(e,t){var r=this.isNavigable?this._navigator.moveCloseTo$(e,t):o.Observable.throw(new Error("Calling moveCloseTo is not supported when viewer is not navigable."));return i.promise(function(e,t){r.subscribe(function(t){e(t)},function(e){t(e)})})},t.prototype.moveDir=function(e){var t=this.isNavigable?this._navigator.moveDir$(e):o.Observable.throw(new Error("Calling moveDir is not supported when viewer is not navigable."));return i.promise(function(e,r){t.subscribe(function(t){e(t)},function(e){r(e)})})},t.prototype.moveToKey=function(e){var t=this.isNavigable?this._navigator.moveToKey$(e):o.Observable.throw(new Error("Calling moveToKey is not supported when viewer is not navigable."));return i.promise(function(e,r){t.subscribe(function(t){e(t)},function(e){r(e)})})},t.prototype.projectFromBasic=function(e){var t=this;return i.promise(function(r,n){t._observer.projectBasic$(e).subscribe(function(e){r(e)},function(e){n(e)})})},t.prototype.resize=function(){this._container.renderService.resize$.next(null),this._componentController.resize()},t.prototype.setAuthToken=function(e){var t=this.isNavigable?this._navigator.setToken$(e):o.Observable.throw(new Error("Calling setAuthToken is not supported when viewer is not navigable."));return i.promise(function(e,r){t.subscribe(function(){e(void 0)},function(e){r(e)})})},t.prototype.setCenter=function(e){this._navigator.stateService.setCenter(e)},t.prototype.setFilter=function(e){var t=this;return i.promise(function(r,n){t._navigator.setFilter$(e).subscribe(function(){r(void 0)},function(e){n(e)})})},t.prototype.setRenderMode=function(e){this._container.renderService.renderMode$.next(e)},t.prototype.setTransitionMode=function(e){this._navigator.stateService.setTransitionMode(e)},t.prototype.setZoom=function(e){this._navigator.stateService.setZoom(e)},t.prototype.unproject=function(e){var t=this;return i.promise(function(r,n){t._observer.unproject$(e).subscribe(function(e){r(e)},function(e){n(e)})})},t.prototype.unprojectToBasic=function(e){var t=this;return i.promise(function(r,n){t._observer.unprojectBasic$(e).subscribe(function(e){r(e)},function(e){n(e)})})},t.bearingchanged="bearingchanged",t.click="click",t.contextmenu="contextmenu",t.dblclick="dblclick",t.loadingchanged="loadingchanged",t.mousedown="mousedown",t.mousemove="mousemove",t.mouseout="mouseout",t.mouseover="mouseover",t.mouseup="mouseup",t.moveend="moveend",t.movestart="movestart",t.navigablechanged="navigablechanged",t.nodechanged="nodechanged",t.sequenceedgeschanged="sequenceedgeschanged",t.spatialedgeschanged="spatialedgeschanged",t}(s.EventEmitter);r.Viewer=c},{"../Utils":301,"../Viewer":302,"rxjs/Observable":29,when:288}]},{},[296])(296)});
+!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Mapillary=e()}}(function(){return function e(t,r,n){function i(s,a){if(!r[s]){if(!t[s]){var c="function"==typeof require&&require;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var h=r[s]={exports:{}};t[s][0].call(h.exports,function(e){var r=t[s][1][e];return i(r||e)},h,h.exports,e,t,r,n)}return r[s].exports}for(var o="function"==typeof require&&require,s=0;s<n.length;s++)i(n[s]);return i}({1:[function(e,t,r){"use strict";function n(e,t,r){t=t||1;for(var n,a,c,u,h=0;h<e[0].length;h++){var l=e[0][h];(!h||l[0]<n)&&(n=l[0]),(!h||l[1]<a)&&(a=l[1]),(!h||l[0]>c)&&(c=l[0]),(!h||l[1]>u)&&(u=l[1])}var p=c-n,f=u-a,d=Math.min(p,f),m=d/2,v=new s(null,i);if(0===d)return[n,a];for(var g=n;g<c;g+=d)for(var y=a;y<u;y+=d)v.push(new o(g+m,y+m,m,e));var b=function(e){for(var t=0,r=0,n=0,i=e[0],s=0,a=i.length,c=a-1;s<a;c=s++){var u=i[s],h=i[c],l=u[0]*h[1]-h[0]*u[1];r+=(u[0]+h[0])*l,n+=(u[1]+h[1])*l,t+=3*l}return 0===t?new o(i[0][0],i[0][1],0,e):new o(r/t,n/t,0,e)}(e),_=new o(n+p/2,a+f/2,0,e);_.d>b.d&&(b=_);for(var x=v.length;v.length;){var w=v.pop();w.d>b.d&&(b=w,r&&console.log("found best %d after %d probes",Math.round(1e4*w.d)/1e4,x)),w.max-b.d<=t||(m=w.h/2,v.push(new o(w.x-m,w.y-m,m,e)),v.push(new o(w.x+m,w.y-m,m,e)),v.push(new o(w.x-m,w.y+m,m,e)),v.push(new o(w.x+m,w.y+m,m,e)),x+=4)}return r&&(console.log("num probes: "+x),console.log("best distance: "+b.d)),[b.x,b.y]}function i(e,t){return t.max-e.max}function o(e,t,r,n){this.x=e,this.y=t,this.h=r,this.d=function(e,t,r){for(var n=!1,i=1/0,o=0;o<r.length;o++)for(var s=r[o],a=0,c=s.length,u=c-1;a<c;u=a++){var h=s[a],l=s[u];h[1]>t!=l[1]>t&&e<(l[0]-h[0])*(t-h[1])/(l[1]-h[1])+h[0]&&(n=!n),i=Math.min(i,function(e,t,r,n){var i=r[0],o=r[1],s=n[0]-i,a=n[1]-o;if(0!==s||0!==a){var c=((e-i)*s+(t-o)*a)/(s*s+a*a);c>1?(i=n[0],o=n[1]):c>0&&(i+=s*c,o+=a*c)}return s=e-i,a=t-o,s*s+a*a}(e,t,h,l))}return(n?1:-1)*Math.sqrt(i)}(e,t,n),this.max=this.d+this.h*Math.SQRT2}var s=e("tinyqueue");t.exports=n,t.exports.default=n},{tinyqueue:241}],2:[function(e,t,r){function n(e,t,r,n){this.cx=3*e,this.bx=3*(r-e)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*t,this.by=3*(n-t)-this.cy,this.ay=1-this.cy-this.by,this.p1x=e,this.p1y=n,this.p2x=r,this.p2y=n}t.exports=n,n.prototype.sampleCurveX=function(e){return((this.ax*e+this.bx)*e+this.cx)*e},n.prototype.sampleCurveY=function(e){return((this.ay*e+this.by)*e+this.cy)*e},n.prototype.sampleCurveDerivativeX=function(e){return(3*this.ax*e+2*this.bx)*e+this.cx},n.prototype.solveCurveX=function(e,t){void 0===t&&(t=1e-6);var r,n,i,o,s;for(i=e,s=0;s<8;s++){if(o=this.sampleCurveX(i)-e,Math.abs(o)<t)return i;var a=this.sampleCurveDerivativeX(i);if(Math.abs(a)<1e-6)break;i-=o/a}if(r=0,n=1,(i=e)<r)return r;if(i>n)return n;for(;r<n;){if(o=this.sampleCurveX(i),Math.abs(o-e)<t)return i;e>o?r=i:n=i,i=.5*(n-r)+r}return i},n.prototype.solve=function(e,t){return this.sampleCurveY(this.solveCurveX(e,t))}},{}],3:[function(e,t,r){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return s[e>>18&63]+s[e>>12&63]+s[e>>6&63]+s[63&e]}function o(e,t,r){for(var n,o=[],s=t;s<r;s+=3)n=(e[s]<<16)+(e[s+1]<<8)+e[s+2],o.push(i(n));return o.join("")}r.byteLength=function(e){return 3*e.length/4-n(e)},r.toByteArray=function(e){var t,r,i,o,s,u=e.length;o=n(e),s=new c(3*u/4-o),r=o>0?u-4:u;var h=0;for(t=0;t<r;t+=4)i=a[e.charCodeAt(t)]<<18|a[e.charCodeAt(t+1)]<<12|a[e.charCodeAt(t+2)]<<6|a[e.charCodeAt(t+3)],s[h++]=i>>16&255,s[h++]=i>>8&255,s[h++]=255&i;return 2===o?(i=a[e.charCodeAt(t)]<<2|a[e.charCodeAt(t+1)]>>4,s[h++]=255&i):1===o&&(i=a[e.charCodeAt(t)]<<10|a[e.charCodeAt(t+1)]<<4|a[e.charCodeAt(t+2)]>>2,s[h++]=i>>8&255,s[h++]=255&i),s},r.fromByteArray=function(e){for(var t,r=e.length,n=r%3,i="",a=[],c=0,u=r-n;c<u;c+=16383)a.push(o(e,c,c+16383>u?u:c+16383));return 1===n?(t=e[r-1],i+=s[t>>2],i+=s[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=s[t>>10],i+=s[t>>4&63],i+=s[t<<2&63],i+="="),a.push(i),a.join("")};for(var s=[],a=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0,l=u.length;h<l;++h)s[h]=u[h],a[u.charCodeAt(h)]=h;a["-".charCodeAt(0)]=62,a["_".charCodeAt(0)]=63},{}],4:[function(e,t,r){},{}],5:[function(e,t,r){t.exports=function(e){var t=String.prototype.split,r=/()??/.exec("")[1]===e;return function(n,i,o){if("[object RegExp]"!==Object.prototype.toString.call(i))return t.call(n,i,o);var s,a,c,u,h=[],l=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.extended?"x":"")+(i.sticky?"y":""),p=0,i=new RegExp(i.source,l+"g");for(n+="",r||(s=new RegExp("^"+i.source+"$(?!\\s)",l)),o=o===e?-1>>>0:o>>>0;(a=i.exec(n))&&!((c=a.index+a[0].length)>p&&(h.push(n.slice(p,a.index)),!r&&a.length>1&&a[0].replace(s,function(){for(var t=1;t<arguments.length-2;t++)arguments[t]===e&&(a[t]=e)}),a.length>1&&a.index<n.length&&Array.prototype.push.apply(h,a.slice(1)),u=a[0].length,p=c,h.length>=o));)i.lastIndex===a.index&&i.lastIndex++;return p===n.length?!u&&i.test("")||h.push(""):h.push(n.slice(p)),h.length>o?h.slice(0,o):h}}()},{}],6:[function(e,t,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function o(e){if(h===setTimeout)return setTimeout(e,0);if((h===n||!h)&&setTimeout)return h=setTimeout,setTimeout(e,0);try{return h(e,0)}catch(t){try{return h.call(null,e,0)}catch(t){return h.call(this,e,0)}}}function s(){m&&f&&(m=!1,f.length?d=f.concat(d):v=-1,d.length&&a())}function a(){if(!m){var e=o(s);m=!0;for(var t=d.length;t;){for(f=d,d=[];++v<t;)f&&f[v].run();v=-1,t=d.length}f=null,m=!1,function(e){if(l===clearTimeout)return clearTimeout(e);if((l===i||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(e);try{l(e)}catch(t){try{return l.call(null,e)}catch(t){return l.call(this,e)}}}(e)}}function c(e,t){this.fun=e,this.array=t}function u(){}var h,l,p=t.exports={};!function(){try{h="function"==typeof setTimeout?setTimeout:n}catch(e){h=n}try{l="function"==typeof clearTimeout?clearTimeout:i}catch(e){l=i}}();var f,d=[],m=!1,v=-1;p.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];d.push(new c(e,t)),1!==d.length||m||o(a)},c.prototype.run=function(){this.fun.apply(null,this.array)},p.title="browser",p.browser=!0,p.env={},p.argv=[],p.version="",p.versions={},p.on=u,p.addListener=u,p.once=u,p.off=u,p.removeListener=u,p.removeAllListeners=u,p.emit=u,p.prependListener=u,p.prependOnceListener=u,p.listeners=function(e){return[]},p.binding=function(e){throw new Error("process.binding is not supported")},p.cwd=function(){return"/"},p.chdir=function(e){throw new Error("process.chdir is not supported")},p.umask=function(){return 0}},{}],7:[function(e,t,r){"use strict";function n(e){if(e>I)throw new RangeError("Invalid typed array length");var t=new Uint8Array(e);return t.__proto__=i.prototype,t}function i(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return a(e)}return o(e,t,r)}function o(e,t,r){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return A(e)?function(e,t,r){if(t<0||e.byteLength<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(r||0))throw new RangeError("'length' is out of bounds");var n;n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r);return n.__proto__=i.prototype,n}(e,t,r):"string"==typeof e?function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!i.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var r=0|h(e,t),o=n(r),s=o.write(e,t);s!==r&&(o=o.slice(0,s));return o}(e,t):function(e){if(i.isBuffer(e)){var t=0|u(e.length),r=n(t);return 0===r.length?r:(e.copy(r,0,0,t),r)}if(e){if(R(e)||"length"in e)return"number"!=typeof e.length||j(e.length)?n(0):c(e);if("Buffer"===e.type&&Array.isArray(e.data))return c(e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e)}function s(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function a(e){return s(e),n(e<0?0:0|u(e))}function c(e){for(var t=e.length<0?0:0|u(e.length),r=n(t),i=0;i<t;i+=1)r[i]=255&e[i];return r}function u(e){if(e>=I)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+I.toString(16)+" bytes");return 0|e}function h(e,t){if(i.isBuffer(e))return e.length;if(R(e)||A(e))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return T(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return O(e).length;default:if(n)return T(e).length;t=(""+t).toLowerCase(),n=!0}}function l(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,r){var n=e.length;(!t||t<0)&&(t=0);(!r||r<0||r>n)&&(r=n);for(var i="",o=t;o<r;++o)i+=function(e){return e<16?"0"+e.toString(16):e.toString(16)}(e[o]);return i}(this,t,r);case"utf8":case"utf-8":return x(this,t,r);case"ascii":return function(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}(this,t,r);case"latin1":case"binary":return function(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}(this,t,r);case"base64":return function(e,t,r){return 0===t&&r===e.length?L.fromByteArray(e):L.fromByteArray(e.slice(t,r))}(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return function(e,t,r){for(var n=e.slice(t,r),i="",o=0;o<n.length;o+=2)i+=String.fromCharCode(n[o]+256*n[o+1]);return i}(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function p(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function f(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,j(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=i.from(t,n)),i.isBuffer(t))return 0===t.length?-1:d(e,t,r,n,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):d(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function d(e,t,r,n,i){function o(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var s=1,a=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,r/=2}var u;if(i){var h=-1;for(u=r;u<a;u++)if(o(e,u)===o(t,-1===h?0:u-h)){if(-1===h&&(h=u),u-h+1===c)return h*s}else-1!==h&&(u-=u-h),h=-1}else for(r+c>a&&(r=a-c),u=r;u>=0;u--){for(var l=!0,p=0;p<c;p++)if(o(e,u+p)!==o(t,p)){l=!1;break}if(l)return u}return-1}function m(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s<n;++s){var a=parseInt(t.substr(2*s,2),16);if(j(a))return s;e[r+s]=a}return s}function v(e,t,r,n){return P(T(t,e.length-r),e,r,n)}function g(e,t,r,n){return P(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function y(e,t,r,n){return g(e,t,r,n)}function b(e,t,r,n){return P(O(t),e,r,n)}function _(e,t,r,n){return P(function(e,t){for(var r,n,i,o=[],s=0;s<e.length&&!((t-=2)<0);++s)r=e.charCodeAt(s),n=r>>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function x(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var o=e[i],s=null,a=o>239?4:o>223?3:o>191?2:1;if(i+a<=r){var c,u,h,l;switch(a){case 1:o<128&&(s=o);break;case 2:128==(192&(c=e[i+1]))&&(l=(31&o)<<6|63&c)>127&&(s=l);break;case 3:c=e[i+1],u=e[i+2],128==(192&c)&&128==(192&u)&&(l=(15&o)<<12|(63&c)<<6|63&u)>2047&&(l<55296||l>57343)&&(s=l);break;case 4:c=e[i+1],u=e[i+2],h=e[i+3],128==(192&c)&&128==(192&u)&&128==(192&h)&&(l=(15&o)<<18|(63&c)<<12|(63&u)<<6|63&h)>65535&&l<1114112&&(s=l)}}null===s?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|1023&s),n.push(s),i+=a}return function(e){var t=e.length;if(t<=D)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=D));return r}(n)}function w(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function S(e,t,r,n,o,s){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<s)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function M(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function E(e,t,r,n,i){return t=+t,r>>>=0,i||M(e,0,r,4),N.write(e,t,r,n,23,4),r+4}function C(e,t,r,n,i){return t=+t,r>>>=0,i||M(e,0,r,8),N.write(e,t,r,n,52,8),r+8}function T(e,t){t=t||1/0;for(var r,n=e.length,i=null,o=[],s=0;s<n;++s){if((r=e.charCodeAt(s))>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function O(e){return L.toByteArray(function(e){if((e=e.trim().replace(k,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function P(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function A(e){return e instanceof ArrayBuffer||null!=e&&null!=e.constructor&&"ArrayBuffer"===e.constructor.name&&"number"==typeof e.byteLength}function R(e){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(e)}function j(e){return e!=e}var L=e("base64-js"),N=e("ieee754");r.Buffer=i,r.SlowBuffer=function(e){return+e!=e&&(e=0),i.alloc(+e)},r.INSPECT_MAX_BYTES=50;var I=2147483647;r.kMaxLength=I,(i.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()}catch(e){return!1}}())||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),i.poolSize=8192,i.from=function(e,t,r){return o(e,t,r)},i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,i.alloc=function(e,t,r){return function(e,t,r){return s(e),e<=0?n(e):void 0!==t?"string"==typeof r?n(e).fill(t,r):n(e).fill(t):n(e)}(e,t,r)},i.allocUnsafe=function(e){return a(e)},i.allocUnsafeSlow=function(e){return a(e)},i.isBuffer=function(e){return null!=e&&!0===e._isBuffer},i.compare=function(e,t){if(!i.isBuffer(e)||!i.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,o=0,s=Math.min(r,n);o<s;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0},i.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return i.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=i.allocUnsafe(t),o=0;for(r=0;r<e.length;++r){var s=e[r];if(!i.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,o),o+=s.length}return n},i.byteLength=h,i.prototype._isBuffer=!0,i.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)p(this,t,t+1);return this},i.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)p(this,t,t+3),p(this,t+1,t+2);return this},i.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)p(this,t,t+7),p(this,t+1,t+6),p(this,t+2,t+5),p(this,t+3,t+4);return this},i.prototype.toString=function(){var e=this.length;return 0===e?"":0===arguments.length?x(this,0,e):l.apply(this,arguments)},i.prototype.equals=function(e){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===i.compare(this,e)},i.prototype.inspect=function(){var e="",t=r.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},i.prototype.compare=function(e,t,r,n,o){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,o>>>=0,this===e)return 0;for(var s=o-n,a=r-t,c=Math.min(s,a),u=this.slice(n,o),h=e.slice(t,r),l=0;l<c;++l)if(u[l]!==h[l]){s=u[l],a=h[l];break}return s<a?-1:a<s?1:0},i.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},i.prototype.indexOf=function(e,t,r){return f(this,e,t,r,!0)},i.prototype.lastIndexOf=function(e,t,r){return f(this,e,t,r,!1)},i.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return m(this,e,t,r);case"utf8":case"utf-8":return v(this,e,t,r);case"ascii":return g(this,e,t,r);case"latin1":case"binary":return y(this,e,t,r);case"base64":return b(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;i.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e);var n=this.subarray(e,t);return n.__proto__=i.prototype,n},i.prototype.readUIntLE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=this[e],i=1,o=0;++o<t&&(i*=256);)n+=this[e+o]*i;return n},i.prototype.readUIntBE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},i.prototype.readUInt8=function(e,t){return e>>>=0,t||w(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return e>>>=0,t||w(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return e>>>=0,t||w(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return e>>>=0,t||w(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},i.prototype.readUInt32BE=function(e,t){return e>>>=0,t||w(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=this[e],i=1,o=0;++o<t&&(i*=256);)n+=this[e+o]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*t)),n},i.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||w(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},i.prototype.readInt8=function(e,t){return e>>>=0,t||w(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){e>>>=0,t||w(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt16BE=function(e,t){e>>>=0,t||w(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt32LE=function(e,t){return e>>>=0,t||w(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,t){return e>>>=0,t||w(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readFloatLE=function(e,t){return e>>>=0,t||w(e,4,this.length),N.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return e>>>=0,t||w(e,4,this.length),N.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return e>>>=0,t||w(e,8,this.length),N.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return e>>>=0,t||w(e,8,this.length),N.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){S(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,o=0;for(this[t]=255&e;++o<r&&(i*=256);)this[t+o]=e/i&255;return t+r},i.prototype.writeUIntBE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){S(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=r-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r},i.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,1,255,0),this[t]=255&e,t+1},i.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},i.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);S(this,e,t,r,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o<r&&(s*=256);)e<0&&0===a&&0!==this[t+o-1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+r},i.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);S(this,e,t,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+r},i.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},i.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},i.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||S(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeFloatLE=function(e,t,r){return E(this,e,t,!0,r)},i.prototype.writeFloatBE=function(e,t,r){return E(this,e,t,!1,r)},i.prototype.writeDoubleLE=function(e,t,r){return C(this,e,t,!0,r)},i.prototype.writeDoubleBE=function(e,t,r){return C(this,e,t,!1,r)},i.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var i,o=n-r;if(this===e&&r<t&&t<n)for(i=o-1;i>=0;--i)e[i+t]=this[i+r];else if(o<1e3)for(i=0;i<o;++i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+o),t);return o},i.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!i.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var s;if("number"==typeof e)for(s=t;s<r;++s)this[s]=e;else{var a=i.isBuffer(e)?e:new i(e,n),c=a.length;for(s=0;s<r-t;++s)this[s+t]=a[s%c]}return this};var k=/[^+/0-9A-Za-z-_]/g},{"base64-js":3,ieee754:17}],8:[function(e,t,r){"use strict";function n(e,t,r){r=r||2;var n=t&&t.length,c=n?t[0]*r:e.length,h=i(e,0,c,r,!0),l=[];if(!h)return l;var p,m,v,g,y,b,_;if(n&&(h=function(e,t,r,n){var s,c,h,l,p,m=[];for(s=0,c=t.length;s<c;s++)h=t[s]*n,l=s<c-1?t[s+1]*n:e.length,(p=i(e,h,l,n,!1))===p.next&&(p.steiner=!0),m.push(function(e){var t=e,r=e;do{t.x<r.x&&(r=t),t=t.next}while(t!==e);return r}(p));for(m.sort(a),s=0;s<m.length;s++)!function(e,t){if(t=function(e,t){var r,n=t,i=e.x,o=e.y,s=-1/0;do{if(o<=n.y&&o>=n.next.y&&n.next.y!==n.y){var a=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=i&&a>s){if(s=a,a===i){if(o===n.y)return n;if(o===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==t);if(!r)return null;if(i===s)return r.prev;var c,h=r,l=r.x,p=r.y,d=1/0;for(n=r.next;n!==h;)i>=n.x&&n.x>=l&&i!==n.x&&u(o<p?i:s,o,l,p,o<p?s:i,o,n.x,n.y)&&((c=Math.abs(o-n.y)/(i-n.x))<d||c===d&&n.x>r.x)&&f(n,e)&&(r=n,d=c),n=n.next;return r}(e,t)){var r=d(t,e);o(r,r.next)}}(m[s],r),r=o(r,r.next);return r}(e,t,h,r)),e.length>80*r){p=v=e[0],m=g=e[1];for(var x=r;x<c;x+=r)y=e[x],b=e[x+1],y<p&&(p=y),b<m&&(m=b),y>v&&(v=y),b>g&&(g=b);_=0!==(_=Math.max(v-p,g-m))?1/_:0}return s(h,l,r,p,m,_),l}function i(e,t,r,n,i){var o,s;if(i===y(e,t,r,n)>0)for(o=t;o<r;o+=n)s=m(o,e[o],e[o+1],s);else for(o=r-n;o>=t;o-=n)s=m(o,e[o],e[o+1],s);return s&&l(s,s.next)&&(v(s),s=s.next),s}function o(e,t){if(!e)return e;t||(t=e);var r,n=e;do{if(r=!1,n.steiner||!l(n,n.next)&&0!==h(n.prev,n,n.next))n=n.next;else{if(v(n),(n=t=n.prev)===n.next)break;r=!0}}while(r||n!==t);return t}function s(e,t,r,n,i,a,m){if(e){!m&&a&&function(e,t,r,n){var i=e;do{null===i.z&&(i.z=c(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){var t,r,n,i,o,s,a,c,u=1;do{for(r=e,e=null,o=null,s=0;r;){for(s++,n=r,a=0,t=0;t<u&&(a++,n=n.nextZ);t++);for(c=u;a>0||c>0&&n;)0!==a&&(0===c||!n||r.z<=n.z)?(i=r,r=r.nextZ,a--):(i=n,n=n.nextZ,c--),o?o.nextZ=i:e=i,i.prevZ=o,o=i;r=n}o.nextZ=null,u*=2}while(s>1)}(i)}(e,n,i,a);for(var g,y,b=e;e.prev!==e.next;)if(g=e.prev,y=e.next,a?function(e,t,r,n){var i=e.prev,o=e,s=e.next;if(h(i,o,s)>=0)return!1;var a=i.x<o.x?i.x<s.x?i.x:s.x:o.x<s.x?o.x:s.x,l=i.y<o.y?i.y<s.y?i.y:s.y:o.y<s.y?o.y:s.y,p=i.x>o.x?i.x>s.x?i.x:s.x:o.x>s.x?o.x:s.x,f=i.y>o.y?i.y>s.y?i.y:s.y:o.y>s.y?o.y:s.y,d=c(a,l,t,r,n),m=c(p,f,t,r,n),v=e.nextZ;for(;v&&v.z<=m;){if(v!==e.prev&&v!==e.next&&u(i.x,i.y,o.x,o.y,s.x,s.y,v.x,v.y)&&h(v.prev,v,v.next)>=0)return!1;v=v.nextZ}v=e.prevZ;for(;v&&v.z>=d;){if(v!==e.prev&&v!==e.next&&u(i.x,i.y,o.x,o.y,s.x,s.y,v.x,v.y)&&h(v.prev,v,v.next)>=0)return!1;v=v.prevZ}return!0}(e,n,i,a):function(e){var t=e.prev,r=e,n=e.next;if(h(t,r,n)>=0)return!1;var i=e.next.next;for(;i!==e.prev;){if(u(t.x,t.y,r.x,r.y,n.x,n.y,i.x,i.y)&&h(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}(e))t.push(g.i/r),t.push(e.i/r),t.push(y.i/r),v(e),e=y.next,b=y.next;else if((e=y)===b){m?1===m?s(e=function(e,t,r){var n=e;do{var i=n.prev,o=n.next.next;!l(i,o)&&p(i,n,n.next,o)&&f(i,o)&&f(o,i)&&(t.push(i.i/r),t.push(n.i/r),t.push(o.i/r),v(n),v(n.next),n=e=o),n=n.next}while(n!==e);return n}(e,t,r),t,r,n,i,a,2):2===m&&function(e,t,r,n,i,a){var c=e;do{for(var u=c.next.next;u!==c.prev;){if(c.i!==u.i&&function(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&p(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}(e,t)&&f(e,t)&&f(t,e)&&function(e,t){var r=e,n=!1,i=(e.x+t.x)/2,o=(e.y+t.y)/2;do{r.y>o!=r.next.y>o&&r.next.y!==r.y&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==e);return n}(e,t)}(c,u)){var h=d(c,u);return c=o(c,c.next),h=o(h,h.next),s(c,t,r,n,i,a),void s(h,t,r,n,i,a)}u=u.next}c=c.next}while(c!==e)}(e,t,r,n,i,a):s(o(e),t,r,n,i,a,1);break}}}function a(e,t){return e.x-t.x}function c(e,t,r,n,i){return e=32767*(e-r)*i,t=32767*(t-n)*i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function u(e,t,r,n,i,o,s,a){return(i-s)*(t-a)-(e-s)*(o-a)>=0&&(e-s)*(n-a)-(r-s)*(t-a)>=0&&(r-s)*(o-a)-(i-s)*(n-a)>=0}function h(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function l(e,t){return e.x===t.x&&e.y===t.y}function p(e,t,r,n){return!!(l(e,t)&&l(r,n)||l(e,n)&&l(r,t))||h(e,t,r)>0!=h(e,t,n)>0&&h(r,n,e)>0!=h(r,n,t)>0}function f(e,t){return h(e.prev,e,e.next)<0?h(e,t,e.next)>=0&&h(e,e.prev,t)>=0:h(e,t,e.prev)<0||h(e,e.next,t)<0}function d(e,t){var r=new g(e.i,e.x,e.y),n=new g(t.i,t.x,t.y),i=e.next,o=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,o.next=n,n.prev=o,n}function m(e,t,r,n){var i=new g(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function v(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function g(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function y(e,t,r,n){for(var i=0,o=t,s=r-n;o<r;o+=n)i+=(e[s]-e[o])*(e[o+1]+e[s+1]),s=o;return i}t.exports=n,t.exports.default=n,n.deviation=function(e,t,r,n){var i=t&&t.length,o=i?t[0]*r:e.length,s=Math.abs(y(e,0,o,r));if(i)for(var a=0,c=t.length;a<c;a++){var u=t[a]*r,h=a<c-1?t[a+1]*r:e.length;s-=Math.abs(y(e,u,h,r))}var l=0;for(a=0;a<n.length;a+=3){var p=n[a]*r,f=n[a+1]*r,d=n[a+2]*r;l+=Math.abs((e[p]-e[d])*(e[f+1]-e[p+1])-(e[p]-e[f])*(e[d+1]-e[p+1]))}return 0===s&&0===l?0:Math.abs((l-s)/s)},n.flatten=function(e){for(var t=e[0][0].length,r={vertices:[],holes:[],dimensions:t},n=0,i=0;i<e.length;i++){for(var o=0;o<e[i].length;o++)for(var s=0;s<t;s++)r.vertices.push(e[i][o][s]);i>0&&(n+=e[i-1].length,r.holes.push(n))}return r}},{}],9:[function(e,t,r){"use strict";e("individual/one-version")("ev-store","7");var n="__EV_STORE_KEY@7";t.exports=function(e){var t=e[n];return t||(t=e[n]={}),t}},{"individual/one-version":19}],10:[function(e,t,r){"use strict";function n(e,t){var r;for(r in t)e[r]=t[r];return e}function i(e,t){if(this._jsongUrl=e,"number"==typeof t){t={timeout:t}}this._config=n({timeout:15e3,headers:{}},t||{})}var o=e("./request"),s=e("./buildQueryObject");Array.isArray;i.prototype={constructor:i,buildQueryObject:s,get:function(e){var t=n(this.buildQueryObject(this._jsongUrl,"GET",{paths:e,method:"get"}),this._config);return o("GET",t,this)},set:function(e){var t=n(this.buildQueryObject(this._jsongUrl,"POST",{jsonGraph:e,method:"set"}),this._config);t.headers["Content-Type"]="application/x-www-form-urlencoded";return o("POST",t,this)},call:function(e,t,r,i){t=t||[],r=r||[],i=i||[];var s=[];s.push("method=call"),s.push("callPath="+encodeURIComponent(JSON.stringify(e))),s.push("arguments="+encodeURIComponent(JSON.stringify(t))),s.push("pathSuffixes="+encodeURIComponent(JSON.stringify(r))),s.push("paths="+encodeURIComponent(JSON.stringify(i)));var a=n(this.buildQueryObject(this._jsongUrl,"POST",s.join("&")),this._config);a.headers["Content-Type"]="application/x-www-form-urlencoded";return o("POST",a,this)}},i.XMLHttpSource=i,i.default=i,t.exports=i},{"./buildQueryObject":11,"./request":14}],11:[function(e,t,r){"use strict";t.exports=function(e,t,r){var n=[],i={url:e},o=-1!==e.indexOf("?")?"&":"?";return"string"==typeof r?n.push(r):Object.keys(r).forEach(function(e){var t="object"==typeof r[e]?JSON.stringify(r[e]):r[e];n.push(e+"="+encodeURIComponent(t))}),"GET"===t?i.url+=o+n.join("&"):i.data=n.join("&"),i}},{}],12:[function(e,t,r){(function(e){"use strict";t.exports=function(){var t=new e.XMLHttpRequest;if("withCredentials"in t)return t;if(e.XDomainRequest)return new XDomainRequest;throw new Error("CORS is not supported by your browser")}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],13:[function(e,t,r){(function(e){"use strict";t.exports=function(){var t,r,n;if(e.XMLHttpRequest)return new e.XMLHttpRequest;try{for(r=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],n=0;n<3;n++)try{if(t=r[n],new e.ActiveXObject(t))break}catch(e){}return new e.ActiveXObject(t)}catch(e){throw new Error("XMLHttpRequest is not supported by your browser")}}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],14:[function(e,t,r){"use strict";function n(){}function i(e,t,r){return n.create(function(n){var i,u,h,l,p,f={method:e||"GET",crossDomain:!1,async:!0,headers:{},responseType:"json"};for(p in t)c.call(t,p)&&(f[p]=t[p]);f.crossDomain||f.headers["X-Requested-With"]||(f.headers["X-Requested-With"]="XMLHttpRequest"),null!=r.onBeforeRequest&&r.onBeforeRequest(f);try{i=f.crossDomain?a():s()}catch(e){n.onError(e)}try{f.user?i.open(f.method,f.url,f.async,f.user,f.password):i.open(f.method,f.url,f.async),i.timeout=f.timeout,i.withCredentials=!1!==f.withCredentials,h=f.headers;for(l in h)c.call(h,l)&&i.setRequestHeader(l,h[l]);if(f.responseType)try{i.responseType=f.responseType}catch(e){if("json"!==f.responseType)throw e}i.onreadystatechange=function(e){4===i.readyState&&(u||(u=!0,function(e,t,r){var n,i;if(t&&e){i=t.responseType,n="response"in t?t.response:t.responseText;var s=1223===t.status?204:t.status;if(s>=200&&s<=399){try{"json"!==i&&(n=JSON.parse(n||"")),"string"==typeof n&&(n=JSON.parse(n||""))}catch(r){o(e,"invalid json",r)}return e.onNext(n),void e.onCompleted()}401===s||403===s||407===s?o(e,n):410===s?o(e,n):408===s||504===s?o(e,n):o(e,n||"Response code "+s)}}(n,i)))},i.ontimeout=function(e){u||(u=!0,function(e,t,r,n){o(e,"timeout error"||t.statusText||"request error",n)}(n,i,0,e))},i.send(f.data)}catch(e){n.onError(e)}return function(){u||4===i.readyState||(u=!0,i.abort())}})}function o(e,t,r){r||(r=new Error(t)),e.onError(r)}var s=e("./getXMLHttpRequest"),a=e("./getCORSRequest"),c=Object.prototype.hasOwnProperty,u=function(){};n.create=function(e){var t=new n;return t.subscribe=function(t,r,n){var i,o;return i="function"==typeof t?{onNext:t,onError:r||u,onCompleted:n||u}:t,"function"==typeof(o=e(i))?{dispose:o}:o},t},t.exports=i},{"./getCORSRequest":12,"./getXMLHttpRequest":13}],15:[function(e,t,r){(function(n){!function(e){if("object"==typeof r&&void 0!==t)t.exports=e();else{("undefined"!=typeof window?window:void 0!==n?n:"undefined"!=typeof self?self:this).falcor=e()}}(function(){return function t(r,n,i){function o(a,c){if(!n[a]){if(!r[a]){var u="function"==typeof e&&e;if(!c&&u)return u(a,!0);if(s)return s(a,!0);var h=new Error("Cannot find module '"+a+"'");throw h.code="MODULE_NOT_FOUND",h}var l=n[a]={exports:{}};r[a][0].call(l.exports,function(e){var t=r[a][1][e];return o(t||e)},l,l.exports,t,r,n,i)}return n[a].exports}for(var s="function"==typeof e&&e,a=0;a<i.length;a++)o(i[a]);return o}({1:[function(e,t,r){var n=e(32),i=e(130);n.atom=i.atom,n.ref=i.ref,n.error=i.error,n.pathValue=i.pathValue,n.HttpDataSource=e(125),t.exports=n},{125:125,130:130,32:32}],2:[function(e,t,r){function n(e){var t=e||{};this._root=t._root||new i(t),this._path=t.path||t._path||[],this._scheduler=t.scheduler||t._scheduler||new f,this._source=t.source||t._source,this._request=t.request||t._request||new s(this,this._scheduler),this._ID=T++,"number"==typeof t.maxSize?this._maxSize=t.maxSize:this._maxSize=t._maxSize||n.prototype._maxSize,"number"==typeof t.collectRatio?this._collectRatio=t.collectRatio:this._collectRatio=t._collectRatio||n.prototype._collectRatio,(t.boxed||t.hasOwnProperty("_boxed"))&&(this._boxed=t.boxed||t._boxed),(t.materialized||t.hasOwnProperty("_materialized"))&&(this._materialized=t.materialized||t._materialized),"boolean"==typeof t.treatErrorsAsValues?this._treatErrorsAsValues=t.treatErrorsAsValues:t.hasOwnProperty("_treatErrorsAsValues")&&(this._treatErrorsAsValues=t._treatErrorsAsValues),t.cache&&this.setCache(t.cache)}var i=e(4),o=e(3),s=e(55),a=e(64),c=e(65),u=e(61),h=e(63),l=e(73),p=e(75),f=e(74),d=e(81),m=e(84),v=e(49),g=e(134),y=e(88),b=e(100),_=e(96),x=e(102),w=e(98),S=e(99),M=e(77),E=e(76),C=e(130),T=0,O=e(116),P=function(){},A=e(14),R=e(19),j={pathValue:!0,pathSyntax:!0,json:!0,jsonGraph:!0},L=e(72);t.exports=n,n.ref=C.ref,n.atom=C.atom,n.error=C.error,n.pathValue=C.pathValue,n.prototype.constructor=n,n.prototype._materialized=!1,n.prototype._boxed=!1,n.prototype._progressive=!1,n.prototype._treatErrorsAsValues=!1,n.prototype._maxSize=Math.pow(2,53)-1,n.prototype._collectRatio=.75,n.prototype.get=e(71),n.prototype._getWithPaths=e(70),n.prototype.set=function(){var e=O(arguments,j,"set");return!0!==e?new a(function(t){t.onError(e)}):this._set.apply(this,arguments)},n.prototype.preload=function(){var e=O(arguments,L,"preload");if(!0!==e)return new a(function(t){t.onError(e)});var t=Array.prototype.slice.call(arguments),r=this;return new a(function(e){return r.get.apply(r,t).subscribe(function(){},function(t){e.onError(t)},function(){e.onCompleted()})})},n.prototype._set=function(){var e,t=-1,r=arguments.length,n=arguments[r-1];for(_(n)?r-=1:n=void 0,e=new Array(r);++t<r;)e[t]=arguments[t];return c.create(this,e,n)},n.prototype.call=function(){var e,t=-1,r=arguments.length;for(e=new Array(r);++t<r;){var n=arguments[t];e[t]=n;var i=typeof n;if(t>1&&!Array.isArray(n)||0===t&&!Array.isArray(n)&&"string"!==i||1===t&&!Array.isArray(n)&&!x(n))return new a(function(e){e.onError(new Error("Invalid argument"))})}return u.create(this,e)},n.prototype.invalidate=function(){var e,t=-1,r=arguments.length,n=arguments[r-1];for(e=new Array(r);++t<r;)if(e[t]=g.fromPath(arguments[t]),"object"!=typeof e[t])throw new Error("Invalid argument");h.create(this,e,n).subscribe(P,function(e){throw e})},n.prototype.deref=e(5),n.prototype.getValue=e(16),n.prototype.setValue=e(79),n.prototype._getValueSync=e(24),n.prototype._setValueSync=e(80),n.prototype._derefSync=e(6),n.prototype.setCache=function(e){var t=this._root.cache;if(e!==t){var r=this._root,n=this._path;this._path=[],this._root.cache={},void 0!==t&&v(r,r.expired,y(t),0),S(e)?E(this,[e]):w(e)?M(this,[e]):b(e)&&M(this,[{json:e}]),this._path=n}else void 0===t&&(this._root.cache={});return this},n.prototype.getCache=function(){var e=m(arguments);if(0===e.length)return A(this._root.cache);var t=[{}],r=this._path;return R.getWithPathsAsJSONGraph(this,e,t),this._path=r,t[0].jsonGraph},n.prototype.getVersion=function(e){var t=e&&g.fromPath(e)||[];if(!1===Array.isArray(t))throw new Error("Model#getVersion must be called with an Array path.");return this._path.length&&(t=this._path.concat(t)),this._getVersion(this,t)},n.prototype._syncCheck=function(e){if(Boolean(this._source)&&this._root.syncRefCount<=0&&!1===this._root.unsafeMode)throw new Error("Model#"+e+" may only be called within the context of a request selector.");return!0},n.prototype._clone=function(e){var t=new n(this);for(var r in e){var i=e[r];"delete"===i?delete t[r]:t[r]=i}return t.setCache=void 0,t},n.prototype.batch=function(e){var t=e;"number"==typeof t?t=new p(Math.round(Math.abs(t))):t&&t.schedule||(t=new l);var r=this._clone();return r._request=new s(r,t),r},n.prototype.unbatch=function(){var e=this._clone();return e._request=new s(e,new f),e},n.prototype.treatErrorsAsValues=function(){return this._clone({_treatErrorsAsValues:!0})},n.prototype.asDataSource=function(){return new o(this)},n.prototype._materialize=function(){return this._clone({_materialized:!0})},n.prototype._dematerialize=function(){return this._clone({_materialized:"delete"})},n.prototype.boxValues=function(){return this._clone({_boxed:!0})},n.prototype.unboxValues=function(){return this._clone({_boxed:"delete"})},n.prototype.withoutDataSource=function(){return this._clone({_source:"delete"})},n.prototype.toJSON=function(){return{$type:"ref",value:this._path}},n.prototype.getPath=function(){return d(this._path)},n.prototype._getBoundValue=e(13),n.prototype._getVersion=e(18),n.prototype._getValueSync=e(17),n.prototype._getPathValuesAsPathMap=R.getWithPathsAsPathMap,n.prototype._getPathValuesAsJSONG=R.getWithPathsAsJSONGraph,n.prototype._setPathValuesAsJSON=e(78),n.prototype._setPathValuesAsJSONG=e(78),n.prototype._setPathValuesAsPathMap=e(78),n.prototype._setPathValuesAsValues=e(78),n.prototype._setPathMapsAsJSON=e(77),n.prototype._setPathMapsAsJSONG=e(77),n.prototype._setPathMapsAsPathMap=e(77),n.prototype._setPathMapsAsValues=e(77),n.prototype._setJSONGsAsJSON=e(76),n.prototype._setJSONGsAsJSONG=e(76),n.prototype._setJSONGsAsPathMap=e(76),n.prototype._setJSONGsAsValues=e(76),n.prototype._setCache=e(77),n.prototype._invalidatePathValuesAsJSON=e(48),n.prototype._invalidatePathMapsAsJSON=e(47)},{100:100,102:102,116:116,13:13,130:130,134:134,14:14,16:16,17:17,18:18,19:19,24:24,3:3,4:4,47:47,48:48,49:49,5:5,55:55,6:6,61:61,63:63,64:64,65:65,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,81:81,84:84,88:88,96:96,98:98,99:99}],3:[function(e,t,r){function n(e){this._model=e._materialize().treatErrorsAsValues()}n.prototype.get=function(e){return this._model.get.apply(this._model,e)._toJSONG()},n.prototype.set=function(e){return this._model.set(e)._toJSONG()},n.prototype.call=function(e,t,r,n){var i=[e,t,r].concat(n);return this._model.call.apply(this._model,i)._toJSONG()},t.exports=n},{}],4:[function(e,t,r){function n(e){var t=e||{};this.syncRefCount=0,this.expired=t.expired||[],this.unsafeMode=t.unsafeMode||!1,this.collectionScheduler=t.collectionScheduler||new s,this.cache={},i(t.comparator)&&(this.comparator=t.comparator),i(t.errorSelector)&&(this.errorSelector=t.errorSelector),i(t.onChange)&&(this.onChange=t.onChange)}var i=e(96),o=e(91),s=e(74);n.prototype.errorSelector=function(e,t){return t},n.prototype.comparator=function(e,t){return o(e,"value")&&o(t,"value")?e.value===t.value&&e.$type===t.$type&&e.$expires===t.$expires:e===t},t.exports=n},{74:74,91:91,96:96}],5:[function(e,t,r){function n(e,t){var r,n=!1;try{++e._root.syncRefCount,r=e._derefSync(t)}catch(e){r=e,n=!0}finally{--e._root.syncRefCount}return n?i.Observable.throw(r):i.Observable.return(r)}var i=e(159),o=e(134);t.exports=function(e){for(var t=this,r=-1,s=arguments.length-1,a=new Array(s),c=o.fromPath(e);++r<s;)a[r]=o.fromPath(arguments[r+1]);if(0===s)throw new Error("Model#deref requires at least one value path.");return i.Observable.defer(function(){return n(t,c)}).flatMap(function(e){if(Boolean(e)){if(s>0){var r=i.Observable.of(e);return e.get.apply(e,a).catch(i.Observable.empty()).concat(r).last().flatMap(function(){return n(t,c)}).filter(function(e){return e})}return i.Observable.return(e)}if(s>0){var o=a.map(function(e){return c.concat(e)});return t.get.apply(t,o).concat(i.Observable.defer(function(){return n(t,c)})).last().filter(function(e){return e})}return i.Observable.empty()})}},{134:134,159:159}],6:[function(e,t,r){var n=e(134),i=e(13),o=e(8),s=e(118);t.exports=function(e){var t=n.fromPath(e);if(!Array.isArray(t))throw new Error("Model#derefSync must be called with an Array path.");var r=i(this,this._path.concat(t),!1),a=r.path,c=r.value;if(r.found&&void 0!==c&&(c.$type!==s||void 0!==c.value)){if(c.$type)throw new o;return this._clone({_path:a})}}},{118:118,13:13,134:134,8:8}],7:[function(e,t,r){function n(){this.message=n.message,this.stack=(new Error).stack}(n.prototype=new Error).name="BoundJSONGraphModelError",n.message="It is not legal to use the JSON Graph format from a bound Model. JSON Graph format can only be used from a root model.",t.exports=n},{}],8:[function(e,t,r){function n(e,t){this.message=i,this.stack=(new Error).stack,this.boundPath=e,this.shortedPath=t}var i="The boundPath of the model is not valid since a value or error was found before the path end.";(n.prototype=new Error).name="InvalidModelError",n.message=i,t.exports=n},{}],9:[function(e,t,r){function n(e){this.message="An exception was thrown when making a request.",this.stack=(new Error).stack,this.innerError=e}var i="InvalidSourceError";(n.prototype=new Error).name=i,n.is=function(e){return e&&e.name===i},t.exports=n},{}],10:[function(e,t,r){function n(){this.message="The allowed number of retries have been exceeded.",this.stack=(new Error).stack}var i="MaxRetryExceededError";(n.prototype=new Error).name=i,n.is=function(e){return e&&e.name===i},t.exports=n},{}],11:[function(e,t,r){var n=e(26).create,i=e(22),o=e(27),s=e(120),a=e(33),c=e(29).promote;t.exports=function(e,t,r,u,h,l,p){for(var f,d,m=r,v=h,g=u,y=0;;){if(0===y&&g[a]?(y=v.length,d=g[a]):(f=v[y++],d=m[f]),d){var b=d.$type,_=b&&d.value||d;if(y<v.length){if(b){m=d;break}m=d;continue}if(m=d,b&&o(d))break;if(g[a]||n(g,d),b===s){p?i(e,d,l,null,null,null,v,v.length,p):c(e,d),y=0,v=_,g=d,m=t;continue}break}m=void 0;break}if(y<v.length&&void 0!==m){for(var x=[],w=0;y>w;w++)x[w]=v[w];v=x}return[m,v]}},{120:120,22:22,26:26,27:27,29:29,33:33}],12:[function(e,t,r){var n=e(15),i=e(8),o=e(7);t.exports=function(e,t){return function(r,s,a){var c,u,h,l=a[0],p={values:a,optimizedPaths:[]},f=r._root.cache,d=r._path,m=f,v=d.length,g=[];if(v){if(t)return{criticalError:new o};if((m=n(r,d)).$type)return{criticalError:new i(d,d)};for(c=[],u=0;v>u;++u)c[u]=d[u]}else c=[],v=0;for(u=0,h=s.length;h>u;u++)e(r,f,m,s[u],0,l,p,g,c,v,t);return p}}},{15:15,7:7,8:8}],13:[function(e,t,r){var n=e(17),i=e(8);t.exports=function(e,t,r){var o,s,a,c,u,h=t,l=t;for(o=e._boxed,r=e._materialized,s=e._treatErrorsAsValues,e._boxed=!0,e._materialized=void 0===r||r,e._treatErrorsAsValues=!0,a=n(e,h.concat(null),!0),e._boxed=o,e._materialized=r,e._treatErrorsAsValues=s,h=a.optimizedPath,c=a.shorted,u=a.found,a=a.value;h.length&&null===h[h.length-1];)h.pop();if(u&&c)throw new i(l,h);return{path:h,value:a,shorted:c,found:u}}},{17:17,8:8}],14:[function(e,t,r){function n(e){var t,r,n,i={},o=Object.keys(e);for(r=0,n=o.length;n>r;r++)t=o[r],s(t)||(i[t]=e[t]);return i}function i(e,t,r){Object.keys(e).filter(function(t){return!s(t)&&e[t]}).forEach(function(r){var s=e[r],a=t[r];if(a||(a=t[r]={}),s.$type){var c,u=s.value&&"object"==typeof s.value,h=!e[o];return c=u||h?n(s):s.value,void(t[r]=c)}i(s,a,r)})}var o=e(37),s=e(97);t.exports=function(e){var t={};return i(e,t),t}},{37:37,97:97}],15:[function(e,t,r){t.exports=function(e,t){for(var r=e._root.cache,n=-1,i=t.length;++n<i&&r&&!r.$type;)r=r[t[n]];return r}},{}],16:[function(e,t,r){var n=e(64),i=e(134);t.exports=function(e){for(var t=i.fromPath(e),r=0,o=t.length;++r<o;)if("object"==typeof t[r])return new n(function(e){e.onError(new Error("Paths must be simple paths"))});var s=this;return new n(function(e){return s.get(t).subscribe(function(r){for(var n=r.json,i=-1,o=t.length;n&&++i<o;)n=n[t[i]];e.onNext(n)},function(t){e.onError(t)},function(){e.onCompleted()})})}},{134:134,64:64}],17:[function(e,t,r){var n=e(11),i=e(25),o=e(27),s=e(29).promote,a=e(120),c=e(118),u=e(119);t.exports=function(e,t,r){for(var h,l,p,f,d,m=e._root.cache,v=t.length,g=[],y=!1,b=!1,_=0,x=m,w=m,S=m,M=!0,E=!1;x&&v>_;){if(null!==(h=t[_++])&&(x=w[h],g[g.length]=h),!x){S=void 0,y=!0,M=!1;break}if((p=x.$type)===c&&void 0===x.value){S=void 0,M=!1,y=v>_;break}if(v>_){if(p===a){if(o(x)){E=!0,S=void 0,M=!1;break}if(f=n(e,m,m,x,x.value),!(d=f[0])){S=void 0,x=void 0,M=!1;break}p=d.$type,x=d,g=f[1].slice(0)}if(p)break}else S=x;w=x}if(v>_&&!E){for(l=_;v>l;++l)if(null!==t[_]){b=!0;break}for(b?(y=!0,S=void 0):S=x,l=_;v>l;++l)null!==t[l]&&(g[g.length]=t[l])}if(S&&p&&(o(S)?S=void 0:s(e,S)),S&&p===u&&!e._treatErrorsAsValues)throw{path:_===v?t:t.slice(0,_),value:S.value};return S&&e._boxed?S=Boolean(p)&&!r?i(S):S:!S&&e._materialized?S={$type:c}:S&&(S=S.value),{value:S,shorted:y,optimizedPath:g,found:M}}},{11:11,118:118,119:119,120:120,25:25,27:27,29:29}],18:[function(e,t,r){var n=e(46);t.exports=function(e,t){var r=e._getValueSync({_boxed:!0,_root:e._root,_treatErrorsAsValues:e._treatErrorsAsValues},t,!0).value,i=r&&r[n];return null==i?-1:i}},{46:46}],19:[function(e,t,r){var n=e(12),i=e(31),o=n(i,!1),s=n(i,!0);t.exports={getValueSync:e(17),getBoundValue:e(13),getWithPathsAsPathMap:o,getWithPathsAsJSONGraph:s}},{12:12,13:13,17:17,31:31}],20:[function(e,t,r){var n=e(29),i=e(25),o=n.promote;t.exports=function(e,t,r,n,s){var a=t.value;s.errors||(s.errors=[]),e._boxed&&(a=i(t)),s.errors.push({path:n.slice(0,r+1),value:a}),o(e,t)}},{25:25,29:29}],21:[function(e,t,r){var n=e(30).fastCopy;t.exports=function(e,t,r,i,o,s,a){i.requestedMissingPaths||(i.requestedMissingPaths=[],i.optimizedMissingPaths=[]),function(e,t,r,n,i,o,s){s.requestedMissingPaths.push(n.slice(0,r).concat(t)),s.optimizedMissingPaths.push(i.slice(0,o).concat(t))}(0,r<t.length?n(t,r):[],r,o,s,a,i)}},{30:30}],22:[function(e,t,r){var n=e(29),i=e(25),o=n.promote,s=e(120),a=e(118),c=e(119),u=e(37);t.exports=function(e,t,r,n,h,l,p,f,d,m){if(r){var v,g,y,b,_,x,w,S,M=!1;if(t&&o(e,t),t&&void 0!==t.value||(M=e._materialized),M)S={$type:a};else if(e._boxed)S=i(t);else if(t.$type===s||t.$type===c)S=d?i(t):t.value;else if(d){var E=t.value&&"object"==typeof t.value,C=!t[u];S=E||C?i(t):t.value}else S=t.value;if(h&&(h.hasValue=!0),d){for((_=r.jsonGraph)||(_=r.jsonGraph={},r.paths=[]),v=0,g=f-1;g>v;v++)b=p[v],_[b]||(_[b]={}),_=_[b];_[b=p[v]]=M?{$type:a}:S,l&&r.paths.push(l.slice(0,n))}else if(0===n)r.json=S;else{for((_=r.json)||(_=r.json={}),v=0;n-1>v;v++)y=l[v],_[y]||(_[y]={}),x=_,w=y,_=_[y];null!==(y=l[v])?_[y]=S:x[w]=S}}}},{118:118,119:119,120:120,25:25,29:29,37:37}],23:[function(e,t,r){var n=e(27),i=e(26),o=e(29),s=i.remove,a=o.splice,c=e(119),u=e(20),h=e(22),l=e(21),p=e(28),f=e(35);t.exports=function(e,t,r,i,o,d,m,v,g,y,b){var _=t&&t.$type,x=t&&void 0===t.value;return t&&_?void(n(t)?(t[f]||(a(e,t),s(t)),l(e,r,i,d,m,v,g)):_===c?(b&&(m[i]=null),y||e._treatErrorsAsValues?h(e,t,o,i,d,m,v,g,y,b):u(e,t,i,m,d)):(b&&(m[i]=null),(!x||x&&e._materialized)&&h(e,t,o,i,d,m,v,g,y,b))):void(p(e)?h(e,t,o,i,d,m,v,g,y,b):l(e,r,i,d,m,v,g))}},{119:119,20:20,21:21,22:22,26:26,27:27,28:28,29:29,35:35}],24:[function(e,t,r){var n=e(134);t.exports=function(e){var t=n.fromPath(e);if(!1===Array.isArray(t))throw new Error("Model#getValueSync must be called with an Array path.");return this._path.length&&(t=this._path.concat(t)),this._syncCheck("getValueSync")&&this._getValueSync(this,t).value}},{134:134}],25:[function(e,t,r){var n=e(40);t.exports=function(e){var t,r,i,o=Object.keys(e);for(t={},r=0,i=o.length;i>r;r++){var s=o[r];s[0]!==n&&(t[s]=e[s])}return t}},{40:40}],26:[function(e,t,r){var n=e(43),i=e(33),o=e(42),s=e(44);t.exports={create:function(e,t){var r=t[s]||0;t[n+r]=e,t[s]=r+1,e[o]=r,e[i]=t},remove:function(e){var t=e[i];if(t){for(var r=e[o],a=t[s];a>r;)t[n+r]=t[n+r+1],++r;t[s]=a-1,e[i]=void 0,e[o]=void 0}}}},{33:33,42:42,43:43,44:44}],27:[function(e,t,r){var n=e(106);t.exports=function(e){var t=void 0===e.$expires&&-1||e.$expires;return-1!==t&&1!==t&&(0===t||t<n())}},{106:106}],28:[function(e,t,r){t.exports=function(e){return e._materialized&&!e._source}},{}],29:[function(e,t,r){var n=e(34),i=e(45),o=e(38),s=e(41),a=e(35);t.exports={promote:function(e,t){var r=e._root,i=r[n];if(i!==t){var a=t[s],c=t[o];c&&(c[s]=a),a&&(a[o]=c),t[s]=void 0,r[n]=t,t[o]=i,i[s]=t}},splice:function(e,t){var r=e._root,c=t[s],u=t[o];u&&(u[s]=c),c&&(c[o]=u),t[s]=void 0,t===r[n]&&(r[n]=void 0),t===r[i]&&(r[i]=void 0),t[a]=!0,r.expired.push(t)}}},{34:34,35:35,38:38,41:41,45:45}],30:[function(e,t,r){t.exports={fastCat:function(e,t){var r,n,i,o=[];for(r=0,n=e.length;n>r;r++)o[r]=e[r];for(i=0,n=t.length;n>i;i++)o[r++]=t[i];return o},fastCatSkipNulls:function(e,t){var r,n,i,o=[];for(r=0,n=e.length;n>r;r++)o[r]=e[r];for(i=0,n=t.length;n>i;i++)null!==t[i]&&(o[r++]=t[i]);return o},fastCopy:function(e,t){var r,n,i,o=[];for(n=0,i=t||0,r=e.length;r>i;n++,i++)o[n]=e[i];return o}}},{}],31:[function(e,t,r){var n=e(11),i=e(23),o=e(27),s=e(143).iterateKeySet,a=e(120),c=e(29).promote;t.exports=function e(t,r,u,h,l,p,f,d,m,v,g,y){var b=y,_=m;if(!u||u&&u.$type||l===h.length)i(t,u,h,l,p,f,d,_,v,g,b);else{var x,w,S=l+1,M=!1,E=x=h[l];if("object"==typeof x&&(M={},E=s(x,M)),void 0!==E||!M.done){var C=v+1;do{b=!1;var T;null===E?T=u:(T=u[E],_[v]=E,d[l]=E);var O=_,P=C;if(T){var A=T.$type,R=A&&T.value||T;if(S<h.length&&A&&A===a&&!o(T)){g&&i(t,T,h,S,p,f,null,_,P,g,b),c(t,T);var j=n(t,r,r,T,R,p,g);b=!0,T=j[0];var L=j[1];for(O=[],P=L.length,w=0;P>w;++w)O[w]=L[w]}}e(t,r,T,h,S,p,f,d,O,P,g,b),M&&!M.done&&(E=s(x,M))}while(M&&!M.done)}}}},{11:11,120:120,143:143,23:23,27:27,29:29}],32:[function(e,t,r){"use strict";function n(e){return new n.Model(e)}n.Promise="function"==typeof Promise?Promise:e(151),t.exports=n,n.Model=e(2)},{151:151,2:2}],33:[function(e,t,r){t.exports=e(40)+"context"},{40:40}],34:[function(e,t,r){t.exports=e(40)+"head"},{40:40}],35:[function(e,t,r){t.exports=e(40)+"invalidated"},{40:40}],36:[function(e,t,r){t.exports=e(40)+"key"},{40:40}],37:[function(e,t,r){t.exports="$modelCreated"},{}],38:[function(e,t,r){t.exports=e(40)+"next"},{40:40}],39:[function(e,t,r){t.exports=e(40)+"parent"},{40:40}],40:[function(e,t,r){t.exports=String.fromCharCode(30)},{}],41:[function(e,t,r){t.exports=e(40)+"prev"},{40:40}],42:[function(e,t,r){t.exports=e(40)+"ref-index"},{40:40}],43:[function(e,t,r){t.exports=e(40)+"ref"},{40:40}],44:[function(e,t,r){t.exports=e(40)+"refs-length"},{40:40}],45:[function(e,t,r){t.exports=e(40)+"tail"},{40:40}],46:[function(e,t,r){t.exports=e(40)+"version"},{40:40}],47:[function(e,t,r){function n(e,t,r,i,s,a,u,h,l,p){if(!w(e)&&!e.$type)for(var f in e)if(f[0]!==c&&"$"!==f[0]&&y(e,f)){var d=e[f],m=b(d)&&!d.$type,v=o(r,i,s,f,d,m,!1,a,u,h,l,p),_=v[0],x=v[1];_&&(m?n(d,t+1,r,x,_,a,u,h,l,p):C(_,x,f,h)&&E(x,g(_),h,a))}}function i(e,t,r,n,i,s,c,l){if(_(r))return S(r,i,s),[void 0,t];v(s,r);var d=r,m=r.value,g=t;if(null!=(r=r[h]))g=r[u]||t;else{var y=0,b=m.length-1;g=r=t;do{var x=o(t,g,r,m[y],e,b>y,!0,n,i,s,c,l);if(r=x[0],w(r))return x;g=x[1]}while(y++<b);if(d[h]!==r){var M=r[f]||0;r[f]=M+1,r[a+M]=d,d[h]=r,d[p]=M}}return[r,g]}function o(e,t,r,n,o,a,c,u,h,l,p,f){for(var m=r.$type;m===d;){var v=i(o,e,r,u,h,l,p,f);if(r=v[0],w(r))return v;t=v[1],m=r&&r.$type}if(void 0!==m)return[r,t];if(null==n){if(a)throw new Error("`null` is not allowed in branch key positions.");r&&(n=r[s])}else t=r,r=t[n];return[r,t]}var s=e(36),a=e(43),c=e(40),u=e(39),h=e(33),l=e(46),p=e(42),f=e(44),d=e(120),m=e(13),v=e(50),g=e(88),y=e(91),b=e(100),_=e(95),x=e(96),w=e(102),S=e(86),M=e(92),E=e(115),C=e(109);t.exports=function(e,t){for(var r=e._root,i=r,o=r.expired,s=M(),a=r._comparator,c=r._errorSelector,h=e._path,p=r.cache,f=h.length?m(e,h).value:p,d=f[u]||p,v=p[l],g=-1,y=t.length;++g<y;){n(t[g].json,0,p,d,f,s,o,i,a,c)}var b=p[l],_=r.onChange;x(_)&&v!==b&&_()}},{100:100,102:102,109:109,115:115,120:120,13:13,33:33,36:36,39:39,40:40,42:42,43:43,44:44,46:46,50:50,86:86,88:88,91:91,92:92,95:95,96:96}],48:[function(e,t,r){function n(e,t,r,i,s,a,c,u){var h={},l=t<e.length-1,p=e[t],f=x(p,h);do{var d=o(r,i,s,f,l,!1,a,c,u),m=d[0],g=d[1];m&&(l?n(e,t+1,r,g,m,a,c,u):M(m,g,f,u)&&S(g,v(m),u,a)),f=x(p,h)}while(!h.done)}function i(e,t,r,n,i){if(g(t))return _(t,n,i),[void 0,e];m(i,t);var s=t,h=t.value,f=e;if(null!=(t=t[u]))f=t[c]||e;else{var d=0,v=h.length-1;f=t=e;do{var y=o(e,f,t,h[d],v>d,!0,r,n,i);if(t=y[0],b(t))return y;f=y[1]}while(d++<v);if(s[u]!==t){var x=t[p]||0;t[p]=x+1,t[a+x]=s,s[u]=t,s[l]=x}}return[t,f]}function o(e,t,r,n,o,a,c,u,h){for(var l=r.$type;l===f;){var p=i(e,r,c,u,h);if(r=p[0],b(r))return p;t=p[1],l=r.$type}if(void 0!==l)return[r,t];if(null==n){if(o)throw new Error("`null` is not allowed in branch key positions.");r&&(n=r[s])}else t=r,r=t[n];return[r,t]}var s=e(36),a=e(43),c=e(39),u=e(33),h=e(46),l=e(42),p=e(44),f=e(120),d=e(13),m=e(50),v=e(88),g=e(95),y=e(96),b=e(102),_=e(86),x=e(143).iterateKeySet,w=e(92),S=e(115),M=e(109);t.exports=function(e,t){for(var r=e._root,i=r,o=r.expired,s=w(),a=e._path,u=r.cache,l=a.length?d(e,a).value:u,p=l[c]||u,f=u[h],m=-1,v=t.length;++m<v;){n(t[m],0,u,p,l,s,o,i)}var g=u[h],b=r.onChange;y(b)&&f!==g&&b()}},{102:102,109:109,115:115,120:120,13:13,143:143,33:33,36:36,39:39,42:42,43:43,44:44,46:46,50:50,86:86,88:88,92:92,95:95,96:96}],49:[function(e,t,r){var n=e(36),i=e(39),o=e(34),s=e(45),a=e(38),c=e(41),u=e(108),h=e(115);t.exports=function(e,t,r,l,p,f){var d=r,m=p;"number"!=typeof m&&(m=.75);var v,g,y,b="number"==typeof f,_=l*m;for(g=t.pop();g;)y=g.$size||0,d-=y,!0===b?h(g,y,e,f):(v=g[i])&&u(g,v,g[n],e),g=t.pop();if(d>=l){var x=e[s];for(g=x;d>=_&&g;)x=x[c],y=g.$size||0,d-=y,!0===b&&h(g,y,e,f),g=x;e[s]=e[c]=g,null==g?e[o]=e[a]=void 0:g[a]=void 0}}},{108:108,115:115,34:34,36:36,38:38,39:39,41:41,45:45}],50:[function(e,t,r){var n=e(121),i=e(34),o=e(45),s=e(38),a=e(41),c=e(100);t.exports=function(e,t){if(c(t)&&t.$expires!==n){var r=e[i],u=e[o],h=t[s],l=t[a];t!==r&&(null!=h&&"object"==typeof h&&(h[a]=l),null!=l&&"object"==typeof l&&(l[s]=h),h=r,null!=r&&"object"==typeof r&&(r[a]=t),e[i]=e[s]=r=t,r[s]=h,r[a]=void 0),null!=u&&t!==u||(e[o]=e[a]=u=l||t)}return t}},{100:100,121:121,34:34,38:38,41:41,45:45}],51:[function(e,t,r){var n=e(34),i=e(45),o=e(38),s=e(41);t.exports=function(e,t){var r=e[n],a=e[i],c=t[o],u=t[s];null!=c&&"object"==typeof c&&(c[s]=u),null!=u&&"object"==typeof u&&(u[o]=c),t===r&&(e[n]=e[o]=c),t===a&&(e[i]=e[s]=u),t[o]=t[s]=void 0,r=a=c=u=void 0}},{34:34,38:38,41:41,45:45}],52:[function(e,t,r){function n(e,t){var r=!1;return function(){if(!r&&!e._disposed){r=!0,e._callbacks[t]=null,e._optimizedPaths[t]=[],e._requestedPaths[t]=[];0!==--e._count||e.sent||(e._disposable.dispose(),e.requestQueue.removeRequest(e))}}}var i=e(59),o=e(60),s=0,a=e(57).GetRequest,c=e(76),u=e(78),h=e(119),l=[],p=function(e,t){this.sent=!1,this.scheduled=!1,this.requestQueue=t,this.id=++s,this.type=a,this._scheduler=e,this._pathMap={},this._optimizedPaths=[],this._requestedPaths=[],this._callbacks=[],this._count=0,this._disposable=null,this._collapsed=null,this._disposed=!1};p.prototype={batch:function(e,t,r){var i=this,s=i._optimizedPaths,a=i._requestedPaths,c=i._callbacks,u=s.length;return s[u]=t,a[u]=e,c[u]=r,++i._count,i.scheduled||(i.scheduled=!0,i._disposable=i._scheduler.schedule(function(){o(i,s,function(e,t){if(i.requestQueue.removeRequest(i),i._disposed=!0,i._count){i._merge(a,e,t);for(var r=0,n=c.length;n>r;++r){var o=c[r];o&&o(e,t)}}})})),n(i,u)},add:function(e,t,r){var o,s,a=this,c=i(e,t,a._pathMap);c?(s=c[2],o=c[1]):(s=e,o=t);var u=!1,h=!1;if(o.length<t.length){u=!0;var l=a._callbacks.length;a._callbacks[l]=r,a._requestedPaths[l]=c[0],a._optimizedPaths[l]=[],++a._count,h=n(a,l)}return[u,s,o,h]},_merge:function(e,t,r){var n=this.requestQueue.model,i=n._root,o=i.errorSelector,s=i.comparator,a=n._path;n._path=l;var p=function(e){for(var t=[],r=-1,n=0,i=e.length;i>n;++n)for(var o=e[n],s=0,a=o.length;a>s;++s)t[++r]=o[s];return t}(e);if(t){var f=t;f instanceof Error&&(f={message:f.message}),f.$type||(f={$type:h,value:f});var d=p.map(function(e){return{path:e,value:f}});u(n,d,null,o,s)}else c(n,[{paths:p,jsonGraph:r.jsonGraph}],null,o,s);n._path=a}},t.exports=p},{119:119,57:57,59:59,60:60,76:76,78:78}],53:[function(e,t,r){function n(){this.length=0,this.pending=!1,this.pathmaps=[],s.call(this,this._subscribe)}var i=e(159),o=i.Observer,s=i.Observable,a=i.Disposable,c=i.SerialDisposable,u=i.CompositeDisposable,h=e(9),l=e(143).iterateKeySet;n.create=function(e,t,r){var n=new this;return n.queue=e,n.model=t,n.index=r,n},(n.prototype=Object.create(s.prototype)).constructor=n,n.prototype.insertPath=function(e,t,r,n,i){var o=n||0,s=i||e.length-1,a=r||this.pathmaps[s+1]||(this.pathmaps[s+1]=Object.create(null));if(void 0===a||null===a)return!1;var c,u,h=e[o],p={};c=l(h,p);do{if(u=a[c],s>o){if(null==u){if(t)return!1;u=a[c]=Object.create(null)}if(!1===this.insertPath(e,t,u,o+1,s))return!1}else a[c]=(u||0)+1,this.length+=1;p.done||(c=l(h,p))}while(!p.done);return!0},n.prototype.removePath=function(e,t,r,n){var i=r||0,o=n||e.length-1,s=t||this.pathmaps[o+1];if(void 0===s||null===s)return!0;var a,c,u=0,h=e[i],p={};a=l(h,p);do{if(void 0!==(c=s[a])&&null!==c){if(o>i){u+=this.removePath(e,c,i+1,o);var f=void 0;for(f in c)break;void 0===f&&delete s[a]}else 0===(c=s[a]=(c||1)-1)&&delete s[a],u+=1,this.length-=1;p.done||(a=l(h,p))}}while(!p.done);return u},n.prototype.getSourceObserver=function(e){var t=this;return o.create(function(r){r.jsonGraph=r.jsonGraph||r.jsong||r.values||r.value,r.index=t.index,e.onNext(r)},function(t){e.onError(t)},function(){e.onCompleted()})},n.prototype._subscribe=function(e){var t=this,r=this.queue;t.pending=!0;var n=!1,i=new c,o=a.create(function(){n||(n=!0,r&&r._remove(t))}),s=new u(i,o);try{i.setDisposable(this.model._source[this.method](this.getSourceArgs()).subscribe(this.getSourceObserver(e)))}catch(e){throw new h(e)}return s},t.exports=n},{143:143,159:159,9:9}],54:[function(e,t,r){function n(e,t){this.total=0,this.model=e,this.requests=[],this.scheduler=t}var i=e(58),o=e(40),s=e(90),a=e(100),c=e(143);n.prototype.set=function(e){return e.paths=c.collapse(e.paths),i.create(this.model,e)},n.prototype._remove=function(e){var t=this.requests,r=t.indexOf(e);-1!==r&&t.splice(r,1)},n.prototype.distributePaths=function(e,t,r){var n,i,o=this.model,s=-1,a=e.length,c=-1,u=t.length,h=[];e:for(;++s<a;){var l=e[s];for(c=-1;++c<u;)if((i=t[c]).insertPath(l,i.pending)){h[c]=i;continue e}n||(n=r.create(this,o,this.total++),t[c]=n,h[u++]=n),n.insertPath(l,!1)}var p=[],f=-1;for(c=-1;++c<u;)null!=(i=h[c])&&(p[++f]=i);return p},n.prototype.mergeJSONGraphs=function(e,t){var r=0,n=[],i=[],c=[],u=e.index,h=t.index;e.index=Math.max(u,h),n[-1]=e.jsonGraph||{},i[-1]=t.jsonGraph||{};e:for(;r>-1;){for(var l=n[r-1],p=i[r-1],f=c[r-1]||(c[r-1]=Object.keys(p));f.length>0;){var d=f.pop();if(d[0]!==o)if(l.hasOwnProperty(d)){var m=l[d],v=s(m),g=p[d],y=s(g);if(a(m)&&a(g)&&!v&&!y){n[r]=m,i[r]=g,r+=1;continue e}h>u&&(l[d]=g)}else l[d]=p[d]}r-=1}return e},t.exports=n},{100:100,143:143,40:40,58:58,90:90}],55:[function(e,t,r){function n(e,t){this.model=e,this.scheduler=t,this.requests=this._requests=[]}var i=e(54),o=e(56);n.prototype.get=o.prototype.get,n.prototype.removeRequest=o.prototype.removeRequest,n.prototype.set=i.prototype.set,n.prototype.call=i.prototype.call,t.exports=n},{54:54,56:56}],56:[function(e,t,r){function n(e,t){this.model=e,this.scheduler=t,this.requests=this._requests=[]}var i=e(57),o=e(52);n.prototype={setScheduler:function(e){this.scheduler=e},get:function(e,t,r){function n(){m||0==--l&&r()}var s,a,c,u=this,h=[],l=0,p=u._requests,f=t,d=e,m=!1;for(s=0,a=p.length;a>s;++s)if((c=p[s]).type===i.GetRequest){if(c.sent){var v=c.add(d,f,n);v[0]&&(d=v[1],f=v[2],h[h.length]=v[3],++l)}else c.batch(d,f,n),f=[],d=[],++l;if(!f.length)break}if(f.length){c=new o(u.scheduler,u),p[p.length]=c,++l;var g=c.batch(d,f,n);h[h.length]=g}return function(){if(!m&&0!==l){m=!0;for(var e=h.length,t=0;e>t;++t)h[t]()}}},removeRequest:function(e){for(var t=this._requests,r=t.length;--r>=0;)if(t[r].id===e.id){t.splice(r,1);break}}},t.exports=n},{52:52,57:57}],57:[function(e,t,r){t.exports={GetRequest:"GET"}},{}],58:[function(e,t,r){function n(){o.call(this)}var i=e(159).Observer,o=e(53),s=e(83),a=e(76),c=e(78),u=new Array(0);n.create=function(e,t){var r=new n;return r.model=e,r.jsonGraphEnvelope=t,r},(n.prototype=Object.create(o.prototype)).constructor=n,n.prototype.method="set",n.prototype.insertPath=function(){return!1},n.prototype.removePath=function(){return 0},n.prototype.getSourceArgs=function(){return this.jsonGraphEnvelope},n.prototype.getSourceObserver=function(e){var t=this.model,r=t._path,n=this.jsonGraphEnvelope.paths,h=t._root,l=h.errorSelector,p=h.comparator;return o.prototype.getSourceObserver.call(this,i.create(function(i){t._path=u;var o=a(t,[{paths:n,jsonGraph:i.jsonGraph}],null,l,p);i.paths=o[1],t._path=r,e.onNext(i)},function(i){t._path=u,c(t,s(n,function(e){return{path:e,value:i}}),null,l,p),t._path=r,e.onError(i)},function(){e.onCompleted()}))},t.exports=n},{159:159,53:53,76:76,78:78,83:83}],59:[function(e,t,r){var n=e(143).hasIntersection,i=e(84);t.exports=function(e,t,r){for(var o=[],s=[],a=[],c=-1,u=-1,h=!1,l=0,p=t.length;p>l;++l){var f=t[l],d=r[f.length];d&&n(d,f,0)?(!h&&l>0&&(s=i(e,0,l),o=i(t,0,l)),a[++c]=e[l],h=!0):h&&(o[++u]=f,s[u]=e[l])}return h?[a,o,s]:null}},{143:143,84:84}],60:[function(e,t,r){var n=e(143),i=n.toTree,o=n.toPaths;t.exports=function(e,t,r){if(0!==e._count){e.sent=!0,e.scheduled=!1;for(var n=e._pathMap,s=0,a=Object.keys(t).length;a>s;++s)for(var c=t[s],u=0,h=c.length;h>u;++u){var l=c[u],p=l.length;if(n[p]){var f=n[p];f[f.length]=l}else n[p]=[l]}for(var d=Object.keys(n),m=0,v=d.length;v>m;++m){var g=d[m];n[g]=i(n[g])}var y,b=e._collasped=o(n);e.requestQueue.model._source.get(b).subscribe(function(e){y=e},function(e){r(e,y)},function(){r(null,y)})}else e.requestQueue.removeRequest(e)}},{143:143}],61:[function(e,t,r){function n(e){s.call(this,e||function(e){function t(e){return b.concat(e)}var r=this.args,n=this.model,c=h.fromPath(r[0]),p=r[1]||[],f=(r[2]||[]).map(h.fromPath),d=(r[3]||[]).map(h.fromPath),m=n._clone({_path:[]}),v=m.withoutDataSource(),g=n._path,y=g.concat(c),b=y.slice(0,-1),_=i(n.withoutDataSource().get(c)).map(function(e){for(var t=e.json,r=-1,n=c.length;t&&++r<n;)t=t[c[r]];return{model:m._derefSync(b).boxValues(),localFn:t}}).flatMap(function(e){function r(e,t){var r=t.path;return e.push.apply(e,f.map(function(e){return r.concat(e)})),e}function n(e){return e.path}var o=e&&e.localFn;if("function"==typeof o){var a=e.model,c=a._path,u=o.apply(a,p).reduce(function(e,r){if(Boolean(r.invalidated))e.invalidations.push(e.localThisPath.concat(r.path));else{var n=r.path,i=r.value;Boolean(i)&&"object"==typeof i&&i.$type===l?e.references.push({path:t(n),value:r.value}):e.values.push({path:t(n),value:r.value})}return e},{values:[],references:[],invalidations:[],localThisPath:c}).flatMap(function(e){var t=e.values.concat(e.references);return t.length>0?i(v.set.apply(v,t)._toJSONG()).map(function(t){return{results:e,envelope:t}}):s.return({results:e,envelope:{jsonGraph:{},paths:[]}})}).flatMap(function(e){var o,a=e.envelope,c=e.results,u=c.values,h=c.references,l=c.invalidations,p=u.map(n).map(t),f=h.reduce(r,[]),v=d.map(t),g=f.concat(v);return(o=g.length>0?i(m.get.apply(m,p.concat(g))._toJSONG()):s.return(a)).doAction(function(e){e.invalidated=l})});return s.return(u)}return s.empty()}).defaultIfEmpty(function(e){return e&&"object"==typeof e?o.Observable.defer(function(){var t;try{t=e.call(y,p,f,d)}catch(e){t=s.throw(new u(e))}return t}).map(function(e){var t=e.invalidated;return t&&t.length&&m.invalidate.apply(m,t),e}):s.empty()}(n._source)).mergeAll().flatMap(function(e){return i(v.set(e)).reduce(function(e){return e},null).map(function(){return{invalidated:e.invalidated,paths:e.paths.map(function(e){return e.slice(g.length)})}})}),x=new a;return x.add(_.subscribe(function(t){var r=t.paths,o=t.invalidated,s=n.get.apply(n,r);"AsJSONG"===e.outputFormat&&(s=i(s._toJSONG()).doAction(function(e){e.invalidated=o})),x.add(s.subscribe(e))},function(t){e.onError(t)})),x})}function i(e){return o.Observable.defer(function(){return e})}var o=e(159)&&e(158),s=o.Observable,a=o.CompositeDisposable,c=e(64),u=e(9),h=e(134),l=e(120);n.create=c.create,(n.prototype=Object.create(s.prototype)).constructor=n,n.prototype.invokeSourceRequest=function(e){return this},n.prototype.ensureCollect=function(e){return this},n.prototype.initialize=function(){return this},t.exports=n},{120:120,134:134,158:158,159:159,64:64,9:9}],62:[function(e,t,r){function n(e){i.call(this,e)}var i=e(159).Observable,o=e(64),s=e(134),a=e(88),c=e(49),u=e(81),h=e(46),l=Array.isArray,p=e(101),f=e(98),d=e(99);n.create=o.create,(n.prototype=Object.create(i.prototype)).constructor=n,n.prototype.subscribeCount=0,n.prototype.subscribeLimit=10,n.prototype.initialize=function(){for(var e,t,r=this.model,n=this.outputFormat||"AsPathMap",i=this.isProgressive,o=[{}],a=[],c=this.args,h=-1,m=c.length;++h<m;){var v,g=c[h];l(g)||"string"==typeof g?(g=s.fromPath(g),v="PathValues"):p(g)?(g.path=s.fromPath(g.path),v="PathValues"):d(g)?v="JSONGs":f(g)&&(v="PathMaps"),t!==v&&(t=v,e={inputType:v,arguments:[]},a.push(e),e.values=o),e.arguments.push(g)}return this.boundPath=u(r._path),this.groups=a,this.outputFormat=n,this.isProgressive=i,this.isCompleted=!1,this.isMaster=null==r._source,this.values=o,this},n.prototype.invokeSourceRequest=function(e){return this},n.prototype.ensureCollect=function(e){var t=this.finally(function(){var t=e._root,r=t.cache;t.collectionScheduler.schedule(function(){c(t,t.expired,a(r),e._maxSize,e._collectRatio,r[h])})});return new this.constructor(function(e){return t.subscribe(e)})},t.exports=n},{101:101,134:134,159:159,46:46,49:49,64:64,81:81,88:88,98:98,99:99}],63:[function(e,t,r){function n(e){o.call(this,e||function(e){for(var t=this.model,r=this.method,n=this.groups,o=-1,s=n.length;++o<s;){var a=n[o],c=a.inputType,u=a.arguments;if(u.length>0){(0,t["_"+r+c+"AsJSON"])(t,u)}}return e.onCompleted(),i.empty})}var i=e(159).Disposable,o=e(62);n.create=o.create,(n.prototype=Object.create(o.prototype)).method="invalidate",n.prototype.constructor=n,t.exports=n},{159:159,62:62}],64:[function(e,t,r){function n(e){this._subscribe=e}function i(e){var t=this.model,r=new this.type;return r.model=t,r.args=this.args,r.outputFormat=e.outputFormat||"AsPathMap",r.isProgressive=e.isProgressive||!1,r.subscribeCount=0,r.subscribeLimit=e.retryLimit||10,r.initialize().invokeSourceRequest(t).ensureCollect(t).subscribe(e)}var o=e(32),s=(e(159)&&e(158)).Observable,a=e(84),c=e(105),u={outputFormat:{value:"AsJSONG"}},h={isProgressive:{value:!0}};n.create=function(e,t){var r=new n(i);return r.args=t,r.type=this,r.model=e,r},(n.prototype=Object.create(s.prototype)).constructor=n,n.prototype._mixin=function(){var e=this,t=a(arguments);return new e.constructor(function(r){return e.subscribe(t.reduce(function(e,t){return Object.create(e,t)},r))})},n.prototype._toJSONG=function(){return this._mixin(u)},n.prototype.progressively=function(){return this._mixin(h)},n.prototype.subscribe=function(e,t,r){var n=e;n&&"object"==typeof n||(n={onNext:e||c,onError:t||c,onCompleted:r||c});var i=this._subscribe(n);switch(typeof i){case"function":return{dispose:i};case"object":return i||{dispose:c};default:return{dispose:c}}},n.prototype.then=function(e,t){var r=this;return new o.Promise(function(e,t){var n,i=!1;r.toArray().subscribe(function(e){n=e.length<=1?e[0]:e},function(e){i=!0,t(e)},function(){!1===i&&e(n)})}).then(e,t)},t.exports=n},{105:105,158:158,159:159,32:32,84:84}],65:[function(e,t,r){function n(e){p.call(this,e||function(e){return this.isCompleted?o.call(this,e):function(e){if(this.subscribeCount++>this.subscribeLimit)return e.onError("Loop kill switch thrown."),h.empty;for(var t=[],r=[],n=this.model,i=this.isMaster,c=n._root,u=this.outputFormat,l=c.errorSelector,p=this.method,f=this.groups,m=-1,v=f.length;++m<v;){var g=f[m],y=g.inputType,b=g.arguments;if(b.length>0){var _=(0,n["_"+p+y+u])(n,b,null,l);r.push.apply(r,_[1]),"PathValues"===y?t.push.apply(t,b.map(s)):"JSONGs"===y?t.push.apply(t,d(b,a)):t.push.apply(t,_[0])}}return this.requestedPaths=t,i?(this.isCompleted=!0,o.call(this,e)):void e.onError({method:p,optimizedPaths:r,invokeSourceRequest:!0})}.call(this,e)})}function i(e){if(this.subscribeCount++>this.subscribeLimit)return e.onError("Loop kill switch thrown."),h.empty;for(var t=[],r=[],n=this.model,i=this.isMaster,c=n._root,u=this.outputFormat,l=c.errorSelector,p=this.method,f=this.groups,m=-1,v=f.length;++m<v;){var g=f[m],y=g.inputType,b=g.arguments;if(b.length>0){var _=(0,n["_"+p+y+u])(n,b,null,l);r.push.apply(r,_[1]),"PathValues"===y?t.push.apply(t,b.map(s)):"JSONGs"===y?t.push.apply(t,d(b,a)):t.push.apply(t,_[0])}}return this.requestedPaths=t,i?(this.isCompleted=!0,o.call(this,e)):void e.onError({method:p,optimizedPaths:r,invokeSourceRequest:!0})}function o(e){var t=new l(this.model,this.requestedPaths);return"AsJSONG"===this.outputFormat&&(t=t._toJSONG()),this.isProgressive&&(t=t.progressively()),t.subscribe(e)}function s(e){return e.path}function a(e){return e.paths}var c=e(159),u=c.Observable,h=c.Disposable,l=e(67),p=e(62),f=e(9),d=e(82),m=new Array(0);n.create=p.create,(n.prototype=Object.create(p.prototype)).method="set",n.prototype.constructor=n,n.prototype.invokeSourceRequest=function(e){var t=this,r=this.catch(function(n){var i;if(n&&!0===n.invokeSourceRequest){var o={},s=e._path,a=n.optimizedPaths;e._path=m,e._getPathValuesAsJSONG(e._materialize().withoutDataSource(),a,[o]),e._path=s,i=e._request.set(o).do(function(e){t.isCompleted=a.length===e.paths.length},function(){t.isCompleted=!0}).materialize().flatMap(function(e){if("C"===e.kind)return u.empty();if("E"===e.kind){var t=e.exception;if(f.is(t))return u.throw(e.exception)}return r})}else i=u.throw(n);return i});return new this.constructor(function(e){return r.subscribe(e)})},t.exports=n},{159:159,62:62,67:67,82:82,9:9}],66:[function(e,t,r){var n=function(e){this.disposed=!1,this.currentDisposable=e};n.prototype={dispose:function(){if(!this.disposed&&this.currentDisposable){this.disposed=!0;var e=this.currentDisposable;e.dispose?e.dispose():e()}}},t.exports=n},{}],67:[function(e,t,r){var n=e(64),i=e(68),o=e(69),s={dispose:function(){}},a=e(159).Observable,c=t.exports=function(e,t,r,n){this.model=e,this.currentRemainingPaths=t,this.isJSONGraph=r||!1,this.isProgressive=n||!1};c.prototype=Object.create(a.prototype),c.prototype.subscribe=n.prototype.subscribe,c.prototype.then=n.prototype.then,c.prototype._toJSONG=function(){return new c(this.model,this.currentRemainingPaths,!0,this.isProgressive)},c.prototype.progressively=function(){return new c(this.model,this.currentRemainingPaths,this.isJSONGraph,!0)},c.prototype._subscribe=function(e){var t=[{}],r=[],n=e.isJSONG=this.isJSONGraph,a=this.isProgressive,c=i(this.model,this.currentRemainingPaths,e,a,n,t,r);return c?o(this,this.model,c,e,t,r,1):s}},{159:159,64:64,68:68,69:69}],68:[function(e,t,r){var n=e(19),i=n.getWithPathsAsJSONGraph,o=n.getWithPathsAsPathMap;t.exports=function(e,t,r,n,s,a,c){var u;if((u=s?i(e,t,a):o(e,t,a)).criticalError)return r.onError(u.criticalError),null;var h=u.hasValue,l=!u.requestedMissingPaths||!e._source,p=a[0].json||a[0].jsonGraph;if(u.errors)for(var f=u.errors,d=c.length,m=0,v=f.length;v>m;++m,++d)c[d]=f[m];if(h&&n||p&&l)try{++e._root.syncRefCount,r.onNext(a[0])}catch(e){throw e}finally{--e._root.syncRefCount}return l?(c.length?r.onError(c):r.onCompleted(),null):u}},{19:19}],69:[function(e,t,r){var n=e(68),i=e(10),o=e(30).fastCat,s=e(49),a=e(88),c=e(66),u=e(46);t.exports=function e(t,r,h,l,p,f,d){if(10===d)throw new i;var m=r._request,v=h.requestedMissingPaths,g=h.optimizedMissingPaths,y=new c,b=[],_=r._path;if(_.length)for(var x=0,w=v.length;w>x;++x)b[x]=o(_,v[x]);else b=v;var S=m.get(b,g,function(){var i=n(r,v,l,t.isProgressive,t.isJSONGraph,p,f);if(i)y.currentDisposable=e(t,r,i,l,p,f,d+1);else{var o=r._root,c=o.cache,h=c[u];s(o,o.expired,a(c),r._maxSize,r._collectRatio,h)}});return y.currentDisposable=S,y}},{10:10,30:30,46:46,49:49,66:66,68:68,88:88}],70:[function(e,t,r){var n=e(67);t.exports=function(e){return new n(this,e)}},{67:67}],71:[function(e,t,r){var n=e(134),i=e(64),o=e(72),s=e(116),a=e(67);t.exports=function(){var e=s(arguments,o,"get");if(!0!==e)return new i(function(t){t.onError(e)});var t=n.fromPathsOrPathValues(arguments);return new a(this,t)}},{116:116,134:134,64:64,67:67,72:72}],72:[function(e,t,r){t.exports={path:!0,pathSyntax:!0}},{}],73:[function(e,t,r){function n(){}var i=e(123),o=e(159).Disposable;n.prototype.schedule=function(e){return i(e),o.empty},n.prototype.scheduleWithState=function(e,t){var r=this;return i(function(){t(r,e)}),o.empty},t.exports=n},{123:123,159:159}],74:[function(e,t,r){function n(){}var i=e(159).Disposable;n.prototype.schedule=function(e){return e(),i.empty},n.prototype.scheduleWithState=function(e,t){return t(this,e),i.empty},t.exports=n},{159:159}],75:[function(e,t,r){function n(e){this.delay=e}var i=e(159).Disposable;n.prototype.schedule=function(e){var t=setTimeout(e,this.delay);return i.create(function(){void 0!==t&&(clearTimeout(t),t=void 0)})},n.prototype.scheduleWithState=function(e,t){var r=this,n=setTimeout(function(){t(r,e)},this.delay);return i.create(function(){void 0!==n&&(clearTimeout(n),n=void 0)})},t.exports=n},{159:159}],76:[function(e,t,r){function n(e,t,r,i,s,a,c,u,h,l,p,d,m,v,g,b,_){for(var x={},w=t<e.length-1,S=e[t],M=y(S,x),E=d.index;;){p.depth=t;var C=o(r,i,s,a,c,u,M,w,!1,p,d,m,v,g,b,_);p[t]=M,p.index=t,d[d.index++]=M;var T=C[0],O=C[1];if(T&&(w?n(e,t+1,r,O,T,a,C[3],C[2],h,l,p,d,m,v,g,b,_):(f(g,T),h.push(p.slice(0,p.index+1)),l.push(d.slice(0,d.index)))),M=y(S,x),x.done)break;d.index=E}}function i(e,t,r,n,i,s,u,p,m,y,b){var _=t.value;if(s.splice(0,s.length),s.push.apply(s,_),d(t))return s.index=_.length,g(t,p,m),[void 0,e,n,r];f(m,t);var x=0,w=t,S=_.length-1,M=t=e,E=n=r;do{var C=o(e,M,t,r,E,n,_[x],S>x,!0,i,s,u,p,m,y,b);if(t=C[0],v(t))return s.index=x,C;M=C[1],n=C[2],E=C[3]}while(x++<S);if(s.index=x,w[c]!==t){var T=t[l]||0;t[l]=T+1,t[a+T]=w,w[c]=t,w[h]=T}return[t,M,n,E]}function o(e,t,r,n,o,a,c,u,h,l,f,d,m,g,y,b){for(var x=r.$type;x===p;){var w=i(e,r,n,a,l,f,d,m,g,y,b);if(r=w[0],v(r))return w;t=w[1],a=w[2],o=w[3],x=r.$type}if(void 0!==x)return[r,t,a,o];if(null==c){if(u)throw new Error("`null` is not allowed in branch key positions.");r&&(c=r[s])}else t=r,o=a,r=t[c],a=o&&o[c];return r=_(t,r,a,c,l,f,d,m,g,y,b),[r,t,a,o]}var s=e(36),a=e(43),c=e(33),u=e(46),h=e(42),l=e(44),p=e(120),f=e(50),d=e(94),m=e(96),v=e(102),g=e(86),y=e(143).iterateKeySet,b=e(92),_=e(103);t.exports=function(e,t,r,i,o){for(var s=e._root,a=s,c=s.expired,h=b(),l=s.cache,p=l[u],f=[],d=[],v=[],g=[],y=-1,_=t.length;++y<_;)for(var x=t[y],w=x.paths,S=x.jsonGraph,M=-1,E=w.length;++M<E;){var C=w[M];d.index=0,n(C,0,l,l,l,S,S,S,v,g,f,d,h,c,a,o,i)}var T=l[u],O=s.onChange;return m(O)&&p!==T&&O(),[v,g]}},{102:102,103:103,120:120,143:143,33:33,36:36,42:42,43:43,44:44,46:46,50:50,86:86,92:92,94:94,96:96}],77:[function(e,t,r){function n(e,t,r,i,a,c,u,h,l,p,f,d,m,v){var g=s(e);if(g&&g.length)for(var b=0,x=g.length,w=l.index;;){var S=g[b],M=e[S],E=_(M)&&!M.$type;h.depth=t;var C=o(r,i,a,S,M,E,!1,h,l,p,f,d,m,v);h[t]=S,h.index=t,l[l.index++]=S;var T=C[0],O=C[1];if(T&&(E?n(M,t+1,r,O,T,c,u,h,l,p,f,d,m,v):(y(d,T),c.push(h.slice(0,h.index+1)),u.push(l.slice(0,l.index)))),++b>=x)break;l.index=w}}function i(e,t,r,n,i,s,a,u,p,m){var v=r.value;if(i.splice(0,i.length),i.push.apply(i,v),x(r))return i.index=v.length,M(r,a,u),[void 0,t];y(u,r);var g=r,b=t;if(null!=(r=r[l]))b=r[h]||t,i.index=v.length;else{var _=0,w=v.length-1;b=r=t;do{var E=o(t,b,r,v[_],e,w>_,!0,n,i,s,a,u,p,m);if(r=E[0],S(r))return i.index=_,E;b=E[1]}while(_++<w);if(i.index=_,g[l]!==r){var C=r[d]||0;r[d]=C+1,r[c+C]=g,g[l]=r,g[f]=C}}return[r,b]}function o(e,t,r,n,o,s,c,u,h,l,p,f,d,v){for(var g=r.$type;g===m;){var y=i(o,e,r,u,h,l,p,f,d,v);if(r=y[0],S(r))return y;t=y[1],g=r&&r.$type}if(void 0!==g)return[r,t];if(null==n){if(s)throw new Error("`null` is not allowed in branch key positions.");r&&(n=r[a])}else t=r,r=t[n];return r=C(t,r,n,o,s,c,u,h,l,p,f,d,v),[r,t]}function s(e){if(_(e)&&!e.$type){var t=[],r=0;g(e)&&(t[r++]="length");for(var n in e)n[0]!==u&&"$"!==n[0]&&b(e,n)&&(t[r++]=n);return t}}var a=e(36),c=e(43),u=e(40),h=e(39),l=e(33),p=e(46),f=e(42),d=e(44),m=e(120),v=e(13),g=Array.isArray,y=e(50),b=e(91),_=e(100),x=e(95),w=e(96),S=e(102),M=e(86),E=e(92),C=e(104);t.exports=function(e,t,r,i,o){for(var s=e._root,a=s,c=s.expired,u=E(),l=e._path,f=s.cache,d=l.length?v(e,l).value:f,m=d[h]||f,g=f[p],y=[],b=[],_=[],x=l.length,S=-1,M=t.length;++S<M;){var C=t[S],T=l.slice(0);T.index=x,n(C.json,0,f,m,d,b,_,y,T,u,c,a,o,i)}var O=f[p],P=s.onChange;return w(P)&&g!==O&&P(),[b,_]}},{100:100,102:102,104:104,120:120,13:13,33:33,36:36,39:39,40:40,42:42,43:43,44:44,46:46,50:50,86:86,91:91,92:92,95:95,96:96}],78:[function(e,t,r){function n(e,t,r,i,s,a,c,u,h,l,p,f,d,v,g){for(var y={},b=r<t.length-1,x=t[r],w=_(x,y),S=l.index;;){h.depth=r;var M=o(i,s,a,w,e,b,!1,h,l,p,f,d,v,g);h[r]=w,h.index=r,l[l.index++]=w;var E=M[0],C=M[1];if(E&&(b?n(e,t,r+1,i,C,E,c,u,h,l,p,f,d,v,g):(m(d,E),c.push(h.slice(0,h.index+1)),u.push(l.slice(0,l.index)))),w=_(x,y),y.done)break;l.index=S}}function i(e,t,r,n,i,s,h,f,d,g){var _=r.value;if(i.splice(0,i.length),i.push.apply(i,_),v(r))return i.index=_.length,b(r,h,f),[void 0,t];m(f,r);var x=r,w=t;if(null!=(r=r[u]))w=r[c]||t,i.index=_.length;else{var S=0,M=_.length-1;w=r=t;do{var E=o(t,w,r,_[S],e,M>S,!0,n,i,s,h,f,d,g);if(r=E[0],y(r))return i.index=S,E;w=E[1]}while(S++<M);if(i.index=S,x[u]!==r){var C=r[p]||0;r[p]=C+1,r[a+C]=x,x[u]=r,x[l]=C}}return[r,w]}function o(e,t,r,n,o,a,c,u,h,l,p,d,m,v){for(var g=r.$type;g===f;){var b=i(o,e,r,u,h,l,p,d,m,v);if(r=b[0],y(r))return b;t=b[1],g=r.$type}if(void 0!==g)return[r,t];if(null==n){if(a)throw new Error("`null` is not allowed in branch key positions.");r&&(n=r[s])}else t=r,r=t[n];return r=w(t,r,n,o,a,c,u,h,l,p,d,m,v),[r,t]}var s=e(36),a=e(43),c=e(39),u=e(33),h=e(46),l=e(42),p=e(44),f=e(120),d=e(13),m=e(50),v=e(95),g=e(96),y=e(102),b=e(86),_=e(143).iterateKeySet,x=e(92),w=e(104);t.exports=function(e,t,r,i,o){for(var s=e._root,a=s,u=s.expired,l=x(),p=e._path,f=s.cache,m=p.length?d(e,p).value:f,v=m[c]||f,y=f[h],b=[],_=[],w=[],S=p.length,M=-1,E=t.length;++M<E;){var C=t[M],T=C.path,O=C.value,P=p.slice(0);P.index=S,n(O,T,0,f,v,m,_,w,b,P,l,u,a,o,i)}var A=f[h],R=s.onChange;return g(R)&&y!==A&&R(),[_,w]}},{102:102,104:104,120:120,13:13,143:143,33:33,36:36,39:39,42:42,43:43,44:44,46:46,50:50,86:86,92:92,95:95,96:96}],79:[function(e,t,r){var n=e(130),i=e(64),o=e(101);t.exports=function(e,t){for(var r=o(e)?e:n.pathValue(e,t),s=0,a=r.path,c=a.length;++s<c;)if("object"==typeof a[s])return new i(function(e){e.onError(new Error("Paths must be simple paths"))});var u=this;return new i(function(e){return u._set(r).subscribe(function(t){for(var r=t.json,n=-1,i=a.length;r&&++n<i;)r=r[a[n]];e.onNext(r)},function(t){e.onError(t)},function(){e.onCompleted()})})}},{101:101,130:130,64:64}],80:[function(e,t,r){var n=e(134),i=e(101),o=e(78);t.exports=function(e,t,r,s){var a=n.fromPath(e),c=t,u=r,h=s;if(i(a)?(h=u,u=c,c=a):c={path:a,value:c},!1===i(c))throw new Error("Model#setValueSync must be called with an Array path.");return"function"!=typeof u&&(u=this._root._errorSelector),"function"!=typeof h&&(h=this._root._comparator),this._syncCheck("setValueSync")?(o(this,[c]),this._getValueSync(this,c.path).value):void 0}},{101:101,134:134,78:78}],81:[function(e,t,r){t.exports=function(e){if(!e)return e;for(var t=-1,r=e.length,n=[];++t<r;)n[t]=e[t];return n}},{}],82:[function(e,t,r){t.exports=function(e,t){for(var r=-1,n=-1,i=e.length,o=[];++n<i;)for(var s=t(e[n],n,e),a=-1,c=s.length;++a<c;)o[++r]=s[a];return o}},{}],83:[function(e,t,r){t.exports=function(e,t){for(var r=-1,n=e.length,i=new Array(n);++r<n;)i[r]=t(e[r],r,e);return i}},{}],84:[function(e,t,r){t.exports=function(e,t,r){var n=t||0,i=-1,o=e.length-n;0>o&&(o=0),r>0&&o>r&&(o=r);for(var s=new Array(o);++i<o;)s[i]=e[i+n];return s}},{}],85:[function(e,t,r){var n=e(40),i=e(91),o=Array.isArray,s=e(100);t.exports=function(e){var t=e;if(s(t)){t=o(e)?[]:{};var r=e;for(var a in r)a[0]!==n&&i(r,a)&&(t[a]=r[a])}return t}},{100:100,40:40,91:91}],86:[function(e,t,r){var n=e(51),i=e(35);t.exports=function(e,t,r){return e[i]||(e[i]=!0,t.push(e),n(r,e)),e}},{35:35,51:51}],87:[function(e,t,r){var n=e(100);t.exports=function(e){return n(e)&&e.$expires||void 0}},{100:100}],88:[function(e,t,r){var n=e(100);t.exports=function(e){return n(e)&&e.$size||0}},{100:100}],89:[function(e,t,r){var n=e(100);t.exports=function(e){return n(e)&&e.$timestamp||void 0}},{100:100}],90:[function(e,t,r){var n=e(100);t.exports=function(e,t){var r=n(e)&&e.$type||void 0;return t&&r?"branch":r}},{100:100}],91:[function(e,t,r){var n=e(100),i=Object.prototype.hasOwnProperty;t.exports=function(e,t){return n(e)&&i.call(e,t)}},{100:100}],92:[function(e,t,r){var n=1;t.exports=function(){return n++}},{}],93:[function(e,t,r){var n=e(36),i=e(39),o=e(46);t.exports=function(e,t,r,s){return e[n]=r,e[i]=t,e[o]=s,t[r]=e,e}},{36:36,39:39,46:46}],94:[function(e,t,r){var n=e(106),i=e(122),o=e(121);t.exports=function(e){var t=e.$expires;return null!=t&&t!==o&&t!==i&&t<n()}},{106:106,121:121,122:122}],95:[function(e,t,r){var n=e(106),i=e(122),o=e(121);t.exports=function(e){var t=e.$expires;return null!=t&&t!==o&&(t===i||t<n())}},{106:106,121:121,122:122}],96:[function(e,t,r){t.exports=function(e){return Boolean(e)&&"function"==typeof e}},{}],97:[function(e,t,r){var n=e(40);t.exports=function(e){return"$size"===e||e&&e.charAt(0)===n}},{40:40}],98:[function(e,t,r){var n=e(100);t.exports=function(e){return n(e)&&"json"in e}},{100:100}],99:[function(e,t,r){var n=Array.isArray,i=e(100);t.exports=function(e){return i(e)&&n(e.paths)&&(i(e.jsonGraph)||i(e.jsong)||i(e.json)||i(e.values)||i(e.value))}},{100:100}],100:[function(e,t,r){t.exports=function(e){return null!==e&&"object"==typeof e}},{}],101:[function(e,t,r){var n=Array.isArray,i=e(100);t.exports=function(e){return i(e)&&(n(e.path)||"string"==typeof e.path)}},{100:100}],102:[function(e,t,r){t.exports=function(e){return null==e||"object"!=typeof e}},{}],103:[function(e,t,r){var n=e(36),i=e(39),o=e(120),s=e(119),a=e(88),c=e(89),u=e(100),h=e(95),l=e(96),p=e(50),f=e(117),d=e(93),m=e(86),v=e(110),g=e(115),y=e(107);t.exports=function(e,t,r,b,_,x,w,S,M,E,C){var T,O,P,A,R,j,L;if(t===r){if(null===r)return t=f(r,void 0,r),e=g(e,-t.$size,M,w),t=d(t,e,b),p(M,t),t;if(void 0===r)return r;if((A=u(t))&&null==(O=t.$type))return null==t[i]&&(t[n]=b,t[i]=e),t}else(A=u(t))&&(O=t.$type);if(O!==o){if((R=u(r))&&(P=r.$type),A&&!O&&(null==r||R&&!P))return t}else{if(null==r)return h(t)?void m(t,S,M):t;if((R=u(r))&&(P=r.$type)===o)if(t===r){if(null!=t[i])return t}else if(j=t.$timestamp,L=r.$timestamp,!h(t)&&!h(r)&&j>L)return}if(O&&R&&!P)return d(v(t,r,e,b,M),e,b);if(P||!R){if(P===s&&l(C)&&(r=C(y(_,b),r)),P&&t===r)null==t[i]&&(t=f(t,O,t.value),e=g(e,-t.$size,M,w),t=d(t,e,b,w));else{var N=!0;!O&&A||(N=c(r)<c(t)==0,(O||P)&&l(E)&&(N=!E(t,r,x.slice(0,x.index)))),N&&(r=f(r,P,P?r.value:r),T=a(t)-a(r),t=v(t,r,e,b,M),e=g(e,T,M,w),t=d(t,e,b,w))}h(t)?m(t,S,M):p(M,t)}else null==t&&(t=d(r,e,b));return t}},{100:100,107:107,110:110,115:115,117:117,119:119,120:120,36:36,39:39,50:50,86:86,88:88,89:89,93:93,95:95,96:96}],104:[function(e,t,r){var n=e(120),i=e(119),o=e(90),s=e(88),a=e(89),c=e(95),u=e(102),h=e(96),l=e(117),p=e(86),f=e(93),d=e(110),m=e(115),v=e(114),g=e(107);t.exports=function(e,t,r,y,b,_,x,w,S,M,E,C,T){var O=o(t,_);if(b||_)O&&c(t)&&(O="expired",p(t,M,E)),(O&&O!==n||u(t))&&(t=d(t,{},e,r,E),t=f(t,e,r,S),t=v(t,S));else{var P=y,A=o(P),R=a(P)<a(t)==0;if((O||A)&&h(C)&&(R=!C(t,P,w.slice(0,w.index))),R){A===i&&h(T)&&(P=T(g(x,r),P)),P=l(P,A,A?P.value:P);var j=s(t)-s(P);t=d(t,P,e,r,E),e=m(e,j,E,S),t=f(t,e,r,S)}}return t}},{102:102,107:107,110:110,114:114,115:115,117:117,119:119,120:120,86:86,88:88,89:89,90:90,93:93,95:95,96:96}],105:[function(e,t,r){t.exports=function(){}},{}],106:[function(e,t,r){t.exports=Date.now},{}],107:[function(e,t,r){t.exports=function(e,t){var r=e.slice(0,e.depth);return r[r.length]=t,r}},{}],108:[function(e,t,r){var n=e(120),i=e(39),o=e(51),s=e(100),a=e(112),c=e(113);t.exports=function(e,t,r,u){if(s(e)){var h=e.$type;return Boolean(h)&&(h===n&&c(e),o(u,e)),a(e),t[r]=e[i]=void 0,!0}return!1}},{100:100,112:112,113:113,120:120,39:39,51:51}],109:[function(e,t,r){var n=e(91),i=e(40),o=e(108);t.exports=function e(t,r,s,a){if(o(t,r,s,a)){if(null==t.$type)for(var c in t)c[0]!==i&&"$"!==c[0]&&n(t,c)&&e(t[c],t,c,a);return!0}return!1}},{108:108,40:40,91:91}],110:[function(e,t,r){var n=e(100),i=e(111),o=e(109);t.exports=function(e,t,r,s,a){return e===t?e:(n(e)&&(i(e,t),o(e,r,s,a)),r[s]=t,t)}},{100:100,109:109,111:111}],111:[function(e,t,r){var n=e(43),i=e(33),o=e(44);t.exports=function(e,t){for(var r=e[o]||0,s=t[o]||0,a=-1;++a<r;){var c=e[n+a];void 0!==c&&(c[i]=t,t[n+(s+a)]=c,e[n+a]=void 0)}return t[o]=r+s,e[o]=void 0,t}},{33:33,43:43,44:44}],112:[function(e,t,r){var n=e(43),i=e(33),o=e(42),s=e(44);t.exports=function(e){for(var t=-1,r=e[s]||0;++t<r;){var a=e[n+t];null!=a&&(a[i]=a[o]=e[n+t]=void 0)}return e[s]=void 0,e}},{33:33,42:42,43:43,44:44}],113:[function(e,t,r){var n=e(43),i=e(33),o=e(42),s=e(44);t.exports=function(e){var t=e[i];if(t){for(var r=(e[o]||0)-1,a=(t[s]||0)-1;++r<=a;)t[n+r]=t[n+(r+1)];t[s]=a,e[o]=e[i]=t=void 0}return e}},{33:33,42:42,43:43,44:44}],114:[function(e,t,r){var n=e(43),i=e(39),o=e(46),s=e(44);t.exports=function(e,t){var r=[e],a=0;do{var c=r[a--];if(c&&c[o]!==t){c[o]=t,r[a++]=c[i];for(var u=-1,h=c[s]||0;++u<h;)r[a++]=c[n+u]}}while(a>-1);return e}},{39:39,43:43,44:44,46:46}],115:[function(e,t,r){var n=e(36),i=e(46),o=e(39),s=e(108),a=e(114);t.exports=function(e,t,r,c){var u=e;do{var h=u[o];0>=(u.$size=(u.$size||0)-t)&&null!=h?s(u,h,u[n],r):u[i]!==c&&a(u,c),u=h}while(u);return e}},{108:108,114:114,36:36,39:39,46:46}],116:[function(e,t,r){var n=Array.isArray,i=e(101),o=e(99),s=e(98),a=e(134);t.exports=function(e,t,r){for(var c=0,u=e.length;u>c;++c){var h=e[c],l=!1;if(n(h)&&t.path?l=!0:"string"==typeof h&&t.pathSyntax?l=!0:i(h)&&t.pathValue?(h.path=a.fromPath(h.path),l=!0):o(h)&&t.jsonGraph?l=!0:s(h)&&t.json?l=!0:"function"==typeof h&&c+1===u&&t.selector&&(l=!0),!l)return new Error("Unrecognized argument "+typeof h+" ["+String(h)+"] to Model#"+r)}return!0}},{101:101,134:134,98:98,99:99}],117:[function(e,t,r){var n=e(130).atom,i=e(106),o=e(122),s=e(37),a=e(85),c=Array.isArray,u=e(88),h=e(87);t.exports=function(e,t,r){var l=0,p=e,f=t;if(f?(p=a(p),l=u(p),p.$type=f):(p=n(r),f=p.$type,p[s]=!0),null==r)l=51;else if(null==l||0>=l)switch(typeof r){case"object":l=c(r)?50+r.length:51;break;case"string":l=50+r.length;break;default:l=51}var d=h(p);return"number"==typeof d&&o>d&&(p.$expires=i()+-1*d),p.$size=l,p}},{106:106,122:122,130:130,37:37,85:85,87:87,88:88}],118:[function(e,t,r){t.exports="atom"},{}],119:[function(e,t,r){t.exports="error"},{}],120:[function(e,t,r){t.exports="ref"},{}],121:[function(e,t,r){t.exports=1},{}],122:[function(e,t,r){t.exports=0},{}],123:[function(e,t,r){"use strict";function n(e){var t;(t=s.length?s.pop():new i).task=e,o(t)}function i(){this.task=null}var o=e(124),s=[],a=[],c=o.makeRequestCallFromTimer(function(){if(a.length)throw a.shift()});t.exports=n,i.prototype.call=function(){try{this.task.call()}catch(e){n.onerror?n.onerror(e):(a.push(e),c())}finally{this.task=null,s[s.length]=this}}},{124:124}],124:[function(e,t,r){(function(e){"use strict";function r(e){s.length||(o(),a=!0),s[s.length]=e}function n(){for(;c<s.length;){var e=c;if(c+=1,s[e].call(),c>u){for(var t=0,r=s.length-c;r>t;t++)s[t]=s[t+c];s.length-=c,c=0}}s.length=0,c=0,a=!1}function i(e){return function(){function t(){clearTimeout(r),clearInterval(n),e()}var r=setTimeout(t,0),n=setInterval(t,50)}}t.exports=r;var o,s=[],a=!1,c=0,u=1024,h=e.MutationObserver||e.WebKitMutationObserver;o="function"==typeof h?function(e){var t=1,r=new h(e),n=document.createTextNode("");return r.observe(n,{characterData:!0}),function(){t=-t,n.data=t}}(n):i(n),r.requestFlush=o,r.makeRequestCallFromTimer=i}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],125:[function(e,t,r){"use strict";function n(e,t){var r;for(r in t)e[r]=t[r];return e}function i(e,t){if(this._jsongUrl=e,"number"==typeof t){t={timeout:t}}this._config=n({timeout:15e3,headers:{}},t||{})}var o=e(129),s=e(126);Array.isArray,i.prototype={constructor:i,buildQueryObject:s,get:function(e){var t=n(this.buildQueryObject(this._jsongUrl,"GET",{paths:e,method:"get"}),this._config);return o("GET",t,this)},set:function(e){var t="POST",r=n(this.buildQueryObject(this._jsongUrl,t,{jsonGraph:e,method:"set"}),this._config);r.headers["Content-Type"]="application/x-www-form-urlencoded";return o(t,r,this)},call:function(e,t,r,i){t=t||[],r=r||[],i=i||[];var s="POST",a=[];a.push("method=call"),a.push("callPath="+encodeURIComponent(JSON.stringify(e))),a.push("arguments="+encodeURIComponent(JSON.stringify(t))),a.push("pathSuffixes="+encodeURIComponent(JSON.stringify(r))),a.push("paths="+encodeURIComponent(JSON.stringify(i)));var c=n(this.buildQueryObject(this._jsongUrl,s,a.join("&")),this._config);c.headers["Content-Type"]="application/x-www-form-urlencoded";return o(s,c,this)}},i.XMLHttpSource=i,i.default=i,t.exports=i},{126:126,129:129}],126:[function(e,t,r){"use strict";t.exports=function(e,t,r){var n=[],i={url:e},o=-1!==e.indexOf("?")?"&":"?";return"string"==typeof r?n.push(r):Object.keys(r).forEach(function(e){var t="object"==typeof r[e]?JSON.stringify(r[e]):r[e];n.push(e+"="+encodeURIComponent(t))}),"GET"===t?i.url+=o+n.join("&"):i.data=n.join("&"),i}},{}],127:[function(e,t,r){(function(e){"use strict";t.exports=function(){var t=new e.XMLHttpRequest;if("withCredentials"in t)return t;if(e.XDomainRequest)return new XDomainRequest;throw new Error("CORS is not supported by your browser")}}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],128:[function(e,t,r){(function(e){"use strict";t.exports=function(){var t,r,n;if(e.XMLHttpRequest)return new e.XMLHttpRequest;try{for(r=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],n=0;3>n;n++)try{if(t=r[n],new e.ActiveXObject(t))break}catch(e){}return new e.ActiveXObject(t)}catch(e){throw new Error("XMLHttpRequest is not supported by your browser")}}}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],129:[function(e,t,r){"use strict";function n(){}function i(e,t,r){r||(r=new Error(t)),e.onError(r)}function o(e,t,r){var n,o;if(t&&e){o=t.responseType,n="response"in t?t.response:t.responseText;var s=1223===t.status?204:t.status;if(s>=200&&399>=s){try{"json"!==o&&(n=JSON.parse(n||"")),"string"==typeof n&&(n=JSON.parse(n||""))}catch(r){i(e,"invalid json",r)}return e.onNext(n),void e.onCompleted()}return 401===s||403===s||407===s?i(e,n):410===s?i(e,n):408===s||504===s?i(e,n):i(e,n||"Response code "+s)}}function s(e,t,r,n){i(e,r||t.statusText||"request error",n)}var a=e(128),c=e(127),u=Object.prototype.hasOwnProperty,h=function(){};n.create=function(e){var t=new n;return t.subscribe=function(t,r,n){var i,o;return i="function"==typeof t?{onNext:t,onError:r||h,onCompleted:n||h}:t,"function"==typeof(o=e(i))?{dispose:o}:o},t},t.exports=function(e,t,r){return n.create(function(n){var i,h,l,p,f,d={method:e||"GET",crossDomain:!1,async:!0,headers:{},responseType:"json"};for(f in t)u.call(t,f)&&(d[f]=t[f]);d.crossDomain||d.headers["X-Requested-With"]||(d.headers["X-Requested-With"]="XMLHttpRequest"),null!=r.onBeforeRequest&&r.onBeforeRequest(d);try{i=d.crossDomain?c():a()}catch(e){n.onError(e)}try{d.user?i.open(d.method,d.url,d.async,d.user,d.password):i.open(d.method,d.url,d.async),i.timeout=d.timeout,i.withCredentials=!1!==d.withCredentials,l=d.headers;for(p in l)u.call(l,p)&&i.setRequestHeader(p,l[p]);if(d.responseType)try{i.responseType=d.responseType}catch(e){if("json"!==d.responseType)throw e}i.onreadystatechange=function(e){4===i.readyState&&(h||(h=!0,o(n,i)))},i.ontimeout=function(e){h||(h=!0,s(n,i,"timeout error",e))},i.send(d.data)}catch(e){n.onError(e)}return function(){h||4===i.readyState||(h=!0,i.abort())}})}},{127:127,128:128}],130:[function(e,t,r){function n(e,t,r){var n=Object.create(null);if(null!=r){for(var i in r)n[i]=r[i];return n.$type=e,n.value=t,n}return{$type:e,value:t}}var i=e(134);t.exports={ref:function(e,t){return n("ref",i.fromPath(e),t)},atom:function(e,t){return n("atom",e,t)},undefined:function(){return n("atom")},error:function(e,t){return n("error",e,t)},pathValue:function(e,t){return{path:i.fromPath(e),value:t}},pathInvalidation:function(e){return{path:i.fromPath(e),invalidated:!0}}}},{134:134}],131:[function(e,t,r){t.exports={integers:"integers",ranges:"ranges",keys:"keys"}},{}],132:[function(e,t,r){t.exports={token:"token",dotSeparator:".",commaSeparator:",",openingBracket:"[",closingBracket:"]",openingBrace:"{",closingBrace:"}",escape:"\\",space:" ",colon:":",quote:"quote",unknown:"unknown"}},{}],133:[function(e,t,r){t.exports={indexer:{nested:"Indexers cannot be nested.",needQuotes:"unquoted indexers must be numeric.",empty:"cannot have empty indexers.",leadingDot:"Indexers cannot have leading dots.",leadingComma:"Indexers cannot have leading comma.",requiresComma:"Indexers require commas between indexer args.",routedTokens:"Only one token can be used per indexer when specifying routed tokens."},range:{precedingNaN:"ranges must be preceded by numbers.",suceedingNaN:"ranges must be suceeded by numbers."},routed:{invalid:"Invalid routed token.  only integers|ranges|keys are supported."},quote:{empty:"cannot have empty quoted keys.",illegalEscape:"Invalid escape character.  Only quotes are escapable."},unexpectedToken:"Unexpected token.",invalidIdentifier:"Invalid Identifier.",invalidPath:"Please provide a valid path.",throwError:function(e,t,r){if(r)throw e+" -- "+t.parseString+" with next token: "+r;throw e+" -- "+t.parseString}}},{}],134:[function(e,t,r){var n=e(140),i=e(135),o=e(131),s=function(e,t){return i(new n(e,t))};t.exports=s,s.fromPathsOrPathValues=function(e,t){if(!e)return[];for(var r=[],n=0,i=e.length;i>n;n++)"string"==typeof e[n]?r[n]=s(e[n],t):"string"==typeof e[n].path?r[n]={path:s(e[n].path,t),value:e[n].value}:r[n]=e[n];return r},s.fromPath=function(e,t){return e?"string"==typeof e?s(e,t):e:[]},s.RoutedTokens=o},{131:131,135:135,140:140}],135:[function(e,t,r){var n=e(132),i=e(133),o=e(136);t.exports=function(e){for(var t=e.next(),r={},s=[];!t.done;){switch(t.type){case n.token:var a=+t.token[0];isNaN(a)||i.throwError(i.invalidIdentifier,e),s[s.length]=t.token;break;case n.dotSeparator:0===s.length&&i.throwError(i.unexpectedToken,e);break;case n.space:break;case n.openingBracket:o(e,t,r,s);break;default:i.throwError(i.unexpectedToken,e)}t=e.next()}return 0===s.length&&i.throwError(i.invalidPath,e),s}},{132:132,133:133,136:136}],136:[function(e,t,r){var n=e(132),i=e(133),o=i.indexer,s=e(138),a=e(137),c=e(139);t.exports=function(e,t,r,u){var h=e.next(),l=!1,p=1,f=!1;for(r.indexer=[];!h.done;){switch(h.type){case n.token:case n.quote:r.indexer.length===p&&i.throwError(o.requiresComma,e)}switch(h.type){case n.openingBrace:f=!0,c(e,h,r,u);break;case n.token:var d=+h.token;isNaN(d)&&i.throwError(o.needQuotes,e),r.indexer[r.indexer.length]=d;break;case n.dotSeparator:r.indexer.length||i.throwError(o.leadingDot,e),s(e,h,r,u);break;case n.space:break;case n.closingBracket:l=!0;break;case n.quote:a(e,h,r,u);break;case n.openingBracket:i.throwError(o.nested,e);break;case n.commaSeparator:++p;break;default:i.throwError(i.unexpectedToken,e)}if(l)break;h=e.next()}0===r.indexer.length&&i.throwError(o.empty,e),r.indexer.length>1&&f&&i.throwError(o.routedTokens,e),1===r.indexer.length&&(r.indexer=r.indexer[0]),u[u.length]=r.indexer,r.indexer=void 0}},{132:132,133:133,137:137,138:138,139:139}],137:[function(e,t,r){var n=e(132),i=e(133),o=i.quote;t.exports=function(e,t,r,s){for(var a=e.next(),c="",u=t.token,h=!1,l=!1;!a.done;){switch(a.type){case n.token:case n.space:case n.dotSeparator:case n.commaSeparator:case n.openingBracket:case n.closingBracket:case n.openingBrace:case n.closingBrace:h&&i.throwError(o.illegalEscape,e),c+=a.token;break;case n.quote:h?(c+=a.token,h=!1):a.token!==u?c+=a.token:l=!0;break;case n.escape:h=!0;break;default:i.throwError(i.unexpectedToken,e)}if(l)break;a=e.next()}0===c.length&&i.throwError(o.empty,e),r.indexer[r.indexer.length]=c}},{132:132,133:133}],138:[function(e,t,r){var n=e(140),i=e(132),o=e(133);t.exports=function(e,t,r,s){var a,c=e.peek(),u=1,h=!1,l=!0,p=r.indexer.length-1,f=n.toNumber(r.indexer[p]);for(isNaN(f)&&o.throwError(o.range.precedingNaN,e);!h&&!c.done;){switch(c.type){case i.dotSeparator:3===u&&o.throwError(o.unexpectedToken,e),3===++u&&(l=!1);break;case i.token:a=n.toNumber(e.next().token),isNaN(a)&&o.throwError(o.range.suceedingNaN,e),h=!0;break;default:h=!0}if(h)break;e.next(),c=e.peek()}r.indexer[p]={from:f,to:l?a:a-1}}},{132:132,133:133,140:140}],139:[function(e,t,r){var n=e(132),i=e(131),o=e(133),s=o.routed;t.exports=function(e,t,r,a){var c=e.next(),u=!1,h="";switch(c.token){case i.integers:case i.ranges:case i.keys:break;default:o.throwError(s.invalid,e)}var l=e.next();if(l.type===n.colon&&(u=!0,(l=e.next()).type!==n.token&&o.throwError(s.invalid,e),h=l.token,l=e.next()),l.type===n.closingBrace){var p={type:c.token,named:u,name:h};r.indexer[r.indexer.length]=p}else o.throwError(s.invalid,e)}},{131:131,132:132,133:133}],140:[function(e,t,r){function n(e,t,r){return{token:e,done:r,type:t}}function i(e,t,r){var i,b=!1,_="",x=r?y:g;do{if(i=t+1>=e.length)break;var w=e[t+1];if(void 0===w||-1!==x.indexOf(w)){if(_.length)break;++t;var S;switch(w){case s:S=o.dotSeparator;break;case a:S=o.commaSeparator;break;case c:S=o.openingBracket;break;case u:S=o.closingBracket;break;case h:S=o.openingBrace;break;case l:S=o.closingBrace;break;case v:S=o.space;break;case d:case m:S=o.quote;break;case f:S=o.escape;break;case p:S=o.colon;break;default:S=o.unknown}b=n(w,S,!1);break}_+=w,++t}while(!i);return!b&&_.length&&(b=n(_,o.token,!1)),b||(b={done:!0}),{token:b,idx:t}}var o=e(132),s=".",a=",",c="[",u="]",h="{",l="}",p=":",f="\\",d='"',m="'",v=" ",g="\\'\"[]., ",y="\\{}'\"[]., :",b=t.exports=function(e,t){this._string=e,this._idx=-1,this._extended=t,this.parseString=""};b.prototype={next:function(){var e=this._nextToken?this._nextToken:i(this._string,this._idx,this._extended);return this._idx=e.idx,this._nextToken=!1,this.parseString+=e.token.token,e.token},peek:function(){var e=this._nextToken?this._nextToken:i(this._string,this._idx,this._extended);return this._nextToken=e,e.token}},b.toNumber=function(e){return isNaN(+e)?NaN:+e}},{132:132}],141:[function(e,t,r){var n=e(147),i=e(148);t.exports=function(e){var t=e.reduce(function(e,t){var r=t.length;return e[r]||(e[r]=[]),e[r].push(t),e},{});return Object.keys(t).forEach(function(e){t[e]=i(t[e])}),n(t)}},{147:147,148:148}],142:[function(e,t,r){var n=e(144);t.exports=function e(t,r,i){for(var o=t,s=!0;s&&i<r.length;++i){var a=r[i];if(a&&"object"===typeof a){var c={},u=n(a,c),h=i+1;do{var l=o[u];(s=void 0!==l)&&(s=e(l,r,h)),u=n(a,c)}while(s&&!c.done);break}s=void 0!==(o=o[a])}return s}},{144:144}],143:[function(e,t,r){t.exports={iterateKeySet:e(144),toTree:e(148),toTreeWithUnion:e(149),pathsComplementFromTree:e(146),pathsComplementFromLengthTree:e(145),hasIntersection:e(142),toPaths:e(147),collapse:e(141)}},{141:141,142:142,144:144,145:145,146:146,147:147,148:148,149:149}],144:[function(e,t,r){function n(e,t){var r=t.from=e.from||0,n=t.to=e.to||"number"==typeof e.length&&t.from+e.length-1||0;t.rangeOffset=t.from,t.loaded=!0,r>n&&(t.empty=!0)}function i(e,t){t.done=!1;var r=t.isObject=!(!e||"object"!=typeof e);t.isArray=r&&o(e),t.arrayOffset=0}var o=Array.isArray;t.exports=function(e,t){if(void 0===t.isArray&&i(e,t),t.isArray){var r;do{t.loaded&&t.rangeOffset>t.to&&(++t.arrayOffset,t.loaded=!1);if(t.arrayOffset>=e.length){t.done=!0;break}var o=e[t.arrayOffset];if("object"===typeof o){if(t.loaded||n(o,t),t.empty)continue;r=t.rangeOffset++}else++t.arrayOffset,r=o}while(void 0===r);return r}return t.isObject?(t.loaded||n(e,t),t.rangeOffset>t.to?void(t.done=!0):t.rangeOffset++):(t.done=!0,e)}},{}],145:[function(e,t,r){var n=e(142);t.exports=function(e,t){for(var r=[],i=-1,o=0,s=e.length;s>o;++o){var a=e[o];n(t[a.length],a,0)||(r[++i]=a)}return r}},{142:142}],146:[function(e,t,r){var n=e(142);t.exports=function(e,t){for(var r=[],i=-1,o=0,s=e.length;s>o;++o)n(t,e[o],0)||(r[++i]=e[o]);return r}},{142:142}],147:[function(e,t,r){function n(e){return null!==e&&typeof e===l}function i(e,t,r){var n,o,s,h,l,p,f,d,m,v,g,y,b,_,x=c(String(t)),w=Object.create(null),S=[],M=-1,E=0,C=[],T=0;if(h=[],l=-1,r-1>t){for(p=a(e,h);++l<p;)n=h[l],o=i(e[n],t+1,r),s=o.code,w[s]?o=w[s]:(S[E++]=s,o=w[s]={keys:[],sets:o.sets}),x=c(x+n+s),u(n)&&o.keys.push(parseInt(n,10))||o.keys.push(n);for(;++M<E;)if(n=S[M],o=w[n],h=o.keys,(p=h.length)>0)for(f=o.sets,d=-1,m=f.length,b=h[0];++d<m;){for(g=-1,y=(v=f[d]).length,(_=new Array(y+1))[0]=p>1&&h||b;++g<y;)_[g+1]=v[g];C[T++]=_}}else for(p=a(e,h),C[T++]=p>1?[h]:h;++l<p;)x=c(x+h[l]);return{code:x,sets:C}}function o(e){for(var t=-1,r=e.length;++t<r;){var n=e[t];h(n)&&(e[t]=function(e){for(var t=-1,r=e.length-1,n=r>0;++t<=r;){var i=e[t];if(!u(i)){n=!1;break}e[t]=parseInt(i,10)}if(!0===n){e.sort(s);var o=e[0],a=e[r];if(r>=a-o)return{from:o,to:a}}return e}(n))}return e}function s(e,t){return e-t}function a(e,t,r){var n=0;for(var i in e)t[n++]=i;return n>1&&t.sort(r),n}function c(e){for(var t=5381,r=-1,n=e.length;++r<n;)t=(t<<5)+t+e.charCodeAt(r);return String(t)}function u(e){return!h(e)&&e-parseFloat(e)+1>=0}var h=Array.isArray,l="object";t.exports=function(e){var t,r=[],s=0;for(var a in e)if(u(a)&&n(t=e[a]))for(var c=i(t,0,parseInt(a,10)).sets,h=-1,l=c.length;++h<l;)r[s++]=o(c[h]);return r}},{}],148:[function(e,t,r){function n(e,t,r){var o,s=t[r],a={},c=r+1;o=i(s,a);do{var u=e[o];u||(c===t.length?e[o]=null:u=e[o]={}),c<t.length&&n(u,t,c),a.done||(o=i(s,a))}while(!a.done)}var i=e(144);Array.isArray,t.exports=function(e){return e.reduce(function(e,t){return n(e,t,0),e},{})}},{144:144}],149:[function(e,t,r){},{}],150:[function(e,t,r){function n(){h=!1,a.length?u=a.concat(u):l=-1,u.length&&i()}function i(){if(!h){var e=setTimeout(n);h=!0;for(var t=u.length;t;){for(a=u,u=[];++l<t;)a&&a[l].run();l=-1,t=u.length}a=null,h=!1,clearTimeout(e)}}function o(e,t){this.fun=e,this.array=t}function s(){}var a,c=t.exports={},u=[],h=!1,l=-1;c.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];u.push(new o(e,t)),1!==u.length||h||setTimeout(i,0)},o.prototype.run=function(){this.fun.apply(null,this.array)},c.title="browser",c.browser=!0,c.env={},c.argv=[],c.version="",c.versions={},c.on=s,c.addListener=s,c.once=s,c.off=s,c.removeListener=s,c.removeAllListeners=s,c.emit=s,c.binding=function(e){throw new Error("process.binding is not supported")},c.cwd=function(){return"/"},c.chdir=function(e){throw new Error("process.chdir is not supported")},c.umask=function(){return 0}},{}],151:[function(e,t,r){"use strict";t.exports=e(156)},{156:156}],152:[function(e,t,r){"use strict";function n(){}function i(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._37=0,this._12=null,this._59=[],e!==n&&h(e,this)}function o(e,t){for(;3===e._37;)e=e._12;return 0===e._37?void e._59.push(t):void l(function(){var r=1===e._37?t.onFulfilled:t.onRejected;if(null!==r){var n=function(e,t){try{return e(t)}catch(e){return p=e,f}}(r,e._12);n===f?a(t.promise,p):s(t.promise,n)}else 1===e._37?s(t.promise,e._12):a(t.promise,e._12)})}function s(e,t){if(t===e)return a(e,new TypeError("A promise cannot be resolved with itself."));if(t&&("object"==typeof t||"function"==typeof t)){var r=function(e){try{return e.then}catch(e){return p=e,f}}(t);if(r===f)return a(e,p);if(r===e.then&&t instanceof i)return e._37=3,e._12=t,void c(e);if("function"==typeof r)return void h(r.bind(t),e)}e._37=1,e._12=t,c(e)}function a(e,t){e._37=2,e._12=t,c(e)}function c(e){for(var t=0;t<e._59.length;t++)o(e,e._59[t]);e._59=null}function u(e,t,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=r}function h(e,t){var r=!1,n=function(e,t,r){try{e(t,r)}catch(e){return p=e,f}}(e,function(e){r||(r=!0,s(t,e))},function(e){r||(r=!0,a(t,e))});r||n!==f||(r=!0,a(t,p))}var l=e(124),p=null,f={};t.exports=i,i._99=n,i.prototype.then=function(e,t){if(this.constructor!==i)return function(e,t,r){return new e.constructor(function(s,a){var c=new i(n);c.then(s,a),o(e,new u(t,r,c))})}(this,e,t);var r=new i(n);return o(this,new u(e,t,r)),r}},{124:124}],153:[function(e,t,r){"use strict";var n=e(152);t.exports=n,n.prototype.done=function(e,t){(arguments.length?this.then.apply(this,arguments):this).then(null,function(e){setTimeout(function(){throw e},0)})}},{152:152}],154:[function(e,t,r){"use strict";function n(e){var t=new i(i._99);return t._37=1,t._12=e,t}var i=e(152);t.exports=i;var o=n(!0),s=n(!1),a=n(null),c=n(void 0),u=n(0),h=n("");i.resolve=function(e){if(e instanceof i)return e;if(null===e)return a;if(void 0===e)return c;if(!0===e)return o;if(!1===e)return s;if(0===e)return u;if(""===e)return h;if("object"==typeof e||"function"==typeof e)try{var t=e.then;if("function"==typeof t)return new i(t.bind(e))}catch(e){return new i(function(t,r){r(e)})}return n(e)},i.all=function(e){var t=Array.prototype.slice.call(e);return new i(function(e,r){function n(s,a){if(a&&("object"==typeof a||"function"==typeof a)){if(a instanceof i&&a.then===i.prototype.then){for(;3===a._37;)a=a._12;return 1===a._37?n(s,a._12):(2===a._37&&r(a._12),void a.then(function(e){n(s,e)},r))}var c=a.then;if("function"==typeof c){return void new i(c.bind(a)).then(function(e){n(s,e)},r)}}t[s]=a,0==--o&&e(t)}if(0===t.length)return e([]);for(var o=t.length,s=0;s<t.length;s++)n(s,t[s])})},i.reject=function(e){return new i(function(t,r){r(e)})},i.race=function(e){return new i(function(t,r){e.forEach(function(e){i.resolve(e).then(t,r)})})},i.prototype.catch=function(e){return this.then(null,e)}},{152:152}],155:[function(e,t,r){"use strict";var n=e(152);t.exports=n,n.prototype.finally=function(e){return this.then(function(t){return n.resolve(e()).then(function(){return t})},function(t){return n.resolve(e()).then(function(){throw t})})}},{152:152}],156:[function(e,t,r){"use strict";t.exports=e(152),e(153),e(155),e(154),e(157)},{152:152,153:153,154:154,155:155,157:157}],157:[function(e,t,r){"use strict";var n=e(152),i=e(123);t.exports=n,n.denodeify=function(e,t){return t=t||1/0,function(){var r=this,i=Array.prototype.slice.call(arguments,0,t>0?t:0);return new n(function(t,n){i.push(function(e,r){e?n(e):t(r)});var o=e.apply(r,i);!o||"object"!=typeof o&&"function"!=typeof o||"function"!=typeof o.then||t(o)})}},n.nodeify=function(e){return function(){var t=Array.prototype.slice.call(arguments),r="function"==typeof t[t.length-1]?t.pop():null,o=this;try{return e.apply(this,arguments).nodeify(r,o)}catch(e){if(null===r||void 0===r)return new n(function(t,r){r(e)});i(function(){r.call(o,e)})}}},n.prototype.nodeify=function(e,t){return"function"!=typeof e?this:void this.then(function(r){i(function(){e.call(t,null,r)})},function(r){i(function(){e.call(t,r)})})}},{123:123,152:152}],158:[function(e,t,r){(function(n){(function(i){var o={boolean:!1,function:!0,object:!0,number:!1,string:!1,undefined:!1},s=o[typeof window]&&window||this,a=o[typeof r]&&r&&!r.nodeType&&r,c=o[typeof t]&&t&&!t.nodeType&&t,u=(c&&c.exports,o[typeof n]&&n);!u||u.global!==u&&u.window!==u||(s=u),"object"==typeof t&&t&&t.exports===a?t.exports=i(s,t.exports,e(159)):s.Rx=i(s,{},s.Rx)}).call(this,function(e,t,r,n){function i(e){if(!S(e))throw new TypeError("fn must be a function");return p=e,function(){try{return p.apply(this,arguments)}catch(e){return N.e=e,N}}}function o(e,t,r){return new v(function(n){var i=!1,o=null,s=[];return e.subscribe(function(e){var a,c;try{c=t(e)}catch(e){return void n.onError(e)}if(a=0,i)try{a=r(c,o)}catch(e){return void n.onError(e)}else i=!0,o=c;a>0&&(o=c,s=[]),a>=0&&s.push(e)},function(e){n.onError(e)},function(){n.onNext(s),n.onCompleted()})},e)}function s(e){if(0===e.length)throw new R;return e[0]}function a(e,t,r,n){if(0>t)throw new L;return new v(function(i){var o=t;return e.subscribe(function(e){0==o--&&(i.onNext(e),i.onCompleted())},function(e){i.onError(e)},function(){r?(i.onNext(n),i.onCompleted()):i.onError(new L)})},e)}function c(e,t,r){return new v(function(n){var i=r,o=!1;return e.subscribe(function(e){o?n.onError(new Error("Sequence contains more than one element")):(i=e,o=!0)},function(e){n.onError(e)},function(){o||t?(n.onNext(i),n.onCompleted()):n.onError(new R)})},e)}function u(e,t,r){return new v(function(n){return e.subscribe(function(e){n.onNext(e),n.onCompleted()},function(e){n.onError(e)},function(){t?(n.onNext(r),n.onCompleted()):n.onError(new R)})},e)}function h(e,t,r){return new v(function(n){var i=r,o=!1;return e.subscribe(function(e){i=e,o=!0},function(e){n.onError(e)},function(){o||t?(n.onNext(i),n.onCompleted()):n.onError(new R)})},e)}function l(e,t,r,i){var o=A(t,r,3);return new v(function(t){var r=0;return e.subscribe(function(n){var s;try{s=o(n,r,e)}catch(e){return void t.onError(e)}s?(t.onNext(i?r:n),t.onCompleted()):r++},function(e){t.onError(e)},function(){t.onNext(i?-1:n),t.onCompleted()})},e)}var p,f=r.Observable,d=f.prototype,m=r.CompositeDisposable,v=r.AnonymousObservable,g=r.Disposable.empty,y=(r.internals.isEqual,r.helpers),b=y.not,_=y.defaultComparer,x=y.identity,w=y.defaultSubComparer,S=y.isFunction,M=y.isPromise,E=y.isArrayLike,C=y.isIterable,T=r.internals.inherits,O=f.fromPromise,P=f.from,A=r.internals.bindCallback,R=r.EmptyError,j=r.ObservableBase,L=r.ArgumentOutOfRangeError,N={e:{}};d.aggregate=function(){var e,t,r=!1,n=this;return 2===arguments.length?(r=!0,t=arguments[0],e=arguments[1]):e=arguments[0],new v(function(i){var o,s,a;return n.subscribe(function(n){!a&&(a=!0);try{o?s=e(s,n):(s=r?e(t,n):n,o=!0)}catch(e){return i.onError(e)}},function(e){i.onError(e)},function(){a&&i.onNext(s),!a&&r&&i.onNext(t),!a&&!r&&i.onError(new R),i.onCompleted()})},n)};var I=function(e){function t(t,r,n,i){this.source=t,this.acc=r,this.hasSeed=n,this.seed=i,e.call(this)}function r(e,t){this.o=e,this.acc=t.acc,this.hasSeed=t.hasSeed,this.seed=t.seed,this.hasAccumulation=!1,this.result=null,this.hasValue=!1,this.isStopped=!1}return T(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e,this))},r.prototype.onNext=function(e){this.isStopped||(!this.hasValue&&(this.hasValue=!0),this.hasAccumulation?this.result=i(this.acc)(this.result,e):(this.result=this.hasSeed?i(this.acc)(this.seed,e):e,this.hasAccumulation=!0),this.result===N&&this.o.onError(this.result.e))},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.hasValue&&this.o.onNext(this.result),!this.hasValue&&this.hasSeed&&this.o.onNext(this.seed),!this.hasValue&&!this.hasSeed&&this.o.onError(new R),this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(j);return d.reduce=function(e){var t=!1;if(2===arguments.length){t=!0;var r=arguments[1]}return new I(this,e,t,r)},d.some=function(e,t){var r=this;return e?r.filter(e,t).some():new v(function(e){return r.subscribe(function(){e.onNext(!0),e.onCompleted()},function(t){e.onError(t)},function(){e.onNext(!1),e.onCompleted()})},r)},d.any=function(){return this.some.apply(this,arguments)},d.isEmpty=function(){return this.any().map(b)},d.every=function(e,t){return this.filter(function(t){return!e(t)},t).some().map(b)},d.all=function(){return this.every.apply(this,arguments)},d.includes=function(e,t){var r=this;return new v(function(n){var i=0,o=+t||0;return Math.abs(o)===1/0&&(o=0),0>o?(n.onNext(!1),n.onCompleted(),g):r.subscribe(function(t){i++>=o&&function(e,t){return 0===e&&0===t||e===t||isNaN(e)&&isNaN(t)}(t,e)&&(n.onNext(!0),n.onCompleted())},function(e){n.onError(e)},function(){n.onNext(!1),n.onCompleted()})},this)},d.contains=function(e,t){d.includes(e,t)},d.count=function(e,t){return e?this.filter(e,t).count():this.reduce(function(e){return e+1},0)},d.indexOf=function(e,t){var r=this;return new v(function(n){var i=0,o=+t||0;return Math.abs(o)===1/0&&(o=0),0>o?(n.onNext(-1),n.onCompleted(),g):r.subscribe(function(t){i>=o&&t===e&&(n.onNext(i),n.onCompleted()),i++},function(e){n.onError(e)},function(){n.onNext(-1),n.onCompleted()})},r)},d.sum=function(e,t){return e&&S(e)?this.map(e,t).sum():this.reduce(function(e,t){return e+t},0)},d.minBy=function(e,t){return t||(t=w),o(this,e,function(e,r){return-1*t(e,r)})},d.min=function(e){return this.minBy(x,e).map(function(e){return s(e)})},d.maxBy=function(e,t){return t||(t=w),o(this,e,t)},d.max=function(e){return this.maxBy(x,e).map(function(e){return s(e)})},d.average=function(e,t){return e&&S(e)?this.map(e,t).average():this.reduce(function(e,t){return{sum:e.sum+t,count:e.count+1}},{sum:0,count:0}).map(function(e){if(0===e.count)throw new R;return e.sum/e.count})},d.sequenceEqual=function(e,t){var r=this;return t||(t=_),new v(function(n){var i=!1,o=!1,s=[],a=[],c=r.subscribe(function(e){var r,i;if(a.length>0){i=a.shift();try{r=t(i,e)}catch(e){return void n.onError(e)}r||(n.onNext(!1),n.onCompleted())}else o?(n.onNext(!1),n.onCompleted()):s.push(e)},function(e){n.onError(e)},function(){i=!0,0===s.length&&(a.length>0?(n.onNext(!1),n.onCompleted()):o&&(n.onNext(!0),n.onCompleted()))});(E(e)||C(e))&&(e=P(e)),M(e)&&(e=O(e));var u=e.subscribe(function(e){var r;if(s.length>0){var o=s.shift();try{r=t(o,e)}catch(e){return void n.onError(e)}r||(n.onNext(!1),n.onCompleted())}else i?(n.onNext(!1),n.onCompleted()):a.push(e)},function(e){n.onError(e)},function(){o=!0,0===a.length&&(s.length>0?(n.onNext(!1),n.onCompleted()):i&&(n.onNext(!0),n.onCompleted()))});return new m(c,u)},r)},d.elementAt=function(e){return a(this,e,!1)},d.elementAtOrDefault=function(e,t){return a(this,e,!0,t)},d.single=function(e,t){return e&&S(e)?this.where(e,t).single():c(this,!1)},d.singleOrDefault=function(e,t,r){return e&&S(e)?this.filter(e,r).singleOrDefault(null,t):c(this,!0,t)},d.first=function(e,t){return e?this.where(e,t).first():u(this,!1)},d.firstOrDefault=function(e,t,r){return e?this.where(e).firstOrDefault(null,t):u(this,!0,t)},d.last=function(e,t){return e?this.where(e,t).last():h(this,!1)},d.lastOrDefault=function(e,t,r){return e?this.where(e,r).lastOrDefault(null,t):h(this,!0,t)},d.find=function(e,t){return l(this,e,t,!1)},d.findIndex=function(e,t){return l(this,e,t,!0)},d.toSet=function(){if(void 0===e.Set)throw new TypeError;var t=this;return new v(function(r){var n=new e.Set;return t.subscribe(function(e){n.add(e)},function(e){r.onError(e)},function(){r.onNext(n),r.onCompleted()})},t)},d.toMap=function(t,r){if(void 0===e.Map)throw new TypeError;var n=this;return new v(function(i){var o=new e.Map;return n.subscribe(function(e){var n;try{n=t(e)}catch(e){return void i.onError(e)}var s=e;if(r)try{s=r(e)}catch(e){return void i.onError(e)}o.set(n,s)},function(e){i.onError(e)},function(){i.onNext(o),i.onCompleted()})},n)},r})}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{159:159}],159:[function(e,t,r){(function(e,n){(function(i){function o(e){for(var t=[],r=0,n=e.length;n>r;r++)t.push(e[r]);return t}function a(e,t){if(K&&t.stack&&"object"==typeof e&&null!==e&&e.stack&&-1===e.stack.indexOf(Q)){for(var r=[],n=t;n;n=n.source)n.stack&&r.unshift(n.stack);r.unshift(e.stack);var i=r.join("\n"+Q+"\n");e.stack=function(e){for(var t=e.split("\n"),r=[],n=0,i=t.length;i>n;n++){var o=t[n];(function(e){var t=u(e);if(!t)return!1;var r=t[0],n=t[1];return r===Z&&n>=J&&br>=n})(o)||function(e){return-1!==e.indexOf("(module.js:")||-1!==e.indexOf("(node.js:")}(o)||!o||r.push(o)}return r.join("\n")}(i)}}function c(){if(K)try{throw new Error}catch(r){var e=r.stack.split("\n"),t=u(e[0].indexOf("@")>0?e[1]:e[2]);if(!t)return;return Z=t[0],t[1]}}function u(e){var t=/at .+ \((.+):(\d+):(?:\d+)\)$/.exec(e);if(t)return[t[1],Number(t[2])];var r=/at ([^ ]+):(\d+):(?:\d+)$/.exec(e);if(r)return[r[1],Number(r[2])];var n=/.*@(.+):(\d+)$/.exec(e);return n?[n[1],Number(n[2])]:void 0}function h(e){var t=[];if(!Re(e))return t;Ae.nonEnumArgs&&e.length&&je(e)&&(e=Ie.call(e));var r=Ae.enumPrototypes&&"function"==typeof e,n=Ae.enumErrorProps&&(e===Ee||e instanceof Error);for(var i in e)r&&"prototype"==i||n&&("message"==i||"name"==i)||t.push(i);if(Ae.nonEnumShadows&&e!==Ce){var o=e.constructor,s=-1,a=pe;if(e===(o&&o.prototype))var c=e===Te?xe:e===Ee?ge:we.call(e),u=Pe[c];for(;++s<a;)i=le[s],u&&u[i]||!Se.call(e,i)||t.push(i)}return t}function l(e,t){return function(e,t,r){for(var n=-1,i=r(e),o=i.length;++n<o;){var s=i[n];if(!1===t(e[s],s,e))break}return e}(e,t,h)}function p(e){return"function"!=typeof e.toString&&"string"==typeof(e+"")}function f(e,t,r,n){if(e===t)return 0!==e||1/e==1/t;var i=typeof e,o=typeof t;if(e==e&&(null==e||null==t||"function"!=i&&"object"!=i&&"function"!=o&&"object"!=o))return!1;var s=we.call(e),a=we.call(t);if(s==fe&&(s=be),a==fe&&(a=be),s!=a)return!1;switch(s){case me:case ve:return+e==+t;case ye:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case _e:case xe:return e==String(t)}var c=s==de;if(!c){if(s!=be||!Ae.nodeClass&&(p(e)||p(t)))return!1;var u=!Ae.argsObject&&je(e)?Object:e.constructor,h=!Ae.argsObject&&je(t)?Object:t.constructor;if(!(u==h||Se.call(e,"constructor")&&Se.call(t,"constructor")||Y(u)&&u instanceof u&&Y(h)&&h instanceof h)&&("constructor"in e&&"constructor"in t))return!1}r||(r=[]),n||(n=[]);for(var d=r.length;d--;)if(r[d]==e)return n[d]==t;var m=0,v=!0;if(r.push(e),n.push(t),c){if(d=e.length,m=t.length,v=m==d)for(;m--;){var g=t[m];if(!(v=f(e[m],g,r,n)))break}}else l(t,function(t,i,o){return Se.call(o,i)?(m++,v=Se.call(e,i)&&f(e[i],t,r,n)):void 0}),v&&l(e,function(e,t,r){return Se.call(r,t)?v=--m>-1:void 0});return r.pop(),n.pop(),v}function d(e,t){for(var r=new Array(e),n=0;e>n;n++)r[n]=t();return r}function m(e){if(!Y(e))throw new TypeError("fn must be a function");return Le=e,function(){try{return Le.apply(this,arguments)}catch(e){return Fe.e=e,Fe}}}function v(e){throw e}function g(e,t){this.id=e,this.value=t}function y(e,t){this.scheduler=e,this.disposable=t,this.isDisposed=!1}function b(e,t){t.isDisposed||(t.isDisposed=!0,t.disposable.dispose())}function _(e){this._s=s}function x(e){this._s=s,this._l=s.length,this._i=0}function w(e){this._a=e}function S(e){this._a=e,this._l=function(e){var t=+e.length;return isNaN(t)?0:0!==t&&function(e){return"number"==typeof e&&D.isFinite(e)}(t)?0>=(t=function(e){var t=+e;return 0===t?t:isNaN(t)?t:0>t?-1:1}(t)*Math.floor(Math.abs(t)))?0:t>kt?kt:t:t}(e),this._i=0}function M(e,t){this.observer=e,this.parent=t}function E(e,t){return tt(e)||(e=ot),new Ft(t,e)}function C(e,t){this.observer=e,this.parent=t}function T(e,t){this.observer=e,this.parent=t}function O(){return!1}function O(){return!1}function P(){return[]}function O(){return!1}function A(){return[]}function R(e,t){this.observer=e,this.accumulator=t.accumulator,this.hasSeed=t.hasSeed,this.seed=t.seed,this.hasAccumulation=!1,this.accumulation=null,this.hasValue=!1,this.isStopped=!1}function j(e,t,r){var n=he(t,r,3);return e.map(function(t,r){var i=n(t,r,e);return X(i)&&(i=Rt(i)),(ue(i)||ce(i))&&(i=Bt(i)),i}).concatAll()}function L(e){this.comparer=e,this.set=[]}function N(e,t,r){var n=he(t,r,3);return e.map(function(t,r){var i=n(t,r,e);return X(i)&&(i=Rt(i)),(ue(i)||ce(i))&&(i=Bt(i)),i}).mergeAll()}var I={boolean:!1,function:!0,object:!0,number:!1,string:!1,undefined:!1},D=I[typeof window]&&window||this,k=I[typeof r]&&r&&!r.nodeType&&r,B=I[typeof t]&&t&&!t.nodeType&&t,F=B&&B.exports===k&&k,U=I[typeof n]&&n;!U||U.global!==U&&U.window!==U||(D=U);var $={internals:{},config:{Promise:D.Promise},helpers:{}},z=$.helpers.noop=function(){},G=($.helpers.notDefined=function(e){return void 0===e},$.helpers.identity=function(e){return e}),V=($.helpers.pluck=function(e){return function(t){return t[e]}},$.helpers.just=function(e){return function(){return e}},$.helpers.defaultNow=Date.now),H=$.helpers.defaultComparer=function(e,t){return Ne(e,t)},q=$.helpers.defaultSubComparer=function(e,t){return e>t?1:t>e?-1:0},W=($.helpers.defaultKeySerializer=function(e){return e.toString()},$.helpers.defaultError=function(e){throw e}),X=$.helpers.isPromise=function(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then},Y=($.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},$.helpers.not=function(e){return!e},$.helpers.isFunction=function(){var e=function(e){return"function"==typeof e||!1};return e(/x/)&&(e=function(e){return"function"==typeof e&&"[object Function]"==we.call(e)}),e}());$.config.longStackSupport=!1;var K=!1;try{throw new Error}catch(e){K=!!e.stack}var Z,J=c(),Q="From previous event:";($.EmptyError=function(){this.message="Sequence contains no elements.",Error.call(this)}).prototype=Error.prototype;var ee=$.ObjectDisposedError=function(){this.message="Object has been disposed",Error.call(this)};ee.prototype=Error.prototype;var te=$.ArgumentOutOfRangeError=function(){this.message="Argument out of range",Error.call(this)};te.prototype=Error.prototype;var re=$.NotSupportedError=function(e){this.message=e||"This operation is not supported",Error.call(this)};re.prototype=Error.prototype;var ne=$.NotImplementedError=function(e){this.message=e||"This operation is not implemented",Error.call(this)};ne.prototype=Error.prototype;var ie=$.helpers.notImplemented=function(){throw new ne},oe=$.helpers.notSupported=function(){throw new re},se="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";D.Set&&"function"==typeof(new D.Set)["@@iterator"]&&(se="@@iterator");var ae=$.doneEnumerator={done:!0,value:i},ce=$.helpers.isIterable=function(e){return e[se]!==i},ue=$.helpers.isArrayLike=function(e){return e&&e.length!==i};$.helpers.iterator=se;var he=$.internals.bindCallback=function(e,t,r){if(void 0===t)return e;switch(r){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,i){return e.call(t,r,n,i)}}return function(){return e.apply(t,arguments)}},le=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],pe=le.length,fe="[object Arguments]",de="[object Array]",me="[object Boolean]",ve="[object Date]",ge="[object Error]",ye="[object Number]",be="[object Object]",_e="[object RegExp]",xe="[object String]",we=Object.prototype.toString,Se=Object.prototype.hasOwnProperty,Me=we.call(arguments)==fe,Ee=Error.prototype,Ce=Object.prototype,Te=String.prototype,Oe=Ce.propertyIsEnumerable;try{!(we.call(document)==be&&!({toString:0}+""))}catch(e){!0}var Pe={};Pe[de]=Pe[ve]=Pe[ye]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},Pe[me]=Pe[xe]={constructor:!0,toString:!0,valueOf:!0},Pe[ge]=Pe["[object Function]"]=Pe[_e]={constructor:!0,toString:!0},Pe[be]={constructor:!0};var Ae={};!function(){var e=function(){this.x=1},t=[];e.prototype={valueOf:1,y:1};for(var r in new e)t.push(r);for(r in arguments);Ae.enumErrorProps=Oe.call(Ee,"message")||Oe.call(Ee,"name"),Ae.enumPrototypes=Oe.call(e,"prototype"),Ae.nonEnumArgs=0!=r,Ae.nonEnumShadows=!/valueOf/.test(t)}(1);var Re=$.internals.isObject=function(e){var t=typeof e;return e&&("function"==t||"object"==t)||!1},je=function(e){return!(!e||"object"!=typeof e)&&we.call(e)==fe};Me||(je=function(e){return!(!e||"object"!=typeof e)&&Se.call(e,"callee")});var Le,Ne=$.internals.isEqual=function(e,t){return f(e,t,[],[])},Ie=Array.prototype.slice,De=this.inherits=$.internals.inherits=function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r},ke=$.internals.addProperties=function(e){for(var t=[],r=1,n=arguments.length;n>r;r++)t.push(arguments[r]);for(var i=0,o=t.length;o>i;i++){var s=t[i];for(var a in s)e[a]=s[a]}},Be=$.internals.addRef=function(e,t){return new dr(function(r){return new ze(t.getDisposable(),e.subscribe(r))})},Fe={e:{}};g.prototype.compareTo=function(e){var t=this.value.compareTo(e.value);return 0===t&&(t=this.id-e.id),t};var Ue=$.internals.PriorityQueue=function(e){this.items=new Array(e),this.length=0},$e=Ue.prototype;$e.isHigherPriority=function(e,t){return this.items[e].compareTo(this.items[t])<0},$e.percolate=function(e){if(!(e>=this.length||0>e)){var t=e-1>>1;if(!(0>t||t===e)&&this.isHigherPriority(e,t)){var r=this.items[e];this.items[e]=this.items[t],this.items[t]=r,this.percolate(t)}}},$e.heapify=function(e){if(+e||(e=0),!(e>=this.length||0>e)){var t=2*e+1,r=2*e+2,n=e;if(t<this.length&&this.isHigherPriority(t,n)&&(n=t),r<this.length&&this.isHigherPriority(r,n)&&(n=r),n!==e){var i=this.items[e];this.items[e]=this.items[n],this.items[n]=i,this.heapify(n)}}},$e.peek=function(){return this.items[0].value},$e.removeAt=function(e){this.items[e]=this.items[--this.length],this.items[this.length]=i,this.heapify()},$e.dequeue=function(){var e=this.peek();return this.removeAt(0),e},$e.enqueue=function(e){var t=this.length++;this.items[t]=new g(Ue.count++,e),this.percolate(t)},$e.remove=function(e){for(var t=0;t<this.length;t++)if(this.items[t].value===e)return this.removeAt(t),!0;return!1},Ue.count=0;var ze=$.CompositeDisposable=function(){var e,t,r=[];if(Array.isArray(arguments[0]))r=arguments[0],t=r.length;else for(t=arguments.length,r=new Array(t),e=0;t>e;e++)r[e]=arguments[e];for(e=0;t>e;e++)if(!We(r[e]))throw new TypeError("Not a disposable");this.disposables=r,this.isDisposed=!1,this.length=r.length},Ge=ze.prototype;Ge.add=function(e){this.isDisposed?e.dispose():(this.disposables.push(e),this.length++)},Ge.remove=function(e){var t=!1;if(!this.isDisposed){var r=this.disposables.indexOf(e);-1!==r&&(t=!0,this.disposables.splice(r,1),this.length--,e.dispose())}return t},Ge.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;for(var e=this.disposables.length,t=new Array(e),r=0;e>r;r++)t[r]=this.disposables[r];for(this.disposables=[],this.length=0,r=0;e>r;r++)t[r].dispose()}};var Ve=$.Disposable=function(e){this.isDisposed=!1,this.action=e||z};Ve.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var He=Ve.create=function(e){return new Ve(e)},qe=Ve.empty={dispose:z},We=Ve.isDisposable=function(e){return e&&Y(e.dispose)},Xe=Ve.checkDisposed=function(e){if(e.isDisposed)throw new ee},Ye=$.SingleAssignmentDisposable=function(){this.isDisposed=!1,this.current=null};Ye.prototype.getDisposable=function(){return this.current},Ye.prototype.setDisposable=function(e){if(this.current)throw new Error("Disposable has already been assigned");var t=this.isDisposed;!t&&(this.current=e),t&&e&&e.dispose()},Ye.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var e=this.current;this.current=null}e&&e.dispose()};var Ke=$.SerialDisposable=function(){this.isDisposed=!1,this.current=null};Ke.prototype.getDisposable=function(){return this.current},Ke.prototype.setDisposable=function(e){var t=this.isDisposed;if(!t){var r=this.current;this.current=e}r&&r.dispose(),t&&e&&e.dispose()},Ke.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var e=this.current;this.current=null}e&&e.dispose()};var Ze=$.RefCountDisposable=function(){function e(e){this.disposable=e,this.disposable.count++,this.isInnerDisposed=!1}function t(e){this.underlyingDisposable=e,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return e.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},t.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},t.prototype.getDisposable=function(){return this.isDisposed?qe:new e(this)},t}();y.prototype.dispose=function(){this.scheduler.scheduleWithState(this,b)};var Je=$.internals.ScheduledItem=function(e,t,r,n,i){this.scheduler=e,this.state=t,this.action=r,this.dueTime=n,this.comparer=i||q,this.disposable=new Ye};Je.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Je.prototype.compareTo=function(e){return this.comparer(this.dueTime,e.dueTime)},Je.prototype.isCancelled=function(){return this.disposable.isDisposed},Je.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var Qe=$.Scheduler=function(){function e(e,t,r,n){this.now=e,this._schedule=t,this._scheduleRelative=r,this._scheduleAbsolute=n}function t(e,t){return t(),qe}e.isScheduler=function(t){return t instanceof e};var r=e.prototype;return r.schedule=function(e){return this._schedule(e,t)},r.scheduleWithState=function(e,t){return this._schedule(e,t)},r.scheduleWithRelative=function(e,r){return this._scheduleRelative(r,e,t)},r.scheduleWithRelativeAndState=function(e,t,r){return this._scheduleRelative(e,t,r)},r.scheduleWithAbsolute=function(e,r){return this._scheduleAbsolute(r,e,t)},r.scheduleWithAbsoluteAndState=function(e,t,r){return this._scheduleAbsolute(e,t,r)},e.now=V,e.normalize=function(e){return 0>e&&(e=0),e},e}(),et=Qe.normalize,tt=Qe.isScheduler;!function(e){function t(e,t){function r(t){i(t,function(t){var n=!1,i=!1,s=e.scheduleWithState(t,function(e,t){return n?o.remove(s):i=!0,r(t),qe});i||(o.add(s),n=!0)})}var n=t[0],i=t[1],o=new ze;return r(n),o}function r(e,t,r){function n(t){o(t,function(t,i){var o=!1,a=!1,c=e[r](t,i,function(e,t){return o?s.remove(c):a=!0,n(t),qe});a||(s.add(c),o=!0)})}var i=t[0],o=t[1],s=new ze;return n(i),s}function n(e,t){e(function(r){t(e,r)})}e.scheduleRecursive=function(e){return this.scheduleRecursiveWithState(e,n)},e.scheduleRecursiveWithState=function(e,r){return this.scheduleWithState([e,r],t)},e.scheduleRecursiveWithRelative=function(e,t){return this.scheduleRecursiveWithRelativeAndState(t,e,n)},e.scheduleRecursiveWithRelativeAndState=function(e,t,n){return this._scheduleRelative([e,n],t,function(e,t){return r(e,t,"scheduleWithRelativeAndState")})},e.scheduleRecursiveWithAbsolute=function(e,t){return this.scheduleRecursiveWithAbsoluteAndState(t,e,n)},e.scheduleRecursiveWithAbsoluteAndState=function(e,t,n){return this._scheduleAbsolute([e,n],t,function(e,t){return r(e,t,"scheduleWithAbsoluteAndState")})}}(Qe.prototype),Qe.prototype,Qe.prototype.schedulePeriodic=function(e,t){return this.schedulePeriodicWithState(null,e,t)},Qe.prototype.schedulePeriodicWithState=function(e,t,r){if(void 0===D.setInterval)throw new re;t=et(t);var n=e,i=D.setInterval(function(){n=r(n)},t);return He(function(){D.clearInterval(i)})},function(e){e.catchError=e.catch=function(e){return new ut(this,e)}}(Qe.prototype);var rt,nt,it=($.internals.SchedulePeriodicRecursive=function(){function e(e,t,r,n){this._scheduler=e,this._state=t,this._period=r,this._action=n}return e.prototype.start=function(){var e=new Ye;return this._cancel=e,e.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,function(e,t){t(0,this._period);try{this._state=this._action(this._state)}catch(e){throw this._cancel.dispose(),e}}.bind(this))),e},e}(),Qe.immediate=function(){return new Qe(V,function(e,t){return t(this,e)},oe,oe)}()),ot=Qe.currentThread=function(){function e(){for(;t.length>0;){var e=t.dequeue();!e.isCancelled()&&e.invoke()}}var t,r=new Qe(V,function(r,n){var i=new Je(this,r,n,this.now());if(t)t.enqueue(i);else{(t=new Ue(4)).enqueue(i);var o=m(e)();if(t=null,o===Fe)return v(o.e)}return i.disposable},oe,oe);return r.scheduleRequired=function(){return!t},r}(),st=function(){var e,t=z;if(D.setTimeout)e=D.setTimeout,t=D.clearTimeout;else{if(!D.WScript)throw new re;e=function(e,t){D.WScript.Sleep(t),e()}}return{setTimeout:e,clearTimeout:t}}(),at=st.setTimeout,ct=st.clearTimeout;!function(){function t(e){if(o)at(function(){t(e)},0);else{var r=i[e];if(r){o=!0;var n=m(r)();if(nt(e),o=!1,n===Fe)return v(n.e)}}}function r(e){"string"==typeof e.data&&e.data.substring(0,c.length)===c&&t(e.data.substring(c.length))}var n=1,i={},o=!1;nt=function(e){delete i[e]};var s=RegExp("^"+String(we).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),a="function"==typeof(a=U&&F&&U.setImmediate)&&!s.test(a)&&a;if(Y(a))rt=function(e){var r=n++;return i[r]=e,a(function(){t(r)}),r};else if(void 0!==e&&"[object process]"==={}.toString.call(e))rt=function(r){var o=n++;return i[o]=r,e.nextTick(function(){t(o)}),o};else if(function(){if(!D.postMessage||D.importScripts)return!1;var e=!1,t=D.onmessage;return D.onmessage=function(){e=!0},D.postMessage("","*"),D.onmessage=t,e}()){var c="ms.rx.schedule"+Math.random();D.addEventListener?D.addEventListener("message",r,!1):D.attachEvent?D.attachEvent("onmessage",r):D.onmessage=r,rt=function(e){var t=n++;return i[t]=e,D.postMessage(c+currentId,"*"),t}}else if(D.MessageChannel){var u=new D.MessageChannel;u.port1.onmessage=function(e){t(e.data)},rt=function(e){var t=n++;return i[t]=e,u.port2.postMessage(t),t}}else rt="document"in D&&"onreadystatechange"in D.document.createElement("script")?function(e){var r=D.document.createElement("script"),o=n++;return i[o]=e,r.onreadystatechange=function(){t(o),r.onreadystatechange=null,r.parentNode.removeChild(r),r=null},D.document.documentElement.appendChild(r),o}:function(e){var r=n++;return i[r]=e,at(function(){t(r)},0),r}}();var ut=(Qe.timeout=Qe.default=function(){return new Qe(V,function(e,t){var r=this,n=new Ye,i=rt(function(){!n.isDisposed&&n.setDisposable(t(r,e))});return new ze(n,He(function(){nt(i)}))},function(e,t,r){var n=this,i=Qe.normalize(t),o=new Ye;if(0===i)return n.scheduleWithState(e,r);var s=at(function(){!o.isDisposed&&o.setDisposable(r(n,e))},i);return new ze(o,He(function(){ct(s)}))},function(e,t,r){return this.scheduleWithRelativeAndState(e,t-this.now(),r)})}(),function(e){function t(e,t){return this._scheduler.scheduleWithState(e,this._wrap(t))}function r(e,t,r){return this._scheduler.scheduleWithRelativeAndState(e,t,this._wrap(r))}function n(e,t,r){return this._scheduler.scheduleWithAbsoluteAndState(e,t,this._wrap(r))}function i(i,o){this._scheduler=i,this._handler=o,this._recursiveOriginal=null,this._recursiveWrapper=null,e.call(this,this._scheduler.now.bind(this._scheduler),t,r,n)}return De(i,e),i.prototype._clone=function(e){return new i(e,this._handler)},i.prototype._wrap=function(e){var t=this;return function(r,n){try{return e(t._getRecursiveWrapper(r),n)}catch(e){if(!t._handler(e))throw e;return qe}}},i.prototype._getRecursiveWrapper=function(e){if(this._recursiveOriginal!==e){this._recursiveOriginal=e;var t=this._clone(e);t._recursiveOriginal=e,t._recursiveWrapper=t,this._recursiveWrapper=t}return this._recursiveWrapper},i.prototype.schedulePeriodicWithState=function(e,t,r){var n=this,i=!1,o=new Ye;return o.setDisposable(this._scheduler.schedulePeriodicWithState(e,t,function(e){if(i)return null;try{return r(e)}catch(e){if(i=!0,!n._handler(e))throw e;return o.dispose(),null}})),o},i}(Qe)),ht=$.Notification=function(){function e(e,t,r,n,i,o){this.kind=e,this.value=t,this.exception=r,this._accept=n,this._acceptObservable=i,this.toString=o}return e.prototype.accept=function(e,t,r){return e&&"object"==typeof e?this._acceptObservable(e):this._accept(e,t,r)},e.prototype.toObservable=function(e){var t=this;return tt(e)||(e=it),new dr(function(r){return e.scheduleWithState(t,function(e,t){t._acceptObservable(r),"N"===t.kind&&r.onCompleted()})})},e}(),lt=ht.createOnNext=function(){function e(e){return e(this.value)}function t(e){return e.onNext(this.value)}function r(){return"OnNext("+this.value+")"}return function(n){return new ht("N",n,null,e,t,r)}}(),pt=ht.createOnError=function(){function e(e,t){return t(this.exception)}function t(e){return e.onError(this.exception)}function r(){return"OnError("+this.exception+")"}return function(n){return new ht("E",null,n,e,t,r)}}(),ft=ht.createOnCompleted=function(){function e(e,t,r){return r()}function t(e){return e.onCompleted()}function r(){return"OnCompleted()"}return function(){return new ht("C",null,null,e,t,r)}}(),dt=$.Observer=function(){};dt.prototype.toNotifier=function(){var e=this;return function(t){return t.accept(e)}},dt.prototype.asObserver=function(){return new yt(this.onNext.bind(this),this.onError.bind(this),this.onCompleted.bind(this))},dt.prototype.checked=function(){return new bt(this)};var mt=dt.create=function(e,t,r){return e||(e=z),t||(t=W),r||(r=z),new yt(e,t,r)};dt.fromNotifier=function(e,t){return new yt(function(r){return e.call(t,lt(r))},function(r){return e.call(t,pt(r))},function(){return e.call(t,ft())})},dt.prototype.notifyOn=function(e){return new _t(e,this)},dt.prototype.makeSafe=function(e){return new AnonymousSafeObserver(this._onNext,this._onError,this._onCompleted,e)};var vt,gt=$.internals.AbstractObserver=function(e){function t(){this.isStopped=!1,e.call(this)}return De(t,e),t.prototype.next=ie,t.prototype.error=ie,t.prototype.completed=ie,t.prototype.onNext=function(e){this.isStopped||this.next(e)},t.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.error(e))},t.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.completed())},t.prototype.dispose=function(){this.isStopped=!0},t.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.error(e),!0)},t}(dt),yt=$.AnonymousObserver=function(e){function t(t,r,n){e.call(this),this._onNext=t,this._onError=r,this._onCompleted=n}return De(t,e),t.prototype.next=function(e){this._onNext(e)},t.prototype.error=function(e){this._onError(e)},t.prototype.completed=function(){this._onCompleted()},t}(gt),bt=function(e){function t(t){e.call(this),this._observer=t,this._state=0}De(t,e);var r=t.prototype;return r.onNext=function(e){this.checkAccess();var t=m(this._observer.onNext).call(this._observer,e);this._state=0,t===Fe&&v(t.e)},r.onError=function(e){this.checkAccess();var t=m(this._observer.onError).call(this._observer,e);this._state=2,t===Fe&&v(t.e)},r.onCompleted=function(){this.checkAccess();var e=m(this._observer.onCompleted).call(this._observer);this._state=2,e===Fe&&v(e.e)},r.checkAccess=function(){if(1===this._state)throw new Error("Re-entrancy detected");if(2===this._state)throw new Error("Observer completed");0===this._state&&(this._state=1)},t}(dt),_t=function(e){function t(t,r,n){e.call(this,t,r),this._cancel=n}return De(t,e),t.prototype.next=function(t){e.prototype.next.call(this,t),this.ensureActive()},t.prototype.error=function(t){e.prototype.error.call(this,t),this.ensureActive()},t.prototype.completed=function(){e.prototype.completed.call(this),this.ensureActive()},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._cancel&&this._cancel.dispose(),this._cancel=null},t}($.internals.ScheduledObserver=function(e){function t(t,r){e.call(this),this.scheduler=t,this.observer=r,this.isAcquired=!1,this.hasFaulted=!1,this.queue=[],this.disposable=new Ke}return De(t,e),t.prototype.next=function(e){var t=this;this.queue.push(function(){t.observer.onNext(e)})},t.prototype.error=function(e){var t=this;this.queue.push(function(){t.observer.onError(e)})},t.prototype.completed=function(){var e=this;this.queue.push(function(){e.observer.onCompleted()})},t.prototype.ensureActive=function(){var e=!1,t=this;!this.hasFaulted&&this.queue.length>0&&(e=!this.isAcquired,this.isAcquired=!0),e&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(e){var r;if(t.queue.length>0){r=t.queue.shift();try{r()}catch(e){throw t.queue=[],t.hasFaulted=!0,e}e()}else t.isAcquired=!1}))},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.disposable.dispose()},t}(gt)),xt=$.Observable=function(){function e(e){if($.config.longStackSupport&&K){try{throw new Error}catch(e){this.stack=e.stack.substring(e.stack.indexOf("\n")+1)}var t=this;this._subscribe=function(r){var n=r.onError.bind(r);return r.onError=function(e){a(e,t),n(e)},e.call(t,r)}}else this._subscribe=e}return vt=e.prototype,vt.subscribe=vt.forEach=function(e,t,r){return this._subscribe("object"==typeof e?e:mt(e,t,r))},vt.subscribeOnNext=function(e,t){return this._subscribe(mt(void 0!==t?function(r){e.call(t,r)}:e))},vt.subscribeOnError=function(e,t){return this._subscribe(mt(null,void 0!==t?function(r){e.call(t,r)}:e))},vt.subscribeOnCompleted=function(e,t){return this._subscribe(mt(null,null,void 0!==t?function(){e.call(t)}:e))},e}(),wt=$.ObservableBase=function(e){function t(e,t){var r=t[0],n=t[1],i=m(n.subscribeCore).call(n,r);return i!==Fe||r.fail(Fe.e)?void r.setDisposable(function(e){return e&&Y(e.dispose)?e:Y(e)?He(e):qe}(i)):v(Fe.e)}function r(e){var r=new mr(e),n=[r,this];return ot.scheduleRequired()?ot.scheduleWithState(n,t):t(0,n),r}function n(){e.call(this,r)}return De(n,e),n.prototype.subscribeCore=ie,n}(xt),St=$.internals.Enumerable=function(){},Mt=function(e){function t(t){this.sources=t,e.call(this)}function r(e,t,r){this.o=e,this.s=t,this.e=r,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){var t,n=new Ke,i=it.scheduleRecursiveWithState(this.sources[se](),function(i,o){if(!t){var s=m(i.next).call(i);if(s===Fe)return e.onError(s.e);if(s.done)return e.onCompleted();var a=s.value;X(a)&&(a=Rt(a));var c=new Ye;n.setDisposable(c),c.setDisposable(a.subscribe(new r(e,o,i)))}});return new ze(n,i,He(function(){t=!0}))},r.prototype.onNext=function(e){this.isStopped||this.o.onNext(e)},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.s(this.e))},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);St.prototype.concat=function(){return new Mt(this)};var Et=function(e){function t(t){this.sources=t,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){var t,r=this.sources[se](),n=new Ke,i=it.scheduleRecursiveWithState(null,function(i,o){if(!t){var s=m(r.next).call(r);if(s===Fe)return e.onError(s.e);if(s.done)return null!==i?e.onError(i):e.onCompleted();var a=s.value;X(a)&&(a=Rt(a));var c=new Ye;n.setDisposable(c),c.setDisposable(a.subscribe(function(t){e.onNext(t)},o,function(){e.onCompleted()}))}});return new ze(n,i,He(function(){t=!0}))},t}(wt);St.prototype.catchError=function(){return new Et(this)},St.prototype.catchErrorWhen=function(e){var t=this;return new dr(function(r){var n,i=new gr,o=new gr,s=e(i).subscribe(o),a=t[se](),c=new Ke,u=it.scheduleRecursive(function(e){if(!n){var t=m(a.next).call(a);if(t===Fe)return r.onError(t.e);if(t.done)return void r.onCompleted();var s=t.value;X(s)&&(s=Rt(s));var u=new Ye,h=new Ye;c.setDisposable(new ze(h,u)),u.setDisposable(s.subscribe(function(e){r.onNext(e)},function(t){h.setDisposable(o.subscribe(e,function(e){r.onError(e)},function(){r.onCompleted()})),i.onNext(t)},function(){r.onCompleted()}))}});return new ze(s,c,u,He(function(){n=!0}))})};var Ct=function(e){function t(e,t){this.v=e,this.c=null==t?-1:t}function r(e){this.v=e.v,this.l=e.c}return De(t,St),t.prototype[se]=function(){return new r(this)},r.prototype.next=function(){return 0===this.l?ae:(this.l>0&&this.l--,{done:!1,value:this.v})},t}(),Tt=St.repeat=function(e,t){return new Ct(e,t)},Ot=function(e){function t(e,t,r){this.s=e,this.fn=t?he(t,r,3):null}function r(e){this.i=-1,this.s=e.s,this.l=this.s.length,this.fn=e.fn}return De(t,St),t.prototype[se]=function(){return new r(this)},r.prototype.next=function(){return++this.i<this.l?{done:!1,value:this.fn?this.fn(this.s[this.i],this.i,this.s):this.s[this.i]}:ae},t}(),Pt=St.of=function(e,t,r){return new Ot(e,t,r)};vt.observeOn=function(e){var t=this;return new dr(function(r){return t.subscribe(new _t(e,r))},t)},vt.subscribeOn=function(e){var t=this;return new dr(function(r){var n=new Ye,i=new Ke;return i.setDisposable(n),n.setDisposable(e.schedule(function(){i.setDisposable(new y(e,t.subscribe(r)))})),i},t)};var At=function(e){function t(t){this.p=t,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return this.p.then(function(t){e.onNext(t),e.onCompleted()},function(t){e.onError(t)}),qe},t}(wt),Rt=xt.fromPromise=function(e){return new At(e)};vt.toPromise=function(e){if(e||(e=$.config.Promise),!e)throw new re("Promise type not provided nor in Rx.config.Promise");var t=this;return new e(function(e,r){var n,i=!1;t.subscribe(function(e){n=e,i=!0},r,function(){i&&e(n)})})};var jt=function(e){function t(t){this.source=t,e.call(this)}function r(e){this.o=e,this.a=[],this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e))},r.prototype.onNext=function(e){this.isStopped||this.a.push(e)},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onNext(this.a),this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.toArray=function(){return new jt(this)},xt.create=xt.createWithDisposable=function(e,t){return new dr(e,t)};var Lt=(xt.defer=function(e){return new dr(function(t){var r;try{r=e()}catch(e){return Yt(e).subscribe(t)}return X(r)&&(r=Rt(r)),r.subscribe(t)})},function(e){function t(t){this.scheduler=t,e.call(this)}function r(e,t){this.observer=e,this.parent=t}function n(e,t){t.onCompleted()}return De(t,e),t.prototype.subscribeCore=function(e){return new r(e,this).run()},r.prototype.run=function(){return this.parent.scheduler.scheduleWithState(this.observer,n)},t}(wt)),Nt=xt.empty=function(e){return tt(e)||(e=it),new Lt(e)},It=function(e){function t(t,r,n){this.iterable=t,this.mapper=r,this.scheduler=n,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return new Dt(e,this).run()},t}(wt),Dt=function(){function e(e,t){this.observer=e,this.parent=t}return e.prototype.run=function(){var e=function(e){var t=e[se];if(!t&&"string"==typeof e)return new _(e)[se]();if(!t&&e.length!==i)return new w(e)[se]();if(!t)throw new TypeError("Object is not iterable");return e[se]()}(Object(this.parent.iterable)),t=this.observer,r=this.parent.mapper;return this.parent.scheduler.scheduleRecursiveWithState(0,function(n,i){try{var o=e.next()}catch(e){return t.onError(e)}if(o.done)return t.onCompleted();var s=o.value;if(r)try{s=r(s,n)}catch(e){return t.onError(e)}t.onNext(s),i(n+1)})},e}(),kt=Math.pow(2,53)-1;_.prototype[se]=function(){return new x(this._s)},x.prototype[se]=function(){return this},x.prototype.next=function(){return this._i<this._l?{done:!1,value:this._s.charAt(this._i++)}:ae},w.prototype[se]=function(){return new S(this._a)},S.prototype[se]=function(){return this},S.prototype.next=function(){return this._i<this._l?{done:!1,value:this._a[this._i++]}:ae};var Bt=xt.from=function(e,t,r,n){if(null==e)throw new Error("iterable cannot be null.");if(t&&!Y(t))throw new Error("mapFn when provided must be a function");if(t)var i=he(t,r,2);return tt(n)||(n=ot),new It(e,i,n)},Ft=function(e){function t(t,r){this.args=t,this.scheduler=r,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return new M(e,this).run()},t}(wt);M.prototype.run=function(){var e=this.observer,t=this.parent.args,r=t.length;return this.parent.scheduler.scheduleRecursiveWithState(0,function(n,i){r>n?(e.onNext(t[n]),i(n+1)):e.onCompleted()})};var Ut=xt.fromArray=function(e,t){return tt(t)||(t=ot),new Ft(e,t)};xt.generate=function(e,t,r,n,i){return tt(i)||(i=ot),new dr(function(o){var s=!0;return i.scheduleRecursiveWithState(e,function(e,i){var a,c;try{s?s=!1:e=r(e),(a=t(e))&&(c=n(e))}catch(e){return o.onError(e)}a?(o.onNext(c),i(e)):o.onCompleted()})})};var $t=function(e){function t(){e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return qe},t}(wt),zt=xt.never=function(){return new $t};xt.of=function(){for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];return new Ft(t,ot)},xt.ofWithScheduler=function(e){for(var t=arguments.length,r=new Array(t-1),n=1;t>n;n++)r[n-1]=arguments[n];return new Ft(r,e)};var Gt=function(e){function t(t,r){this.obj=t,this.keys=Object.keys(t),this.scheduler=r,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return new C(e,this).run()},t}(wt);C.prototype.run=function(){var e=this.observer,t=this.parent.obj,r=this.parent.keys,n=r.length;return this.parent.scheduler.scheduleRecursiveWithState(0,function(i,o){if(n>i){var s=r[i];e.onNext([s,t[s]]),o(i+1)}else e.onCompleted()})},xt.pairs=function(e,t){return t||(t=ot),new Gt(e,t)};var Vt=function(e){function t(t,r,n){this.start=t,this.rangeCount=r,this.scheduler=n,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return new Ht(e,this).run()},t}(wt),Ht=function(){function e(e,t){this.observer=e,this.parent=t}return e.prototype.run=function(){var e=this.parent.start,t=this.parent.rangeCount,r=this.observer;return this.parent.scheduler.scheduleRecursiveWithState(0,function(n,i){t>n?(r.onNext(e+n),i(n+1)):r.onCompleted()})},e}();xt.range=function(e,t,r){return tt(r)||(r=ot),new Vt(e,t,r)};var qt=function(e){function t(t,r,n){this.value=t,this.repeatCount=null==r?-1:r,this.scheduler=n,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return new T(e,this).run()},t}(wt);T.prototype.run=function(){var e=this.observer,t=this.parent.value;return this.parent.scheduler.scheduleRecursiveWithState(this.parent.repeatCount,function(r,n){return(-1===r||r>0)&&(e.onNext(t),r>0&&r--),0===r?e.onCompleted():void n(r)})},xt.repeat=function(e,t,r){return tt(r)||(r=ot),new qt(e,t,r)};var Wt=function(e){function t(t,r){this.value=t,this.scheduler=r,e.call(this)}function r(e,t){this.observer=e,this.parent=t}function n(e,t){var r=t[0],n=t[1];n.onNext(r),n.onCompleted()}return De(t,e),t.prototype.subscribeCore=function(e){return new r(e,this).run()},r.prototype.run=function(){return this.parent.scheduler.scheduleWithState([this.parent.value,this.observer],n)},t}(wt),Xt=(xt.return=xt.just=xt.returnValue=function(e,t){return tt(t)||(t=it),new Wt(e,t)},function(e){function t(t,r){this.error=t,this.scheduler=r,e.call(this)}function r(e,t){this.o=e,this.p=t}function n(e,t){var r=t[0];t[1].onError(r)}return De(t,e),t.prototype.subscribeCore=function(e){return new r(e,this).run()},r.prototype.run=function(){return this.p.scheduler.scheduleWithState([this.p.error,this.o],n)},t}(wt)),Yt=xt.throw=xt.throwError=xt.throwException=function(e,t){return tt(t)||(t=it),new Xt(e,t)};xt.using=function(e,t){return new dr(function(r){var n,i,o=qe;try{(n=e())&&(o=n),i=t(n)}catch(e){return new ze(Yt(e).subscribe(r),o)}return new ze(i.subscribe(r),o)})},vt.amb=function(e){var t=this;return new dr(function(r){function n(){o||(o=s,u.dispose())}function i(){o||(o=a,c.dispose())}var o,s="L",a="R",c=new Ye,u=new Ye;return X(e)&&(e=Rt(e)),c.setDisposable(t.subscribe(function(e){n(),o===s&&r.onNext(e)},function(e){n(),o===s&&r.onError(e)},function(){n(),o===s&&r.onCompleted()})),u.setDisposable(e.subscribe(function(e){i(),o===a&&r.onNext(e)},function(e){i(),o===a&&r.onError(e)},function(){i(),o===a&&r.onCompleted()})),new ze(c,u)})},xt.amb=function(){function e(e,t){return e.amb(t)}var t=zt(),r=[];if(Array.isArray(arguments[0]))r=arguments[0];else for(var n=0,i=arguments.length;i>n;n++)r.push(arguments[n]);for(var n=0,i=r.length;i>n;n++)t=e(t,r[n]);return t},vt.catch=vt.catchError=vt.catchException=function(e){return"function"==typeof e?function(e,t){return new dr(function(r){var n=new Ye,i=new Ke;return i.setDisposable(n),n.setDisposable(e.subscribe(function(e){r.onNext(e)},function(e){try{var n=t(e)}catch(e){return r.onError(e)}X(n)&&(n=Rt(n));var o=new Ye;i.setDisposable(o),o.setDisposable(n.subscribe(r))},function(e){r.onCompleted(e)})),i},e)}(this,e):Kt([this,e])};var Kt=xt.catchError=xt.catch=xt.catchException=function(){var e=[];if(Array.isArray(arguments[0]))e=arguments[0];else for(var t=0,r=arguments.length;r>t;t++)e.push(arguments[t]);return Pt(e).catchError()};vt.combineLatest=function(){for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];return Array.isArray(t[0])?t[0].unshift(this):t.unshift(this),Zt.apply(this,t)};var Zt=xt.combineLatest=function(){for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];var n=t.pop();return Array.isArray(t[0])&&(t=t[0]),new dr(function(e){function r(t){if(a[t]=!0,c||(c=a.every(G))){try{var r=n.apply(null,h)}catch(t){return e.onError(t)}e.onNext(r)}else u.filter(function(e,r){return r!==t}).every(G)&&e.onCompleted()}function i(t){u[t]=!0,u.every(G)&&e.onCompleted()}for(var o=t.length,s=function(){return!1},a=d(o,s),c=!1,u=d(o,s),h=new Array(o),l=new Array(o),p=0;o>p;p++)!function(n){var o=t[n],s=new Ye;X(o)&&(o=Rt(o)),s.setDisposable(o.subscribe(function(e){h[n]=e,r(n)},function(t){e.onError(t)},function(){i(n)})),l[n]=s}(p);return new ze(l)},this)};vt.concat=function(){for(var e=[],t=0,r=arguments.length;r>t;t++)e.push(arguments[t]);return e.unshift(this),Qt.apply(null,e)};var Jt=function(e){function t(t){this.sources=t,e.call(this)}function r(e,t){this.sources=e,this.o=t}return De(t,e),t.prototype.subscribeCore=function(e){return new r(this.sources,e).run()},r.prototype.run=function(){var e,t=new Ke,r=this.sources,n=r.length,i=this.o,o=it.scheduleRecursiveWithState(0,function(o,s){if(!e){if(o===n)return i.onCompleted();var a=r[o];X(a)&&(a=Rt(a));var c=new Ye;t.setDisposable(c),c.setDisposable(a.subscribe(function(e){i.onNext(e)},function(e){i.onError(e)},function(){s(o+1)}))}});return new ze(t,o,He(function(){e=!0}))},t}(wt),Qt=xt.concat=function(){var e;if(Array.isArray(arguments[0]))e=arguments[0];else{e=new Array(arguments.length);for(var t=0,r=arguments.length;r>t;t++)e[t]=arguments[t]}return new Jt(e)};vt.concatAll=vt.concatObservable=function(){return this.merge(1)};var er=function(e){function t(t,r){this.source=t,this.maxConcurrent=r,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){var t=new ze;return t.add(this.source.subscribe(new tr(e,this.maxConcurrent,t))),t},t}(wt),tr=function(){function e(e,t,r){this.o=e,this.max=t,this.g=r,this.done=!1,this.q=[],this.activeCount=0,this.isStopped=!1}function t(e,t){this.parent=e,this.sad=t,this.isStopped=!1}return e.prototype.handleSubscribe=function(e){var r=new Ye;this.g.add(r),X(e)&&(e=Rt(e)),r.setDisposable(e.subscribe(new t(this,r)))},e.prototype.onNext=function(e){this.isStopped||(this.activeCount<this.max?(this.activeCount++,this.handleSubscribe(e)):this.q.push(e))},e.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},e.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.done=!0,0===this.activeCount&&this.o.onCompleted())},e.prototype.dispose=function(){this.isStopped=!0},e.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t.prototype.onNext=function(e){this.isStopped||this.parent.o.onNext(e)},t.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.parent.o.onError(e))},t.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=!0;var e=this.parent;e.g.remove(this.sad),e.q.length>0?e.handleSubscribe(e.q.shift()):(e.activeCount--,e.done&&0===e.activeCount&&e.o.onCompleted())}},t.prototype.dispose=function(){this.isStopped=!0},t.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.parent.o.onError(e),!0)},e}();vt.merge=function(e){return"number"!=typeof e?rr(this,e):new er(this,e)};var rr=xt.merge=function(){var e,t,r=[],n=arguments.length;if(arguments[0])if(tt(arguments[0]))for(e=arguments[0],t=1;n>t;t++)r.push(arguments[t]);else for(e=it,t=0;n>t;t++)r.push(arguments[t]);else for(e=it,t=1;n>t;t++)r.push(arguments[t]);return Array.isArray(r[0])&&(r=r[0]),E(e,r).mergeAll()},nr=$.CompositeError=function(e){this.name="NotImplementedError",this.innerErrors=e,this.message="This contains multiple errors. Check the innerErrors",Error.call(this)};nr.prototype=Error.prototype,xt.mergeDelayError=function(){var e;if(Array.isArray(arguments[0]))e=arguments[0];else{var t=arguments.length;e=new Array(t);for(var r=0;t>r;r++)e[r]=arguments[r]}var n=E(null,e);return new dr(function(e){function t(){0===s.length?e.onCompleted():1===s.length?e.onError(s[0]):e.onError(new nr(s))}var r=new ze,i=new Ye,o=!1,s=[];return r.add(i),i.setDisposable(n.subscribe(function(n){var i=new Ye;r.add(i),X(n)&&(n=Rt(n)),i.setDisposable(n.subscribe(function(t){e.onNext(t)},function(e){s.push(e),r.remove(i),o&&1===r.length&&t()},function(){r.remove(i),o&&1===r.length&&t()}))},function(e){s.push(e),o=!0,1===r.length&&t()},function(){o=!0,1===r.length&&t()})),r})};var ir=function(e){function t(t){this.source=t,e.call(this)}function r(e,t){this.o=e,this.g=t,this.isStopped=!1,this.done=!1}function n(e,t,r){this.parent=e,this.g=t,this.sad=r,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){var t=new ze,n=new Ye;return t.add(n),n.setDisposable(this.source.subscribe(new r(e,t))),t},r.prototype.onNext=function(e){if(!this.isStopped){var t=new Ye;this.g.add(t),X(e)&&(e=Rt(e)),t.setDisposable(e.subscribe(new n(this,this.g,t)))}},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.done=!0,1===this.g.length&&this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},n.prototype.onNext=function(e){this.isStopped||this.parent.o.onNext(e)},n.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.parent.o.onError(e))},n.prototype.onCompleted=function(){if(!this.isStopped){var e=this.parent;this.isStopped=!0,e.g.remove(this.sad),e.done&&1===e.g.length&&e.o.onCompleted()}},n.prototype.dispose=function(){this.isStopped=!0},n.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.parent.o.onError(e),!0)},t}(wt);vt.mergeAll=vt.mergeObservable=function(){return new ir(this)},vt.onErrorResumeNext=function(e){if(!e)throw new Error("Second observable is required");return or([this,e])};var or=xt.onErrorResumeNext=function(){var e=[];if(Array.isArray(arguments[0]))e=arguments[0];else for(var t=0,r=arguments.length;r>t;t++)e.push(arguments[t]);return new dr(function(t){var r=0,n=new Ke,i=it.scheduleRecursive(function(i){var o,s;r<e.length?(o=e[r++],X(o)&&(o=Rt(o)),s=new Ye,n.setDisposable(s),s.setDisposable(o.subscribe(t.onNext.bind(t),i,i))):t.onCompleted()});return new ze(n,i)})};vt.skipUntil=function(e){var t=this;return new dr(function(r){var n=!1,i=new ze(t.subscribe(function(e){n&&r.onNext(e)},function(e){r.onError(e)},function(){n&&r.onCompleted()}));X(e)&&(e=Rt(e));var o=new Ye;return i.add(o),o.setDisposable(e.subscribe(function(){n=!0,o.dispose()},function(e){r.onError(e)},function(){o.dispose()})),i},t)};var sr=function(e){function t(t){this.source=t,e.call(this)}function r(e,t){this.o=e,this.inner=t,this.stopped=!1,this.latest=0,this.hasLatest=!1,this.isStopped=!1}function n(e,t){this.parent=e,this.id=t,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){var t=new Ke,n=this.source.subscribe(new r(e,t));return new ze(n,t)},r.prototype.onNext=function(e){if(!this.isStopped){var t=new Ye,r=++this.latest;this.hasLatest=!0,this.inner.setDisposable(t),X(e)&&(e=Rt(e)),t.setDisposable(e.subscribe(new n(this,r)))}},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.stopped=!0,!this.hasLatest&&this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},n.prototype.onNext=function(e){this.isStopped||this.parent.latest===this.id&&this.parent.o.onNext(e)},n.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.parent.latest===this.id&&this.parent.o.onError(e))},n.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.parent.latest===this.id&&(this.parent.hasLatest=!1,this.parent.isStopped&&this.parent.o.onCompleted()))},n.prototype.dispose=function(){this.isStopped=!0},n.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.parent.o.onError(e),!0)},t}(wt);vt.switch=vt.switchLatest=function(){return new sr(this)};var ar=function(e){function t(t,r){this.source=t,this.other=X(r)?Rt(r):r,e.call(this)}function r(e){this.o=e,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return new ze(this.source.subscribe(e),this.other.subscribe(new r(e)))},r.prototype.onNext=function(e){this.isStopped||this.o.onCompleted()},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){!this.isStopped&&(this.isStopped=!0)},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.takeUntil=function(e){return new ar(this,e)},vt.withLatestFrom=function(){for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];var n=t.pop(),i=this;return Array.isArray(t[0])&&(t=t[0]),new dr(function(e){for(var r=t.length,o=d(r,O),s=!1,a=new Array(r),c=new Array(r+1),u=0;r>u;u++)!function(r){var n=t[r],i=new Ye;X(n)&&(n=Rt(n)),i.setDisposable(n.subscribe(function(e){a[r]=e,o[r]=!0,s=o.every(G)},function(t){e.onError(t)},z)),c[r]=i}(u);var h=new Ye;return h.setDisposable(i.subscribe(function(t){var r=[t].concat(a);if(s){var i=m(n).apply(null,r);return i===Fe?e.onError(i.e):void e.onNext(i)}},function(t){e.onError(t)},function(){e.onCompleted()})),c[r]=h,new ze(c)},this)},vt.zip=function(){if(Array.isArray(arguments[0]))return function(e,t){var r=this;return new dr(function(n){var i=0,o=e.length;return r.subscribe(function(r){if(o>i){var s=e[i++],a=m(t)(r,s);if(a===Fe)return n.onError(a.e);n.onNext(a)}else n.onCompleted()},function(e){n.onError(e)},function(){n.onCompleted()})},r)}.apply(this,arguments);for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];var n=this,i=t.pop();return t.unshift(n),new dr(function(e){for(var r=t.length,o=d(r,P),s=d(r,O),a=new Array(r),c=0;r>c;c++)!function(r){var c=t[r],u=new Ye;X(c)&&(c=Rt(c)),u.setDisposable(c.subscribe(function(t){if(o[r].push(t),o.every(function(e){return e.length>0})){var a=o.map(function(e){return e.shift()}),c=m(i).apply(n,a);if(c===Fe)return e.onError(c.e);e.onNext(c)}else s.filter(function(e,t){return t!==r}).every(G)&&e.onCompleted()},function(t){e.onError(t)},function(){s[r]=!0,s.every(G)&&e.onCompleted()})),a[r]=u}(c);return new ze(a)},n)},xt.zip=function(){for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];var n=t.shift();return n.zip.apply(n,t)},xt.zipArray=function(){var e;if(Array.isArray(arguments[0]))e=arguments[0];else{var t=arguments.length;e=new Array(t);for(var r=0;t>r;r++)e[r]=arguments[r]}return new dr(function(t){for(var r=e.length,n=d(r,A),i=d(r,O),o=new Array(r),s=0;r>s;s++)!function(r){o[r]=new Ye,o[r].setDisposable(e[r].subscribe(function(e){if(n[r].push(e),n.every(function(e){return e.length>0})){var o=n.map(function(e){return e.shift()});t.onNext(o)}else if(i.filter(function(e,t){return t!==r}).every(G))return t.onCompleted()},function(e){t.onError(e)},function(){i[r]=!0,i.every(G)&&t.onCompleted()}))}(s);return new ze(o)})},vt.asObservable=function(){var e=this;return new dr(function(t){return e.subscribe(t)},e)},vt.bufferWithCount=function(e,t){return"number"!=typeof t&&(t=e),this.windowWithCount(e,t).selectMany(function(e){return e.toArray()}).where(function(e){return e.length>0})},vt.dematerialize=function(){var e=this;return new dr(function(t){return e.subscribe(function(e){return e.accept(t)},function(e){t.onError(e)},function(){t.onCompleted()})},this)},vt.distinctUntilChanged=function(e,t){var r=this;return t||(t=H),new dr(function(n){var i,o=!1;return r.subscribe(function(r){var s=r;if(e&&(s=m(e)(r))===Fe)return n.onError(s.e);if(o){var a=m(t)(i,s);if(a===Fe)return n.onError(a.e)}o&&a||(o=!0,i=s,n.onNext(r))},function(e){n.onError(e)},function(){n.onCompleted()})},this)};var cr=function(e){function t(t,r,n,i){this.source=t,this.t=!r||Y(r)?mt(r||z,n||z,i||z):r,e.call(this)}function r(e,t){this.o=e,this.t=t,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e,this.t))},r.prototype.onNext=function(e){if(!this.isStopped){var t=m(this.t.onNext).call(this.t,e);t===Fe&&this.o.onError(t.e),this.o.onNext(e)}},r.prototype.onError=function(e){if(!this.isStopped){this.isStopped=!0;var t=m(this.t.onError).call(this.t,e);if(t===Fe)return this.o.onError(t.e);this.o.onError(e)}},r.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=!0;var e=m(this.t.onCompleted).call(this.t);if(e===Fe)return this.o.onError(e.e);this.o.onCompleted()}},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.do=vt.tap=vt.doAction=function(e,t,r){return new cr(this,e,t,r)},vt.doOnNext=vt.tapOnNext=function(e,t){return this.tap(void 0!==t?function(r){e.call(t,r)}:e)},vt.doOnError=vt.tapOnError=function(e,t){return this.tap(z,void 0!==t?function(r){e.call(t,r)}:e)},vt.doOnCompleted=vt.tapOnCompleted=function(e,t){return this.tap(z,null,void 0!==t?function(){e.call(t)}:e)},vt.finally=vt.ensure=function(e){var t=this;return new dr(function(r){var n;try{n=t.subscribe(r)}catch(t){throw e(),t}return He(function(){try{n.dispose()}catch(e){throw e}finally{e()}})},this)},vt.finallyAction=function(e){return this.ensure(e)};var ur=function(e){function t(t){this.source=t,e.call(this)}function r(e){this.o=e,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e))},r.prototype.onNext=z,r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.observer.onError(e),!0)},t}(wt);vt.ignoreElements=function(){return new ur(this)},vt.materialize=function(){var e=this;return new dr(function(t){return e.subscribe(function(e){t.onNext(lt(e))},function(e){t.onNext(pt(e)),t.onCompleted()},function(){t.onNext(ft()),t.onCompleted()})},e)},vt.repeat=function(e){return Tt(this,e).concat()},vt.retry=function(e){return Tt(this,e).catchError()},vt.retryWhen=function(e){return Tt(this).catchErrorWhen(e)};var hr=function(e){function t(t,r,n,i){this.source=t,this.accumulator=r,this.hasSeed=n,this.seed=i,e.call(this)}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new R(e,this))},t}(wt);R.prototype.onNext=function(e){if(!this.isStopped){!this.hasValue&&(this.hasValue=!0);try{this.hasAccumulation?this.accumulation=this.accumulator(this.accumulation,e):(this.accumulation=this.hasSeed?this.accumulator(this.seed,e):e,this.hasAccumulation=!0)}catch(e){return this.observer.onError(e)}this.observer.onNext(this.accumulation)}},R.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.observer.onError(e))},R.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,!this.hasValue&&this.hasSeed&&this.observer.onNext(this.seed),this.observer.onCompleted())},R.prototype.dispose=function(){this.isStopped=!0},R.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.observer.onError(e),!0)},vt.scan=function(){var e,t,r=!1;return 2===arguments.length?(r=!0,e=arguments[0],t=arguments[1]):t=arguments[0],new hr(this,t,r,e)},vt.skipLast=function(e){if(0>e)throw new te;var t=this;return new dr(function(r){var n=[];return t.subscribe(function(t){n.push(t),n.length>e&&r.onNext(n.shift())},function(e){r.onError(e)},function(){r.onCompleted()})},t)},vt.startWith=function(){var e,t=0;arguments.length&&tt(arguments[0])?(e=arguments[0],t=1):e=it;for(var r=[],n=t,i=arguments.length;i>n;n++)r.push(arguments[n]);return Pt([Ut(r,e),this]).concat()},vt.takeLast=function(e){if(0>e)throw new te;var t=this;return new dr(function(r){var n=[];return t.subscribe(function(t){n.push(t),n.length>e&&n.shift()},function(e){r.onError(e)},function(){for(;n.length>0;)r.onNext(n.shift());r.onCompleted()})},t)},vt.takeLastBuffer=function(e){var t=this;return new dr(function(r){var n=[];return t.subscribe(function(t){n.push(t),n.length>e&&n.shift()},function(e){r.onError(e)},function(){r.onNext(n),r.onCompleted()})},t)},vt.windowWithCount=function(e,t){var r=this;if(+e||(e=0),Math.abs(e)===1/0&&(e=0),0>=e)throw new te;if(null==t&&(t=e),+t||(t=0),Math.abs(t)===1/0&&(t=0),0>=t)throw new te;return new dr(function(n){function i(){var e=new gr;c.push(e),n.onNext(Be(e,s))}var o=new Ye,s=new Ze(o),a=0,c=[];return i(),o.setDisposable(r.subscribe(function(r){for(var n=0,o=c.length;o>n;n++)c[n].onNext(r);var s=a-e+1;s>=0&&s%t==0&&c.shift().onCompleted(),++a%t==0&&i()},function(e){for(;c.length>0;)c.shift().onError(e);n.onError(e)},function(){for(;c.length>0;)c.shift().onCompleted();n.onCompleted()})),s},r)},vt.selectConcat=vt.concatMap=function(e,t,r){return Y(e)&&Y(t)?this.concatMap(function(r,n){var i=e(r,n);return X(i)&&(i=Rt(i)),(ue(i)||ce(i))&&(i=Bt(i)),i.map(function(e,i){return t(r,e,n,i)})}):Y(e)?j(this,e,r):j(this,function(){return e})},vt.concatMapObserver=vt.selectConcatObserver=function(e,t,r,n){var i=this,o=he(e,n,2),s=he(t,n,1),a=he(r,n,0);return new dr(function(e){var t=0;return i.subscribe(function(r){var n;try{n=o(r,t++)}catch(t){return void e.onError(t)}X(n)&&(n=Rt(n)),e.onNext(n)},function(t){var r;try{r=s(t)}catch(t){return void e.onError(t)}X(r)&&(r=Rt(r)),e.onNext(r),e.onCompleted()},function(){var t;try{t=a()}catch(t){return void e.onError(t)}X(t)&&(t=Rt(t)),e.onNext(t),e.onCompleted()})},this).concatAll()},vt.defaultIfEmpty=function(e){var t=this;return e===i&&(e=null),new dr(function(r){var n=!1;return t.subscribe(function(e){n=!0,r.onNext(e)},function(e){r.onError(e)},function(){!n&&r.onNext(e),r.onCompleted()})},t)},L.prototype.push=function(e){var t=-1===function(e,t,r){for(var n=0,i=e.length;i>n;n++)if(r(e[n],t))return n;return-1}(this.set,e,this.comparer);return t&&this.set.push(e),t},vt.distinct=function(e,t){var r=this;return t||(t=H),new dr(function(n){var i=new L(t);return r.subscribe(function(t){var r=t;if(e)try{r=e(t)}catch(e){return void n.onError(e)}i.push(r)&&n.onNext(t)},function(e){n.onError(e)},function(){n.onCompleted()})},this)};var lr=function(e){function t(t,r,n){this.source=t,this.selector=he(r,n,3),e.call(this)}function r(e,t,r){this.o=e,this.selector=t,this.source=r,this.i=0,this.isStopped=!1}return De(t,e),t.prototype.internalMap=function(e,r){return new t(this.source,function(e,t){return function(r,n,i){return e.call(this,t.selector(r,n,i),n,i)}}(e,this),r)},t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e,this.selector,this))},r.prototype.onNext=function(e){if(!this.isStopped){var t=m(this.selector)(e,this.i++,this.source);return t===Fe?this.o.onError(t.e):void this.o.onNext(t)}},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.map=vt.select=function(e,t){var r="function"==typeof e?e:function(){return e};return this instanceof lr?this.internalMap(r,t):new lr(this,r,t)},vt.pluck=function(){var e=arguments,t=arguments.length;if(0===t)throw new Error("List of properties cannot be empty.");return this.map(function(r){for(var n=r,o=0;t>o;o++){var s=n[e[o]];if(void 0===s)return i;n=s}return n})},vt.flatMapObserver=vt.selectManyObserver=function(e,t,r,n){var i=this;return new dr(function(o){var s=0;return i.subscribe(function(t){var r;try{r=e.call(n,t,s++)}catch(e){return void o.onError(e)}X(r)&&(r=Rt(r)),o.onNext(r)},function(e){var r;try{r=t.call(n,e)}catch(e){return void o.onError(e)}X(r)&&(r=Rt(r)),o.onNext(r),o.onCompleted()},function(){var e;try{e=r.call(n)}catch(e){return void o.onError(e)}X(e)&&(e=Rt(e)),o.onNext(e),o.onCompleted()})},i).mergeAll()},vt.selectMany=vt.flatMap=function(e,t,r){return Y(e)&&Y(t)?this.flatMap(function(r,n){var i=e(r,n);return X(i)&&(i=Rt(i)),(ue(i)||ce(i))&&(i=Bt(i)),i.map(function(e,i){return t(r,e,n,i)})},r):Y(e)?N(this,e,r):N(this,function(){return e})},vt.selectSwitch=vt.flatMapLatest=vt.switchMap=function(e,t){return this.select(e,t).switchLatest()};var pr=function(e){function t(t,r){this.source=t,this.skipCount=r,e.call(this)}function r(e,t){this.c=t,this.r=t,this.o=e,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e,this.skipCount))},r.prototype.onNext=function(e){this.isStopped||(this.r<=0?this.o.onNext(e):this.r--)},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.skip=function(e){if(0>e)throw new te;return new pr(this,e)},vt.skipWhile=function(e,t){var r=this,n=he(e,t,3);return new dr(function(e){var t=0,i=!1;return r.subscribe(function(o){if(!i)try{i=!n(o,t++,r)}catch(t){return void e.onError(t)}i&&e.onNext(o)},function(t){e.onError(t)},function(){e.onCompleted()})},r)},vt.take=function(e,t){if(0>e)throw new te;if(0===e)return Nt(t);var r=this;return new dr(function(t){var n=e;return r.subscribe(function(e){n-- >0&&(t.onNext(e),0>=n&&t.onCompleted())},function(e){t.onError(e)},function(){t.onCompleted()})},r)},vt.takeWhile=function(e,t){var r=this,n=he(e,t,3);return new dr(function(e){var t=0,i=!0;return r.subscribe(function(o){if(i){try{i=n(o,t++,r)}catch(t){return void e.onError(t)}i?e.onNext(o):e.onCompleted()}},function(t){e.onError(t)},function(){e.onCompleted()})},r)};var fr=function(e){function t(t,r,n){this.source=t,this.predicate=he(r,n,3),e.call(this)}function r(e,t,r){this.o=e,this.predicate=t,this.source=r,this.i=0,this.isStopped=!1}return De(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e,this.predicate,this))},t.prototype.internalFilter=function(e,r){return new t(this.source,function(e,t){return function(r,n,i){return t.predicate(r,n,i)&&e.call(this,r,n,i)}}(e,this),r)},r.prototype.onNext=function(e){if(!this.isStopped){var t=m(this.predicate)(e,this.i++,this.source);return t===Fe?this.o.onError(t.e):void(t&&this.o.onNext(e))}},r.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(wt);vt.filter=vt.where=function(e,t){return this instanceof fr?this.internalFilter(e,t):new fr(this,e,t)},vt.transduce=function(e){var t=this;return new dr(function(r){var n=e(function(e){return{"@@transducer/init":function(){return e},"@@transducer/step":function(e,t){return e.onNext(t)},"@@transducer/result":function(e){return e.onCompleted()}}}(r));return t.subscribe(function(e){try{n["@@transducer/step"](r,e)}catch(e){r.onError(e)}},function(e){r.onError(e)},function(){n["@@transducer/result"](r)})},t)};var dr=$.AnonymousObservable=function(e){function t(e,t){var r=t[0],n=m(t[1])(r);return n!==Fe||r.fail(Fe.e)?void r.setDisposable(function(e){return e&&Y(e.dispose)?e:Y(e)?He(e):qe}(n)):v(Fe.e)}function r(r,n){this.source=n,e.call(this,function(e){var n=new mr(e),i=[n,r];return ot.scheduleRequired()?ot.scheduleWithState(i,t):t(0,i),n})}return De(r,e),r}(xt),mr=function(e){function t(t){e.call(this),this.observer=t,this.m=new Ye}De(t,e);var r=t.prototype;return r.next=function(e){var t=m(this.observer.onNext).call(this.observer,e);t===Fe&&(this.dispose(),v(t.e))},r.error=function(e){var t=m(this.observer.onError).call(this.observer,e);this.dispose(),t===Fe&&v(t.e)},r.completed=function(){var e=m(this.observer.onCompleted).call(this.observer);this.dispose(),e===Fe&&v(e.e)},r.setDisposable=function(e){this.m.setDisposable(e)},r.getDisposable=function(){return this.m.getDisposable()},r.dispose=function(){e.prototype.dispose.call(this),this.m.dispose()},t}(gt),vr=function(e,t){this.subject=e,this.observer=t};vr.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var e=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(e,1),this.observer=null}};var gr=$.Subject=function(e){function t(e){return Xe(this),this.isStopped?this.hasError?(e.onError(this.error),qe):(e.onCompleted(),qe):(this.observers.push(e),new vr(this,e))}function r(){e.call(this,t),this.isDisposed=!1,this.isStopped=!1,this.observers=[],this.hasError=!1}return De(r,e),ke(r.prototype,dt.prototype,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(Xe(this),!this.isStopped){this.isStopped=!0;for(var e=0,t=o(this.observers),r=t.length;r>e;e++)t[e].onCompleted();this.observers.length=0}},onError:function(e){if(Xe(this),!this.isStopped){this.isStopped=!0,this.error=e,this.hasError=!0;for(var t=0,r=o(this.observers),n=r.length;n>t;t++)r[t].onError(e);this.observers.length=0}},onNext:function(e){if(Xe(this),!this.isStopped)for(var t=0,r=o(this.observers),n=r.length;n>t;t++)r[t].onNext(e)},dispose:function(){this.isDisposed=!0,this.observers=null}}),r.create=function(e,t){return new yr(e,t)},r}(xt),yr=($.AsyncSubject=function(e){function t(e){return Xe(this),this.isStopped?(this.hasError?e.onError(this.error):this.hasValue?(e.onNext(this.value),e.onCompleted()):e.onCompleted(),qe):(this.observers.push(e),new vr(this,e))}function r(){e.call(this,t),this.isDisposed=!1,this.isStopped=!1,this.hasValue=!1,this.observers=[],this.hasError=!1}return De(r,e),ke(r.prototype,dt,{hasObservers:function(){return Xe(this),this.observers.length>0},onCompleted:function(){var e;if(Xe(this),!this.isStopped){this.isStopped=!0;var t=o(this.observers),r=t.length;if(this.hasValue)for(e=0;r>e;e++){var n=t[e];n.onNext(this.value),n.onCompleted()}else for(e=0;r>e;e++)t[e].onCompleted();this.observers.length=0}},onError:function(e){if(Xe(this),!this.isStopped){this.isStopped=!0,this.hasError=!0,this.error=e;for(var t=0,r=o(this.observers),n=r.length;n>t;t++)r[t].onError(e);this.observers.length=0}},onNext:function(e){Xe(this),this.isStopped||(this.value=e,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),r}(xt),$.AnonymousSubject=function(e){function t(e){return this.observable.subscribe(e)}function r(r,n){this.observer=r,this.observable=n,e.call(this,t)}return De(r,e),ke(r.prototype,dt.prototype,{onCompleted:function(){this.observer.onCompleted()},onError:function(e){this.observer.onError(e)},onNext:function(e){this.observer.onNext(e)}}),r}(xt));k&&B?F?(B.exports=$).Rx=$:k.Rx=$:D.Rx=$;var br=c()}).call(this)}).call(this,e(150),void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{150:150}]},{},[1])(1)})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],16:[function(e,t,r){(function(r){var n,i=void 0!==r?r:"undefined"!=typeof window?window:{},o=e("min-document");"undefined"!=typeof document?n=document:(n=i["__GLOBAL_DOCUMENT_CACHE@4"])||(n=i["__GLOBAL_DOCUMENT_CACHE@4"]=o),t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"min-document":4}],17:[function(e,t,r){r.read=function(e,t,r,n,i){var o,s,a=8*i-n-1,c=(1<<a)-1,u=c>>1,h=-7,l=r?i-1:0,p=r?-1:1,f=e[t+l];for(l+=p,o=f&(1<<-h)-1,f>>=-h,h+=a;h>0;o=256*o+e[t+l],l+=p,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+e[t+l],l+=p,h-=8);if(0===o)o=1-u;else{if(o===c)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,n),o-=u}return(f?-1:1)*s*Math.pow(2,o-n)},r.write=function(e,t,r,n,i,o){var s,a,c,u=8*o-i-1,h=(1<<u)-1,l=h>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=h):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+l>=1?p/c:p*Math.pow(2,1-l))*c>=2&&(s++,c/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(t*c-1)*Math.pow(2,i),s+=l):(a=t*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;e[r+f]=255&a,f+=d,a/=256,i-=8);for(s=s<<i|a,u+=i;u>0;e[r+f]=255&s,f+=d,s/=256,u-=8);e[r+f-d]|=128*m}},{}],18:[function(e,t,r){(function(e){"use strict";var r="undefined"!=typeof window?window:void 0!==e?e:{};t.exports=function(e,t){return e in r?r[e]:(r[e]=t,t)}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],19:[function(e,t,r){"use strict";var n=e("./index.js");t.exports=function(e,t,r){var i="__INDIVIDUAL_ONE_VERSION_"+e,o=n(i+"_ENFORCE_SINGLETON",t);if(o!==t)throw new Error("Can only have one copy of "+e+".\nYou already have version "+o+" installed.\nThis means you cannot install version "+t);return n(i,r)}},{"./index.js":18}],20:[function(e,t,r){"use strict";t.exports=function(e){return"object"==typeof e&&null!==e}},{}],21:[function(e,t,r){"use strict";var n={};n.base32="0123456789bcdefghjkmnpqrstuvwxyz",n.encode=function(e,t,r){if(void 0===r){for(var i=1;i<=12;i++){var o=n.encode(e,t,i),s=n.decode(o);if(s.lat==e&&s.lon==t)return o}r=12}if(e=Number(e),t=Number(t),r=Number(r),isNaN(e)||isNaN(t)||isNaN(r))throw new Error("Invalid geohash");for(var a=0,c=0,u=!0,h="",l=-90,p=90,f=-180,d=180;h.length<r;){if(u){var m=(f+d)/2;t>=m?(a=2*a+1,f=m):(a*=2,d=m)}else{var v=(l+p)/2;e>=v?(a=2*a+1,l=v):(a*=2,p=v)}u=!u,5==++c&&(h+=n.base32.charAt(a),c=0,a=0)}return h},n.decode=function(e){var t=n.bounds(e),r=t.sw.lat,i=t.sw.lon,o=t.ne.lat,s=t.ne.lon,a=(r+o)/2,c=(i+s)/2;return a=a.toFixed(Math.floor(2-Math.log(o-r)/Math.LN10)),c=c.toFixed(Math.floor(2-Math.log(s-i)/Math.LN10)),{lat:Number(a),lon:Number(c)}},n.bounds=function(e){if(0===e.length)throw new Error("Invalid geohash");e=e.toLowerCase();for(var t=!0,r=-90,i=90,o=-180,s=180,a=0;a<e.length;a++){var c=e.charAt(a),u=n.base32.indexOf(c);if(-1==u)throw new Error("Invalid geohash");for(var h=4;h>=0;h--){var l=u>>h&1;if(t){var p=(o+s)/2;1==l?o=p:s=p}else{var f=(r+i)/2;1==l?r=f:i=f}t=!t}}return{sw:{lat:r,lon:o},ne:{lat:i,lon:s}}},n.adjacent=function(e,t){if(e=e.toLowerCase(),t=t.toLowerCase(),0===e.length)throw new Error("Invalid geohash");if(-1=="nsew".indexOf(t))throw new Error("Invalid direction");var r=e.slice(-1),i=e.slice(0,-1),o=e.length%2;return-1!={n:["prxz","bcfguvyz"],s:["028b","0145hjnp"],e:["bcfguvyz","prxz"],w:["0145hjnp","028b"]}[t][o].indexOf(r)&&""!==i&&(i=n.adjacent(i,t)),i+n.base32.charAt({n:["p0r21436x8zb9dcf5h7kjnmqesgutwvy","bc01fg45238967deuvhjyznpkmstqrwx"],s:["14365h7k9dcfesgujnmqp0r2twvyx8zb","238967debc01fg45kmstqrwxuvhjyznp"],e:["bc01fg45238967deuvhjyznpkmstqrwx","p0r21436x8zb9dcf5h7kjnmqesgutwvy"],w:["238967debc01fg45kmstqrwxuvhjyznp","14365h7k9dcfesgujnmqp0r2twvyx8zb"]}[t][o].indexOf(r))},n.neighbours=function(e){return{n:n.adjacent(e,"n"),ne:n.adjacent(n.adjacent(e,"n"),"e"),e:n.adjacent(e,"e"),se:n.adjacent(n.adjacent(e,"s"),"e"),s:n.adjacent(e,"s"),sw:n.adjacent(n.adjacent(e,"s"),"w"),w:n.adjacent(e,"w"),nw:n.adjacent(n.adjacent(e,"n"),"w")}},void 0!==t&&t.exports&&(t.exports=n)},{}],22:[function(e,t,r){(function(e){function t(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}function n(e,t){if(e.filter)return e.filter(t);for(var r=[],n=0;n<e.length;n++)t(e[n],n,e)&&r.push(e[n]);return r}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,o=function(e){return i.exec(e).slice(1)};r.resolve=function(){for(var r="",i=!1,o=arguments.length-1;o>=-1&&!i;o--){var s=o>=0?arguments[o]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(r=s+"/"+r,i="/"===s.charAt(0))}return r=t(n(r.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+r||"."},r.normalize=function(e){var i=r.isAbsolute(e),o="/"===s(e,-1);return(e=t(n(e.split("/"),function(e){return!!e}),!i).join("/"))||i||(e="."),e&&o&&(e+="/"),(i?"/":"")+e},r.isAbsolute=function(e){return"/"===e.charAt(0)},r.join=function(){var e=Array.prototype.slice.call(arguments,0);return r.normalize(n(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},r.relative=function(e,t){function n(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=r.resolve(e).substr(1),t=r.resolve(t).substr(1);for(var i=n(e.split("/")),o=n(t.split("/")),s=Math.min(i.length,o.length),a=s,c=0;c<s;c++)if(i[c]!==o[c]){a=c;break}for(var u=[],c=a;c<i.length;c++)u.push("..");return(u=u.concat(o.slice(a))).join("/")},r.sep="/",r.delimiter=":",r.dirname=function(e){var t=o(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},r.basename=function(e,t){var r=o(e)[2];return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r},r.extname=function(e){return o(e)[3]};var s="b"==="ab".substr(-1)?function(e,t,r){return e.substr(t,r)}:function(e,t,r){return t<0&&(t=e.length+t),e.substr(t,r)}}).call(this,e("_process"))},{_process:6}],23:[function(e,t,r){"use strict";function n(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}function i(e){return e.type===n.Bytes?e.readVarint()+e.pos:e.pos+1}function o(e,t,r){return r?4294967296*t+(e>>>0):4294967296*(t>>>0)+(e>>>0)}function s(e,t,r){var n=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.ceil(Math.log(t)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=e;i--)r.buf[i+n]=r.buf[i]}function a(e,t){for(var r=0;r<e.length;r++)t.writeVarint(e[r])}function c(e,t){for(var r=0;r<e.length;r++)t.writeSVarint(e[r])}function u(e,t){for(var r=0;r<e.length;r++)t.writeFloat(e[r])}function h(e,t){for(var r=0;r<e.length;r++)t.writeDouble(e[r])}function l(e,t){for(var r=0;r<e.length;r++)t.writeBoolean(e[r])}function p(e,t){for(var r=0;r<e.length;r++)t.writeFixed32(e[r])}function f(e,t){for(var r=0;r<e.length;r++)t.writeSFixed32(e[r])}function d(e,t){for(var r=0;r<e.length;r++)t.writeFixed64(e[r])}function m(e,t){for(var r=0;r<e.length;r++)t.writeSFixed64(e[r])}function v(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+16777216*e[t+3]}function g(e,t,r){e[r]=t,e[r+1]=t>>>8,e[r+2]=t>>>16,e[r+3]=t>>>24}function y(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+(e[t+3]<<24)}t.exports=n;var b=e("ieee754");n.Varint=0,n.Fixed64=1,n.Bytes=2,n.Fixed32=5;n.prototype={destroy:function(){this.buf=null},readFields:function(e,t,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),i=n>>3,o=this.pos;this.type=7&n,e(i,t,this),this.pos===o&&this.skip(n)}return t},readMessage:function(e,t){return this.readFields(e,t,this.readVarint()+this.pos)},readFixed32:function(){var e=v(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=y(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=v(this.buf,this.pos)+4294967296*v(this.buf,this.pos+4);return this.pos+=8,e},readSFixed64:function(){var e=v(this.buf,this.pos)+4294967296*y(this.buf,this.pos+4);return this.pos+=8,e},readFloat:function(){var e=b.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=b.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var t,r,n=this.buf;return r=n[this.pos++],t=127&r,r<128?t:(r=n[this.pos++],t|=(127&r)<<7,r<128?t:(r=n[this.pos++],t|=(127&r)<<14,r<128?t:(r=n[this.pos++],t|=(127&r)<<21,r<128?t:(r=n[this.pos],t|=(15&r)<<28,function(e,t,r){var n,i,s=r.buf;if(i=s[r.pos++],n=(112&i)>>4,i<128)return o(e,n,t);if(i=s[r.pos++],n|=(127&i)<<3,i<128)return o(e,n,t);if(i=s[r.pos++],n|=(127&i)<<10,i<128)return o(e,n,t);if(i=s[r.pos++],n|=(127&i)<<17,i<128)return o(e,n,t);if(i=s[r.pos++],n|=(127&i)<<24,i<128)return o(e,n,t);if(i=s[r.pos++],n|=(1&i)<<31,i<128)return o(e,n,t);throw new Error("Expected varint not more than 10 bytes")}(t,e,this)))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2==1?(e+1)/-2:e/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var e=this.readVarint()+this.pos,t=function(e,t,r){for(var n="",i=t;i<r;){var o=e[i],s=null,a=o>239?4:o>223?3:o>191?2:1;if(i+a>r)break;var c,u,h;1===a?o<128&&(s=o):2===a?128==(192&(c=e[i+1]))&&(s=(31&o)<<6|63&c)<=127&&(s=null):3===a?(c=e[i+1],u=e[i+2],128==(192&c)&&128==(192&u)&&((s=(15&o)<<12|(63&c)<<6|63&u)<=2047||s>=55296&&s<=57343)&&(s=null)):4===a&&(c=e[i+1],u=e[i+2],h=e[i+3],128==(192&c)&&128==(192&u)&&128==(192&h)&&((s=(15&o)<<18|(63&c)<<12|(63&u)<<6|63&h)<=65535||s>=1114112)&&(s=null)),null===s?(s=65533,a=1):s>65535&&(s-=65536,n+=String.fromCharCode(s>>>10&1023|55296),s=56320|1023&s),n+=String.fromCharCode(s),i+=a}return n}(this.buf,this.pos,e);return this.pos=e,t},readBytes:function(){var e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t},readPackedVarint:function(e,t){var r=i(this);for(e=e||[];this.pos<r;)e.push(this.readVarint(t));return e},readPackedSVarint:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readBoolean());return e},readPackedFloat:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readFloat());return e},readPackedDouble:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readDouble());return e},readPackedFixed32:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){var t=i(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed64());return e},skip:function(e){var t=7&e;if(t===n.Varint)for(;this.buf[this.pos++]>127;);else if(t===n.Bytes)this.pos=this.readVarint()+this.pos;else if(t===n.Fixed32)this.pos+=4;else{if(t!==n.Fixed64)throw new Error("Unimplemented type: "+t);this.pos+=8}},writeTag:function(e,t){this.writeVarint(e<<3|t)},realloc:function(e){for(var t=this.length||16;t<this.pos+e;)t*=2;if(t!==this.length){var r=new Uint8Array(t);r.set(this.buf),this.buf=r,this.length=t}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),g(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),g(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),g(this.buf,-1&e,this.pos),g(this.buf,Math.floor(e*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),g(this.buf,-1&e,this.pos),g(this.buf,Math.floor(e*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(e){(e=+e||0)>268435455||e<0?function(e,t){var r,n;if(e>=0?(r=e%4294967296|0,n=e/4294967296|0):(n=~(-e/4294967296),4294967295^(r=~(-e%4294967296))?r=r+1|0:(r=0,n=n+1|0)),e>=0x10000000000000000||e<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");t.realloc(10),function(e,t,r){r.buf[r.pos++]=127&e|128,e>>>=7,r.buf[r.pos++]=127&e|128,e>>>=7,r.buf[r.pos++]=127&e|128,e>>>=7,r.buf[r.pos++]=127&e|128,e>>>=7,r.buf[r.pos]=127&e}(r,0,t),function(e,t){var r=(7&e)<<4;t.buf[t.pos++]|=r|((e>>>=3)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e)))))}(n,t)}(e,this):(this.realloc(4),this.buf[this.pos++]=127&e|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=e>>>7&127))))},writeSVarint:function(e){this.writeVarint(e<0?2*-e-1:2*e)},writeBoolean:function(e){this.writeVarint(Boolean(e))},writeString:function(e){e=String(e),this.realloc(4*e.length),this.pos++;var t=this.pos;this.pos=function(e,t,r){for(var n,i,o=0;o<t.length;o++){if((n=t.charCodeAt(o))>55295&&n<57344){if(!i){n>56319||o+1===t.length?(e[r++]=239,e[r++]=191,e[r++]=189):i=n;continue}if(n<56320){e[r++]=239,e[r++]=191,e[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(e[r++]=239,e[r++]=191,e[r++]=189,i=null);n<128?e[r++]=n:(n<2048?e[r++]=n>>6|192:(n<65536?e[r++]=n>>12|224:(e[r++]=n>>18|240,e[r++]=n>>12&63|128),e[r++]=n>>6&63|128),e[r++]=63&n|128)}return r}(this.buf,e,this.pos);var r=this.pos-t;r>=128&&s(t,r,this),this.pos=t-1,this.writeVarint(r),this.pos+=r},writeFloat:function(e){this.realloc(4),b.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),b.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var t=e.length;this.writeVarint(t),this.realloc(t);for(var r=0;r<t;r++)this.buf[this.pos++]=e[r]},writeRawMessage:function(e,t){this.pos++;var r=this.pos;e(t,this);var n=this.pos-r;n>=128&&s(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(e,t,r){this.writeTag(e,n.Bytes),this.writeRawMessage(t,r)},writePackedVarint:function(e,t){this.writeMessage(e,a,t)},writePackedSVarint:function(e,t){this.writeMessage(e,c,t)},writePackedBoolean:function(e,t){this.writeMessage(e,l,t)},writePackedFloat:function(e,t){this.writeMessage(e,u,t)},writePackedDouble:function(e,t){this.writeMessage(e,h,t)},writePackedFixed32:function(e,t){this.writeMessage(e,p,t)},writePackedSFixed32:function(e,t){this.writeMessage(e,f,t)},writePackedFixed64:function(e,t){this.writeMessage(e,d,t)},writePackedSFixed64:function(e,t){this.writeMessage(e,m,t)},writeBytesField:function(e,t){this.writeTag(e,n.Bytes),this.writeBytes(t)},writeFixed32Field:function(e,t){this.writeTag(e,n.Fixed32),this.writeFixed32(t)},writeSFixed32Field:function(e,t){this.writeTag(e,n.Fixed32),this.writeSFixed32(t)},writeFixed64Field:function(e,t){this.writeTag(e,n.Fixed64),this.writeFixed64(t)},writeSFixed64Field:function(e,t){this.writeTag(e,n.Fixed64),this.writeSFixed64(t)},writeVarintField:function(e,t){this.writeTag(e,n.Varint),this.writeVarint(t)},writeSVarintField:function(e,t){this.writeTag(e,n.Varint),this.writeSVarint(t)},writeStringField:function(e,t){this.writeTag(e,n.Bytes),this.writeString(t)},writeFloatField:function(e,t){this.writeTag(e,n.Fixed32),this.writeFloat(t)},writeDoubleField:function(e,t){this.writeTag(e,n.Fixed64),this.writeDouble(t)},writeBooleanField:function(e,t){this.writeVarintField(e,Boolean(t))}}},{ieee754:17}],24:[function(e,t,r){"use strict";function n(e,t,r,o,s){for(r=r||0,o=o||e.length-1,s=s||function(e,t){return e<t?-1:e>t?1:0};o>r;){if(o-r>600){var a=o-r+1,c=t-r+1,u=Math.log(a),h=.5*Math.exp(2*u/3),l=.5*Math.sqrt(u*h*(a-h)/a)*(c-a/2<0?-1:1);n(e,t,Math.max(r,Math.floor(t-c*h/a+l)),Math.min(o,Math.floor(t+(a-c)*h/a+l)),s)}var p=e[t],f=r,d=o;for(i(e,r,t),s(e[o],p)>0&&i(e,r,o);f<d;){for(i(e,f,d),f++,d--;s(e[f],p)<0;)f++;for(;s(e[d],p)>0;)d--}0===s(e[r],p)?i(e,r,d):i(e,++d,o),d<=t&&(r=d+1),t<=d&&(o=d-1)}}function i(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}t.exports=n},{}],25:[function(e,t,r){"use strict";function n(e,t){if(!(this instanceof n))return new n(e,t);this._maxEntries=Math.max(4,e||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),t&&this._initFormat(t),this.clear()}function i(e,t){o(e,0,e.children.length,t,e)}function o(e,t,r,n,i){i||(i=f(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(var o,a=t;a<r;a++)o=e.children[a],s(i,e.leaf?n(o):o);return i}function s(e,t){return e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY),e}function a(e,t){return e.minX-t.minX}function c(e,t){return e.minY-t.minY}function u(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function h(e){return e.maxX-e.minX+(e.maxY-e.minY)}function l(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function p(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function f(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function d(e,t,r,n,i){for(var o,s=[t,r];s.length;)(r=s.pop())-(t=s.pop())<=n||(o=t+Math.ceil((r-t)/n/2)*n,m(e,o,t,r,i),s.push(t,o,o,r))}t.exports=n;var m=e("quickselect");n.prototype={all:function(){return this._all(this.data,[])},search:function(e){var t=this.data,r=[],n=this.toBBox;if(!p(e,t))return r;for(var i,o,s,a,c=[];t;){for(i=0,o=t.children.length;i<o;i++)s=t.children[i],p(e,a=t.leaf?n(s):s)&&(t.leaf?r.push(s):l(e,a)?this._all(s,r):c.push(s));t=c.pop()}return r},collides:function(e){var t=this.data,r=this.toBBox;if(!p(e,t))return!1;for(var n,i,o,s,a=[];t;){for(n=0,i=t.children.length;n<i;n++)if(o=t.children[n],s=t.leaf?r(o):o,p(e,s)){if(t.leaf||l(e,s))return!0;a.push(o)}t=a.pop()}return!1},load:function(e){if(!e||!e.length)return this;if(e.length<this._minEntries){for(var t=0,r=e.length;t<r;t++)this.insert(e[t]);return this}var n=this._build(e.slice(),0,e.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this._splitRoot(this.data,n);else{if(this.data.height<n.height){var i=this.data;this.data=n,n=i}this._insert(n,this.data.height-n.height-1,!0)}else this.data=n;return this},insert:function(e){return e&&this._insert(e,this.data.height-1),this},clear:function(){return this.data=f([]),this},remove:function(e,t){if(!e)return this;for(var r,n,i,o,s=this.data,a=this.toBBox(e),c=[],u=[];s||c.length;){if(s||(s=c.pop(),n=c[c.length-1],r=u.pop(),o=!0),s.leaf&&-1!==(i=function(e,t,r){if(!r)return t.indexOf(e);for(var n=0;n<t.length;n++)if(r(e,t[n]))return n;return-1}(e,s.children,t)))return s.children.splice(i,1),c.push(s),this._condense(c),this;o||s.leaf||!l(s,a)?n?(r++,s=n.children[r],o=!1):s=null:(c.push(s),u.push(r),r=0,n=s,s=s.children[0])}return this},toBBox:function(e){return e},compareMinX:a,compareMinY:c,toJSON:function(){return this.data},fromJSON:function(e){return this.data=e,this},_all:function(e,t){for(var r=[];e;)e.leaf?t.push.apply(t,e.children):r.push.apply(r,e.children),e=r.pop();return t},_build:function(e,t,r,n){var o,s=r-t+1,a=this._maxEntries;if(s<=a)return o=f(e.slice(t,r+1)),i(o,this.toBBox),o;n||(n=Math.ceil(Math.log(s)/Math.log(a)),a=Math.ceil(s/Math.pow(a,n-1))),(o=f([])).leaf=!1,o.height=n;var c,u,h,l,p=Math.ceil(s/a),m=p*Math.ceil(Math.sqrt(a));for(d(e,t,r,m,this.compareMinX),c=t;c<=r;c+=m)for(d(e,c,h=Math.min(c+m-1,r),p,this.compareMinY),u=c;u<=h;u+=p)l=Math.min(u+p-1,h),o.children.push(this._build(e,u,l,n-1));return i(o,this.toBBox),o},_chooseSubtree:function(e,t,r,n){for(var i,o,s,a,c,h,l,p;;){if(n.push(t),t.leaf||n.length-1===r)break;for(l=p=1/0,i=0,o=t.children.length;i<o;i++)c=u(s=t.children[i]),(h=function(e,t){return(Math.max(t.maxX,e.maxX)-Math.min(t.minX,e.minX))*(Math.max(t.maxY,e.maxY)-Math.min(t.minY,e.minY))}(e,s)-c)<p?(p=h,l=c<l?c:l,a=s):h===p&&c<l&&(l=c,a=s);t=a||t.children[0]}return t},_insert:function(e,t,r){var n=this.toBBox,i=r?e:n(e),o=[],a=this._chooseSubtree(i,this.data,t,o);for(a.children.push(e),s(a,i);t>=0&&o[t].children.length>this._maxEntries;)this._split(o,t),t--;this._adjustParentBBoxes(i,o,t)},_split:function(e,t){var r=e[t],n=r.children.length,o=this._minEntries;this._chooseSplitAxis(r,o,n);var s=this._chooseSplitIndex(r,o,n),a=f(r.children.splice(s,r.children.length-s));a.height=r.height,a.leaf=r.leaf,i(r,this.toBBox),i(a,this.toBBox),t?e[t-1].children.push(a):this._splitRoot(r,a)},_splitRoot:function(e,t){this.data=f([e,t]),this.data.height=e.height+1,this.data.leaf=!1,i(this.data,this.toBBox)},_chooseSplitIndex:function(e,t,r){var n,i,s,a,c,h,l,p;for(h=l=1/0,n=t;n<=r-t;n++)a=function(e,t){var r=Math.max(e.minX,t.minX),n=Math.max(e.minY,t.minY),i=Math.min(e.maxX,t.maxX),o=Math.min(e.maxY,t.maxY);return Math.max(0,i-r)*Math.max(0,o-n)}(i=o(e,0,n,this.toBBox),s=o(e,n,r,this.toBBox)),c=u(i)+u(s),a<h?(h=a,p=n,l=c<l?c:l):a===h&&c<l&&(l=c,p=n);return p},_chooseSplitAxis:function(e,t,r){var n=e.leaf?this.compareMinX:a,i=e.leaf?this.compareMinY:c;this._allDistMargin(e,t,r,n)<this._allDistMargin(e,t,r,i)&&e.children.sort(n)},_allDistMargin:function(e,t,r,n){e.children.sort(n);var i,a,c=this.toBBox,u=o(e,0,t,c),l=o(e,r-t,r,c),p=h(u)+h(l);for(i=t;i<r-t;i++)a=e.children[i],s(u,e.leaf?c(a):a),p+=h(u);for(i=r-t-1;i>=t;i--)a=e.children[i],s(l,e.leaf?c(a):a),p+=h(l);return p},_adjustParentBBoxes:function(e,t,r){for(var n=r;n>=0;n--)s(t[n],e)},_condense:function(e){for(var t,r=e.length-1;r>=0;r--)0===e[r].children.length?r>0?(t=e[r-1].children).splice(t.indexOf(e[r]),1):this.clear():i(e[r],this.toBBox)},_initFormat:function(e){var t=["return a"," - b",";"];this.compareMinX=new Function("a","b",t.join(e[0])),this.compareMinY=new Function("a","b",t.join(e[1])),this.toBBox=new Function("a","return {minX: a"+e[0]+", minY: a"+e[1]+", maxX: a"+e[2]+", maxY: a"+e[3]+"};")}}},{quickselect:24}],26:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("./Subject"),o=e("./util/ObjectUnsubscribedError"),s=function(e){function t(t){e.call(this),this._value=t}return n(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype._subscribe=function(t){var r=e.prototype._subscribe.call(this,t);return r&&!r.closed&&t.next(this._value),r},t.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new o.ObjectUnsubscribedError;return this._value},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(i.Subject);r.BehaviorSubject=s},{"./Subject":34,"./util/ObjectUnsubscribedError":220}],27:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r,n){e.call(this),this.parent=t,this.outerValue=r,this.outerIndex=n,this.index=0}return n(t,e),t.prototype._next=function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)},t.prototype._error=function(e){this.parent.notifyError(e,this),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},t}(e("./Subscriber").Subscriber);r.InnerSubscriber=i},{"./Subscriber":36}],28:[function(e,t,r){"use strict";var n=e("./Observable"),i=function(){function e(e,t,r){this.kind=e,this.value=t,this.error=r,this.hasValue="N"===e}return e.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},e.prototype.do=function(e,t,r){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return r&&r()}},e.prototype.accept=function(e,t,r){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,r)},e.prototype.toObservable=function(){switch(this.kind){case"N":return n.Observable.of(this.value);case"E":return n.Observable.throw(this.error);case"C":return n.Observable.empty()}throw new Error("unexpected notification kind value")},e.createNext=function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}();r.Notification=i},{"./Observable":29}],29:[function(e,t,r){"use strict";var n=e("./util/root"),i=e("./util/toSubscriber"),o=e("./symbol/observable"),s=e("./util/pipe"),a=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(e,t,r){var n=this.operator,o=i.toSubscriber(e,t,r);if(n?n.call(o,this.source):o.add(this.source?this._subscribe(o):this._trySubscribe(o)),o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.syncErrorThrown=!0,e.syncErrorValue=t,e.error(t)}},e.prototype.forEach=function(e,t){var r=this;if(t||(n.root.Rx&&n.root.Rx.config&&n.root.Rx.config.Promise?t=n.root.Rx.config.Promise:n.root.Promise&&(t=n.root.Promise)),!t)throw new Error("no Promise impl found");return new t(function(t,n){var i;i=r.subscribe(function(t){if(i)try{e(t)}catch(e){n(e),i.unsubscribe()}else e(t)},n,t)})},e.prototype._subscribe=function(e){return this.source.subscribe(e)},e.prototype[o.observable]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return 0===e.length?this:s.pipeFromArray(e)(this)},e.prototype.toPromise=function(e){var t=this;if(e||(n.root.Rx&&n.root.Rx.config&&n.root.Rx.config.Promise?e=n.root.Rx.config.Promise:n.root.Promise&&(e=n.root.Promise)),!e)throw new Error("no Promise impl found");return new e(function(e,r){var n;t.subscribe(function(e){return n=e},function(e){return r(e)},function(){return e(n)})})},e.create=function(t){return new e(t)},e}();r.Observable=a},{"./symbol/observable":215,"./util/pipe":235,"./util/root":236,"./util/toSubscriber":238}],30:[function(e,t,r){"use strict";r.empty={closed:!0,next:function(e){},error:function(e){throw e},complete:function(){}}},{}],31:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){e.apply(this,arguments)}return n(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(t)},t.prototype.notifyError=function(e,t){this.destination.error(e)},t.prototype.notifyComplete=function(e){this.destination.complete()},t}(e("./Subscriber").Subscriber);r.OuterSubscriber=i},{"./Subscriber":36}],32:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("./Subject"),o=e("./scheduler/queue"),s=e("./Subscription"),a=e("./operators/observeOn"),c=e("./util/ObjectUnsubscribedError"),u=e("./SubjectSubscription"),h=function(e){function t(t,r,n){void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=Number.POSITIVE_INFINITY),e.call(this),this.scheduler=n,this._events=[],this._bufferSize=t<1?1:t,this._windowTime=r<1?1:r}return n(t,e),t.prototype.next=function(t){var r=this._getNow();this._events.push(new l(r,t)),this._trimBufferThenGetEvents(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){var t,r=this._trimBufferThenGetEvents(),n=this.scheduler;if(this.closed)throw new c.ObjectUnsubscribedError;this.hasError?t=s.Subscription.EMPTY:this.isStopped?t=s.Subscription.EMPTY:(this.observers.push(e),t=new u.SubjectSubscription(this,e)),n&&e.add(e=new a.ObserveOnSubscriber(e,n));for(var i=r.length,o=0;o<i&&!e.closed;o++)e.next(r[o].value);return this.hasError?e.error(this.thrownError):this.isStopped&&e.complete(),t},t.prototype._getNow=function(){return(this.scheduler||o.queue).now()},t.prototype._trimBufferThenGetEvents=function(){for(var e=this._getNow(),t=this._bufferSize,r=this._windowTime,n=this._events,i=n.length,o=0;o<i&&!(e-n[o].time<r);)o++;return i>t&&(o=Math.max(o,i-t)),o>0&&n.splice(0,o),n},t}(i.Subject);r.ReplaySubject=h;var l=function(){return function(e,t){this.time=e,this.value=t}}()},{"./Subject":34,"./SubjectSubscription":35,"./Subscription":37,"./operators/observeOn":183,"./scheduler/queue":213,"./util/ObjectUnsubscribedError":220}],33:[function(e,t,r){"use strict";var n=function(){function e(t,r){void 0===r&&(r=e.now),this.SchedulerAction=t,this.now=r}return e.prototype.schedule=function(e,t,r){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(r,t)},e.now=Date.now?Date.now:function(){return+new Date},e}();r.Scheduler=n},{}],34:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("./Observable"),o=e("./Subscriber"),s=e("./Subscription"),a=e("./util/ObjectUnsubscribedError"),c=e("./SubjectSubscription"),u=e("./symbol/rxSubscriber"),h=function(e){function t(t){e.call(this,t),this.destination=t}return n(t,e),t}(o.Subscriber);r.SubjectSubscriber=h;var l=function(e){function t(){e.call(this),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}return n(t,e),t.prototype[u.rxSubscriber]=function(){return new h(this)},t.prototype.lift=function(e){var t=new p(this,this);return t.operator=e,t},t.prototype.next=function(e){if(this.closed)throw new a.ObjectUnsubscribedError;if(!this.isStopped)for(var t=this.observers,r=t.length,n=t.slice(),i=0;i<r;i++)n[i].next(e)},t.prototype.error=function(e){if(this.closed)throw new a.ObjectUnsubscribedError;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,r=t.length,n=t.slice(),i=0;i<r;i++)n[i].error(e);this.observers.length=0},t.prototype.complete=function(){if(this.closed)throw new a.ObjectUnsubscribedError;this.isStopped=!0;for(var e=this.observers,t=e.length,r=e.slice(),n=0;n<t;n++)r[n].complete();this.observers.length=0},t.prototype.unsubscribe=function(){this.isStopped=!0,this.closed=!0,this.observers=null},t.prototype._trySubscribe=function(t){if(this.closed)throw new a.ObjectUnsubscribedError;return e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){if(this.closed)throw new a.ObjectUnsubscribedError;return this.hasError?(e.error(this.thrownError),s.Subscription.EMPTY):this.isStopped?(e.complete(),s.Subscription.EMPTY):(this.observers.push(e),new c.SubjectSubscription(this,e))},t.prototype.asObservable=function(){var e=new i.Observable;return e.source=this,e},t.create=function(e,t){return new p(e,t)},t}(i.Observable);r.Subject=l;var p=function(e){function t(t,r){e.call(this),this.destination=t,this.source=r}return n(t,e),t.prototype.next=function(e){var t=this.destination;t&&t.next&&t.next(e)},t.prototype.error=function(e){var t=this.destination;t&&t.error&&this.destination.error(e)},t.prototype.complete=function(){var e=this.destination;e&&e.complete&&this.destination.complete()},t.prototype._subscribe=function(e){return this.source?this.source.subscribe(e):s.Subscription.EMPTY},t}(l);r.AnonymousSubject=p},{"./Observable":29,"./SubjectSubscription":35,"./Subscriber":36,"./Subscription":37,"./symbol/rxSubscriber":216,"./util/ObjectUnsubscribedError":220}],35:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r){e.call(this),this.subject=t,this.subscriber=r,this.closed=!1}return n(t,e),t.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var r=t.indexOf(this.subscriber);-1!==r&&t.splice(r,1)}}},t}(e("./Subscription").Subscription);r.SubjectSubscription=i},{"./Subscription":37}],36:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("./util/isFunction"),o=e("./Subscription"),s=e("./Observer"),a=e("./symbol/rxSubscriber"),c=function(e){function t(r,n,i){switch(e.call(this),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=s.empty;break;case 1:if(!r){this.destination=s.empty;break}if("object"==typeof r){r instanceof t?(this.destination=r,this.destination.add(this)):(this.syncErrorThrowable=!0,this.destination=new u(this,r));break}default:this.syncErrorThrowable=!0,this.destination=new u(this,r,n,i)}}return n(t,e),t.prototype[a.rxSubscriber]=function(){return this},t.create=function(e,r,n){var i=new t(e,r,n);return i.syncErrorThrowable=!1,i},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parent,t=this._parents;return this._parent=null,this._parents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parent=e,this._parents=t,this},t}(o.Subscription);r.Subscriber=c;var u=function(e){function t(t,r,n,o){e.call(this),this._parentSubscriber=t;var a,c=this;i.isFunction(r)?a=r:r&&(a=r.next,n=r.error,o=r.complete,r!==s.empty&&(c=Object.create(r),i.isFunction(c.unsubscribe)&&this.add(c.unsubscribe.bind(c)),c.unsubscribe=this.unsubscribe.bind(this))),this._context=c,this._next=a,this._error=n,this._complete=o}return n(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber;if(this._error)t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else{if(!t.syncErrorThrowable)throw this.unsubscribe(),e;t.syncErrorValue=e,t.syncErrorThrown=!0,this.unsubscribe()}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var r=function(){return e._complete.call(e._context)};t.syncErrorThrowable?(this.__tryOrSetError(t,r),this.unsubscribe()):(this.__tryOrUnsub(r),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){throw this.unsubscribe(),e}},t.prototype.__tryOrSetError=function(e,t,r){try{t.call(this._context,r)}catch(t){return e.syncErrorValue=t,e.syncErrorThrown=!0,!0}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(c)},{"./Observer":30,"./Subscription":37,"./symbol/rxSubscriber":216,"./util/isFunction":229}],37:[function(e,t,r){"use strict";function n(e){return e.reduce(function(e,t){return e.concat(t instanceof u.UnsubscriptionError?t.errors:t)},[])}var i=e("./util/isArray"),o=e("./util/isObject"),s=e("./util/isFunction"),a=e("./util/tryCatch"),c=e("./util/errorObject"),u=e("./util/UnsubscriptionError"),h=function(){function e(e){this.closed=!1,this._parent=null,this._parents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var e,t=!1;if(!this.closed){var r=this._parent,h=this._parents,l=this._unsubscribe,p=this._subscriptions;this.closed=!0,this._parent=null,this._parents=null,this._subscriptions=null;for(var f=-1,d=h?h.length:0;r;)r.remove(this),r=++f<d&&h[f]||null;if(s.isFunction(l)){(v=a.tryCatch(l).call(this))===c.errorObject&&(t=!0,e=e||(c.errorObject.e instanceof u.UnsubscriptionError?n(c.errorObject.e.errors):[c.errorObject.e]))}if(i.isArray(p))for(f=-1,d=p.length;++f<d;){var m=p[f];if(o.isObject(m)){var v=a.tryCatch(m.unsubscribe).call(m);if(v===c.errorObject){t=!0,e=e||[];var g=c.errorObject.e;g instanceof u.UnsubscriptionError?e=e.concat(n(g.errors)):e.push(g)}}}if(t)throw new u.UnsubscriptionError(e)}},e.prototype.add=function(t){if(!t||t===e.EMPTY)return e.EMPTY;if(t===this)return this;var r=t;switch(typeof t){case"function":r=new e(t);case"object":if(r.closed||"function"!=typeof r.unsubscribe)return r;if(this.closed)return r.unsubscribe(),r;if("function"!=typeof r._addParent){var n=r;(r=new e)._subscriptions=[n]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}return(this._subscriptions||(this._subscriptions=[])).push(r),r._addParent(this),r},e.prototype.remove=function(e){var t=this._subscriptions;if(t){var r=t.indexOf(e);-1!==r&&t.splice(r,1)}},e.prototype._addParent=function(e){var t=this._parent,r=this._parents;t&&t!==e?r?-1===r.indexOf(e)&&r.push(e):this._parents=[e]:this._parent=e},e.EMPTY=function(e){return e.closed=!0,e}(new e),e}();r.Subscription=h},{"./util/UnsubscriptionError":223,"./util/errorObject":224,"./util/isArray":226,"./util/isFunction":229,"./util/isObject":231,"./util/tryCatch":239}],38:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/combineLatest");n.Observable.combineLatest=i.combineLatest},{"../../Observable":29,"../../observable/combineLatest":104}],39:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/concat");n.Observable.concat=i.concat},{"../../Observable":29,"../../observable/concat":105}],40:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/defer");n.Observable.defer=i.defer},{"../../Observable":29,"../../observable/defer":106}],41:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/empty");n.Observable.empty=i.empty},{"../../Observable":29,"../../observable/empty":107}],42:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/from");n.Observable.from=i.from},{"../../Observable":29,"../../observable/from":108}],43:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/fromEvent");n.Observable.fromEvent=i.fromEvent},{"../../Observable":29,"../../observable/fromEvent":109}],44:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/fromPromise");n.Observable.fromPromise=i.fromPromise},{"../../Observable":29,"../../observable/fromPromise":110}],45:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/merge");n.Observable.merge=i.merge},{"../../Observable":29,"../../observable/merge":111}],46:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/of");n.Observable.of=i.of},{"../../Observable":29,"../../observable/of":112}],47:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/throw");n.Observable.throw=i._throw},{"../../Observable":29,"../../observable/throw":113}],48:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/timer");n.Observable.timer=i.timer},{"../../Observable":29,"../../observable/timer":114}],49:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../observable/zip");n.Observable.zip=i.zip},{"../../Observable":29,"../../observable/zip":115}],50:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/auditTime");n.Observable.prototype.auditTime=i.auditTime},{"../../Observable":29,"../../operator/auditTime":116}],51:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/buffer");n.Observable.prototype.buffer=i.buffer},{"../../Observable":29,"../../operator/buffer":117}],52:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/bufferCount");n.Observable.prototype.bufferCount=i.bufferCount},{"../../Observable":29,"../../operator/bufferCount":118}],53:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/bufferWhen");n.Observable.prototype.bufferWhen=i.bufferWhen},{"../../Observable":29,"../../operator/bufferWhen":119}],54:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/catch");n.Observable.prototype.catch=i._catch,n.Observable.prototype._catch=i._catch},{"../../Observable":29,"../../operator/catch":120}],55:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/combineLatest");n.Observable.prototype.combineLatest=i.combineLatest},{"../../Observable":29,"../../operator/combineLatest":121}],56:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/concat");n.Observable.prototype.concat=i.concat},{"../../Observable":29,"../../operator/concat":122}],57:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/count");n.Observable.prototype.count=i.count},{"../../Observable":29,"../../operator/count":123}],58:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/debounceTime");n.Observable.prototype.debounceTime=i.debounceTime},{"../../Observable":29,"../../operator/debounceTime":124}],59:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/delay");n.Observable.prototype.delay=i.delay},{"../../Observable":29,"../../operator/delay":125}],60:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/distinct");n.Observable.prototype.distinct=i.distinct},{"../../Observable":29,"../../operator/distinct":126}],61:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/distinctUntilChanged");n.Observable.prototype.distinctUntilChanged=i.distinctUntilChanged},{"../../Observable":29,"../../operator/distinctUntilChanged":127}],62:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/do");n.Observable.prototype.do=i._do,n.Observable.prototype._do=i._do},{"../../Observable":29,"../../operator/do":128}],63:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/expand");n.Observable.prototype.expand=i.expand},{"../../Observable":29,"../../operator/expand":129}],64:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/filter");n.Observable.prototype.filter=i.filter},{"../../Observable":29,"../../operator/filter":130}],65:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/finally");n.Observable.prototype.finally=i._finally,n.Observable.prototype._finally=i._finally},{"../../Observable":29,"../../operator/finally":131}],66:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/first");n.Observable.prototype.first=i.first},{"../../Observable":29,"../../operator/first":132}],67:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/last");n.Observable.prototype.last=i.last},{"../../Observable":29,"../../operator/last":133}],68:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/map");n.Observable.prototype.map=i.map},{"../../Observable":29,"../../operator/map":134}],69:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/merge");n.Observable.prototype.merge=i.merge},{"../../Observable":29,"../../operator/merge":135}],70:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/mergeAll");n.Observable.prototype.mergeAll=i.mergeAll},{"../../Observable":29,"../../operator/mergeAll":136}],71:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/mergeMap");n.Observable.prototype.mergeMap=i.mergeMap,n.Observable.prototype.flatMap=i.mergeMap},{"../../Observable":29,"../../operator/mergeMap":137}],72:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/pairwise");n.Observable.prototype.pairwise=i.pairwise},{"../../Observable":29,"../../operator/pairwise":138}],73:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/pluck");n.Observable.prototype.pluck=i.pluck},{"../../Observable":29,"../../operator/pluck":139}],74:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/publish");n.Observable.prototype.publish=i.publish},{"../../Observable":29,"../../operator/publish":140}],75:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/publishReplay");n.Observable.prototype.publishReplay=i.publishReplay},{"../../Observable":29,"../../operator/publishReplay":141}],76:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/reduce");n.Observable.prototype.reduce=i.reduce},{"../../Observable":29,"../../operator/reduce":142}],77:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/retry");n.Observable.prototype.retry=i.retry},{"../../Observable":29,"../../operator/retry":143}],78:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/sample");n.Observable.prototype.sample=i.sample},{"../../Observable":29,"../../operator/sample":144}],79:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/scan");n.Observable.prototype.scan=i.scan},{"../../Observable":29,"../../operator/scan":145}],80:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/share");n.Observable.prototype.share=i.share},{"../../Observable":29,"../../operator/share":146}],81:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/skip");n.Observable.prototype.skip=i.skip},{"../../Observable":29,"../../operator/skip":147}],82:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/skipUntil");n.Observable.prototype.skipUntil=i.skipUntil},{"../../Observable":29,"../../operator/skipUntil":148}],83:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/skipWhile");n.Observable.prototype.skipWhile=i.skipWhile},{"../../Observable":29,"../../operator/skipWhile":149}],84:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/startWith");n.Observable.prototype.startWith=i.startWith},{"../../Observable":29,"../../operator/startWith":150}],85:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/switchMap");n.Observable.prototype.switchMap=i.switchMap},{"../../Observable":29,"../../operator/switchMap":151}],86:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/take");n.Observable.prototype.take=i.take},{"../../Observable":29,"../../operator/take":152}],87:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/takeUntil");n.Observable.prototype.takeUntil=i.takeUntil},{"../../Observable":29,"../../operator/takeUntil":153}],88:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/takeWhile");n.Observable.prototype.takeWhile=i.takeWhile},{"../../Observable":29,"../../operator/takeWhile":154}],89:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/timeout");n.Observable.prototype.timeout=i.timeout},{"../../Observable":29,"../../operator/timeout":155}],90:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/withLatestFrom");n.Observable.prototype.withLatestFrom=i.withLatestFrom},{"../../Observable":29,"../../operator/withLatestFrom":156}],91:[function(e,t,r){"use strict";var n=e("../../Observable"),i=e("../../operator/zip");n.Observable.prototype.zip=i.zipProto},{"../../Observable":29,"../../operator/zip":157}],92:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Observable"),o=e("./ScalarObservable"),s=e("./EmptyObservable"),a=function(e){function t(t,r){e.call(this),this.arrayLike=t,this.scheduler=r,r||1!==t.length||(this._isScalar=!0,this.value=t[0])}return n(t,e),t.create=function(e,r){var n=e.length;return 0===n?new s.EmptyObservable:1===n?new o.ScalarObservable(e[0],r):new t(e,r)},t.dispatch=function(e){var t=e.arrayLike,r=e.index,n=e.length,i=e.subscriber;i.closed||(r>=n?i.complete():(i.next(t[r]),e.index=r+1,this.schedule(e)))},t.prototype._subscribe=function(e){var r=this.arrayLike,n=this.scheduler,i=r.length;if(n)return n.schedule(t.dispatch,0,{arrayLike:r,index:0,length:i,subscriber:e});for(var o=0;o<i&&!e.closed;o++)e.next(r[o]);e.complete()},t}(i.Observable);r.ArrayLikeObservable=a},{"../Observable":29,"./EmptyObservable":96,"./ScalarObservable":102}],93:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Observable"),o=e("./ScalarObservable"),s=e("./EmptyObservable"),a=e("../util/isScheduler"),c=function(e){function t(t,r){e.call(this),this.array=t,this.scheduler=r,r||1!==t.length||(this._isScalar=!0,this.value=t[0])}return n(t,e),t.create=function(e,r){return new t(e,r)},t.of=function(){for(var e=[],r=0;r<arguments.length;r++)e[r-0]=arguments[r];var n=e[e.length-1];a.isScheduler(n)?e.pop():n=null;var i=e.length;return i>1?new t(e,n):1===i?new o.ScalarObservable(e[0],n):new s.EmptyObservable(n)},t.dispatch=function(e){var t=e.array,r=e.index,n=e.count,i=e.subscriber;r>=n?i.complete():(i.next(t[r]),i.closed||(e.index=r+1,this.schedule(e)))},t.prototype._subscribe=function(e){var r=this.array,n=r.length,i=this.scheduler;if(i)return i.schedule(t.dispatch,0,{array:r,index:0,count:n,subscriber:e});for(var o=0;o<n&&!e.closed;o++)e.next(r[o]);e.complete()},t}(i.Observable);r.ArrayObservable=c},{"../Observable":29,"../util/isScheduler":233,"./EmptyObservable":96,"./ScalarObservable":102}],94:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subject"),o=e("../Observable"),s=e("../Subscriber"),a=e("../Subscription"),c=e("../operators/refCount"),u=function(e){function t(t,r){e.call(this),this.source=t,this.subjectFactory=r,this._refCount=0,this._isComplete=!1}return n(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype.connect=function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new a.Subscription).add(this.source.subscribe(new l(this.getSubject(),this))),e.closed?(this._connection=null,e=a.Subscription.EMPTY):this._connection=e),e},t.prototype.refCount=function(){return c.refCount()(this)},t}(o.Observable);r.ConnectableObservable=u;var h=u.prototype;r.connectableObservableDescriptor={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:h._subscribe},_isComplete:{value:h._isComplete,writable:!0},getSubject:{value:h.getSubject},connect:{value:h.connect},refCount:{value:h.refCount}};var l=function(e){function t(t,r){e.call(this,t),this.connectable=r}return n(t,e),t.prototype._error=function(t){this._unsubscribe(),e.prototype._error.call(this,t)},t.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}},t}(i.SubjectSubscriber),p=(function(){function e(e){this.connectable=e}e.prototype.call=function(e,t){var r=this.connectable;r._refCount++;var n=new p(e,r),i=t.subscribe(n);return n.closed||(n.connection=r.connect()),i}}(),function(e){function t(t,r){e.call(this,t),this.connectable=r}return n(t,e),t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var r=this.connection,n=e._connection;this.connection=null,!n||r&&n!==r||n.unsubscribe()}}else this.connection=null},t}(s.Subscriber))},{"../Observable":29,"../Subject":34,"../Subscriber":36,"../Subscription":37,"../operators/refCount":189}],95:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Observable"),o=e("../util/subscribeToResult"),s=e("../OuterSubscriber"),a=function(e){function t(t){e.call(this),this.observableFactory=t}return n(t,e),t.create=function(e){return new t(e)},t.prototype._subscribe=function(e){return new c(e,this.observableFactory)},t}(i.Observable);r.DeferObservable=a;var c=function(e){function t(t,r){e.call(this,t),this.factory=r,this.tryDefer()}return n(t,e),t.prototype.tryDefer=function(){try{this._callFactory()}catch(e){this._error(e)}},t.prototype._callFactory=function(){var e=this.factory();e&&this.add(o.subscribeToResult(this,e))},t}(s.OuterSubscriber)},{"../Observable":29,"../OuterSubscriber":31,"../util/subscribeToResult":237}],96:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t){e.call(this),this.scheduler=t}return n(t,e),t.create=function(e){return new t(e)},t.dispatch=function(e){e.subscriber.complete()},t.prototype._subscribe=function(e){var r=this.scheduler;if(r)return r.schedule(t.dispatch,0,{subscriber:e});e.complete()},t}(e("../Observable").Observable);r.EmptyObservable=i},{"../Observable":29}],97:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r){e.call(this),this.error=t,this.scheduler=r}return n(t,e),t.create=function(e,r){return new t(e,r)},t.dispatch=function(e){var t=e.error;e.subscriber.error(t)},t.prototype._subscribe=function(e){var r=this.error,n=this.scheduler;if(e.syncErrorThrowable=!0,n)return n.schedule(t.dispatch,0,{error:r,subscriber:e});e.error(r)},t}(e("../Observable").Observable);r.ErrorObservable=i},{"../Observable":29}],98:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Observable"),o=e("../util/tryCatch"),s=e("../util/isFunction"),a=e("../util/errorObject"),c=e("../Subscription"),u=Object.prototype.toString,h=function(e){function t(t,r,n,i){e.call(this),this.sourceObj=t,this.eventName=r,this.selector=n,this.options=i}return n(t,e),t.create=function(e,r,n,i){return s.isFunction(n)&&(i=n,n=void 0),new t(e,r,i,n)},t.setupSubscription=function(e,r,n,i,o){var s;if(function(e){return!!e&&"[object NodeList]"===u.call(e)}(e)||function(e){return!!e&&"[object HTMLCollection]"===u.call(e)}(e))for(var a=0,h=e.length;a<h;a++)t.setupSubscription(e[a],r,n,i,o);else if(function(e){return!!e&&"function"==typeof e.addEventListener&&"function"==typeof e.removeEventListener}(e)){var l=e;e.addEventListener(r,n,o),s=function(){return l.removeEventListener(r,n)}}else if(function(e){return!!e&&"function"==typeof e.on&&"function"==typeof e.off}(e)){var p=e;e.on(r,n),s=function(){return p.off(r,n)}}else{if(!function(e){return!!e&&"function"==typeof e.addListener&&"function"==typeof e.removeListener}(e))throw new TypeError("Invalid event target");var f=e;e.addListener(r,n),s=function(){return f.removeListener(r,n)}}i.add(new c.Subscription(s))},t.prototype._subscribe=function(e){var r=this.sourceObj,n=this.eventName,i=this.options,s=this.selector;t.setupSubscription(r,n,s?function(){for(var t=[],r=0;r<arguments.length;r++)t[r-0]=arguments[r];var n=o.tryCatch(s).apply(void 0,t);n===a.errorObject?e.error(a.errorObject.e):e.next(n)}:function(t){return e.next(t)},e,i)},t}(i.Observable);r.FromEventObservable=h},{"../Observable":29,"../Subscription":37,"../util/errorObject":224,"../util/isFunction":229,"../util/tryCatch":239}],99:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/isArray"),o=e("../util/isArrayLike"),s=e("../util/isPromise"),a=e("./PromiseObservable"),c=e("./IteratorObservable"),u=e("./ArrayObservable"),h=e("./ArrayLikeObservable"),l=e("../symbol/iterator"),p=e("../Observable"),f=e("../operators/observeOn"),d=e("../symbol/observable"),m=function(e){function t(t,r){e.call(this,null),this.ish=t,this.scheduler=r}return n(t,e),t.create=function(e,r){if(null!=e){if("function"==typeof e[d.observable])return e instanceof p.Observable&&!r?e:new t(e,r);if(i.isArray(e))return new u.ArrayObservable(e,r);if(s.isPromise(e))return new a.PromiseObservable(e,r);if("function"==typeof e[l.iterator]||"string"==typeof e)return new c.IteratorObservable(e,r);if(o.isArrayLike(e))return new h.ArrayLikeObservable(e,r)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")},t.prototype._subscribe=function(e){var t=this.ish,r=this.scheduler;return null==r?t[d.observable]().subscribe(e):t[d.observable]().subscribe(new f.ObserveOnSubscriber(e,r,0))},t}(p.Observable);r.FromObservable=m},{"../Observable":29,"../operators/observeOn":183,"../symbol/iterator":214,"../symbol/observable":215,"../util/isArray":226,"../util/isArrayLike":227,"../util/isPromise":232,"./ArrayLikeObservable":92,"./ArrayObservable":93,"./IteratorObservable":100,"./PromiseObservable":101}],100:[function(e,t,r){"use strict";function n(e){var t=+e.length;return isNaN(t)?0:0!==t&&function(e){return"number"==typeof e&&o.root.isFinite(e)}(t)?(t=function(e){var t=+e;if(0===t)return t;if(isNaN(t))return t;return t<0?-1:1}(t)*Math.floor(Math.abs(t)))<=0?0:t>l?l:t:t}var i=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},o=e("../util/root"),s=e("../Observable"),a=e("../symbol/iterator"),c=function(e){function t(t,r){if(e.call(this),this.scheduler=r,null==t)throw new Error("iterator cannot be null.");this.iterator=function(e){var t=e[a.iterator];if(!t&&"string"==typeof e)return new u(e);if(!t&&void 0!==e.length)return new h(e);if(!t)throw new TypeError("object is not iterable");return e[a.iterator]()}(t)}return i(t,e),t.create=function(e,r){return new t(e,r)},t.dispatch=function(e){var t=e.index,r=e.hasError,n=e.iterator,i=e.subscriber;if(r)i.error(e.error);else{var o=n.next();o.done?i.complete():(i.next(o.value),e.index=t+1,i.closed?"function"==typeof n.return&&n.return():this.schedule(e))}},t.prototype._subscribe=function(e){var r=this.iterator,n=this.scheduler;if(n)return n.schedule(t.dispatch,0,{index:0,iterator:r,subscriber:e});for(;;){var i=r.next();if(i.done){e.complete();break}if(e.next(i.value),e.closed){"function"==typeof r.return&&r.return();break}}},t}(s.Observable);r.IteratorObservable=c;var u=function(){function e(e,t,r){void 0===t&&(t=0),void 0===r&&(r=e.length),this.str=e,this.idx=t,this.len=r}return e.prototype[a.iterator]=function(){return this},e.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.str.charAt(this.idx++)}:{done:!0,value:void 0}},e}(),h=function(){function e(e,t,r){void 0===t&&(t=0),void 0===r&&(r=n(e)),this.arr=e,this.idx=t,this.len=r}return e.prototype[a.iterator]=function(){return this},e.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.arr[this.idx++]}:{done:!0,value:void 0}},e}(),l=Math.pow(2,53)-1},{"../Observable":29,"../symbol/iterator":214,"../util/root":236}],101:[function(e,t,r){"use strict";function n(e){var t=e.value,r=e.subscriber;r.closed||(r.next(t),r.complete())}function i(e){var t=e.err,r=e.subscriber;r.closed||r.error(t)}var o=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},s=e("../util/root"),a=function(e){function t(t,r){e.call(this),this.promise=t,this.scheduler=r}return o(t,e),t.create=function(e,r){return new t(e,r)},t.prototype._subscribe=function(e){var t=this,r=this.promise,o=this.scheduler;if(null==o)this._isScalar?e.closed||(e.next(this.value),e.complete()):r.then(function(r){t.value=r,t._isScalar=!0,e.closed||(e.next(r),e.complete())},function(t){e.closed||e.error(t)}).then(null,function(e){s.root.setTimeout(function(){throw e})});else if(this._isScalar){if(!e.closed)return o.schedule(n,0,{value:this.value,subscriber:e})}else r.then(function(r){t.value=r,t._isScalar=!0,e.closed||e.add(o.schedule(n,0,{value:r,subscriber:e}))},function(t){e.closed||e.add(o.schedule(i,0,{err:t,subscriber:e}))}).then(null,function(e){s.root.setTimeout(function(){throw e})})},t}(e("../Observable").Observable);r.PromiseObservable=a},{"../Observable":29,"../util/root":236}],102:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r){e.call(this),this.value=t,this.scheduler=r,this._isScalar=!0,r&&(this._isScalar=!1)}return n(t,e),t.create=function(e,r){return new t(e,r)},t.dispatch=function(e){var t=e.done,r=e.value,n=e.subscriber;t?n.complete():(n.next(r),n.closed||(e.done=!0,this.schedule(e)))},t.prototype._subscribe=function(e){var r=this.value,n=this.scheduler;if(n)return n.schedule(t.dispatch,0,{done:!1,value:r,subscriber:e});e.next(r),e.closed||e.complete()},t}(e("../Observable").Observable);r.ScalarObservable=i},{"../Observable":29}],103:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/isNumeric"),o=e("../Observable"),s=e("../scheduler/async"),a=e("../util/isScheduler"),c=e("../util/isDate"),u=function(e){function t(t,r,n){void 0===t&&(t=0),e.call(this),this.period=-1,this.dueTime=0,i.isNumeric(r)?this.period=Number(r)<1&&1||Number(r):a.isScheduler(r)&&(n=r),a.isScheduler(n)||(n=s.async),this.scheduler=n,this.dueTime=c.isDate(t)?+t-this.scheduler.now():t}return n(t,e),t.create=function(e,r,n){return void 0===e&&(e=0),new t(e,r,n)},t.dispatch=function(e){var t=e.index,r=e.period,n=e.subscriber;if(n.next(t),!n.closed){if(-1===r)return n.complete();e.index=t+1,this.schedule(e,r)}},t.prototype._subscribe=function(e){var r=this.period,n=this.dueTime;return this.scheduler.schedule(t.dispatch,n,{index:0,period:r,subscriber:e})},t}(o.Observable);r.TimerObservable=u},{"../Observable":29,"../scheduler/async":212,"../util/isDate":228,"../util/isNumeric":230,"../util/isScheduler":233}],104:[function(e,t,r){"use strict";var n=e("../util/isScheduler"),i=e("../util/isArray"),o=e("./ArrayObservable"),s=e("../operators/combineLatest");r.combineLatest=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var r=null,a=null;return n.isScheduler(e[e.length-1])&&(a=e.pop()),"function"==typeof e[e.length-1]&&(r=e.pop()),1===e.length&&i.isArray(e[0])&&(e=e[0]),new o.ArrayObservable(e,a).lift(new s.CombineLatestOperator(r))}},{"../operators/combineLatest":164,"../util/isArray":226,"../util/isScheduler":233,"./ArrayObservable":93}],105:[function(e,t,r){"use strict";var n=e("../util/isScheduler"),i=e("./of"),o=e("./from"),s=e("../operators/concatAll");r.concat=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return 1===e.length||2===e.length&&n.isScheduler(e[1])?o.from(e[0]):s.concatAll()(i.of.apply(void 0,e))}},{"../operators/concatAll":166,"../util/isScheduler":233,"./from":108,"./of":112}],106:[function(e,t,r){"use strict";var n=e("./DeferObservable");r.defer=n.DeferObservable.create},{"./DeferObservable":95}],107:[function(e,t,r){"use strict";var n=e("./EmptyObservable");r.empty=n.EmptyObservable.create},{"./EmptyObservable":96}],108:[function(e,t,r){"use strict";var n=e("./FromObservable");r.from=n.FromObservable.create},{"./FromObservable":99}],109:[function(e,t,r){"use strict";var n=e("./FromEventObservable");r.fromEvent=n.FromEventObservable.create},{"./FromEventObservable":98}],110:[function(e,t,r){"use strict";var n=e("./PromiseObservable");r.fromPromise=n.PromiseObservable.create},{"./PromiseObservable":101}],111:[function(e,t,r){"use strict";var n=e("../operator/merge");r.merge=n.mergeStatic},{"../operator/merge":135}],112:[function(e,t,r){"use strict";var n=e("./ArrayObservable");r.of=n.ArrayObservable.of},{"./ArrayObservable":93}],113:[function(e,t,r){"use strict";var n=e("./ErrorObservable");r._throw=n.ErrorObservable.create},{"./ErrorObservable":97}],114:[function(e,t,r){"use strict";var n=e("./TimerObservable");r.timer=n.TimerObservable.create},{"./TimerObservable":103}],115:[function(e,t,r){"use strict";var n=e("../operators/zip");r.zip=n.zipStatic},{"../operators/zip":206}],116:[function(e,t,r){"use strict";var n=e("../scheduler/async"),i=e("../operators/auditTime");r.auditTime=function(e,t){return void 0===t&&(t=n.async),i.auditTime(e,t)(this)}},{"../operators/auditTime":159,"../scheduler/async":212}],117:[function(e,t,r){"use strict";var n=e("../operators/buffer");r.buffer=function(e){return n.buffer(e)(this)}},{"../operators/buffer":160}],118:[function(e,t,r){"use strict";var n=e("../operators/bufferCount");r.bufferCount=function(e,t){return void 0===t&&(t=null),n.bufferCount(e,t)(this)}},{"../operators/bufferCount":161}],119:[function(e,t,r){"use strict";var n=e("../operators/bufferWhen");r.bufferWhen=function(e){return n.bufferWhen(e)(this)}},{"../operators/bufferWhen":162}],120:[function(e,t,r){"use strict";var n=e("../operators/catchError");r._catch=function(e){return n.catchError(e)(this)}},{"../operators/catchError":163}],121:[function(e,t,r){"use strict";var n=e("../operators/combineLatest");r.combineLatest=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.combineLatest.apply(void 0,e)(this)}},{"../operators/combineLatest":164}],122:[function(e,t,r){"use strict";var n=e("../operators/concat");r.concat=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.concat.apply(void 0,e)(this)}},{"../operators/concat":165}],123:[function(e,t,r){"use strict";var n=e("../operators/count");r.count=function(e){return n.count(e)(this)}},{"../operators/count":167}],124:[function(e,t,r){"use strict";var n=e("../scheduler/async"),i=e("../operators/debounceTime");r.debounceTime=function(e,t){return void 0===t&&(t=n.async),i.debounceTime(e,t)(this)}},{"../operators/debounceTime":168,"../scheduler/async":212}],125:[function(e,t,r){"use strict";var n=e("../scheduler/async"),i=e("../operators/delay");r.delay=function(e,t){return void 0===t&&(t=n.async),i.delay(e,t)(this)}},{"../operators/delay":170,"../scheduler/async":212}],126:[function(e,t,r){"use strict";var n=e("../operators/distinct");r.distinct=function(e,t){return n.distinct(e,t)(this)}},{"../operators/distinct":171}],127:[function(e,t,r){"use strict";var n=e("../operators/distinctUntilChanged");r.distinctUntilChanged=function(e,t){return n.distinctUntilChanged(e,t)(this)}},{"../operators/distinctUntilChanged":172}],128:[function(e,t,r){"use strict";var n=e("../operators/tap");r._do=function(e,t,r){return n.tap(e,t,r)(this)}},{"../operators/tap":203}],129:[function(e,t,r){"use strict";var n=e("../operators/expand");r.expand=function(e,t,r){return void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=void 0),t=(t||0)<1?Number.POSITIVE_INFINITY:t,n.expand(e,t,r)(this)}},{"../operators/expand":173}],130:[function(e,t,r){"use strict";var n=e("../operators/filter");r.filter=function(e,t){return n.filter(e,t)(this)}},{"../operators/filter":174}],131:[function(e,t,r){"use strict";var n=e("../operators/finalize");r._finally=function(e){return n.finalize(e)(this)}},{"../operators/finalize":175}],132:[function(e,t,r){"use strict";var n=e("../operators/first");r.first=function(e,t,r){return n.first(e,t,r)(this)}},{"../operators/first":176}],133:[function(e,t,r){"use strict";var n=e("../operators/last");r.last=function(e,t,r){return n.last(e,t,r)(this)}},{"../operators/last":177}],134:[function(e,t,r){"use strict";var n=e("../operators/map");r.map=function(e,t){return n.map(e,t)(this)}},{"../operators/map":178}],135:[function(e,t,r){"use strict";var n=e("../operators/merge"),i=e("../operators/merge");r.mergeStatic=i.mergeStatic,r.merge=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.merge.apply(void 0,e)(this)}},{"../operators/merge":179}],136:[function(e,t,r){"use strict";var n=e("../operators/mergeAll");r.mergeAll=function(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),n.mergeAll(e)(this)}},{"../operators/mergeAll":180}],137:[function(e,t,r){"use strict";var n=e("../operators/mergeMap");r.mergeMap=function(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),n.mergeMap(e,t,r)(this)}},{"../operators/mergeMap":181}],138:[function(e,t,r){"use strict";var n=e("../operators/pairwise");r.pairwise=function(){return n.pairwise()(this)}},{"../operators/pairwise":184}],139:[function(e,t,r){"use strict";var n=e("../operators/pluck");r.pluck=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.pluck.apply(void 0,e)(this)}},{"../operators/pluck":185}],140:[function(e,t,r){"use strict";var n=e("../operators/publish");r.publish=function(e){return n.publish(e)(this)}},{"../operators/publish":186}],141:[function(e,t,r){"use strict";var n=e("../operators/publishReplay");r.publishReplay=function(e,t,r,i){return n.publishReplay(e,t,r,i)(this)}},{"../operators/publishReplay":187}],142:[function(e,t,r){"use strict";var n=e("../operators/reduce");r.reduce=function(e,t){return arguments.length>=2?n.reduce(e,t)(this):n.reduce(e)(this)}},{"../operators/reduce":188}],143:[function(e,t,r){"use strict";var n=e("../operators/retry");r.retry=function(e){return void 0===e&&(e=-1),n.retry(e)(this)}},{"../operators/retry":190}],144:[function(e,t,r){"use strict";var n=e("../operators/sample");r.sample=function(e){return n.sample(e)(this)}},{"../operators/sample":191}],145:[function(e,t,r){"use strict";var n=e("../operators/scan");r.scan=function(e,t){return arguments.length>=2?n.scan(e,t)(this):n.scan(e)(this)}},{"../operators/scan":192}],146:[function(e,t,r){"use strict";var n=e("../operators/share");r.share=function(){return n.share()(this)}},{"../operators/share":193}],147:[function(e,t,r){"use strict";var n=e("../operators/skip");r.skip=function(e){return n.skip(e)(this)}},{"../operators/skip":194}],148:[function(e,t,r){"use strict";var n=e("../operators/skipUntil");r.skipUntil=function(e){return n.skipUntil(e)(this)}},{"../operators/skipUntil":195}],149:[function(e,t,r){"use strict";var n=e("../operators/skipWhile");r.skipWhile=function(e){return n.skipWhile(e)(this)}},{"../operators/skipWhile":196}],150:[function(e,t,r){"use strict";var n=e("../operators/startWith");r.startWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.startWith.apply(void 0,e)(this)}},{"../operators/startWith":197}],151:[function(e,t,r){"use strict";var n=e("../operators/switchMap");r.switchMap=function(e,t){return n.switchMap(e,t)(this)}},{"../operators/switchMap":198}],152:[function(e,t,r){"use strict";var n=e("../operators/take");r.take=function(e){return n.take(e)(this)}},{"../operators/take":199}],153:[function(e,t,r){"use strict";var n=e("../operators/takeUntil");r.takeUntil=function(e){return n.takeUntil(e)(this)}},{"../operators/takeUntil":201}],154:[function(e,t,r){"use strict";var n=e("../operators/takeWhile");r.takeWhile=function(e){return n.takeWhile(e)(this)}},{"../operators/takeWhile":202}],155:[function(e,t,r){"use strict";var n=e("../scheduler/async"),i=e("../operators/timeout");r.timeout=function(e,t){return void 0===t&&(t=n.async),i.timeout(e,t)(this)}},{"../operators/timeout":204,"../scheduler/async":212}],156:[function(e,t,r){"use strict";var n=e("../operators/withLatestFrom");r.withLatestFrom=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.withLatestFrom.apply(void 0,e)(this)}},{"../operators/withLatestFrom":205}],157:[function(e,t,r){"use strict";var n=e("../operators/zip");r.zipProto=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n.zip.apply(void 0,e)(this)}},{"../operators/zip":206}],158:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/tryCatch"),o=e("../util/errorObject"),s=e("../OuterSubscriber"),a=e("../util/subscribeToResult");r.audit=function(e){return function(t){return t.lift(new c(e))}};var c=function(){function e(e){this.durationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.durationSelector))},e}(),u=function(e){function t(t,r){e.call(this,t),this.durationSelector=r,this.hasValue=!1}return n(t,e),t.prototype._next=function(e){if(this.value=e,this.hasValue=!0,!this.throttled){var t=i.tryCatch(this.durationSelector)(e);if(t===o.errorObject)this.destination.error(o.errorObject.e);else{var r=a.subscribeToResult(this,t);r.closed?this.clearThrottle():this.add(this.throttled=r)}}},t.prototype.clearThrottle=function(){var e=this.value,t=this.hasValue,r=this.throttled;r&&(this.remove(r),this.throttled=null,r.unsubscribe()),t&&(this.value=null,this.hasValue=!1,this.destination.next(e))},t.prototype.notifyNext=function(e,t,r,n){this.clearThrottle()},t.prototype.notifyComplete=function(){this.clearThrottle()},t}(s.OuterSubscriber)},{"../OuterSubscriber":31,"../util/errorObject":224,"../util/subscribeToResult":237,"../util/tryCatch":239}],159:[function(e,t,r){"use strict";var n=e("../scheduler/async"),i=e("./audit"),o=e("../observable/timer");r.auditTime=function(e,t){return void 0===t&&(t=n.async),i.audit(function(){return o.timer(e,t)})}},{"../observable/timer":114,"../scheduler/async":212,"./audit":158}],160:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.buffer=function(e){return function(t){return t.lift(new s(e))}};var s=function(){function e(e){this.closingNotifier=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.closingNotifier))},e}(),a=function(e){function t(t,r){e.call(this,t),this.buffer=[],this.add(o.subscribeToResult(this,r))}return n(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.buffer;this.buffer=[],this.destination.next(o)},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":237}],161:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.bufferCount=function(e,t){return void 0===t&&(t=null),function(r){return r.lift(new o(e,t))}};var o=function(){function e(e,t){this.bufferSize=e,this.startBufferEvery=t,this.subscriberClass=t&&e!==t?a:s}return e.prototype.call=function(e,t){return t.subscribe(new this.subscriberClass(e,this.bufferSize,this.startBufferEvery))},e}(),s=function(e){function t(t,r){e.call(this,t),this.bufferSize=r,this.buffer=[]}return n(t,e),t.prototype._next=function(e){var t=this.buffer;t.push(e),t.length==this.bufferSize&&(this.destination.next(t),this.buffer=[])},t.prototype._complete=function(){var t=this.buffer;t.length>0&&this.destination.next(t),e.prototype._complete.call(this)},t}(i.Subscriber),a=function(e){function t(t,r,n){e.call(this,t),this.bufferSize=r,this.startBufferEvery=n,this.buffers=[],this.count=0}return n(t,e),t.prototype._next=function(e){var t=this.bufferSize,r=this.startBufferEvery,n=this.buffers,i=this.count;this.count++,i%r==0&&n.push([]);for(var o=n.length;o--;){var s=n[o];s.push(e),s.length===t&&(n.splice(o,1),this.destination.next(s))}},t.prototype._complete=function(){for(var t=this.buffers,r=this.destination;t.length>0;){var n=t.shift();n.length>0&&r.next(n)}e.prototype._complete.call(this)},t}(i.Subscriber)},{"../Subscriber":36}],162:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscription"),o=e("../util/tryCatch"),s=e("../util/errorObject"),a=e("../OuterSubscriber"),c=e("../util/subscribeToResult");r.bufferWhen=function(e){return function(t){return t.lift(new u(e))}};var u=function(){function e(e){this.closingSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new h(e,this.closingSelector))},e}(),h=function(e){function t(t,r){e.call(this,t),this.closingSelector=r,this.subscribing=!1,this.openBuffer()}return n(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype._complete=function(){var t=this.buffer;t&&this.destination.next(t),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},t.prototype.notifyNext=function(e,t,r,n,i){this.openBuffer()},t.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},t.prototype.openBuffer=function(){var e=this.closingSubscription;e&&(this.remove(e),e.unsubscribe());var t=this.buffer;this.buffer&&this.destination.next(t),this.buffer=[];var r=o.tryCatch(this.closingSelector)();r===s.errorObject?this.error(s.errorObject.e):(e=new i.Subscription,this.closingSubscription=e,this.add(e),this.subscribing=!0,e.add(c.subscribeToResult(this,r)),this.subscribing=!1)},t}(a.OuterSubscriber)},{"../OuterSubscriber":31,"../Subscription":37,"../util/errorObject":224,"../util/subscribeToResult":237,"../util/tryCatch":239}],163:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.catchError=function(e){return function(t){var r=new s(e),n=t.lift(r);return r.caught=n}};var s=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.selector,this.caught))},e}(),a=function(e){function t(t,r,n){e.call(this,t),this.selector=r,this.caught=n}return n(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=void 0;try{r=this.selector(t,this.caught)}catch(t){return void e.prototype.error.call(this,t)}this._unsubscribeAndRecycle(),this.add(o.subscribeToResult(this,r))}},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":237}],164:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../observable/ArrayObservable"),o=e("../util/isArray"),s=e("../OuterSubscriber"),a=e("../util/subscribeToResult"),c={};r.combineLatest=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var r=null;return"function"==typeof e[e.length-1]&&(r=e.pop()),1===e.length&&o.isArray(e[0])&&(e=e[0].slice()),function(t){return t.lift.call(new i.ArrayObservable([t].concat(e)),new u(r))}};var u=function(){function e(e){this.project=e}return e.prototype.call=function(e,t){return t.subscribe(new h(e,this.project))},e}();r.CombineLatestOperator=u;var h=function(e){function t(t,r){e.call(this,t),this.project=r,this.active=0,this.values=[],this.observables=[]}return n(t,e),t.prototype._next=function(e){this.values.push(c),this.observables.push(e)},t.prototype._complete=function(){var e=this.observables,t=e.length;if(0===t)this.destination.complete();else{this.active=t,this.toRespond=t;for(var r=0;r<t;r++){var n=e[r];this.add(a.subscribeToResult(this,n,n,r))}}},t.prototype.notifyComplete=function(e){0==(this.active-=1)&&this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.values,s=o[r],a=this.toRespond?s===c?--this.toRespond:this.toRespond:0;o[r]=t,0===a&&(this.project?this._tryProject(o):this.destination.next(o.slice()))},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(s.OuterSubscriber);r.CombineLatestSubscriber=h},{"../OuterSubscriber":31,"../observable/ArrayObservable":93,"../util/isArray":226,"../util/subscribeToResult":237}],165:[function(e,t,r){"use strict";var n=e("../observable/concat");r.concat=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){return t.lift.call(n.concat.apply(void 0,[t].concat(e)))}}},{"../observable/concat":105}],166:[function(e,t,r){"use strict";var n=e("./mergeAll");r.concatAll=function(){return n.mergeAll(1)}},{"./mergeAll":180}],167:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.count=function(e){return function(t){return t.lift(new o(e,t))}};var o=function(){function e(e,t){this.predicate=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.predicate,this.source))},e}(),s=function(e){function t(t,r,n){e.call(this,t),this.predicate=r,this.source=n,this.count=0,this.index=0}return n(t,e),t.prototype._next=function(e){this.predicate?this._tryPredicate(e):this.count++},t.prototype._tryPredicate=function(e){var t;try{t=this.predicate(e,this.index++,this.source)}catch(e){return void this.destination.error(e)}t&&this.count++},t.prototype._complete=function(){this.destination.next(this.count),this.destination.complete()},t}(i.Subscriber)},{"../Subscriber":36}],168:[function(e,t,r){"use strict";function n(e){e.debouncedNext()}var i=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},o=e("../Subscriber"),s=e("../scheduler/async");r.debounceTime=function(e,t){return void 0===t&&(t=s.async),function(r){return r.lift(new a(e,t))}};var a=function(){function e(e,t){this.dueTime=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new c(e,this.dueTime,this.scheduler))},e}(),c=function(e){function t(t,r,n){e.call(this,t),this.dueTime=r,this.scheduler=n,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}return i(t,e),t.prototype._next=function(e){this.clearDebounce(),this.lastValue=e,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(n,this.dueTime,this))},t.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},t.prototype.debouncedNext=function(){this.clearDebounce(),this.hasValue&&(this.destination.next(this.lastValue),this.lastValue=null,this.hasValue=!1)},t.prototype.clearDebounce=function(){var e=this.debouncedSubscription;null!==e&&(this.remove(e),e.unsubscribe(),this.debouncedSubscription=null)},t}(o.Subscriber)},{"../Subscriber":36,"../scheduler/async":212}],169:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.defaultIfEmpty=function(e){return void 0===e&&(e=null),function(t){return t.lift(new o(e))}};var o=function(){function e(e){this.defaultValue=e}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.defaultValue))},e}(),s=function(e){function t(t,r){e.call(this,t),this.defaultValue=r,this.isEmpty=!0}return n(t,e),t.prototype._next=function(e){this.isEmpty=!1,this.destination.next(e)},t.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()},t}(i.Subscriber)},{"../Subscriber":36}],170:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../scheduler/async"),o=e("../util/isDate"),s=e("../Subscriber"),a=e("../Notification");r.delay=function(e,t){void 0===t&&(t=i.async);var r=o.isDate(e)?+e-t.now():Math.abs(e);return function(e){return e.lift(new c(r,t))}};var c=function(){function e(e,t){this.delay=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.delay,this.scheduler))},e}(),u=function(e){function t(t,r,n){e.call(this,t),this.delay=r,this.scheduler=n,this.queue=[],this.active=!1,this.errored=!1}return n(t,e),t.dispatch=function(e){for(var t=e.source,r=t.queue,n=e.scheduler,i=e.destination;r.length>0&&r[0].time-n.now()<=0;)r.shift().notification.observe(i);if(r.length>0){var o=Math.max(0,r[0].time-n.now());this.schedule(e,o)}else t.active=!1},t.prototype._schedule=function(e){this.active=!0,this.add(e.schedule(t.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))},t.prototype.scheduleNotification=function(e){if(!0!==this.errored){var t=this.scheduler,r=new h(t.now()+this.delay,e);this.queue.push(r),!1===this.active&&this._schedule(t)}},t.prototype._next=function(e){this.scheduleNotification(a.Notification.createNext(e))},t.prototype._error=function(e){this.errored=!0,this.queue=[],this.destination.error(e)},t.prototype._complete=function(){this.scheduleNotification(a.Notification.createComplete())},t}(s.Subscriber),h=function(){return function(e,t){this.time=e,this.notification=t}}()},{"../Notification":28,"../Subscriber":36,"../scheduler/async":212,"../util/isDate":228}],171:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult"),s=e("../util/Set");r.distinct=function(e,t){return function(r){return r.lift(new a(e,t))}};var a=function(){function e(e,t){this.keySelector=e,this.flushes=t}return e.prototype.call=function(e,t){return t.subscribe(new c(e,this.keySelector,this.flushes))},e}(),c=function(e){function t(t,r,n){e.call(this,t),this.keySelector=r,this.values=new s.Set,n&&this.add(o.subscribeToResult(this,n))}return n(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.values.clear()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype._next=function(e){this.keySelector?this._useKeySelector(e):this._finalizeNext(e,e)},t.prototype._useKeySelector=function(e){var t,r=this.destination;try{t=this.keySelector(e)}catch(e){return void r.error(e)}this._finalizeNext(t,e)},t.prototype._finalizeNext=function(e,t){var r=this.values;r.has(e)||(r.add(e),this.destination.next(t))},t}(i.OuterSubscriber);r.DistinctSubscriber=c},{"../OuterSubscriber":31,"../util/Set":221,"../util/subscribeToResult":237}],172:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../util/tryCatch"),s=e("../util/errorObject");r.distinctUntilChanged=function(e,t){return function(r){return r.lift(new a(e,t))}};var a=function(){function e(e,t){this.compare=e,this.keySelector=t}return e.prototype.call=function(e,t){return t.subscribe(new c(e,this.compare,this.keySelector))},e}(),c=function(e){function t(t,r,n){e.call(this,t),this.keySelector=n,this.hasKey=!1,"function"==typeof r&&(this.compare=r)}return n(t,e),t.prototype.compare=function(e,t){return e===t},t.prototype._next=function(e){var t=e;if(this.keySelector&&(t=o.tryCatch(this.keySelector)(e))===s.errorObject)return this.destination.error(s.errorObject.e);var r=!1;if(this.hasKey){if((r=o.tryCatch(this.compare)(this.key,t))===s.errorObject)return this.destination.error(s.errorObject.e)}else this.hasKey=!0;!1===Boolean(r)&&(this.key=t,this.destination.next(e))},t}(i.Subscriber)},{"../Subscriber":36,"../util/errorObject":224,"../util/tryCatch":239}],173:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/tryCatch"),o=e("../util/errorObject"),s=e("../OuterSubscriber"),a=e("../util/subscribeToResult");r.expand=function(e,t,r){return void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=void 0),t=(t||0)<1?Number.POSITIVE_INFINITY:t,function(n){return n.lift(new c(e,t,r))}};var c=function(){function e(e,t,r){this.project=e,this.concurrent=t,this.scheduler=r}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.project,this.concurrent,this.scheduler))},e}();r.ExpandOperator=c;var u=function(e){function t(t,r,n,i){e.call(this,t),this.project=r,this.concurrent=n,this.scheduler=i,this.index=0,this.active=0,this.hasCompleted=!1,n<Number.POSITIVE_INFINITY&&(this.buffer=[])}return n(t,e),t.dispatch=function(e){var t=e.subscriber,r=e.result,n=e.value,i=e.index;t.subscribeToProjection(r,n,i)},t.prototype._next=function(e){var r=this.destination;if(r.closed)this._complete();else{var n=this.index++;if(this.active<this.concurrent){r.next(e);var s=i.tryCatch(this.project)(e,n);if(s===o.errorObject)r.error(o.errorObject.e);else if(this.scheduler){var a={subscriber:this,result:s,value:e,index:n};this.add(this.scheduler.schedule(t.dispatch,0,a))}else this.subscribeToProjection(s,e,n)}else this.buffer.push(e)}},t.prototype.subscribeToProjection=function(e,t,r){this.active++,this.add(a.subscribeToResult(this,e,t,r))},t.prototype._complete=function(){this.hasCompleted=!0,this.hasCompleted&&0===this.active&&this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){this._next(t)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.remove(e),this.active--,t&&t.length>0&&this._next(t.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},t}(s.OuterSubscriber);r.ExpandSubscriber=u},{"../OuterSubscriber":31,"../util/errorObject":224,"../util/subscribeToResult":237,"../util/tryCatch":239}],174:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.filter=function(e,t){return function(r){return r.lift(new o(e,t))}};var o=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.predicate,this.thisArg))},e}(),s=function(e){function t(t,r,n){e.call(this,t),this.predicate=r,this.thisArg=n,this.count=0}return n(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(i.Subscriber)},{"../Subscriber":36}],175:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../Subscription");r.finalize=function(e){return function(t){return t.lift(new s(e))}};var s=function(){function e(e){this.callback=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.callback))},e}(),a=function(e){function t(t,r){e.call(this,t),this.add(new o.Subscription(r))}return n(t,e),t}(i.Subscriber)},{"../Subscriber":36,"../Subscription":37}],176:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../util/EmptyError");r.first=function(e,t,r){return function(n){return n.lift(new s(e,t,r,n))}};var s=function(){function e(e,t,r,n){this.predicate=e,this.resultSelector=t,this.defaultValue=r,this.source=n}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.predicate,this.resultSelector,this.defaultValue,this.source))},e}(),a=function(e){function t(t,r,n,i,o){e.call(this,t),this.predicate=r,this.resultSelector=n,this.defaultValue=i,this.source=o,this.index=0,this.hasCompleted=!1,this._emitted=!1}return n(t,e),t.prototype._next=function(e){var t=this.index++;this.predicate?this._tryPredicate(e,t):this._emit(e,t)},t.prototype._tryPredicate=function(e,t){var r;try{r=this.predicate(e,t,this.source)}catch(e){return void this.destination.error(e)}r&&this._emit(e,t)},t.prototype._emit=function(e,t){this.resultSelector?this._tryResultSelector(e,t):this._emitFinal(e)},t.prototype._tryResultSelector=function(e,t){var r;try{r=this.resultSelector(e,t)}catch(e){return void this.destination.error(e)}this._emitFinal(r)},t.prototype._emitFinal=function(e){var t=this.destination;this._emitted||(this._emitted=!0,t.next(e),t.complete(),this.hasCompleted=!0)},t.prototype._complete=function(){var e=this.destination;this.hasCompleted||void 0===this.defaultValue?this.hasCompleted||e.error(new o.EmptyError):(e.next(this.defaultValue),e.complete())},t}(i.Subscriber)},{"../Subscriber":36,"../util/EmptyError":219}],177:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../util/EmptyError");r.last=function(e,t,r){return function(n){return n.lift(new s(e,t,r,n))}};var s=function(){function e(e,t,r,n){this.predicate=e,this.resultSelector=t,this.defaultValue=r,this.source=n}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.predicate,this.resultSelector,this.defaultValue,this.source))},e}(),a=function(e){function t(t,r,n,i,o){e.call(this,t),this.predicate=r,this.resultSelector=n,this.defaultValue=i,this.source=o,this.hasValue=!1,this.index=0,void 0!==i&&(this.lastValue=i,this.hasValue=!0)}return n(t,e),t.prototype._next=function(e){var t=this.index++;if(this.predicate)this._tryPredicate(e,t);else{if(this.resultSelector)return void this._tryResultSelector(e,t);this.lastValue=e,this.hasValue=!0}},t.prototype._tryPredicate=function(e,t){var r;try{r=this.predicate(e,t,this.source)}catch(e){return void this.destination.error(e)}if(r){if(this.resultSelector)return void this._tryResultSelector(e,t);this.lastValue=e,this.hasValue=!0}},t.prototype._tryResultSelector=function(e,t){var r;try{r=this.resultSelector(e,t)}catch(e){return void this.destination.error(e)}this.lastValue=r,this.hasValue=!0},t.prototype._complete=function(){var e=this.destination;this.hasValue?(e.next(this.lastValue),e.complete()):e.error(new o.EmptyError)},t}(i.Subscriber)},{"../Subscriber":36,"../util/EmptyError":219}],178:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.map=function(e,t){return function(r){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return r.lift(new o(e,t))}};var o=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.project,this.thisArg))},e}();r.MapOperator=o;var s=function(e){function t(t,r,n){e.call(this,t),this.project=r,this.count=0,this.thisArg=n||this}return n(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.Subscriber)},{"../Subscriber":36}],179:[function(e,t,r){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var r=Number.POSITIVE_INFINITY,n=null,c=e[e.length-1];return a.isScheduler(c)?(n=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(r=e.pop())):"number"==typeof c&&(r=e.pop()),null===n&&1===e.length&&e[0]instanceof i.Observable?e[0]:s.mergeAll(r)(new o.ArrayObservable(e,n))}var i=e("../Observable"),o=e("../observable/ArrayObservable"),s=e("./mergeAll"),a=e("../util/isScheduler");r.merge=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){return t.lift.call(n.apply(void 0,[t].concat(e)))}},r.mergeStatic=n},{"../Observable":29,"../observable/ArrayObservable":93,"../util/isScheduler":233,"./mergeAll":180}],180:[function(e,t,r){"use strict";var n=e("./mergeMap"),i=e("../util/identity");r.mergeAll=function(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),n.mergeMap(i.identity,null,e)}},{"../util/identity":225,"./mergeMap":181}],181:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/subscribeToResult"),o=e("../OuterSubscriber");r.mergeMap=function(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),function(n){return"number"==typeof t&&(r=t,t=null),n.lift(new s(e,t,r))}};var s=function(){function e(e,t,r){void 0===r&&(r=Number.POSITIVE_INFINITY),this.project=e,this.resultSelector=t,this.concurrent=r}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.project,this.resultSelector,this.concurrent))},e}();r.MergeMapOperator=s;var a=function(e){function t(t,r,n,i){void 0===i&&(i=Number.POSITIVE_INFINITY),e.call(this,t),this.project=r,this.resultSelector=n,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return n(t,e),t.prototype._next=function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)},t.prototype._tryNext=function(e){var t,r=this.index++;try{t=this.project(e,r)}catch(e){return void this.destination.error(e)}this.active++,this._innerSub(t,e,r)},t.prototype._innerSub=function(e,t,r){this.add(i.subscribeToResult(this,e,t,r))},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){this.resultSelector?this._notifyResultSelector(e,t,r,n):this.destination.next(t)},t.prototype._notifyResultSelector=function(e,t,r,n){var i;try{i=this.resultSelector(e,t,r,n)}catch(e){return void this.destination.error(e)}this.destination.next(i)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(o.OuterSubscriber);r.MergeMapSubscriber=a},{"../OuterSubscriber":31,"../util/subscribeToResult":237}],182:[function(e,t,r){"use strict";var n=e("../observable/ConnectableObservable");r.multicast=function(e,t){return function(r){var o;if(o="function"==typeof e?e:function(){return e},"function"==typeof t)return r.lift(new i(o,t));var s=Object.create(r,n.connectableObservableDescriptor);return s.source=r,s.subjectFactory=o,s}};var i=function(){function e(e,t){this.subjectFactory=e,this.selector=t}return e.prototype.call=function(e,t){var r=this.selector,n=this.subjectFactory(),i=r(n).subscribe(e);return i.add(t.subscribe(n)),i},e}();r.MulticastOperator=i},{"../observable/ConnectableObservable":94}],183:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../Notification");r.observeOn=function(e,t){return void 0===t&&(t=0),function(r){return r.lift(new s(e,t))}};var s=function(){function e(e,t){void 0===t&&(t=0),this.scheduler=e,this.delay=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.scheduler,this.delay))},e}();r.ObserveOnOperator=s;var a=function(e){function t(t,r,n){void 0===n&&(n=0),e.call(this,t),this.scheduler=r,this.delay=n}return n(t,e),t.dispatch=function(e){var t=e.notification,r=e.destination;t.observe(r),this.unsubscribe()},t.prototype.scheduleMessage=function(e){this.add(this.scheduler.schedule(t.dispatch,this.delay,new c(e,this.destination)))},t.prototype._next=function(e){this.scheduleMessage(o.Notification.createNext(e))},t.prototype._error=function(e){this.scheduleMessage(o.Notification.createError(e))},t.prototype._complete=function(){this.scheduleMessage(o.Notification.createComplete())},t}(i.Subscriber);r.ObserveOnSubscriber=a;var c=function(){return function(e,t){this.notification=e,this.destination=t}}();r.ObserveOnMessage=c},{"../Notification":28,"../Subscriber":36}],184:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.pairwise=function(){return function(e){return e.lift(new o)}};var o=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new s(e))},e}(),s=function(e){function t(t){e.call(this,t),this.hasPrev=!1}return n(t,e),t.prototype._next=function(e){this.hasPrev?this.destination.next([this.prev,e]):this.hasPrev=!0,this.prev=e},t}(i.Subscriber)},{"../Subscriber":36}],185:[function(e,t,r){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var r=e.length;if(0===r)throw new Error("list of properties cannot be empty.");return function(t){return i.map(function(e,t){return function(r){for(var n=r,i=0;i<t;i++){var o=n[e[i]];if(void 0===o)return;n=o}return n}}(e,r))(t)}}var i=e("./map");r.pluck=n},{"./map":178}],186:[function(e,t,r){"use strict";var n=e("../Subject"),i=e("./multicast");r.publish=function(e){return e?i.multicast(function(){return new n.Subject},e):i.multicast(new n.Subject)}},{"../Subject":34,"./multicast":182}],187:[function(e,t,r){"use strict";var n=e("../ReplaySubject"),i=e("./multicast");r.publishReplay=function(e,t,r,o){r&&"function"!=typeof r&&(o=r);var s="function"==typeof r?r:void 0,a=new n.ReplaySubject(e,t,o);return function(e){return i.multicast(function(){return a},s)(e)}}},{"../ReplaySubject":32,"./multicast":182}],188:[function(e,t,r){"use strict";var n=e("./scan"),i=e("./takeLast"),o=e("./defaultIfEmpty"),s=e("../util/pipe");r.reduce=function(e,t){return arguments.length>=2?function(r){return s.pipe(n.scan(e,t),i.takeLast(1),o.defaultIfEmpty(t))(r)}:function(t){return s.pipe(n.scan(function(t,r,n){return e(t,r,n+1)}),i.takeLast(1))(t)}}},{"../util/pipe":235,"./defaultIfEmpty":169,"./scan":192,"./takeLast":200}],189:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.refCount=function(){return function(e){return e.lift(new o(e))}};var o=function(){function e(e){this.connectable=e}return e.prototype.call=function(e,t){var r=this.connectable;r._refCount++;var n=new s(e,r),i=t.subscribe(n);return n.closed||(n.connection=r.connect()),i},e}(),s=function(e){function t(t,r){e.call(this,t),this.connectable=r}return n(t,e),t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var r=this.connection,n=e._connection;this.connection=null,!n||r&&n!==r||n.unsubscribe()}}else this.connection=null},t}(i.Subscriber)},{"../Subscriber":36}],190:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.retry=function(e){return void 0===e&&(e=-1),function(t){return t.lift(new o(e,t))}};var o=function(){function e(e,t){this.count=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.count,this.source))},e}(),s=function(e){function t(t,r,n){e.call(this,t),this.count=r,this.source=n}return n(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=this.source,n=this.count;if(0===n)return e.prototype.error.call(this,t);n>-1&&(this.count=n-1),r.subscribe(this._unsubscribeAndRecycle())}},t}(i.Subscriber)},{"../Subscriber":36}],191:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.sample=function(e){return function(t){return t.lift(new s(e))}};var s=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){var r=new a(e),n=t.subscribe(r);return n.add(o.subscribeToResult(r,this.notifier)),n},e}(),a=function(e){function t(){e.apply(this,arguments),this.hasValue=!1}return n(t,e),t.prototype._next=function(e){this.value=e,this.hasValue=!0},t.prototype.notifyNext=function(e,t,r,n,i){this.emitValue()},t.prototype.notifyComplete=function(){this.emitValue()},t.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":237}],192:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.scan=function(e,t){var r=!1;return arguments.length>=2&&(r=!0),function(n){return n.lift(new o(e,t,r))}};var o=function(){function e(e,t,r){void 0===r&&(r=!1),this.accumulator=e,this.seed=t,this.hasSeed=r}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.accumulator,this.seed,this.hasSeed))},e}(),s=function(e){function t(t,r,n,i){e.call(this,t),this.accumulator=r,this._seed=n,this.hasSeed=i,this.index=0}return n(t,e),Object.defineProperty(t.prototype,"seed",{get:function(){return this._seed},set:function(e){this.hasSeed=!0,this._seed=e},enumerable:!0,configurable:!0}),t.prototype._next=function(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)},t.prototype._tryNext=function(e){var t,r=this.index++;try{t=this.accumulator(this.seed,e,r)}catch(e){this.destination.error(e)}this.seed=t,this.destination.next(t)},t}(i.Subscriber)},{"../Subscriber":36}],193:[function(e,t,r){"use strict";function n(){return new s.Subject}var i=e("./multicast"),o=e("./refCount"),s=e("../Subject");r.share=function(){return function(e){return o.refCount()(i.multicast(n)(e))}}},{"../Subject":34,"./multicast":182,"./refCount":189}],194:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.skip=function(e){return function(t){return t.lift(new o(e))}};var o=function(){function e(e){this.total=e}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.total))},e}(),s=function(e){function t(t,r){e.call(this,t),this.total=r,this.count=0}return n(t,e),t.prototype._next=function(e){++this.count>this.total&&this.destination.next(e)},t}(i.Subscriber)},{"../Subscriber":36}],195:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.skipUntil=function(e){return function(t){return t.lift(new s(e))}};var s=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.notifier))},e}(),a=function(e){function t(t,r){e.call(this,t),this.hasValue=!1,this.isInnerStopped=!1,this.add(o.subscribeToResult(this,r))}return n(t,e),t.prototype._next=function(t){this.hasValue&&e.prototype._next.call(this,t)},t.prototype._complete=function(){this.isInnerStopped?e.prototype._complete.call(this):this.unsubscribe()},t.prototype.notifyNext=function(e,t,r,n,i){this.hasValue=!0},t.prototype.notifyComplete=function(){this.isInnerStopped=!0,this.isStopped&&e.prototype._complete.call(this)},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":237}],196:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.skipWhile=function(e){return function(t){return t.lift(new o(e))}};var o=function(){function e(e){this.predicate=e}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.predicate))},e}(),s=function(e){function t(t,r){e.call(this,t),this.predicate=r,this.skipping=!0,this.index=0}return n(t,e),t.prototype._next=function(e){var t=this.destination;this.skipping&&this.tryCallPredicate(e),this.skipping||t.next(e)},t.prototype.tryCallPredicate=function(e){try{var t=this.predicate(e,this.index++);this.skipping=Boolean(t)}catch(e){this.destination.error(e)}},t}(i.Subscriber)},{"../Subscriber":36}],197:[function(e,t,r){"use strict";var n=e("../observable/ArrayObservable"),i=e("../observable/ScalarObservable"),o=e("../observable/EmptyObservable"),s=e("../observable/concat"),a=e("../util/isScheduler");r.startWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){var r=e[e.length-1];a.isScheduler(r)?e.pop():r=null;var c=e.length;return 1===c?s.concat(new i.ScalarObservable(e[0],r),t):c>1?s.concat(new n.ArrayObservable(e,r),t):s.concat(new o.EmptyObservable(r),t)}}},{"../observable/ArrayObservable":93,"../observable/EmptyObservable":96,"../observable/ScalarObservable":102,"../observable/concat":105,"../util/isScheduler":233}],198:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.switchMap=function(e,t){return function(r){return r.lift(new s(e,t))}};var s=function(){function e(e,t){this.project=e,this.resultSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.project,this.resultSelector))},e}(),a=function(e){function t(t,r,n){e.call(this,t),this.project=r,this.resultSelector=n,this.index=0}return n(t,e),t.prototype._next=function(e){var t,r=this.index++;try{t=this.project(e,r)}catch(e){return void this.destination.error(e)}this._innerSub(t,e,r)},t.prototype._innerSub=function(e,t,r){var n=this.innerSubscription;n&&n.unsubscribe(),this.add(this.innerSubscription=o.subscribeToResult(this,e,t,r))},t.prototype._complete=function(){var t=this.innerSubscription;t&&!t.closed||e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.innerSubscription=null},t.prototype.notifyComplete=function(t){this.remove(t),this.innerSubscription=null,this.isStopped&&e.prototype._complete.call(this)},t.prototype.notifyNext=function(e,t,r,n,i){this.resultSelector?this._tryNotifyNext(e,t,r,n):this.destination.next(t)},t.prototype._tryNotifyNext=function(e,t,r,n){var i;try{i=this.resultSelector(e,t,r,n)}catch(e){return void this.destination.error(e)}this.destination.next(i)},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":237}],199:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../util/ArgumentOutOfRangeError"),s=e("../observable/EmptyObservable");r.take=function(e){return function(t){return 0===e?new s.EmptyObservable:t.lift(new a(e))}};var a=function(){function e(e){if(this.total=e,this.total<0)throw new o.ArgumentOutOfRangeError}return e.prototype.call=function(e,t){return t.subscribe(new c(e,this.total))},e}(),c=function(e){function t(t,r){e.call(this,t),this.total=r,this.count=0}return n(t,e),t.prototype._next=function(e){var t=this.total,r=++this.count;r<=t&&(this.destination.next(e),r===t&&(this.destination.complete(),this.unsubscribe()))},t}(i.Subscriber)},{"../Subscriber":36,"../observable/EmptyObservable":96,"../util/ArgumentOutOfRangeError":218}],200:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber"),o=e("../util/ArgumentOutOfRangeError"),s=e("../observable/EmptyObservable");r.takeLast=function(e){return function(t){return 0===e?new s.EmptyObservable:t.lift(new a(e))}};var a=function(){function e(e){if(this.total=e,this.total<0)throw new o.ArgumentOutOfRangeError}return e.prototype.call=function(e,t){return t.subscribe(new c(e,this.total))},e}(),c=function(e){function t(t,r){e.call(this,t),this.total=r,this.ring=new Array,this.count=0}return n(t,e),t.prototype._next=function(e){var t=this.ring,r=this.total,n=this.count++;if(t.length<r)t.push(e);else{t[n%r]=e}},t.prototype._complete=function(){var e=this.destination,t=this.count;if(t>0)for(var r=this.count>=this.total?this.total:this.count,n=this.ring,i=0;i<r;i++){var o=t++%r;e.next(n[o])}e.complete()},t}(i.Subscriber)},{"../Subscriber":36,"../observable/EmptyObservable":96,"../util/ArgumentOutOfRangeError":218}],201:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.takeUntil=function(e){return function(t){return t.lift(new s(e))}};var s=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.notifier))},e}(),a=function(e){function t(t,r){e.call(this,t),this.notifier=r,this.add(o.subscribeToResult(this,r))}return n(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.complete()},t.prototype.notifyComplete=function(){},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":237}],202:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.takeWhile=function(e){return function(t){return t.lift(new o(e))}};var o=function(){function e(e){this.predicate=e}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.predicate))},e}(),s=function(e){function t(t,r){e.call(this,t),this.predicate=r,this.index=0}return n(t,e),t.prototype._next=function(e){var t,r=this.destination;try{t=this.predicate(e,this.index++)}catch(e){return void r.error(e)}this.nextOrComplete(e,t)},t.prototype.nextOrComplete=function(e,t){var r=this.destination;Boolean(t)?r.next(e):r.complete()},t}(i.Subscriber)},{"../Subscriber":36}],203:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../Subscriber");r.tap=function(e,t,r){return function(n){return n.lift(new o(e,t,r))}};var o=function(){function e(e,t,r){this.nextOrObserver=e,this.error=t,this.complete=r}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.nextOrObserver,this.error,this.complete))},e}(),s=function(e){function t(t,r,n,o){e.call(this,t);var s=new i.Subscriber(r,n,o);s.syncErrorThrowable=!0,this.add(s),this.safeSubscriber=s}return n(t,e),t.prototype._next=function(e){var t=this.safeSubscriber;t.next(e),t.syncErrorThrown?this.destination.error(t.syncErrorValue):this.destination.next(e)},t.prototype._error=function(e){var t=this.safeSubscriber;t.error(e),t.syncErrorThrown?this.destination.error(t.syncErrorValue):this.destination.error(e)},t.prototype._complete=function(){var e=this.safeSubscriber;e.complete(),e.syncErrorThrown?this.destination.error(e.syncErrorValue):this.destination.complete()},t}(i.Subscriber)},{"../Subscriber":36}],204:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../scheduler/async"),o=e("../util/isDate"),s=e("../Subscriber"),a=e("../util/TimeoutError");r.timeout=function(e,t){void 0===t&&(t=i.async);var r=o.isDate(e),n=r?+e-t.now():Math.abs(e);return function(e){return e.lift(new c(n,r,t,new a.TimeoutError))}};var c=function(){function e(e,t,r,n){this.waitFor=e,this.absoluteTimeout=t,this.scheduler=r,this.errorInstance=n}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.absoluteTimeout,this.waitFor,this.scheduler,this.errorInstance))},e}(),u=function(e){function t(t,r,n,i,o){e.call(this,t),this.absoluteTimeout=r,this.waitFor=n,this.scheduler=i,this.errorInstance=o,this.action=null,this.scheduleTimeout()}return n(t,e),t.dispatchTimeout=function(e){e.error(e.errorInstance)},t.prototype.scheduleTimeout=function(){var e=this.action;e?this.action=e.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(t.dispatchTimeout,this.waitFor,this))},t.prototype._next=function(t){this.absoluteTimeout||this.scheduleTimeout(),e.prototype._next.call(this,t)},t.prototype._unsubscribe=function(){this.action=null,this.scheduler=null,this.errorInstance=null},t}(s.Subscriber)},{"../Subscriber":36,"../scheduler/async":212,"../util/TimeoutError":222,"../util/isDate":228}],205:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../OuterSubscriber"),o=e("../util/subscribeToResult");r.withLatestFrom=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){var r;"function"==typeof e[e.length-1]&&(r=e.pop());var n=e;return t.lift(new s(n,r))}};var s=function(){function e(e,t){this.observables=e,this.project=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.observables,this.project))},e}(),a=function(e){function t(t,r,n){e.call(this,t),this.observables=r,this.project=n,this.toRespond=[];var i=r.length;this.values=new Array(i);for(s=0;s<i;s++)this.toRespond.push(s);for(var s=0;s<i;s++){var a=r[s];this.add(o.subscribeToResult(this,a,a,s))}}return n(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.values[r]=t;var o=this.toRespond;if(o.length>0){var s=o.indexOf(r);-1!==s&&o.splice(s,1)}},t.prototype.notifyComplete=function(){},t.prototype._next=function(e){if(0===this.toRespond.length){var t=[e].concat(this.values);this.project?this._tryProject(t):this.destination.next(t)}},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.OuterSubscriber)},{"../OuterSubscriber":31,"../util/subscribeToResult":237}],206:[function(e,t,r){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var r=e[e.length-1];return"function"==typeof r&&e.pop(),new o.ArrayObservable(e).lift(new l(r))}var i=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},o=e("../observable/ArrayObservable"),s=e("../util/isArray"),a=e("../Subscriber"),c=e("../OuterSubscriber"),u=e("../util/subscribeToResult"),h=e("../symbol/iterator");r.zip=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){return t.lift.call(n.apply(void 0,[t].concat(e)))}},r.zipStatic=n;var l=function(){function e(e){this.project=e}return e.prototype.call=function(e,t){return t.subscribe(new p(e,this.project))},e}();r.ZipOperator=l;var p=function(e){function t(t,r,n){void 0===n&&(n=Object.create(null)),e.call(this,t),this.iterators=[],this.active=0,this.project="function"==typeof r?r:null,this.values=n}return i(t,e),t.prototype._next=function(e){var t=this.iterators;s.isArray(e)?t.push(new d(e)):"function"==typeof e[h.iterator]?t.push(new f(e[h.iterator]())):t.push(new m(this.destination,this,e))},t.prototype._complete=function(){var e=this.iterators,t=e.length;if(0!==t){this.active=t;for(var r=0;r<t;r++){var n=e[r];n.stillUnsubscribed?this.add(n.subscribe(n,r)):this.active--}}else this.destination.complete()},t.prototype.notifyInactive=function(){this.active--,0===this.active&&this.destination.complete()},t.prototype.checkIterators=function(){for(var e=this.iterators,t=e.length,r=this.destination,n=0;n<t;n++){if("function"==typeof(s=e[n]).hasValue&&!s.hasValue())return}for(var i=!1,o=[],n=0;n<t;n++){var s=e[n],a=s.next();if(s.hasCompleted()&&(i=!0),a.done)return void r.complete();o.push(a.value)}this.project?this._tryProject(o):r.next(o),i&&r.complete()},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(a.Subscriber);r.ZipSubscriber=p;var f=function(){function e(e){this.iterator=e,this.nextResult=e.next()}return e.prototype.hasValue=function(){return!0},e.prototype.next=function(){var e=this.nextResult;return this.nextResult=this.iterator.next(),e},e.prototype.hasCompleted=function(){var e=this.nextResult;return e&&e.done},e}(),d=function(){function e(e){this.array=e,this.index=0,this.length=0,this.length=e.length}return e.prototype[h.iterator]=function(){return this},e.prototype.next=function(e){var t=this.index++,r=this.array;return t<this.length?{value:r[t],done:!1}:{value:null,done:!0}},e.prototype.hasValue=function(){return this.array.length>this.index},e.prototype.hasCompleted=function(){return this.array.length===this.index},e}(),m=function(e){function t(t,r,n){e.call(this,t),this.parent=r,this.observable=n,this.stillUnsubscribed=!0,this.buffer=[],this.isComplete=!1}return i(t,e),t.prototype[h.iterator]=function(){return this},t.prototype.next=function(){var e=this.buffer;return 0===e.length&&this.isComplete?{value:null,done:!0}:{value:e.shift(),done:!1}},t.prototype.hasValue=function(){return this.buffer.length>0},t.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},t.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){this.buffer.push(t),this.parent.checkIterators()},t.prototype.subscribe=function(e,t){return u.subscribeToResult(this,this.observable,this,t)},t}(c.OuterSubscriber)},{"../OuterSubscriber":31,"../Subscriber":36,"../observable/ArrayObservable":93,"../symbol/iterator":214,"../util/isArray":226,"../util/subscribeToResult":237}],207:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r){e.call(this)}return n(t,e),t.prototype.schedule=function(e,t){return void 0===t&&(t=0),this},t}(e("../Subscription").Subscription);r.Action=i},{"../Subscription":37}],208:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=e("../util/root"),o=function(e){function t(t,r){e.call(this,t,r),this.scheduler=t,this.work=r,this.pending=!1}return n(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e,this.pending=!0;var r=this.id,n=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(n,r,t)),this.delay=t,this.id=this.id||this.requestAsyncId(n,this.id,t),this},t.prototype.requestAsyncId=function(e,t,r){return void 0===r&&(r=0),i.root.setInterval(e.flush.bind(e,this),r)},t.prototype.recycleAsyncId=function(e,t,r){return void 0===r&&(r=0),null!==r&&this.delay===r&&!1===this.pending?t:i.root.clearInterval(t)&&void 0||void 0},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var r=this._execute(e,t);if(r)return r;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var r=!1,n=void 0;try{this.work(e)}catch(e){r=!0,n=!!e&&e||new Error(e)}if(r)return this.unsubscribe(),n},t.prototype._unsubscribe=function(){var e=this.id,t=this.scheduler,r=t.actions,n=r.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==n&&r.splice(n,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null},t}(e("./Action").Action);r.AsyncAction=o},{"../util/root":236,"./Action":207}],209:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){e.apply(this,arguments),this.actions=[],this.active=!1,this.scheduled=void 0}return n(t,e),t.prototype.flush=function(e){var t=this.actions;if(this.active)t.push(e);else{var r;this.active=!0;do{if(r=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,r){for(;e=t.shift();)e.unsubscribe();throw r}}},t}(e("../Scheduler").Scheduler);r.AsyncScheduler=i},{"../Scheduler":33}],210:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t,r){e.call(this,t,r),this.scheduler=t,this.work=r}return n(t,e),t.prototype.schedule=function(t,r){return void 0===r&&(r=0),r>0?e.prototype.schedule.call(this,t,r):(this.delay=r,this.state=t,this.scheduler.flush(this),this)},t.prototype.execute=function(t,r){return r>0||this.closed?e.prototype.execute.call(this,t,r):this._execute(t,r)},t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0?e.prototype.requestAsyncId.call(this,t,r,n):t.flush(this)},t}(e("./AsyncAction").AsyncAction);r.QueueAction=i},{"./AsyncAction":208}],211:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){e.apply(this,arguments)}return n(t,e),t}(e("./AsyncScheduler").AsyncScheduler);r.QueueScheduler=i},{"./AsyncScheduler":209}],212:[function(e,t,r){"use strict";var n=e("./AsyncAction"),i=e("./AsyncScheduler");r.async=new i.AsyncScheduler(n.AsyncAction)},{"./AsyncAction":208,"./AsyncScheduler":209}],213:[function(e,t,r){"use strict";var n=e("./QueueAction"),i=e("./QueueScheduler");r.queue=new i.QueueScheduler(n.QueueAction)},{"./QueueAction":210,"./QueueScheduler":211}],214:[function(e,t,r){"use strict";function n(e){var t=e.Symbol;if("function"==typeof t)return t.iterator||(t.iterator=t("iterator polyfill")),t.iterator;var r=e.Set;if(r&&"function"==typeof(new r)["@@iterator"])return"@@iterator";var n=e.Map;if(n)for(var i=Object.getOwnPropertyNames(n.prototype),o=0;o<i.length;++o){var s=i[o];if("entries"!==s&&"size"!==s&&n.prototype[s]===n.prototype.entries)return s}return"@@iterator"}var i=e("../util/root");r.symbolIteratorPonyfill=n,r.iterator=n(i.root),r.$$iterator=r.iterator},{"../util/root":236}],215:[function(e,t,r){"use strict";function n(e){var t,r=e.Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}var i=e("../util/root");r.getSymbolObservable=n,r.observable=n(i.root),r.$$observable=r.observable},{"../util/root":236}],216:[function(e,t,r){"use strict";var n=e("../util/root").root.Symbol;r.rxSubscriber="function"==typeof n&&"function"==typeof n.for?n.for("rxSubscriber"):"@@rxSubscriber",r.$$rxSubscriber=r.rxSubscriber},{"../util/root":236}],217:[function(e,t,r){"use strict";var n=e("./root"),i=function(){return function(e){e.requestAnimationFrame?(this.cancelAnimationFrame=e.cancelAnimationFrame.bind(e),this.requestAnimationFrame=e.requestAnimationFrame.bind(e)):e.mozRequestAnimationFrame?(this.cancelAnimationFrame=e.mozCancelAnimationFrame.bind(e),this.requestAnimationFrame=e.mozRequestAnimationFrame.bind(e)):e.webkitRequestAnimationFrame?(this.cancelAnimationFrame=e.webkitCancelAnimationFrame.bind(e),this.requestAnimationFrame=e.webkitRequestAnimationFrame.bind(e)):e.msRequestAnimationFrame?(this.cancelAnimationFrame=e.msCancelAnimationFrame.bind(e),this.requestAnimationFrame=e.msRequestAnimationFrame.bind(e)):e.oRequestAnimationFrame?(this.cancelAnimationFrame=e.oCancelAnimationFrame.bind(e),this.requestAnimationFrame=e.oRequestAnimationFrame.bind(e)):(this.cancelAnimationFrame=e.clearTimeout.bind(e),this.requestAnimationFrame=function(t){return e.setTimeout(t,1e3/60)})}}();r.RequestAnimationFrameDefinition=i,r.AnimationFrame=new i(n.root)},{"./root":236}],218:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){var t=e.call(this,"argument out of range");this.name=t.name="ArgumentOutOfRangeError",this.stack=t.stack,this.message=t.message}return n(t,e),t}(Error);r.ArgumentOutOfRangeError=i},{}],219:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){var t=e.call(this,"no elements in sequence");this.name=t.name="EmptyError",this.stack=t.stack,this.message=t.message}return n(t,e),t}(Error);r.EmptyError=i},{}],220:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){var t=e.call(this,"object unsubscribed");this.name=t.name="ObjectUnsubscribedError",this.stack=t.stack,this.message=t.message}return n(t,e),t}(Error);r.ObjectUnsubscribedError=i},{}],221:[function(e,t,r){"use strict";function n(){return function(){function e(){this._values=[]}return e.prototype.add=function(e){this.has(e)||this._values.push(e)},e.prototype.has=function(e){return-1!==this._values.indexOf(e)},Object.defineProperty(e.prototype,"size",{get:function(){return this._values.length},enumerable:!0,configurable:!0}),e.prototype.clear=function(){this._values.length=0},e}()}var i=e("./root");r.minimalSetImpl=n,r.Set=i.root.Set||n()},{"./root":236}],222:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(){var t=e.call(this,"Timeout has occurred");this.name=t.name="TimeoutError",this.stack=t.stack,this.message=t.message}return n(t,e),t}(Error);r.TimeoutError=i},{}],223:[function(e,t,r){"use strict";var n=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},i=function(e){function t(t){e.call(this),this.errors=t;var r=Error.call(this,t?t.length+" errors occurred during unsubscription:\n  "+t.map(function(e,t){return t+1+") "+e.toString()}).join("\n  "):"");this.name=r.name="UnsubscriptionError",this.stack=r.stack,this.message=r.message}return n(t,e),t}(Error);r.UnsubscriptionError=i},{}],224:[function(e,t,r){"use strict";r.errorObject={e:{}}},{}],225:[function(e,t,r){"use strict";r.identity=function(e){return e}},{}],226:[function(e,t,r){"use strict";r.isArray=Array.isArray||function(e){return e&&"number"==typeof e.length}},{}],227:[function(e,t,r){"use strict";r.isArrayLike=function(e){return e&&"number"==typeof e.length}},{}],228:[function(e,t,r){"use strict";r.isDate=function(e){return e instanceof Date&&!isNaN(+e)}},{}],229:[function(e,t,r){"use strict";r.isFunction=function(e){return"function"==typeof e}},{}],230:[function(e,t,r){"use strict";var n=e("../util/isArray");r.isNumeric=function(e){return!n.isArray(e)&&e-parseFloat(e)+1>=0}},{"../util/isArray":226}],231:[function(e,t,r){"use strict";r.isObject=function(e){return null!=e&&"object"==typeof e}},{}],232:[function(e,t,r){"use strict";r.isPromise=function(e){return e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}},{}],233:[function(e,t,r){"use strict";r.isScheduler=function(e){return e&&"function"==typeof e.schedule}},{}],234:[function(e,t,r){"use strict";r.noop=function(){}},{}],235:[function(e,t,r){"use strict";function n(e){return e?1===e.length?e[0]:function(t){return e.reduce(function(e,t){return t(e)},t)}:i.noop}var i=e("./noop");r.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return n(e)},r.pipeFromArray=n},{"./noop":234}],236:[function(e,t,r){(function(e){"use strict";var t="undefined"!=typeof window&&window,n="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,i=t||void 0!==e&&e||n;r.root=i,function(){if(!i)throw new Error("RxJS could not find any global context (window, self, global)")}()}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],237:[function(e,t,r){"use strict";var n=e("./root"),i=e("./isArrayLike"),o=e("./isPromise"),s=e("./isObject"),a=e("../Observable"),c=e("../symbol/iterator"),u=e("../InnerSubscriber"),h=e("../symbol/observable");r.subscribeToResult=function(e,t,r,l){var p=new u.InnerSubscriber(e,r,l);if(p.closed)return null;if(t instanceof a.Observable)return t._isScalar?(p.next(t.value),p.complete(),null):(p.syncErrorThrowable=!0,t.subscribe(p));if(i.isArrayLike(t)){for(var f=0,d=t.length;f<d&&!p.closed;f++)p.next(t[f]);p.closed||p.complete()}else{if(o.isPromise(t))return t.then(function(e){p.closed||(p.next(e),p.complete())},function(e){return p.error(e)}).then(null,function(e){n.root.setTimeout(function(){throw e})}),p;if(t&&"function"==typeof t[c.iterator])for(var m=t[c.iterator]();;){var v=m.next();if(v.done){p.complete();break}if(p.next(v.value),p.closed)break}else if(t&&"function"==typeof t[h.observable]){var g=t[h.observable]();if("function"==typeof g.subscribe)return g.subscribe(new u.InnerSubscriber(e,r,l));p.error(new TypeError("Provided object does not correctly implement Symbol.observable"))}else{var y="You provided "+(s.isObject(t)?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.";p.error(new TypeError(y))}}return null}},{"../InnerSubscriber":27,"../Observable":29,"../symbol/iterator":214,"../symbol/observable":215,"./isArrayLike":227,"./isObject":231,"./isPromise":232,"./root":236}],238:[function(e,t,r){"use strict";var n=e("../Subscriber"),i=e("../symbol/rxSubscriber"),o=e("../Observer");r.toSubscriber=function(e,t,r){if(e){if(e instanceof n.Subscriber)return e;if(e[i.rxSubscriber])return e[i.rxSubscriber]()}return e||t||r?new n.Subscriber(e,t,r):new n.Subscriber(o.empty)}},{"../Observer":30,"../Subscriber":36,"../symbol/rxSubscriber":216}],239:[function(e,t,r){"use strict";function n(){try{return i.apply(this,arguments)}catch(e){return o.errorObject.e=e,o.errorObject}}var i,o=e("./errorObject");r.tryCatch=function(e){return i=e,n}},{"./errorObject":224}],240:[function(e,t,r){!function(e,n){n("object"==typeof r&&void 0!==t?r:e.THREE=e.THREE||{})}(this,function(e){function t(){}function r(e,t){this.x=e||0,this.y=t||0}function n(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],0<arguments.length&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function i(e,t,r,n){this._x=e||0,this._y=t||0,this._z=r||0,this._w=void 0!==n?n:1}function o(e,t,r){this.x=e||0,this.y=t||0,this.z=r||0}function s(){this.elements=[1,0,0,0,1,0,0,0,1],0<arguments.length&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}function a(e,t,n,i,o,c,u,h,l,p){Object.defineProperty(this,"id",{value:ui++}),this.uuid=ci.generateUUID(),this.name="",this.image=void 0!==e?e:a.DEFAULT_IMAGE,this.mipmaps=[],this.mapping=void 0!==t?t:a.DEFAULT_MAPPING,this.wrapS=void 0!==n?n:1001,this.wrapT=void 0!==i?i:1001,this.magFilter=void 0!==o?o:1006,this.minFilter=void 0!==c?c:1008,this.anisotropy=void 0!==l?l:1,this.format=void 0!==u?u:1023,this.type=void 0!==h?h:1009,this.offset=new r(0,0),this.repeat=new r(1,1),this.center=new r(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new s,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=void 0!==p?p:3e3,this.version=0,this.onUpdate=null}function c(e,t,r,n){this.x=e||0,this.y=t||0,this.z=r||0,this.w=void 0!==n?n:1}function u(e,t,r){this.uuid=ci.generateUUID(),this.width=e,this.height=t,this.scissor=new c(0,0,e,t),this.scissorTest=!1,this.viewport=new c(0,0,e,t),void 0===(r=r||{}).minFilter&&(r.minFilter=1006),this.texture=new a(void 0,void 0,r.wrapS,r.wrapT,r.magFilter,r.minFilter,r.format,r.type,r.anisotropy,r.encoding),this.depthBuffer=void 0===r.depthBuffer||r.depthBuffer,this.stencilBuffer=void 0===r.stencilBuffer||r.stencilBuffer,this.depthTexture=void 0!==r.depthTexture?r.depthTexture:null}function h(e,t,r){u.call(this,e,t,r),this.activeMipMapLevel=this.activeCubeFace=0}function l(e,t,r,n,i,o,s,c,u,h,l,p){a.call(this,null,o,s,c,u,h,n,i,l,p),this.image={data:e,width:t,height:r},this.magFilter=void 0!==u?u:1003,this.minFilter=void 0!==h?h:1003,this.flipY=this.generateMipmaps=!1,this.unpackAlignment=1}function p(e,t,r,n,i,o,s,c,u,h){a.call(this,e=void 0!==e?e:[],void 0!==t?t:301,r,n,i,o,s,c,u,h),this.flipY=!1}function f(e,t,r){var n=e[0];if(0>=n||0<n)return e;var i=t*r,o=pi[i];if(void 0===o&&(o=new Float32Array(i),pi[i]=o),0!==t)for(n.toArray(o,0),n=1,i=0;n!==t;++n)i+=r,e[n].toArray(o,i);return o}function d(e,t){var r=fi[t];void 0===r&&(r=new Int32Array(t),fi[t]=r);for(var n=0;n!==t;++n)r[n]=e.allocTextureUnit();return r}function m(e,t){e.uniform1f(this.addr,t)}function v(e,t){e.uniform1i(this.addr,t)}function g(e,t){void 0===t.x?e.uniform2fv(this.addr,t):e.uniform2f(this.addr,t.x,t.y)}function y(e,t){void 0!==t.x?e.uniform3f(this.addr,t.x,t.y,t.z):void 0!==t.r?e.uniform3f(this.addr,t.r,t.g,t.b):e.uniform3fv(this.addr,t)}function b(e,t){void 0===t.x?e.uniform4fv(this.addr,t):e.uniform4f(this.addr,t.x,t.y,t.z,t.w)}function _(e,t){e.uniformMatrix2fv(this.addr,!1,t.elements||t)}function x(e,t){void 0===t.elements?e.uniformMatrix3fv(this.addr,!1,t):(mi.set(t.elements),e.uniformMatrix3fv(this.addr,!1,mi))}function w(e,t){void 0===t.elements?e.uniformMatrix4fv(this.addr,!1,t):(di.set(t.elements),e.uniformMatrix4fv(this.addr,!1,di))}function S(e,t,r){var n=r.allocTextureUnit();e.uniform1i(this.addr,n),r.setTexture2D(t||hi,n)}function M(e,t,r){var n=r.allocTextureUnit();e.uniform1i(this.addr,n),r.setTextureCube(t||li,n)}function E(e,t){e.uniform2iv(this.addr,t)}function C(e,t){e.uniform3iv(this.addr,t)}function T(e,t){e.uniform4iv(this.addr,t)}function O(e,t){e.uniform1fv(this.addr,t)}function P(e,t){e.uniform1iv(this.addr,t)}function A(e,t){e.uniform2fv(this.addr,f(t,this.size,2))}function R(e,t){e.uniform3fv(this.addr,f(t,this.size,3))}function j(e,t){e.uniform4fv(this.addr,f(t,this.size,4))}function L(e,t){e.uniformMatrix2fv(this.addr,!1,f(t,this.size,4))}function N(e,t){e.uniformMatrix3fv(this.addr,!1,f(t,this.size,9))}function I(e,t){e.uniformMatrix4fv(this.addr,!1,f(t,this.size,16))}function D(e,t,r){var n=t.length,i=d(r,n);for(e.uniform1iv(this.addr,i),e=0;e!==n;++e)r.setTexture2D(t[e]||hi,i[e])}function k(e,t,r){var n=t.length,i=d(r,n);for(e.uniform1iv(this.addr,i),e=0;e!==n;++e)r.setTextureCube(t[e]||li,i[e])}function B(e,t,r){this.id=e,this.addr=r,this.setValue=function(e){switch(e){case 5126:return m;case 35664:return g;case 35665:return y;case 35666:return b;case 35674:return _;case 35675:return x;case 35676:return w;case 35678:case 36198:return S;case 35680:return M;case 5124:case 35670:return v;case 35667:case 35671:return E;case 35668:case 35672:return C;case 35669:case 35673:return T}}(t.type)}function F(e,t,r){this.id=e,this.addr=r,this.size=t.size,this.setValue=function(e){switch(e){case 5126:return O;case 35664:return A;case 35665:return R;case 35666:return j;case 35674:return L;case 35675:return N;case 35676:return I;case 35678:return D;case 35680:return k;case 5124:case 35670:return P;case 35667:case 35671:return E;case 35668:case 35672:return C;case 35669:case 35673:return T}}(t.type)}function U(e){this.id=e,this.seq=[],this.map={}}function $(e,t,r){this.seq=[],this.map={},this.renderer=r,r=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(var n=0;n<r;++n){var i=e.getActiveUniform(t,n),o=e.getUniformLocation(t,i.name),s=this,a=i.name,c=a.length;for(vi.lastIndex=0;;){var u=vi.exec(a),h=vi.lastIndex,l=u[1],p=u[3];if("]"===u[2]&&(l|=0),void 0===p||"["===p&&h+2===c){a=s,i=void 0===p?new B(l,i,o):new F(l,i,o),a.seq.push(i),a.map[i.id]=i;break}void 0===(p=s.map[l])&&(p=new U(l),l=s,s=p,l.seq.push(s),l.map[s.id]=s),s=p}}}function z(e,t,r){return void 0===t&&void 0===r?this.set(e):this.setRGB(e,t,r)}function G(e,t){this.min=void 0!==e?e:new r(1/0,1/0),this.max=void 0!==t?t:new r(-1/0,-1/0)}function V(e,t,n,i,s){var a,c,u,h,l,p,f,d,m,v,g,y,b,_,x,w;this.render=function(e,S,M,E){if(0!==e.length){S=new o;var C=E.w/E.z,T=.5*E.z,O=.5*E.w,P=new r((L=16/E.w)*C,L),A=new o(1,1,0),R=new r(1,1),j=new G;if(j.min.set(E.x,E.y),j.max.set(E.x+(E.z-16),E.y+(E.w-16)),void 0===_){var L=new Float32Array([-1,-1,0,0,1,-1,1,0,1,1,1,1,-1,1,0,1]),N=new Uint16Array([0,1,2,0,2,3]);g=t.createBuffer(),y=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,g),t.bufferData(t.ARRAY_BUFFER,L,t.STATIC_DRAW),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,y),t.bufferData(t.ELEMENT_ARRAY_BUFFER,N,t.STATIC_DRAW),x=t.createTexture(),w=t.createTexture(),n.bindTexture(t.TEXTURE_2D,x),t.texImage2D(t.TEXTURE_2D,0,t.RGB,16,16,0,t.RGB,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),n.bindTexture(t.TEXTURE_2D,w),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,16,16,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST);var L=b={vertexShader:"uniform lowp int renderType;\nuniform vec3 screenPosition;\nuniform vec2 scale;\nuniform float rotation;\nuniform sampler2D occlusionMap;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\n\tvUV = uv;\n\tvec2 pos = position;\n\tif ( renderType == 2 ) {\n\t\tvec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\n\t\tvisibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\n\t\tvVisibility =        visibility.r / 9.0;\n\t\tvVisibility *= 1.0 - visibility.g / 9.0;\n\t\tvVisibility *=       visibility.b / 9.0;\n\t\tvVisibility *= 1.0 - visibility.a / 9.0;\n\t\tpos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\n\t\tpos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\n\t}\n\tgl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\n}",fragmentShader:"uniform lowp int renderType;\nuniform sampler2D map;\nuniform float opacity;\nuniform vec3 color;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\n\tif ( renderType == 0 ) {\n\t\tgl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );\n\t} else if ( renderType == 1 ) {\n\t\tgl_FragColor = texture2D( map, vUV );\n\t} else {\n\t\tvec4 texture = texture2D( map, vUV );\n\t\ttexture.a *= opacity * vVisibility;\n\t\tgl_FragColor = texture;\n\t\tgl_FragColor.rgb *= color;\n\t}\n}"},N=t.createProgram(),I=t.createShader(t.FRAGMENT_SHADER),D=t.createShader(t.VERTEX_SHADER),k="precision "+s.precision+" float;\n";t.shaderSource(I,k+L.fragmentShader),t.shaderSource(D,k+L.vertexShader),t.compileShader(I),t.compileShader(D),t.attachShader(N,I),t.attachShader(N,D),t.linkProgram(N),_=N,m=t.getAttribLocation(_,"position"),v=t.getAttribLocation(_,"uv"),a=t.getUniformLocation(_,"renderType"),c=t.getUniformLocation(_,"map"),u=t.getUniformLocation(_,"occlusionMap"),h=t.getUniformLocation(_,"opacity"),l=t.getUniformLocation(_,"color"),p=t.getUniformLocation(_,"scale"),f=t.getUniformLocation(_,"rotation"),d=t.getUniformLocation(_,"screenPosition")}for(n.useProgram(_),n.initAttributes(),n.enableAttribute(m),n.enableAttribute(v),n.disableUnusedAttributes(),t.uniform1i(u,0),t.uniform1i(c,1),t.bindBuffer(t.ARRAY_BUFFER,g),t.vertexAttribPointer(m,2,t.FLOAT,!1,16,0),t.vertexAttribPointer(v,2,t.FLOAT,!1,16,8),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,y),n.disable(t.CULL_FACE),n.buffers.depth.setMask(!1),N=0,I=e.length;N<I;N++)if(L=16/E.w,P.set(L*C,L),D=e[N],S.set(D.matrixWorld.elements[12],D.matrixWorld.elements[13],D.matrixWorld.elements[14]),S.applyMatrix4(M.matrixWorldInverse),S.applyMatrix4(M.projectionMatrix),A.copy(S),R.x=E.x+A.x*T+T-8,R.y=E.y+A.y*O+O-8,!0===j.containsPoint(R)){n.activeTexture(t.TEXTURE0),n.bindTexture(t.TEXTURE_2D,null),n.activeTexture(t.TEXTURE1),n.bindTexture(t.TEXTURE_2D,x),t.copyTexImage2D(t.TEXTURE_2D,0,t.RGB,R.x,R.y,16,16,0),t.uniform1i(a,0),t.uniform2f(p,P.x,P.y),t.uniform3f(d,A.x,A.y,A.z),n.disable(t.BLEND),n.enable(t.DEPTH_TEST),t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0),n.activeTexture(t.TEXTURE0),n.bindTexture(t.TEXTURE_2D,w),t.copyTexImage2D(t.TEXTURE_2D,0,t.RGBA,R.x,R.y,16,16,0),t.uniform1i(a,1),n.disable(t.DEPTH_TEST),n.activeTexture(t.TEXTURE1),n.bindTexture(t.TEXTURE_2D,x),t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0),D.positionScreen.copy(A),D.customUpdateCallback?D.customUpdateCallback(D):D.updateLensFlares(),t.uniform1i(a,2),n.enable(t.BLEND);for(var k=0,B=D.lensFlares.length;k<B;k++){var F=D.lensFlares[k];.001<F.opacity&&.001<F.scale&&(A.x=F.x,A.y=F.y,A.z=F.z,L=F.size*F.scale/E.w,P.x=L*C,P.y=L,t.uniform3f(d,A.x,A.y,A.z),t.uniform2f(p,P.x,P.y),t.uniform1f(f,F.rotation),t.uniform1f(h,F.opacity),t.uniform3f(l,F.color.r,F.color.g,F.color.b),n.setBlending(F.blending,F.blendEquation,F.blendSrc,F.blendDst),i.setTexture2D(F.texture,1),t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}}n.enable(t.CULL_FACE),n.enable(t.DEPTH_TEST),n.buffers.depth.setMask(!0),n.reset()}}}function H(e,t,r,n,i,o,s,c,u){a.call(this,e,t,r,n,i,o,s,c,u),this.needsUpdate=!0}function q(e,t,r,n,s){function a(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:t.id-e.id}var c,u,h,l,p,f,d,m,v,g,y,b,_,x,w,S,M,E,C,T,O,P=new o,A=new i,R=new o;this.render=function(i,o,j){if(0!==i.length){if(void 0===T){var L=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),N=new Uint16Array([0,1,2,0,2,3]);E=t.createBuffer(),C=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,E),t.bufferData(t.ARRAY_BUFFER,L,t.STATIC_DRAW),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,C),t.bufferData(t.ELEMENT_ARRAY_BUFFER,N,t.STATIC_DRAW),L=t.createProgram(),N=t.createShader(t.VERTEX_SHADER);var I=t.createShader(t.FRAGMENT_SHADER);t.shaderSource(N,["precision "+s.precision+" float;","#define SHADER_NAME SpriteMaterial\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform float rotation;\nuniform vec2 scale;\nuniform vec2 uvOffset;\nuniform vec2 uvScale;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvarying float fogDepth;\nvoid main() {\n\tvUV = uvOffset + uv * uvScale;\n\tvec2 alignedPosition = position * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tvec4 mvPosition;\n\tmvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\tfogDepth = - mvPosition.z;\n}"].join("\n")),t.shaderSource(I,["precision "+s.precision+" float;","#define SHADER_NAME SpriteMaterial\nuniform vec3 color;\nuniform sampler2D map;\nuniform float opacity;\nuniform int fogType;\nuniform vec3 fogColor;\nuniform float fogDensity;\nuniform float fogNear;\nuniform float fogFar;\nuniform float alphaTest;\nvarying vec2 vUV;\nvarying float fogDepth;\nvoid main() {\n\tvec4 texture = texture2D( map, vUV );\n\tgl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\n\tif ( gl_FragColor.a < alphaTest ) discard;\n\tif ( fogType > 0 ) {\n\t\tfloat fogFactor = 0.0;\n\t\tif ( fogType == 1 ) {\n\t\t\tfogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t\t} else {\n\t\t\tconst float LOG2 = 1.442695;\n\t\t\tfogFactor = exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 );\n\t\t\tfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n\t\t}\n\t\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n\t}\n}"].join("\n")),t.compileShader(N),t.compileShader(I),t.attachShader(L,N),t.attachShader(L,I),t.linkProgram(L),T=L,S=t.getAttribLocation(T,"position"),M=t.getAttribLocation(T,"uv"),c=t.getUniformLocation(T,"uvOffset"),u=t.getUniformLocation(T,"uvScale"),h=t.getUniformLocation(T,"rotation"),l=t.getUniformLocation(T,"scale"),p=t.getUniformLocation(T,"color"),f=t.getUniformLocation(T,"map"),d=t.getUniformLocation(T,"opacity"),m=t.getUniformLocation(T,"modelViewMatrix"),v=t.getUniformLocation(T,"projectionMatrix"),g=t.getUniformLocation(T,"fogType"),y=t.getUniformLocation(T,"fogDensity"),b=t.getUniformLocation(T,"fogNear"),_=t.getUniformLocation(T,"fogFar"),x=t.getUniformLocation(T,"fogColor"),t.getUniformLocation(T,"fogDepth"),w=t.getUniformLocation(T,"alphaTest"),(L=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")).width=8,L.height=8,(N=L.getContext("2d")).fillStyle="white",N.fillRect(0,0,8,8),O=new H(L)}r.useProgram(T),r.initAttributes(),r.enableAttribute(S),r.enableAttribute(M),r.disableUnusedAttributes(),r.disable(t.CULL_FACE),r.enable(t.BLEND),t.bindBuffer(t.ARRAY_BUFFER,E),t.vertexAttribPointer(S,2,t.FLOAT,!1,16,0),t.vertexAttribPointer(M,2,t.FLOAT,!1,16,8),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,C),t.uniformMatrix4fv(v,!1,j.projectionMatrix.elements),r.activeTexture(t.TEXTURE0),t.uniform1i(f,0),N=L=0,(I=o.fog)?(t.uniform3f(x,I.color.r,I.color.g,I.color.b),I.isFog?(t.uniform1f(b,I.near),t.uniform1f(_,I.far),t.uniform1i(g,1),N=L=1):I.isFogExp2&&(t.uniform1f(y,I.density),t.uniform1i(g,2),N=L=2)):(t.uniform1i(g,0),N=L=0);for(var D=0,k=i.length;D<k;D++)(I=i[D]).modelViewMatrix.multiplyMatrices(j.matrixWorldInverse,I.matrixWorld),I.z=-I.modelViewMatrix.elements[14];i.sort(a);for(var B=[],D=0,k=i.length;D<k;D++){var F=(I=i[D]).material;if(!1!==F.visible){I.onBeforeRender(e,o,j,void 0,F,void 0),t.uniform1f(w,F.alphaTest),t.uniformMatrix4fv(m,!1,I.modelViewMatrix.elements),I.matrixWorld.decompose(P,A,R),B[0]=R.x,B[1]=R.y;var U=0;o.fog&&F.fog&&(U=N),L!==U&&(t.uniform1i(g,U),L=U),null!==F.map?(t.uniform2f(c,F.map.offset.x,F.map.offset.y),t.uniform2f(u,F.map.repeat.x,F.map.repeat.y)):(t.uniform2f(c,0,0),t.uniform2f(u,1,1)),t.uniform1f(d,F.opacity),t.uniform3f(p,F.color.r,F.color.g,F.color.b),t.uniform1f(h,F.rotation),t.uniform2fv(l,B),r.setBlending(F.blending,F.blendEquation,F.blendSrc,F.blendDst,F.blendEquationAlpha,F.blendSrcAlpha,F.blendDstAlpha,F.premultipliedAlpha),r.buffers.depth.setTest(F.depthTest),r.buffers.depth.setMask(F.depthWrite),r.buffers.color.setMask(F.colorWrite),n.setTexture2D(F.map||O,0),t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0),I.onAfterRender(e,o,j,void 0,F,void 0)}}r.enable(t.CULL_FACE),r.reset()}}}function W(){Object.defineProperty(this,"id",{value:wi++}),this.uuid=ci.generateUUID(),this.name="",this.type="Material",this.lights=this.fog=!0,this.blending=1,this.side=0,this.flatShading=!1,this.vertexColors=0,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=100,this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null,this.depthFunc=3,this.depthWrite=this.depthTest=!0,this.clippingPlanes=null,this.clipShadows=this.clipIntersection=!1,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetUnits=this.polygonOffsetFactor=0,this.dithering=!1,this.alphaTest=0,this.premultipliedAlpha=!1,this.overdraw=0,this.visible=!0,this.userData={},this.needsUpdate=!0}function X(e){W.call(this),this.type="MeshDepthMaterial",this.depthPacking=3200,this.morphTargets=this.skinning=!1,this.displacementMap=this.alphaMap=this.map=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.lights=this.fog=!1,this.setValues(e)}function Y(e){W.call(this),this.type="MeshDistanceMaterial",this.referencePosition=new o,this.nearDistance=1,this.farDistance=1e3,this.morphTargets=this.skinning=!1,this.displacementMap=this.alphaMap=this.map=null,this.displacementScale=1,this.displacementBias=0,this.lights=this.fog=!1,this.setValues(e)}function K(e,t){this.min=void 0!==e?e:new o(1/0,1/0,1/0),this.max=void 0!==t?t:new o(-1/0,-1/0,-1/0)}function Z(e,t){this.center=void 0!==e?e:new o,this.radius=void 0!==t?t:0}function J(e,t){this.normal=void 0!==e?e:new o(1,0,0),this.constant=void 0!==t?t:0}function Q(e,t,r,n,i,o){this.planes=[void 0!==e?e:new J,void 0!==t?t:new J,void 0!==r?r:new J,void 0!==n?n:new J,void 0!==i?i:new J,void 0!==o?o:new J]}function ee(e,t,i){function s(t,r,n,i,o,s){var a=t.geometry,c=v,u=t.customDepthMaterial;return n&&(c=g,u=t.customDistanceMaterial),u?c=u:(u=!1,r.morphTargets&&(a&&a.isBufferGeometry?u=a.morphAttributes&&a.morphAttributes.position&&0<a.morphAttributes.position.length:a&&a.isGeometry&&(u=a.morphTargets&&0<a.morphTargets.length)),t.isSkinnedMesh&&!1===r.skinning&&console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",t),t=t.isSkinnedMesh&&r.skinning,a=0,u&&(a|=1),t&&(a|=2),c=c[a]),e.localClippingEnabled&&!0===r.clipShadows&&0!==r.clippingPlanes.length&&(a=c.uuid,u=r.uuid,void 0===(t=y[a])&&(t={},y[a]=t),void 0===(a=t[u])&&(a=c.clone(),t[u]=a),c=a),c.visible=r.visible,c.wireframe=r.wireframe,u=r.side,E.renderSingleSided&&2==u&&(u=0),E.renderReverseSided&&(0===u?u=1:1===u&&(u=0)),c.side=u,c.clipShadows=r.clipShadows,c.clippingPlanes=r.clippingPlanes,c.clipIntersection=r.clipIntersection,c.wireframeLinewidth=r.wireframeLinewidth,c.linewidth=r.linewidth,n&&c.isMeshDistanceMaterial&&(c.referencePosition.copy(i),c.nearDistance=o,c.farDistance=s),c}function a(r,n,i,o){var c;if(!1!==r.visible){if(r.layers.test(n.layers)&&(r.isMesh||r.isLine||r.isPoints)&&r.castShadow&&(!r.frustumCulled||h.intersectsObject(r))){r.modelViewMatrix.multiplyMatrices(i.matrixWorldInverse,r.matrixWorld);var u=t.update(r),l=r.material;if(Array.isArray(l))for(var p=u.groups,f=0,d=p.length;f<d;f++){var v=p[f];(c=l[v.materialIndex])&&c.visible&&(c=s(r,c,o,m,i.near,i.far),e.renderBufferDirect(i,null,u,c,r,v))}else l.visible&&(c=s(r,l,o,m,i.near,i.far),e.renderBufferDirect(i,null,u,c,r,null))}for(u=0,l=(r=r.children).length;u<l;u++)a(r[u],n,i,o)}}var h=new Q,l=new n,p=new r,f=new r(i,i),d=new o,m=new o,v=Array(4),g=Array(4),y={},b=[new o(1,0,0),new o(-1,0,0),new o(0,0,1),new o(0,0,-1),new o(0,1,0),new o(0,-1,0)],_=[new o(0,1,0),new o(0,1,0),new o(0,1,0),new o(0,1,0),new o(0,0,1),new o(0,0,-1)],x=[new c,new c,new c,new c,new c,new c];for(i=0;4!==i;++i){var w=0!=(1&i),S=0!=(2&i),M=new X({depthPacking:3201,morphTargets:w,skinning:S});v[i]=M,w=new Y({morphTargets:w,skinning:S}),g[i]=w}var E=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.renderSingleSided=this.renderReverseSided=!0,this.render=function(t,r,n){if(!1!==E.enabled&&(!1!==E.autoUpdate||!1!==E.needsUpdate)&&0!==t.length){var i=e.state;i.disable(e.context.BLEND),i.buffers.color.setClear(1,1,1,1),i.buffers.depth.setTest(!0),i.setScissorTest(!1);for(var o,s=0,c=t.length;s<c;s++){var v=t[s];o=v.shadow;var g=v&&v.isPointLight;if(void 0===o)console.warn("THREE.WebGLShadowMap:",v,"has no shadow.");else{var y=o.camera;if(p.copy(o.mapSize),p.min(f),g){var w=p.x,S=p.y;x[0].set(2*w,S,w,S),x[1].set(0,S,w,S),x[2].set(3*w,S,w,S),x[3].set(w,S,w,S),x[4].set(3*w,0,w,S),x[5].set(w,0,w,S),p.x*=4,p.y*=2}for(null===o.map&&(o.map=new u(p.x,p.y,{minFilter:1003,magFilter:1003,format:1023}),o.map.texture.name=v.name+".shadowMap",y.updateProjectionMatrix()),o.isSpotLightShadow&&o.update(v),w=o.map,S=o.matrix,m.setFromMatrixPosition(v.matrixWorld),y.position.copy(m),g?(o=6,S.makeTranslation(-m.x,-m.y,-m.z)):(o=1,d.setFromMatrixPosition(v.target.matrixWorld),y.lookAt(d),y.updateMatrixWorld(),S.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),S.multiply(y.projectionMatrix),S.multiply(y.matrixWorldInverse)),e.setRenderTarget(w),e.clear(),v=0;v<o;v++)g&&(d.copy(y.position),d.add(b[v]),y.up.copy(_[v]),y.lookAt(d),y.updateMatrixWorld(),i.viewport(x[v])),l.multiplyMatrices(y.projectionMatrix,y.matrixWorldInverse),h.setFromMatrix(l),a(r,n,y,g)}}E.needsUpdate=!1}}}function te(e,t,r,n){this._x=e||0,this._y=t||0,this._z=r||0,this._order=n||te.DefaultOrder}function re(){this.mask=1}function ne(){Object.defineProperty(this,"id",{value:Si++}),this.uuid=ci.generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=ne.DefaultUp.clone();var e=new o,t=new te,r=new i,a=new o(1,1,1);t.onChange(function(){r.setFromEuler(t,!1)}),r.onChange(function(){t.setFromQuaternion(r,void 0,!1)}),Object.defineProperties(this,{position:{enumerable:!0,value:e},rotation:{enumerable:!0,value:t},quaternion:{enumerable:!0,value:r},scale:{enumerable:!0,value:a},modelViewMatrix:{value:new n},normalMatrix:{value:new s}}),this.matrix=new n,this.matrixWorld=new n,this.matrixAutoUpdate=ne.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new re,this.visible=!0,this.receiveShadow=this.castShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.userData={}}function ie(){ne.call(this),this.type="Camera",this.matrixWorldInverse=new n,this.projectionMatrix=new n}function oe(e,t,r,n,i,o){ie.call(this),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=r,this.bottom=n,this.near=void 0!==i?i:.1,this.far=void 0!==o?o:2e3,this.updateProjectionMatrix()}function se(e,t,r,n,i,s){this.a=e,this.b=t,this.c=r,this.normal=n&&n.isVector3?n:new o,this.vertexNormals=Array.isArray(n)?n:[],this.color=i&&i.isColor?i:new z,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=void 0!==s?s:0}function ae(){Object.defineProperty(this,"id",{value:Mi+=2}),this.uuid=ci.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingSphere=this.boundingBox=null,this.groupsNeedUpdate=this.lineDistancesNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=this.verticesNeedUpdate=this.elementsNeedUpdate=!1}function ce(e,t,r){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.uuid=ci.generateUUID(),this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=!0===r,this.dynamic=!1,this.updateRange={offset:0,count:-1},this.onUploadCallback=function(){},this.version=0}function ue(e,t,r){ce.call(this,new Int8Array(e),t,r)}function he(e,t,r){ce.call(this,new Uint8Array(e),t,r)}function le(e,t,r){ce.call(this,new Uint8ClampedArray(e),t,r)}function pe(e,t,r){ce.call(this,new Int16Array(e),t,r)}function fe(e,t,r){ce.call(this,new Uint16Array(e),t,r)}function de(e,t,r){ce.call(this,new Int32Array(e),t,r)}function me(e,t,r){ce.call(this,new Uint32Array(e),t,r)}function ve(e,t,r){ce.call(this,new Float32Array(e),t,r)}function ge(e,t,r){ce.call(this,new Float64Array(e),t,r)}function ye(){this.indices=[],this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingSphere=this.boundingBox=null,this.groupsNeedUpdate=this.uvsNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.verticesNeedUpdate=!1}function be(e){if(0===e.length)return-1/0;for(var t=e[0],r=1,n=e.length;r<n;++r)e[r]>t&&(t=e[r]);return t}function _e(){Object.defineProperty(this,"id",{value:Ei+=2}),this.uuid=ci.generateUUID(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingSphere=this.boundingBox=null,this.drawRange={start:0,count:1/0}}function xe(e,t,r,n,i,o){ae.call(this),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:r,widthSegments:n,heightSegments:i,depthSegments:o},this.fromBufferGeometry(new we(e,t,r,n,i,o)),this.mergeVertices()}function we(e,t,r,n,i,s){function a(e,t,r,n,i,s,a,m,v,g,y){var b=s/v,_=a/g,x=s/2,w=a/2,S=m/2;a=v+1;var M,E,C=g+1,T=s=0,O=new o;for(E=0;E<C;E++){var P=E*_-w;for(M=0;M<a;M++)O[e]=(M*b-x)*n,O[t]=P*i,O[r]=S,h.push(O.x,O.y,O.z),O[e]=0,O[t]=0,O[r]=0<m?1:-1,l.push(O.x,O.y,O.z),p.push(M/v),p.push(1-E/g),s+=1}for(E=0;E<g;E++)for(M=0;M<v;M++)e=f+M+a*(E+1),t=f+(M+1)+a*(E+1),r=f+(M+1)+a*E,u.push(f+M+a*E,e,r),u.push(e,t,r),T+=6;c.addGroup(d,T,y),d+=T,f+=s}_e.call(this),this.type="BoxBufferGeometry",this.parameters={width:e,height:t,depth:r,widthSegments:n,heightSegments:i,depthSegments:s};var c=this;e=e||1,t=t||1,r=r||1,n=Math.floor(n)||1,i=Math.floor(i)||1;var u=[],h=[],l=[],p=[],f=0,d=0;a("z","y","x",-1,-1,r,t,e,s=Math.floor(s)||1,i,0),a("z","y","x",1,-1,r,t,-e,s,i,1),a("x","z","y",1,1,e,r,t,n,s,2),a("x","z","y",1,-1,e,r,-t,n,s,3),a("x","y","z",1,-1,e,t,r,n,i,4),a("x","y","z",-1,-1,e,t,-r,n,i,5),this.setIndex(u),this.addAttribute("position",new ve(h,3)),this.addAttribute("normal",new ve(l,3)),this.addAttribute("uv",new ve(p,2))}function Se(e,t,r,n){ae.call(this),this.type="PlaneGeometry",this.parameters={width:e,height:t,widthSegments:r,heightSegments:n},this.fromBufferGeometry(new Me(e,t,r,n)),this.mergeVertices()}function Me(e,t,r,n){_e.call(this),this.type="PlaneBufferGeometry",this.parameters={width:e,height:t,widthSegments:r,heightSegments:n};var i=(e=e||1)/2,o=(t=t||1)/2,s=(r=Math.floor(r)||1)+1,a=(n=Math.floor(n)||1)+1,c=e/r,u=t/n,h=[],l=[],p=[],f=[];for(e=0;e<a;e++){var d=e*u-o;for(t=0;t<s;t++)l.push(t*c-i,-d,0),p.push(0,0,1),f.push(t/r),f.push(1-e/n)}for(e=0;e<n;e++)for(t=0;t<r;t++)i=t+s*(e+1),o=t+1+s*(e+1),a=t+1+s*e,h.push(t+s*e,i,a),h.push(i,o,a);this.setIndex(h),this.addAttribute("position",new ve(l,3)),this.addAttribute("normal",new ve(p,3)),this.addAttribute("uv",new ve(f,2))}function Ee(e){W.call(this),this.type="MeshBasicMaterial",this.color=new z(16777215),this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.envMap=this.alphaMap=this.specularMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinejoin=this.wireframeLinecap="round",this.lights=this.morphTargets=this.skinning=!1,this.setValues(e)}function Ce(e){W.call(this),this.type="ShaderMaterial",this.defines={},this.uniforms={},this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,void 0!==e&&(void 0!==e.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(e))}function Te(e,t){this.origin=void 0!==e?e:new o,this.direction=void 0!==t?t:new o}function Oe(e,t){this.start=void 0!==e?e:new o,this.end=void 0!==t?t:new o}function Pe(e,t,r){this.a=void 0!==e?e:new o,this.b=void 0!==t?t:new o,this.c=void 0!==r?r:new o}function Ae(e,t){ne.call(this),this.type="Mesh",this.geometry=void 0!==e?e:new _e,this.material=void 0!==t?t:new Ee({color:16777215*Math.random()}),this.drawMode=0,this.updateMorphTargets()}function Re(e,t,r,n){function i(e,r){t.buffers.color.setClear(e.r,e.g,e.b,r,n)}var o,s,a,c=new z(0),u=0;return{getClearColor:function(){return c},setClearColor:function(e,t){c.set(e),i(c,u=void 0!==t?t:1)},getClearAlpha:function(){return u},setClearAlpha:function(e){i(c,u=e)},render:function(t,n,h,l){null===(n=n.background)?i(c,u):n&&n.isColor&&(i(n,1),l=!0),(e.autoClear||l)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),n&&n.isCubeTexture?(void 0===a&&((a=new Ae(new we(1,1,1),new Ce({uniforms:xi.cube.uniforms,vertexShader:xi.cube.vertexShader,fragmentShader:xi.cube.fragmentShader,side:1,depthTest:!0,depthWrite:!1,fog:!1}))).geometry.removeAttribute("normal"),a.geometry.removeAttribute("uv"),a.onBeforeRender=function(e,t,r){this.matrixWorld.copyPosition(r.matrixWorld)},r.update(a.geometry)),a.material.uniforms.tCube.value=n,t.push(a,a.geometry,a.material,0,null)):n&&n.isTexture&&(void 0===o&&(o=new oe(-1,1,1,-1,0,1),s=new Ae(new Me(2,2),new Ee({depthTest:!1,depthWrite:!1,fog:!1})),r.update(s.geometry)),s.material.map=n,e.renderBufferDirect(o,null,s.geometry,s.material,s,null))}}}function je(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.program&&t.program&&e.program!==t.program?e.program.id-t.program.id:e.material.id!==t.material.id?e.material.id-t.material.id:e.z!==t.z?e.z-t.z:e.id-t.id}function Le(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id-t.id}function Ne(){var e={};return{get:function(t,r){return t=t.id+","+r.id,void 0===(r=e[t])&&(r=new function(){var e=[],t=0,r=[],n=[];return{opaque:r,transparent:n,init:function(){t=0,r.length=0,n.length=0},push:function(i,o,s,a,c){var u=e[t];void 0===u?(u={id:i.id,object:i,geometry:o,material:s,program:s.program,renderOrder:i.renderOrder,z:a,group:c},e[t]=u):(u.id=i.id,u.object=i,u.geometry=o,u.material=s,u.program=s.program,u.renderOrder=i.renderOrder,u.z=a,u.group=c),(!0===s.transparent?n:r).push(u),t++},sort:function(){1<r.length&&r.sort(je),1<n.length&&n.sort(Le)}}},e[t]=r),r},dispose:function(){e={}}}}function Ie(e,t){return Math.abs(t[1])-Math.abs(e[1])}function De(e,t,r){function n(e){e=e.target;var s=i[e.id];null!==s.index&&t.remove(s.index);for(var a in s.attributes)t.remove(s.attributes[a]);e.removeEventListener("dispose",n),delete i[e.id],(a=o[e.id])&&(t.remove(a),delete o[e.id]),(a=o[s.id])&&(t.remove(a),delete o[s.id]),r.geometries--}var i={},o={};return{get:function(e,t){var o=i[t.id];return o||(t.addEventListener("dispose",n),t.isBufferGeometry?o=t:t.isGeometry&&(void 0===t._bufferGeometry&&(t._bufferGeometry=(new _e).setFromObject(e)),o=t._bufferGeometry),i[t.id]=o,r.geometries++,o)},update:function(r){var n=r.index,i=r.attributes;null!==n&&t.update(n,e.ELEMENT_ARRAY_BUFFER);for(var o in i)t.update(i[o],e.ARRAY_BUFFER);r=r.morphAttributes;for(o in r)for(var n=r[o],i=0,s=n.length;i<s;i++)t.update(n[i],e.ARRAY_BUFFER)},getWireframeAttribute:function(r){var n=o[r.id];if(n)return n;n=[];var i=r.index,s=r.attributes;if(null!==i)for(var a=i.array,c=0,u=a.length;c<u;c+=3){var h=a[c+0];s=a[c+1],i=a[c+2],n.push(h,s,s,i,i,h)}else for(a=s.position.array,c=0,u=a.length/3-1;c<u;c+=3)h=c+0,s=c+1,i=c+2,n.push(h,s,s,i,i,h);return n=new(65535<be(n)?me:fe)(n,1),t.update(n,e.ELEMENT_ARRAY_BUFFER),o[r.id]=n}}}function ke(){var e=new function(){var e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];switch(t.type){case"DirectionalLight":var n={direction:new o,color:new z,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new r};break;case"SpotLight":n={position:new o,direction:new o,color:new z,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new r};break;case"PointLight":n={position:new o,color:new z,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new r,shadowCameraNear:1,shadowCameraFar:1e3};break;case"HemisphereLight":n={direction:new o,skyColor:new z,groundColor:new z};break;case"RectAreaLight":n={color:new z,position:new o,halfWidth:new o,halfHeight:new o}}return e[t.id]=n}}},t={hash:"",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},i=new o,s=new n,a=new n;return{setup:function(r,n,o){for(var c,u=0,h=0,l=0,p=0,f=0,d=0,m=0,v=0,g=o.matrixWorldInverse,y=0,b=r.length;y<b;y++){var _=r[y];c=_.color;var x=_.intensity,w=_.distance,S=_.shadow&&_.shadow.map?_.shadow.map.texture:null;_.isAmbientLight?(u+=c.r*x,h+=c.g*x,l+=c.b*x):_.isDirectionalLight?((o=e.get(_)).color.copy(_.color).multiplyScalar(_.intensity),o.direction.setFromMatrixPosition(_.matrixWorld),i.setFromMatrixPosition(_.target.matrixWorld),o.direction.sub(i),o.direction.transformDirection(g),(o.shadow=_.castShadow)&&(c=_.shadow,o.shadowBias=c.bias,o.shadowRadius=c.radius,o.shadowMapSize=c.mapSize),t.directionalShadowMap[p]=S,t.directionalShadowMatrix[p]=_.shadow.matrix,t.directional[p]=o,p++):_.isSpotLight?((o=e.get(_)).position.setFromMatrixPosition(_.matrixWorld),o.position.applyMatrix4(g),o.color.copy(c).multiplyScalar(x),o.distance=w,o.direction.setFromMatrixPosition(_.matrixWorld),i.setFromMatrixPosition(_.target.matrixWorld),o.direction.sub(i),o.direction.transformDirection(g),o.coneCos=Math.cos(_.angle),o.penumbraCos=Math.cos(_.angle*(1-_.penumbra)),o.decay=0===_.distance?0:_.decay,(o.shadow=_.castShadow)&&(c=_.shadow,o.shadowBias=c.bias,o.shadowRadius=c.radius,o.shadowMapSize=c.mapSize),t.spotShadowMap[d]=S,t.spotShadowMatrix[d]=_.shadow.matrix,t.spot[d]=o,d++):_.isRectAreaLight?((o=e.get(_)).color.copy(c).multiplyScalar(x/(_.width*_.height)),o.position.setFromMatrixPosition(_.matrixWorld),o.position.applyMatrix4(g),a.identity(),s.copy(_.matrixWorld),s.premultiply(g),a.extractRotation(s),o.halfWidth.set(.5*_.width,0,0),o.halfHeight.set(0,.5*_.height,0),o.halfWidth.applyMatrix4(a),o.halfHeight.applyMatrix4(a),t.rectArea[m]=o,m++):_.isPointLight?((o=e.get(_)).position.setFromMatrixPosition(_.matrixWorld),o.position.applyMatrix4(g),o.color.copy(_.color).multiplyScalar(_.intensity),o.distance=_.distance,o.decay=0===_.distance?0:_.decay,(o.shadow=_.castShadow)&&(c=_.shadow,o.shadowBias=c.bias,o.shadowRadius=c.radius,o.shadowMapSize=c.mapSize,o.shadowCameraNear=c.camera.near,o.shadowCameraFar=c.camera.far),t.pointShadowMap[f]=S,t.pointShadowMatrix[f]=_.shadow.matrix,t.point[f]=o,f++):_.isHemisphereLight&&((o=e.get(_)).direction.setFromMatrixPosition(_.matrixWorld),o.direction.transformDirection(g),o.direction.normalize(),o.skyColor.copy(_.color).multiplyScalar(x),o.groundColor.copy(_.groundColor).multiplyScalar(x),t.hemi[v]=o,v++)}t.ambient[0]=u,t.ambient[1]=h,t.ambient[2]=l,t.directional.length=p,t.spot.length=d,t.rectArea.length=m,t.point.length=f,t.hemi.length=v,t.hash=p+","+f+","+d+","+m+","+v+","+n.length},state:t}}function Be(e,t,r){var n=e.createShader(t);return e.shaderSource(n,r),e.compileShader(n),!1===e.getShaderParameter(n,e.COMPILE_STATUS)&&console.error("THREE.WebGLShader: Shader couldn't compile."),""!==e.getShaderInfoLog(n)&&console.warn("THREE.WebGLShader: gl.getShaderInfoLog()",t===e.VERTEX_SHADER?"vertex":"fragment",e.getShaderInfoLog(n),function(e){e=e.split("\n");for(var t=0;t<e.length;t++)e[t]=t+1+": "+e[t];return e.join("\n")}(r)),n}function Fe(e){switch(e){case 3e3:return["Linear","( value )"];case 3001:return["sRGB","( value )"];case 3002:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case 3007:return["Gamma","( value, float( GAMMA_FACTOR ) )"];default:throw Error("unsupported encoding: "+e)}}function Ue(e,t){return t=Fe(t),"vec4 "+e+"( vec4 value ) { return "+t[0]+"ToLinear"+t[1]+"; }"}function $e(e){return""!==e}function ze(e,t){return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights)}function Ge(e){return e.replace(/^[ \t]*#include +<([\w\d.]+)>/gm,function(e,t){if(void 0===(e=_i[t]))throw Error("Can not resolve #include <"+t+">");return Ge(e)})}function Ve(e){return e.replace(/for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,function(e,t,r,n){for(e="",t=parseInt(t);t<parseInt(r);t++)e+=n.replace(/\[ i \]/g,"[ "+t+" ]");return e})}function He(e,t,r,n,i,o){var s=e.context,a=n.defines,c=i.vertexShader,u=i.fragmentShader,h="SHADOWMAP_TYPE_BASIC";1===o.shadowMapType?h="SHADOWMAP_TYPE_PCF":2===o.shadowMapType&&(h="SHADOWMAP_TYPE_PCF_SOFT");var l="ENVMAP_TYPE_CUBE",p="ENVMAP_MODE_REFLECTION",f="ENVMAP_BLENDING_MULTIPLY";if(o.envMap){switch(n.envMap.mapping){case 301:case 302:l="ENVMAP_TYPE_CUBE";break;case 306:case 307:l="ENVMAP_TYPE_CUBE_UV";break;case 303:case 304:l="ENVMAP_TYPE_EQUIREC";break;case 305:l="ENVMAP_TYPE_SPHERE"}switch(n.envMap.mapping){case 302:case 304:p="ENVMAP_MODE_REFRACTION"}switch(n.combine){case 0:f="ENVMAP_BLENDING_MULTIPLY";break;case 1:f="ENVMAP_BLENDING_MIX";break;case 2:f="ENVMAP_BLENDING_ADD"}}var d=0<e.gammaFactor?e.gammaFactor:1,m=function(e,t,r){return e=e||{},[e.derivatives||t.envMapCubeUV||t.bumpMap||t.normalMap||t.flatShading?"#extension GL_OES_standard_derivatives : enable":"",(e.fragDepth||t.logarithmicDepthBuffer)&&r.get("EXT_frag_depth")?"#extension GL_EXT_frag_depth : enable":"",e.drawBuffers&&r.get("WEBGL_draw_buffers")?"#extension GL_EXT_draw_buffers : require":"",(e.shaderTextureLOD||t.envMap)&&r.get("EXT_shader_texture_lod")?"#extension GL_EXT_shader_texture_lod : enable":""].filter($e).join("\n")}(n.extensions,o,t),v=function(e){var t,r=[];for(t in e){var n=e[t];!1!==n&&r.push("#define "+t+" "+n)}return r.join("\n")}(a),g=s.createProgram();n.isRawShaderMaterial?(0<(a=[v].filter($e).join("\n")).length&&(a+="\n"),0<(t=[m,v].filter($e).join("\n")).length&&(t+="\n")):(a=["precision "+o.precision+" float;","precision "+o.precision+" int;","#define SHADER_NAME "+i.name,v,o.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+d,"#define MAX_BONES "+o.maxBones,o.useFog&&o.fog?"#define USE_FOG":"",o.useFog&&o.fogExp?"#define FOG_EXP2":"",o.map?"#define USE_MAP":"",o.envMap?"#define USE_ENVMAP":"",o.envMap?"#define "+p:"",o.lightMap?"#define USE_LIGHTMAP":"",o.aoMap?"#define USE_AOMAP":"",o.emissiveMap?"#define USE_EMISSIVEMAP":"",o.bumpMap?"#define USE_BUMPMAP":"",o.normalMap?"#define USE_NORMALMAP":"",o.displacementMap&&o.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",o.specularMap?"#define USE_SPECULARMAP":"",o.roughnessMap?"#define USE_ROUGHNESSMAP":"",o.metalnessMap?"#define USE_METALNESSMAP":"",o.alphaMap?"#define USE_ALPHAMAP":"",o.vertexColors?"#define USE_COLOR":"",o.flatShading?"#define FLAT_SHADED":"",o.skinning?"#define USE_SKINNING":"",o.useVertexTexture?"#define BONE_TEXTURE":"",o.morphTargets?"#define USE_MORPHTARGETS":"",o.morphNormals&&!1===o.flatShading?"#define USE_MORPHNORMALS":"",o.doubleSided?"#define DOUBLE_SIDED":"",o.flipSided?"#define FLIP_SIDED":"","#define NUM_CLIPPING_PLANES "+o.numClippingPlanes,o.shadowMapEnabled?"#define USE_SHADOWMAP":"",o.shadowMapEnabled?"#define "+h:"",o.sizeAttenuation?"#define USE_SIZEATTENUATION":"",o.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",o.logarithmicDepthBuffer&&t.get("EXT_frag_depth")?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter($e).join("\n"),t=[m,"precision "+o.precision+" float;","precision "+o.precision+" int;","#define SHADER_NAME "+i.name,v,o.alphaTest?"#define ALPHATEST "+o.alphaTest:"","#define GAMMA_FACTOR "+d,o.useFog&&o.fog?"#define USE_FOG":"",o.useFog&&o.fogExp?"#define FOG_EXP2":"",o.map?"#define USE_MAP":"",o.envMap?"#define USE_ENVMAP":"",o.envMap?"#define "+l:"",o.envMap?"#define "+p:"",o.envMap?"#define "+f:"",o.lightMap?"#define USE_LIGHTMAP":"",o.aoMap?"#define USE_AOMAP":"",o.emissiveMap?"#define USE_EMISSIVEMAP":"",o.bumpMap?"#define USE_BUMPMAP":"",o.normalMap?"#define USE_NORMALMAP":"",o.specularMap?"#define USE_SPECULARMAP":"",o.roughnessMap?"#define USE_ROUGHNESSMAP":"",o.metalnessMap?"#define USE_METALNESSMAP":"",o.alphaMap?"#define USE_ALPHAMAP":"",o.vertexColors?"#define USE_COLOR":"",o.gradientMap?"#define USE_GRADIENTMAP":"",o.flatShading?"#define FLAT_SHADED":"",o.doubleSided?"#define DOUBLE_SIDED":"",o.flipSided?"#define FLIP_SIDED":"","#define NUM_CLIPPING_PLANES "+o.numClippingPlanes,"#define UNION_CLIPPING_PLANES "+(o.numClippingPlanes-o.numClipIntersection),o.shadowMapEnabled?"#define USE_SHADOWMAP":"",o.shadowMapEnabled?"#define "+h:"",o.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",o.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",o.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",o.logarithmicDepthBuffer&&t.get("EXT_frag_depth")?"#define USE_LOGDEPTHBUF_EXT":"",o.envMap&&t.get("EXT_shader_texture_lod")?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;",0!==o.toneMapping?"#define TONE_MAPPING":"",0!==o.toneMapping?_i.tonemapping_pars_fragment:"",0!==o.toneMapping?function(e,t){switch(t){case 1:t="Linear";break;case 2:t="Reinhard";break;case 3:t="Uncharted2";break;case 4:t="OptimizedCineon";break;default:throw Error("unsupported toneMapping: "+t)}return"vec3 "+e+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}("toneMapping",o.toneMapping):"",o.dithering?"#define DITHERING":"",o.outputEncoding||o.mapEncoding||o.envMapEncoding||o.emissiveMapEncoding?_i.encodings_pars_fragment:"",o.mapEncoding?Ue("mapTexelToLinear",o.mapEncoding):"",o.envMapEncoding?Ue("envMapTexelToLinear",o.envMapEncoding):"",o.emissiveMapEncoding?Ue("emissiveMapTexelToLinear",o.emissiveMapEncoding):"",o.outputEncoding?function(e,t){return t=Fe(t),"vec4 "+e+"( vec4 value ) { return LinearTo"+t[0]+t[1]+"; }"}("linearToOutputTexel",o.outputEncoding):"",o.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter($e).join("\n")),c=ze(c=Ge(c),o),u=ze(u=Ge(u),o),n.isShaderMaterial||(c=Ve(c),u=Ve(u)),u=t+u,c=Be(s,s.VERTEX_SHADER,a+c),u=Be(s,s.FRAGMENT_SHADER,u),s.attachShader(g,c),s.attachShader(g,u),void 0!==n.index0AttributeName?s.bindAttribLocation(g,0,n.index0AttributeName):!0===o.morphTargets&&s.bindAttribLocation(g,0,"position"),s.linkProgram(g),o=s.getProgramInfoLog(g),i=s.getShaderInfoLog(c),h=s.getShaderInfoLog(u),p=l=!0,!1===s.getProgramParameter(g,s.LINK_STATUS)?(l=!1,console.error("THREE.WebGLProgram: shader error: ",s.getError(),"gl.VALIDATE_STATUS",s.getProgramParameter(g,s.VALIDATE_STATUS),"gl.getProgramInfoLog",o,i,h)):""!==o?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",o):""!==i&&""!==h||(p=!1),p&&(this.diagnostics={runnable:l,material:n,programLog:o,vertexShader:{log:i,prefix:a},fragmentShader:{log:h,prefix:t}}),s.deleteShader(c),s.deleteShader(u);var y;this.getUniforms=function(){return void 0===y&&(y=new $(s,g,e)),y};var b;return this.getAttributes=function(){if(void 0===b){for(var e={},t=s.getProgramParameter(g,s.ACTIVE_ATTRIBUTES),r=0;r<t;r++){var n=s.getActiveAttrib(g,r).name;e[n]=s.getAttribLocation(g,n)}b=e}return b},this.destroy=function(){s.deleteProgram(g),this.program=void 0},Object.defineProperties(this,{uniforms:{get:function(){return console.warn("THREE.WebGLProgram: .uniforms is now .getUniforms()."),this.getUniforms()}},attributes:{get:function(){return console.warn("THREE.WebGLProgram: .attributes is now .getAttributes()."),this.getAttributes()}}}),this.id=Ci++,this.code=r,this.usedTimes=1,this.program=g,this.vertexShader=c,this.fragmentShader=u,this}function qe(e,t,r){function n(t){if("highp"===t){if(0<e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.HIGH_FLOAT).precision&&0<e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision)return"highp";t="mediump"}return"mediump"===t&&0<e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision&&0<e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision?"mediump":"lowp"}var i,o=void 0!==r.precision?r.precision:"highp";(s=n(o))!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",s,"instead."),o=s),r=!0===r.logarithmicDepthBuffer;var s=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),a=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS),c=e.getParameter(e.MAX_TEXTURE_SIZE),u=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),h=e.getParameter(e.MAX_VERTEX_ATTRIBS),l=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),p=e.getParameter(e.MAX_VARYING_VECTORS),f=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),d=0<a,m=!!t.get("OES_texture_float");return{getMaxAnisotropy:function(){if(void 0!==i)return i;var r=t.get("EXT_texture_filter_anisotropic");return i=null!==r?e.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:n,precision:o,logarithmicDepthBuffer:r,maxTextures:s,maxVertexTextures:a,maxTextureSize:c,maxCubemapSize:u,maxAttributes:h,maxVertexUniforms:l,maxVaryings:p,maxFragmentUniforms:f,vertexTextures:d,floatFragmentTextures:m,floatVertexTextures:d&&m}}function We(e,t,r,n){ie.call(this),this.type="PerspectiveCamera",this.fov=void 0!==e?e:50,this.zoom=1,this.near=void 0!==r?r:.1,this.far=void 0!==n?n:2e3,this.focus=10,this.aspect=void 0!==t?t:1,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}function Xe(e){We.call(this),this.cameras=e||[]}function Ye(e){function t(){if(null!==i&&i.isPresenting){var t=(n=i.getEyeParameters("left")).renderWidth,n=n.renderHeight;d=e.getPixelRatio(),f=e.getSize(),e.setDrawingBufferSize(2*t,n,1)}else r.enabled&&e.setDrawingBufferSize(f.width,f.height,d)}var r=this,i=null,o=null;"undefined"!=typeof window&&"VRFrameData"in window&&(o=new window.VRFrameData);var s=new n,a=new n,u=new n,h=new We;h.bounds=new c(0,0,.5,1),h.layers.enable(1);var l=new We;l.bounds=new c(.5,0,.5,1),l.layers.enable(2);var p=new Xe([h,l]);p.layers.enable(1),p.layers.enable(2);var f,d;"undefined"!=typeof window&&window.addEventListener("vrdisplaypresentchange",t,!1),this.standing=this.enabled=!1,this.getDevice=function(){return i},this.setDevice=function(e){void 0!==e&&(i=e)},this.getCamera=function(e){if(null===i)return e;i.depthNear=e.near,i.depthFar=e.far,i.getFrameData(o);var t=o.pose;return null!==t.position?e.position.fromArray(t.position):e.position.set(0,0,0),null!==t.orientation&&e.quaternion.fromArray(t.orientation),e.updateMatrixWorld(),t=i.stageParameters,this.standing&&t&&(a.fromArray(t.sittingToStandingTransform),u.getInverse(a),e.matrixWorld.multiply(a),e.matrixWorldInverse.multiply(u)),!1===i.isPresenting?e:(h.near=e.near,l.near=e.near,h.far=e.far,l.far=e.far,p.matrixWorld.copy(e.matrixWorld),p.matrixWorldInverse.copy(e.matrixWorldInverse),h.matrixWorldInverse.fromArray(o.leftViewMatrix),l.matrixWorldInverse.fromArray(o.rightViewMatrix),this.standing&&t&&(h.matrixWorldInverse.multiply(u),l.matrixWorldInverse.multiply(u)),null!==(e=e.parent)&&(s.getInverse(e.matrixWorld),h.matrixWorldInverse.multiply(s),l.matrixWorldInverse.multiply(s)),h.matrixWorld.getInverse(h.matrixWorldInverse),l.matrixWorld.getInverse(l.matrixWorldInverse),h.projectionMatrix.fromArray(o.leftProjectionMatrix),l.projectionMatrix.fromArray(o.rightProjectionMatrix),p.projectionMatrix.copy(h.projectionMatrix),(e=i.getLayers()).length&&(null!==(e=e[0]).leftBounds&&4===e.leftBounds.length&&h.bounds.fromArray(e.leftBounds),null!==e.rightBounds&&4===e.rightBounds.length&&l.bounds.fromArray(e.rightBounds)),p)},this.getStandingMatrix=function(){return a},this.submitFrame=function(){i&&i.isPresenting&&i.submitFrame()},this.dispose=function(){"undefined"!=typeof window&&window.removeEventListener("vrdisplaypresentchange",t)}}function Ke(){function e(){h.value!==n&&(h.value=n,h.needsUpdate=0<i),r.numPlanes=i,r.numIntersection=0}function t(e,t,n,i){var o=null!==e?e.length:0,s=null;if(0!==o){if(s=h.value,!0!==i||null===s)for(i=n+4*o,t=t.matrixWorldInverse,u.getNormalMatrix(t),(null===s||s.length<i)&&(s=new Float32Array(i)),i=0;i!==o;++i,n+=4)c.copy(e[i]).applyMatrix4(t,u),c.normal.toArray(s,n),s[n+3]=c.constant;h.value=s,h.needsUpdate=!0}return r.numPlanes=o,s}var r=this,n=null,i=0,o=!1,a=!1,c=new J,u=new s,h={value:null,needsUpdate:!1};this.uniform=h,this.numIntersection=this.numPlanes=0,this.init=function(e,r,s){var a=0!==e.length||r||0!==i||o;return o=r,n=t(e,s,0),i=e.length,a},this.beginShadows=function(){a=!0,t(null)},this.endShadows=function(){a=!1,e()},this.setState=function(r,s,c,u,l,p){if(!o||null===r||0===r.length||a&&!c)a?t(null):e();else{var f=4*(c=a?0:i),d=l.clippingState||null;for(h.value=d,d=t(r,u,f,p),r=0;r!==f;++r)d[r]=n[r];l.clippingState=d,this.numIntersection=s?this.numPlanes:0,this.numPlanes+=c}}}function Ze(e,t){return{convert:function(r){if(1e3===r)return e.REPEAT;if(1001===r)return e.CLAMP_TO_EDGE;if(1002===r)return e.MIRRORED_REPEAT;if(1003===r)return e.NEAREST;if(1004===r)return e.NEAREST_MIPMAP_NEAREST;if(1005===r)return e.NEAREST_MIPMAP_LINEAR;if(1006===r)return e.LINEAR;if(1007===r)return e.LINEAR_MIPMAP_NEAREST;if(1008===r)return e.LINEAR_MIPMAP_LINEAR;if(1009===r)return e.UNSIGNED_BYTE;if(1017===r)return e.UNSIGNED_SHORT_4_4_4_4;if(1018===r)return e.UNSIGNED_SHORT_5_5_5_1;if(1019===r)return e.UNSIGNED_SHORT_5_6_5;if(1010===r)return e.BYTE;if(1011===r)return e.SHORT;if(1012===r)return e.UNSIGNED_SHORT;if(1013===r)return e.INT;if(1014===r)return e.UNSIGNED_INT;if(1015===r)return e.FLOAT;if(1016===r){var n=t.get("OES_texture_half_float");if(null!==n)return n.HALF_FLOAT_OES}if(1021===r)return e.ALPHA;if(1022===r)return e.RGB;if(1023===r)return e.RGBA;if(1024===r)return e.LUMINANCE;if(1025===r)return e.LUMINANCE_ALPHA;if(1026===r)return e.DEPTH_COMPONENT;if(1027===r)return e.DEPTH_STENCIL;if(100===r)return e.FUNC_ADD;if(101===r)return e.FUNC_SUBTRACT;if(102===r)return e.FUNC_REVERSE_SUBTRACT;if(200===r)return e.ZERO;if(201===r)return e.ONE;if(202===r)return e.SRC_COLOR;if(203===r)return e.ONE_MINUS_SRC_COLOR;if(204===r)return e.SRC_ALPHA;if(205===r)return e.ONE_MINUS_SRC_ALPHA;if(206===r)return e.DST_ALPHA;if(207===r)return e.ONE_MINUS_DST_ALPHA;if(208===r)return e.DST_COLOR;if(209===r)return e.ONE_MINUS_DST_COLOR;if(210===r)return e.SRC_ALPHA_SATURATE;if((2001===r||2002===r||2003===r||2004===r)&&null!==(n=t.get("WEBGL_compressed_texture_s3tc"))){if(2001===r)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(2002===r)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(2003===r)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(2004===r)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if((2100===r||2101===r||2102===r||2103===r)&&null!==(n=t.get("WEBGL_compressed_texture_pvrtc"))){if(2100===r)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(2101===r)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(2102===r)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(2103===r)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(2151===r&&null!==(n=t.get("WEBGL_compressed_texture_etc1")))return n.COMPRESSED_RGB_ETC1_WEBGL;if((103===r||104===r)&&null!==(n=t.get("EXT_blend_minmax"))){if(103===r)return n.MIN_EXT;if(104===r)return n.MAX_EXT}return 1020===r&&null!==(n=t.get("WEBGL_depth_texture"))?n.UNSIGNED_INT_24_8_WEBGL:0}}}function Je(e){function t(){(ue=new function(e){var t={};return{get:function(r){if(void 0!==t[r])return t[r];switch(r){case"WEBGL_depth_texture":var n=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":n=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":n=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":n=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;case"WEBGL_compressed_texture_etc1":n=e.getExtension("WEBGL_compressed_texture_etc1");break;default:n=e.getExtension(r)}return null===n&&console.warn("THREE.WebGLRenderer: "+r+" extension not supported."),t[r]=n}}}(ce)).get("WEBGL_depth_texture"),ue.get("OES_texture_float"),ue.get("OES_texture_float_linear"),ue.get("OES_texture_half_float"),ue.get("OES_texture_half_float_linear"),ue.get("OES_standard_derivatives"),ue.get("OES_element_index_uint"),ue.get("ANGLE_instanced_arrays"),Ce=new Ze(ce,ue),he=new qe(ce,ue,e),(le=new function(e,t,r){function n(t,r,n){var i=new Uint8Array(4),o=e.createTexture();for(e.bindTexture(t,o),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST),t=0;t<n;t++)e.texImage2D(r+t,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,i);return o}function i(t){!0!==b[t]&&(e.enable(t),b[t]=!0)}function o(t){!1!==b[t]&&(e.disable(t),b[t]=!1)}function s(t,n,s,a,c,u,h,l){if(0!==t?i(e.BLEND):o(e.BLEND),5!==t){if(t!==w||l!==P)switch(t){case 2:l?(e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.ONE,e.ONE,e.ONE,e.ONE)):(e.blendEquation(e.FUNC_ADD),e.blendFunc(e.SRC_ALPHA,e.ONE));break;case 3:l?(e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.ZERO,e.ZERO,e.ONE_MINUS_SRC_COLOR,e.ONE_MINUS_SRC_ALPHA)):(e.blendEquation(e.FUNC_ADD),e.blendFunc(e.ZERO,e.ONE_MINUS_SRC_COLOR));break;case 4:l?(e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.ZERO,e.SRC_COLOR,e.ZERO,e.SRC_ALPHA)):(e.blendEquation(e.FUNC_ADD),e.blendFunc(e.ZERO,e.SRC_COLOR));break;default:l?(e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.ONE,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA)):(e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA))}O=T=C=E=M=S=null}else c=c||n,u=u||s,h=h||a,n===S&&c===C||(e.blendEquationSeparate(r.convert(n),r.convert(c)),S=n,C=c),s===M&&a===E&&u===T&&h===O||(e.blendFuncSeparate(r.convert(s),r.convert(a),r.convert(u),r.convert(h)),M=s,E=a,T=u,O=h);w=t,P=l}function a(t){A!==t&&(t?e.frontFace(e.CW):e.frontFace(e.CCW),A=t)}function u(t){0!==t?(i(e.CULL_FACE),t!==R&&(1===t?e.cullFace(e.BACK):2===t?e.cullFace(e.FRONT):e.cullFace(e.FRONT_AND_BACK))):o(e.CULL_FACE),R=t}function h(t,r,n){t?(i(e.POLYGON_OFFSET_FILL),(L!==r||N!==n)&&(e.polygonOffset(r,n),L=r,N=n)):o(e.POLYGON_OFFSET_FILL)}function l(t){void 0===t&&(t=e.TEXTURE0+I-1),k!==t&&(e.activeTexture(t),k=t)}var p=new function(){var t=!1,r=new c,n=null,i=new c(0,0,0,0);return{setMask:function(r){n===r||t||(e.colorMask(r,r,r,r),n=r)},setLocked:function(e){t=e},setClear:function(t,n,o,s,a){!0===a&&(t*=s,n*=s,o*=s),r.set(t,n,o,s),!1===i.equals(r)&&(e.clearColor(t,n,o,s),i.copy(r))},reset:function(){t=!1,n=null,i.set(-1,0,0,0)}}},f=new function(){var t=!1,r=null,n=null,s=null;return{setTest:function(t){t?i(e.DEPTH_TEST):o(e.DEPTH_TEST)},setMask:function(n){r===n||t||(e.depthMask(n),r=n)},setFunc:function(t){if(n!==t){if(t)switch(t){case 0:e.depthFunc(e.NEVER);break;case 1:e.depthFunc(e.ALWAYS);break;case 2:e.depthFunc(e.LESS);break;case 3:e.depthFunc(e.LEQUAL);break;case 4:e.depthFunc(e.EQUAL);break;case 5:e.depthFunc(e.GEQUAL);break;case 6:e.depthFunc(e.GREATER);break;case 7:e.depthFunc(e.NOTEQUAL);break;default:e.depthFunc(e.LEQUAL)}else e.depthFunc(e.LEQUAL);n=t}},setLocked:function(e){t=e},setClear:function(t){s!==t&&(e.clearDepth(t),s=t)},reset:function(){t=!1,s=n=r=null}}},d=new function(){var t=!1,r=null,n=null,s=null,a=null,c=null,u=null,h=null,l=null;return{setTest:function(t){t?i(e.STENCIL_TEST):o(e.STENCIL_TEST)},setMask:function(n){r===n||t||(e.stencilMask(n),r=n)},setFunc:function(t,r,i){n===t&&s===r&&a===i||(e.stencilFunc(t,r,i),n=t,s=r,a=i)},setOp:function(t,r,n){c===t&&u===r&&h===n||(e.stencilOp(t,r,n),c=t,u=r,h=n)},setLocked:function(e){t=e},setClear:function(t){l!==t&&(e.clearStencil(t),l=t)},reset:function(){t=!1,l=h=u=c=a=s=n=r=null}}},m=e.getParameter(e.MAX_VERTEX_ATTRIBS),v=new Uint8Array(m),g=new Uint8Array(m),y=new Uint8Array(m),b={},_=null,x=null,w=null,S=null,M=null,E=null,C=null,T=null,O=null,P=!1,A=null,R=null,j=null,L=null,N=null,I=e.getParameter(e.MAX_COMBINED_TEXTURE_IMAGE_UNITS),m=parseFloat(/^WebGL\ ([0-9])/.exec(e.getParameter(e.VERSION))[1]),D=1<=parseFloat(m),k=null,B={},F=new c,U=new c,$={};return $[e.TEXTURE_2D]=n(e.TEXTURE_2D,e.TEXTURE_2D,1),$[e.TEXTURE_CUBE_MAP]=n(e.TEXTURE_CUBE_MAP,e.TEXTURE_CUBE_MAP_POSITIVE_X,6),p.setClear(0,0,0,1),f.setClear(1),d.setClear(0),i(e.DEPTH_TEST),f.setFunc(3),a(!1),u(1),i(e.CULL_FACE),i(e.BLEND),s(1),{buffers:{color:p,depth:f,stencil:d},initAttributes:function(){for(var e=0,t=v.length;e<t;e++)v[e]=0},enableAttribute:function(r){v[r]=1,0===g[r]&&(e.enableVertexAttribArray(r),g[r]=1),0!==y[r]&&(t.get("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(r,0),y[r]=0)},enableAttributeAndDivisor:function(r,n){v[r]=1,0===g[r]&&(e.enableVertexAttribArray(r),g[r]=1),y[r]!==n&&(t.get("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(r,n),y[r]=n)},disableUnusedAttributes:function(){for(var t=0,r=g.length;t!==r;++t)g[t]!==v[t]&&(e.disableVertexAttribArray(t),g[t]=0)},enable:i,disable:o,getCompressedTextureFormats:function(){if(null===_&&(_=[],t.get("WEBGL_compressed_texture_pvrtc")||t.get("WEBGL_compressed_texture_s3tc")||t.get("WEBGL_compressed_texture_etc1")))for(var r=e.getParameter(e.COMPRESSED_TEXTURE_FORMATS),n=0;n<r.length;n++)_.push(r[n]);return _},useProgram:function(t){return x!==t&&(e.useProgram(t),x=t,!0)},setBlending:s,setMaterial:function(t){2===t.side?o(e.CULL_FACE):i(e.CULL_FACE),a(1===t.side),!0===t.transparent?s(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha):s(0),f.setFunc(t.depthFunc),f.setTest(t.depthTest),f.setMask(t.depthWrite),p.setMask(t.colorWrite),h(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits)},setFlipSided:a,setCullFace:u,setLineWidth:function(t){t!==j&&(D&&e.lineWidth(t),j=t)},setPolygonOffset:h,setScissorTest:function(t){t?i(e.SCISSOR_TEST):o(e.SCISSOR_TEST)},activeTexture:l,bindTexture:function(t,r){null===k&&l();var n=B[k];void 0===n&&(n={type:void 0,texture:void 0},B[k]=n),n.type===t&&n.texture===r||(e.bindTexture(t,r||$[t]),n.type=t,n.texture=r)},compressedTexImage2D:function(){try{e.compressedTexImage2D.apply(e,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texImage2D:function(){try{e.texImage2D.apply(e,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},scissor:function(t){!1===F.equals(t)&&(e.scissor(t.x,t.y,t.z,t.w),F.copy(t))},viewport:function(t){!1===U.equals(t)&&(e.viewport(t.x,t.y,t.z,t.w),U.copy(t))},reset:function(){for(var t=0;t<g.length;t++)1===g[t]&&(e.disableVertexAttribArray(t),g[t]=0);b={},k=_=null,B={},R=A=w=x=null,p.reset(),f.reset(),d.reset()}}}(ce,ue,Ce)).scissor(U.copy(K).multiplyScalar(X)),le.viewport(F.copy(Y).multiplyScalar(X)),pe=new function(){var e={};return{get:function(t){t=t.uuid;var r=e[t];return void 0===r&&(r={},e[t]=r),r},remove:function(t){delete e[t.uuid]},clear:function(){e={}}}},fe=new function(e,t,r,n,i,o,s){function a(e,t){if(e.width>t||e.height>t){t/=Math.max(e.width,e.height);var r=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return r.width=Math.floor(e.width*t),r.height=Math.floor(e.height*t),r.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,r.width,r.height),console.warn("THREE.WebGLRenderer: image is too big ("+e.width+"x"+e.height+"). Resized to "+r.width+"x"+r.height,e),r}return e}function c(e){return ci.isPowerOfTwo(e.width)&&ci.isPowerOfTwo(e.height)}function u(e,t){return e.generateMipmaps&&t&&1003!==e.minFilter&&1006!==e.minFilter}function h(t){return 1003===t||1004===t||1005===t?e.NEAREST:e.LINEAR}function l(t){(t=t.target).removeEventListener("dispose",l);e:{var r=n.get(t);if(t.image&&r.__image__webglTextureCube)e.deleteTexture(r.__image__webglTextureCube);else{if(void 0===r.__webglInit)break e;e.deleteTexture(r.__webglTexture)}n.remove(t)}s.textures--}function p(t){(t=t.target).removeEventListener("dispose",p);var r=n.get(t),i=n.get(t.texture);if(t){if(void 0!==i.__webglTexture&&e.deleteTexture(i.__webglTexture),t.depthTexture&&t.depthTexture.dispose(),t.isWebGLRenderTargetCube)for(i=0;6>i;i++)e.deleteFramebuffer(r.__webglFramebuffer[i]),r.__webglDepthbuffer&&e.deleteRenderbuffer(r.__webglDepthbuffer[i]);else e.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&e.deleteRenderbuffer(r.__webglDepthbuffer);n.remove(t.texture),n.remove(t)}s.textures--}function f(t,h){var p=n.get(t);if(0<t.version&&p.__version!==t.version)if(void 0===(m=t.image))console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined",t);else{if(!1!==m.complete){void 0===p.__webglInit&&(p.__webglInit=!0,t.addEventListener("dispose",l),p.__webglTexture=e.createTexture(),s.textures++),r.activeTexture(e.TEXTURE0+h),r.bindTexture(e.TEXTURE_2D,p.__webglTexture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,t.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,t.unpackAlignment);var f=a(t.image,i.maxTextureSize);(1001!==t.wrapS||1001!==t.wrapT||1003!==t.minFilter&&1006!==t.minFilter)&&!1===c(f)&&((h=f)instanceof HTMLImageElement||h instanceof HTMLCanvasElement||h instanceof ImageBitmap?(m=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),m.width=ci.floorPowerOfTwo(h.width),m.height=ci.floorPowerOfTwo(h.height),m.getContext("2d").drawImage(h,0,0,m.width,m.height),console.warn("THREE.WebGLRenderer: image is not power of two ("+h.width+"x"+h.height+"). Resized to "+m.width+"x"+m.height,h),f=m):f=h),h=c(f);var m=o.convert(t.format),v=o.convert(t.type);d(e.TEXTURE_2D,t,h);var y=t.mipmaps;if(t.isDepthTexture){if(y=e.DEPTH_COMPONENT,1015===t.type){if(!g)throw Error("Float Depth Texture only supported in WebGL2.0");y=e.DEPTH_COMPONENT32F}else g&&(y=e.DEPTH_COMPONENT16);1026===t.format&&y===e.DEPTH_COMPONENT&&1012!==t.type&&1014!==t.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),t.type=1012,v=o.convert(t.type)),1027===t.format&&(y=e.DEPTH_STENCIL,1020!==t.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),t.type=1020,v=o.convert(t.type))),r.texImage2D(e.TEXTURE_2D,0,y,f.width,f.height,0,m,v,null)}else if(t.isDataTexture)if(0<y.length&&h){for(var b=0,_=y.length;b<_;b++)f=y[b],r.texImage2D(e.TEXTURE_2D,b,m,f.width,f.height,0,m,v,f.data);t.generateMipmaps=!1}else r.texImage2D(e.TEXTURE_2D,0,m,f.width,f.height,0,m,v,f.data);else if(t.isCompressedTexture)for(b=0,_=y.length;b<_;b++)f=y[b],1023!==t.format&&1022!==t.format?-1<r.getCompressedTextureFormats().indexOf(m)?r.compressedTexImage2D(e.TEXTURE_2D,b,m,f.width,f.height,0,f.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):r.texImage2D(e.TEXTURE_2D,b,m,f.width,f.height,0,m,v,f.data);else if(0<y.length&&h){for(b=0,_=y.length;b<_;b++)f=y[b],r.texImage2D(e.TEXTURE_2D,b,m,m,v,f);t.generateMipmaps=!1}else r.texImage2D(e.TEXTURE_2D,0,m,m,v,f);return u(t,h)&&e.generateMipmap(e.TEXTURE_2D),p.__version=t.version,void(t.onUpdate&&t.onUpdate(t))}console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete",t)}r.activeTexture(e.TEXTURE0+h),r.bindTexture(e.TEXTURE_2D,p.__webglTexture)}function d(r,s,a){a?(e.texParameteri(r,e.TEXTURE_WRAP_S,o.convert(s.wrapS)),e.texParameteri(r,e.TEXTURE_WRAP_T,o.convert(s.wrapT)),e.texParameteri(r,e.TEXTURE_MAG_FILTER,o.convert(s.magFilter)),e.texParameteri(r,e.TEXTURE_MIN_FILTER,o.convert(s.minFilter))):(e.texParameteri(r,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(r,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),1001===s.wrapS&&1001===s.wrapT||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.",s),e.texParameteri(r,e.TEXTURE_MAG_FILTER,h(s.magFilter)),e.texParameteri(r,e.TEXTURE_MIN_FILTER,h(s.minFilter)),1003!==s.minFilter&&1006!==s.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.",s)),!(a=t.get("EXT_texture_filter_anisotropic"))||1015===s.type&&null===t.get("OES_texture_float_linear")||1016===s.type&&null===t.get("OES_texture_half_float_linear")||!(1<s.anisotropy||n.get(s).__currentAnisotropy)||(e.texParameterf(r,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,i.getMaxAnisotropy())),n.get(s).__currentAnisotropy=s.anisotropy)}function m(t,i,s,a){var c=o.convert(i.texture.format),u=o.convert(i.texture.type);r.texImage2D(a,0,c,i.width,i.height,0,c,u,null),e.bindFramebuffer(e.FRAMEBUFFER,t),e.framebufferTexture2D(e.FRAMEBUFFER,s,a,n.get(i.texture).__webglTexture,0),e.bindFramebuffer(e.FRAMEBUFFER,null)}function v(t,r){e.bindRenderbuffer(e.RENDERBUFFER,t),r.depthBuffer&&!r.stencilBuffer?(e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,r.width,r.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t)):r.depthBuffer&&r.stencilBuffer?(e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,r.width,r.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t)):e.renderbufferStorage(e.RENDERBUFFER,e.RGBA4,r.width,r.height),e.bindRenderbuffer(e.RENDERBUFFER,null)}var g="undefined"!=typeof WebGL2RenderingContext&&e instanceof window.WebGL2RenderingContext;this.setTexture2D=f,this.setTextureCube=function(t,h){var p=n.get(t);if(6===t.image.length)if(0<t.version&&p.__version!==t.version){p.__image__webglTextureCube||(t.addEventListener("dispose",l),p.__image__webglTextureCube=e.createTexture(),s.textures++),r.activeTexture(e.TEXTURE0+h),r.bindTexture(e.TEXTURE_CUBE_MAP,p.__image__webglTextureCube),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,t.flipY),h=t&&t.isCompressedTexture;for(var f=t.image[0]&&t.image[0].isDataTexture,m=[],v=0;6>v;v++)m[v]=h||f?f?t.image[v].image:t.image[v]:a(t.image[v],i.maxCubemapSize);var g=c(m[0]),y=o.convert(t.format),b=o.convert(t.type);for(d(e.TEXTURE_CUBE_MAP,t,g),v=0;6>v;v++)if(h)for(var _,x=m[v].mipmaps,w=0,S=x.length;w<S;w++)_=x[w],1023!==t.format&&1022!==t.format?-1<r.getCompressedTextureFormats().indexOf(y)?r.compressedTexImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+v,w,y,_.width,_.height,0,_.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):r.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+v,w,y,_.width,_.height,0,y,b,_.data);else f?r.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+v,0,y,m[v].width,m[v].height,0,y,b,m[v].data):r.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+v,0,y,y,b,m[v]);u(t,g)&&e.generateMipmap(e.TEXTURE_CUBE_MAP),p.__version=t.version,t.onUpdate&&t.onUpdate(t)}else r.activeTexture(e.TEXTURE0+h),r.bindTexture(e.TEXTURE_CUBE_MAP,p.__image__webglTextureCube)},this.setTextureCubeDynamic=function(t,i){r.activeTexture(e.TEXTURE0+i),r.bindTexture(e.TEXTURE_CUBE_MAP,n.get(t).__webglTexture)},this.setupRenderTarget=function(t){var i=n.get(t),o=n.get(t.texture);t.addEventListener("dispose",p),o.__webglTexture=e.createTexture(),s.textures++;var a=!0===t.isWebGLRenderTargetCube,h=c(t);if(a){i.__webglFramebuffer=[];for(var l=0;6>l;l++)i.__webglFramebuffer[l]=e.createFramebuffer()}else i.__webglFramebuffer=e.createFramebuffer();if(a){for(r.bindTexture(e.TEXTURE_CUBE_MAP,o.__webglTexture),d(e.TEXTURE_CUBE_MAP,t.texture,h),l=0;6>l;l++)m(i.__webglFramebuffer[l],t,e.COLOR_ATTACHMENT0,e.TEXTURE_CUBE_MAP_POSITIVE_X+l);u(t.texture,h)&&e.generateMipmap(e.TEXTURE_CUBE_MAP),r.bindTexture(e.TEXTURE_CUBE_MAP,null)}else r.bindTexture(e.TEXTURE_2D,o.__webglTexture),d(e.TEXTURE_2D,t.texture,h),m(i.__webglFramebuffer,t,e.COLOR_ATTACHMENT0,e.TEXTURE_2D),u(t.texture,h)&&e.generateMipmap(e.TEXTURE_2D),r.bindTexture(e.TEXTURE_2D,null);if(t.depthBuffer){if(i=n.get(t),o=!0===t.isWebGLRenderTargetCube,t.depthTexture){if(o)throw Error("target.depthTexture not supported in Cube render targets");if(t&&t.isWebGLRenderTargetCube)throw Error("Depth Texture with cube render targets is not supported");if(e.bindFramebuffer(e.FRAMEBUFFER,i.__webglFramebuffer),!t.depthTexture||!t.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");if(n.get(t.depthTexture).__webglTexture&&t.depthTexture.image.width===t.width&&t.depthTexture.image.height===t.height||(t.depthTexture.image.width=t.width,t.depthTexture.image.height=t.height,t.depthTexture.needsUpdate=!0),f(t.depthTexture,0),i=n.get(t.depthTexture).__webglTexture,1026===t.depthTexture.format)e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,i,0);else{if(1027!==t.depthTexture.format)throw Error("Unknown depthTexture format");e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.TEXTURE_2D,i,0)}}else if(o)for(i.__webglDepthbuffer=[],o=0;6>o;o++)e.bindFramebuffer(e.FRAMEBUFFER,i.__webglFramebuffer[o]),i.__webglDepthbuffer[o]=e.createRenderbuffer(),v(i.__webglDepthbuffer[o],t);else e.bindFramebuffer(e.FRAMEBUFFER,i.__webglFramebuffer),i.__webglDepthbuffer=e.createRenderbuffer(),v(i.__webglDepthbuffer,t);e.bindFramebuffer(e.FRAMEBUFFER,null)}},this.updateRenderTargetMipmap=function(t){var i=t.texture;u(i,c(t))&&(t=t.isWebGLRenderTargetCube?e.TEXTURE_CUBE_MAP:e.TEXTURE_2D,i=n.get(i).__webglTexture,r.bindTexture(t,i),e.generateMipmap(t),r.bindTexture(t,null))}}(ce,ue,le,pe,he,Ce,se),de=new function(e){var t={};return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),t[e.uuid]},remove:function(r){r.isInterleavedBufferAttribute&&(r=r.data);var n=t[r.uuid];n&&(e.deleteBuffer(n.buffer),delete t[r.uuid])},update:function(r,n){if(r.isInterleavedBufferAttribute&&(r=r.data),void 0===(i=t[r.uuid])){var i=r.uuid,o=r.array,s=r.dynamic?e.DYNAMIC_DRAW:e.STATIC_DRAW,a=e.createBuffer();e.bindBuffer(n,a),e.bufferData(n,o,s),r.onUploadCallback(),n=e.FLOAT,o instanceof Float32Array?n=e.FLOAT:o instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):o instanceof Uint16Array?n=e.UNSIGNED_SHORT:o instanceof Int16Array?n=e.SHORT:o instanceof Uint32Array?n=e.UNSIGNED_INT:o instanceof Int32Array?n=e.INT:o instanceof Int8Array?n=e.BYTE:o instanceof Uint8Array&&(n=e.UNSIGNED_BYTE),t[i]={buffer:a,type:n,bytesPerElement:o.BYTES_PER_ELEMENT,version:r.version}}else i.version<r.version&&(o=r,a=o.array,s=o.updateRange,e.bindBuffer(n,i.buffer),!1===o.dynamic?e.bufferData(n,a,e.STATIC_DRAW):-1===s.count?e.bufferSubData(n,0,a):0===s.count?console.error("THREE.WebGLObjects.updateBuffer: dynamic THREE.BufferAttribute marked as needsUpdate but updateRange.count is 0, ensure you are using set methods or updating manually."):(e.bufferSubData(n,s.offset*a.BYTES_PER_ELEMENT,a.subarray(s.offset,s.offset+s.count)),s.count=-1),i.version=r.version)}}}(ce),me=new De(ce,de,se),ve=new function(e,t){var r={};return{update:function(n){var i=t.frame,o=n.geometry,s=e.get(n,o);return r[s.id]!==i&&(o.isGeometry&&s.updateFromObject(n),e.update(s),r[s.id]=i),s},clear:function(){r={}}}}(me,ae),xe=new function(e){var t={},r=new Float32Array(8);return{update:function(n,i,o,s){var a=n.morphTargetInfluences,c=a.length;if(void 0===(n=t[i.id])){n=[];for(var u=0;u<c;u++)n[u]=[u,0];t[i.id]=n}var h=o.morphTargets&&i.morphAttributes.position;for(o=o.morphNormals&&i.morphAttributes.normal,u=0;u<c;u++){var l=n[u];0!==l[1]&&(h&&i.removeAttribute("morphTarget"+u),o&&i.removeAttribute("morphNormal"+u))}for(u=0;u<c;u++)l=n[u],l[0]=u,l[1]=a[u];for(n.sort(Ie),u=0;8>u;u++)(l=n[u])&&(a=l[0],l=l[1])?(h&&i.addAttribute("morphTarget"+u,h[a]),o&&i.addAttribute("morphNormal"+u,o[a]),r[u]=l):r[u]=0;s.getUniforms().setValue(e,"morphTargetInfluences",r)}}}(ce),ye=new function(e,t,r){function n(e,t){if(e)e.isTexture?r=e.encoding:e.isWebGLRenderTarget&&(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),r=e.texture.encoding);else var r=3e3;return 3e3===r&&t&&(r=3007),r}var i=[],o={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"phong",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow"},s="precision supportsVertexTextures map mapEncoding envMap envMapMode envMapEncoding lightMap aoMap emissiveMap emissiveMapEncoding bumpMap normalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors fog useFog fogExp flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking dithering".split(" ");this.getParameters=function(t,i,s,a,c,u,h){var l=o[t.type];if(h.isSkinnedMesh){var p=h.skeleton.bones;if(r.floatVertexTextures)p=1024;else{var f=Math.min(Math.floor((r.maxVertexUniforms-20)/4),p.length);f<p.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+p.length+" bones. This GPU supports "+f+"."),p=0):p=f}}else p=0;f=r.precision,null!==t.precision&&(f=r.getMaxPrecision(t.precision))!==t.precision&&console.warn("THREE.WebGLProgram.getParameters:",t.precision,"not supported, using",f,"instead.");var d=e.getRenderTarget();return{shaderID:l,precision:f,supportsVertexTextures:r.vertexTextures,outputEncoding:n(d?d.texture:null,e.gammaOutput),map:!!t.map,mapEncoding:n(t.map,e.gammaInput),envMap:!!t.envMap,envMapMode:t.envMap&&t.envMap.mapping,envMapEncoding:n(t.envMap,e.gammaInput),envMapCubeUV:!!t.envMap&&(306===t.envMap.mapping||307===t.envMap.mapping),lightMap:!!t.lightMap,aoMap:!!t.aoMap,emissiveMap:!!t.emissiveMap,emissiveMapEncoding:n(t.emissiveMap,e.gammaInput),bumpMap:!!t.bumpMap,normalMap:!!t.normalMap,displacementMap:!!t.displacementMap,roughnessMap:!!t.roughnessMap,metalnessMap:!!t.metalnessMap,specularMap:!!t.specularMap,alphaMap:!!t.alphaMap,gradientMap:!!t.gradientMap,combine:t.combine,vertexColors:t.vertexColors,fog:!!a,useFog:t.fog,fogExp:a&&a.isFogExp2,flatShading:t.flatShading,sizeAttenuation:t.sizeAttenuation,logarithmicDepthBuffer:r.logarithmicDepthBuffer,skinning:t.skinning&&0<p,maxBones:p,useVertexTexture:r.floatVertexTextures,morphTargets:t.morphTargets,morphNormals:t.morphNormals,maxMorphTargets:e.maxMorphTargets,maxMorphNormals:e.maxMorphNormals,numDirLights:i.directional.length,numPointLights:i.point.length,numSpotLights:i.spot.length,numRectAreaLights:i.rectArea.length,numHemiLights:i.hemi.length,numClippingPlanes:c,numClipIntersection:u,dithering:t.dithering,shadowMapEnabled:e.shadowMap.enabled&&h.receiveShadow&&0<s.length,shadowMapType:e.shadowMap.type,toneMapping:e.toneMapping,physicallyCorrectLights:e.physicallyCorrectLights,premultipliedAlpha:t.premultipliedAlpha,alphaTest:t.alphaTest,doubleSided:2===t.side,flipSided:1===t.side,depthPacking:void 0!==t.depthPacking&&t.depthPacking}},this.getProgramCode=function(t,r){var n=[];if(r.shaderID?n.push(r.shaderID):(n.push(t.fragmentShader),n.push(t.vertexShader)),void 0!==t.defines)for(var i in t.defines)n.push(i),n.push(t.defines[i]);for(i=0;i<s.length;i++)n.push(r[s[i]]);return n.push(t.onBeforeCompile.toString()),n.push(e.gammaOutput),n.join()},this.acquireProgram=function(r,n,o,s){for(var a,c=0,u=i.length;c<u;c++){var h=i[c];if(h.code===s){++(a=h).usedTimes;break}}return void 0===a&&(a=new He(e,t,s,r,n,o),i.push(a)),a},this.releaseProgram=function(e){if(0==--e.usedTimes){var t=i.indexOf(e);i[t]=i[i.length-1],i.pop(),e.destroy()}},this.programs=i}(R,ue,he),ge=new ke,be=new Ne,_e=new Re(R,le,me,M),we=new function(e,t,r){var n;this.setMode=function(e){n=e},this.render=function(t,i){e.drawArrays(n,t,i),r.calls++,r.vertices+=i,n===e.TRIANGLES?r.faces+=i/3:n===e.POINTS&&(r.points+=i)},this.renderInstances=function(i,o,s){var a=t.get("ANGLE_instanced_arrays");if(null===a)console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{var c=i.attributes.position;c.isInterleavedBufferAttribute?(s=c.data.count,a.drawArraysInstancedANGLE(n,0,s,i.maxInstancedCount)):a.drawArraysInstancedANGLE(n,o,s,i.maxInstancedCount),r.calls++,r.vertices+=s*i.maxInstancedCount,n===e.TRIANGLES?r.faces+=i.maxInstancedCount*s/3:n===e.POINTS&&(r.points+=i.maxInstancedCount*s)}}}(ce,ue,ae),Se=new function(e,t,r){var n,i,o;this.setMode=function(e){n=e},this.setIndex=function(e){i=e.type,o=e.bytesPerElement},this.render=function(t,s){e.drawElements(n,s,i,t*o),r.calls++,r.vertices+=s,n===e.TRIANGLES?r.faces+=s/3:n===e.POINTS&&(r.points+=s)},this.renderInstances=function(s,a,c){var u=t.get("ANGLE_instanced_arrays");null===u?console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays."):(u.drawElementsInstancedANGLE(n,c,i,a*o,s.maxInstancedCount),r.calls++,r.vertices+=c*s.maxInstancedCount,n===e.TRIANGLES?r.faces+=s.maxInstancedCount*c/3:n===e.POINTS&&(r.points+=s.maxInstancedCount*c))}}(ce,ue,ae),Me=new V(R,ce,le,fe,he),Ee=new q(R,ce,le,fe,he),R.info.programs=ye.programs,R.context=ce,R.capabilities=he,R.extensions=ue,R.properties=pe,R.renderLists=be,R.state=le}function r(e){e.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),j=!0}function i(){console.log("THREE.WebGLRenderer: Context Restored."),j=!1,t()}function s(e){(e=e.target).removeEventListener("dispose",s),a(e),pe.remove(e)}function a(e){var t=pe.get(e).program;e.program=void 0,void 0!==t&&ye.releaseProgram(t)}function u(e){null!==Ae&&Ae(e),(e=Te.getDevice())&&e.isPresenting?e.requestAnimationFrame(u):window.requestAnimationFrame(u)}function h(e,t,r){if(!1!==e.visible){if(e.layers.test(t.layers))if(e.isLight)C.push(e),e.castShadow&&T.push(e);else if(e.isSprite)e.frustumCulled&&!J.intersectsSprite(e)||P.push(e);else if(e.isLensFlare)A.push(e);else if(e.isImmediateRenderObject)r&&oe.setFromMatrixPosition(e.matrixWorld).applyMatrix4(ie),O.push(e,null,e.material,oe.z,null);else if((e.isMesh||e.isLine||e.isPoints)&&(e.isSkinnedMesh&&e.skeleton.update(),!e.frustumCulled||J.intersectsObject(e))){r&&oe.setFromMatrixPosition(e.matrixWorld).applyMatrix4(ie);var n=ve.update(e),i=e.material;if(Array.isArray(i))for(var o=n.groups,s=0,a=o.length;s<a;s++){var c=o[s],u=i[c.materialIndex];u&&u.visible&&O.push(e,n,u,oe.z,c)}else i.visible&&O.push(e,n,i,oe.z,null)}for(s=0,a=(e=e.children).length;s<a;s++)h(e[s],t,r)}}function p(e,t,r,n){for(var i=0,o=e.length;i<o;i++){var s=(u=e[i]).object,a=u.geometry,c=void 0===n?u.material:n,u=u.group;if(r.isArrayCamera){B=r;for(var h=r.cameras,l=0,p=h.length;l<p;l++){var d=h[l];if(s.layers.test(d.layers)){var m=d.bounds;le.viewport(F.set(m.x*H,m.y*W,m.z*H,m.w*W).multiplyScalar(X)),f(s,t,d,a,c,u)}}}else B=null,f(s,t,r,a,c,u)}}function f(e,t,r,n,i,o){if(e.onBeforeRender(R,t,r,n,i,o),e.modelViewMatrix.multiplyMatrices(r.matrixWorldInverse,e.matrixWorld),e.normalMatrix.getNormalMatrix(e.modelViewMatrix),e.isImmediateRenderObject){le.setMaterial(i);var s=m(r,t.fog,i,e);D="",function(e,t,r){e.render(function(e){R.renderBufferImmediate(e,t,r)})}(e,s,i)}else R.renderBufferDirect(r,t.fog,n,i,e,o);e.onAfterRender(R,t,r,n,i,o)}function d(e,t,r){var n=pe.get(e);r=ye.getParameters(e,ge.state,T,t,te.numPlanes,te.numIntersection,r);var i=ye.getProgramCode(e,r),o=n.program,c=!0;if(void 0===o)e.addEventListener("dispose",s);else if(o.code!==i)a(e);else{if(void 0!==r.shaderID)return;c=!1}if(c&&(r.shaderID?(o=xi[r.shaderID],n.shader={name:e.type,uniforms:bi.clone(o.uniforms),vertexShader:o.vertexShader,fragmentShader:o.fragmentShader}):n.shader={name:e.type,uniforms:e.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader},e.onBeforeCompile(n.shader),o=ye.acquireProgram(e,n.shader,r,i),n.program=o,e.program=o),r=o.getAttributes(),e.morphTargets)for(i=e.numSupportedMorphTargets=0;i<R.maxMorphTargets;i++)0<=r["morphTarget"+i]&&e.numSupportedMorphTargets++;if(e.morphNormals)for(i=e.numSupportedMorphNormals=0;i<R.maxMorphNormals;i++)0<=r["morphNormal"+i]&&e.numSupportedMorphNormals++;r=n.shader.uniforms,(e.isShaderMaterial||e.isRawShaderMaterial)&&!0!==e.clipping||(n.numClippingPlanes=te.numPlanes,n.numIntersection=te.numIntersection,r.clippingPlanes=te.uniform),n.fog=t,n.lightsHash=ge.state.hash,e.lights&&(r.ambientLightColor.value=ge.state.ambient,r.directionalLights.value=ge.state.directional,r.spotLights.value=ge.state.spot,r.rectAreaLights.value=ge.state.rectArea,r.pointLights.value=ge.state.point,r.hemisphereLights.value=ge.state.hemi,r.directionalShadowMap.value=ge.state.directionalShadowMap,r.directionalShadowMatrix.value=ge.state.directionalShadowMatrix,r.spotShadowMap.value=ge.state.spotShadowMap,r.spotShadowMatrix.value=ge.state.spotShadowMatrix,r.pointShadowMap.value=ge.state.pointShadowMap,r.pointShadowMatrix.value=ge.state.pointShadowMatrix),e=n.program.getUniforms(),e=$.seqWithValue(e.seq,r),n.uniformsList=e}function m(e,t,r,n){G=0;var i=pe.get(r);re&&(ne||e!==k)&&te.setState(r.clippingPlanes,r.clipIntersection,r.clipShadows,e,i,e===k&&r.id===I),!1===r.needsUpdate&&(void 0===i.program?r.needsUpdate=!0:r.fog&&i.fog!==t?r.needsUpdate=!0:r.lights&&i.lightsHash!==ge.state.hash?r.needsUpdate=!0:void 0===i.numClippingPlanes||i.numClippingPlanes===te.numPlanes&&i.numIntersection===te.numIntersection||(r.needsUpdate=!0)),r.needsUpdate&&(d(r,t,n),r.needsUpdate=!1);var o=!1,s=!1,a=!1,c=i.program,u=c.getUniforms(),h=i.shader.uniforms;if(le.useProgram(c.program)&&(a=s=o=!0),r.id!==I&&(I=r.id,s=!0),(o||e!==k)&&(u.setValue(ce,"projectionMatrix",e.projectionMatrix),he.logarithmicDepthBuffer&&u.setValue(ce,"logDepthBufFC",2/(Math.log(e.far+1)/Math.LN2)),k!==(B||e)&&(k=B||e,a=s=!0),(r.isShaderMaterial||r.isMeshPhongMaterial||r.isMeshStandardMaterial||r.envMap)&&void 0!==(o=u.map.cameraPosition)&&o.setValue(ce,oe.setFromMatrixPosition(e.matrixWorld)),(r.isMeshPhongMaterial||r.isMeshLambertMaterial||r.isMeshBasicMaterial||r.isMeshStandardMaterial||r.isShaderMaterial||r.skinning)&&u.setValue(ce,"viewMatrix",e.matrixWorldInverse)),r.skinning&&(u.setOptional(ce,n,"bindMatrix"),u.setOptional(ce,n,"bindMatrixInverse"),e=n.skeleton))if(o=e.bones,he.floatVertexTextures){if(void 0===e.boneTexture){var o=Math.sqrt(4*o.length),o=ci.ceilPowerOfTwo(o),o=Math.max(o,4),p=new Float32Array(o*o*4);p.set(e.boneMatrices);var f=new l(p,o,o,1023,1015);e.boneMatrices=p,e.boneTexture=f,e.boneTextureSize=o}u.setValue(ce,"boneTexture",e.boneTexture),u.setValue(ce,"boneTextureSize",e.boneTextureSize)}else u.setOptional(ce,e,"boneMatrices");return s&&(u.setValue(ce,"toneMappingExposure",R.toneMappingExposure),u.setValue(ce,"toneMappingWhitePoint",R.toneMappingWhitePoint),r.lights&&(s=a,h.ambientLightColor.needsUpdate=s,h.directionalLights.needsUpdate=s,h.pointLights.needsUpdate=s,h.spotLights.needsUpdate=s,h.rectAreaLights.needsUpdate=s,h.hemisphereLights.needsUpdate=s),t&&r.fog&&(h.fogColor.value=t.color,t.isFog?(h.fogNear.value=t.near,h.fogFar.value=t.far):t.isFogExp2&&(h.fogDensity.value=t.density)),r.isMeshBasicMaterial?v(h,r):r.isMeshLambertMaterial?(v(h,r),r.emissiveMap&&(h.emissiveMap.value=r.emissiveMap)):r.isMeshPhongMaterial?(v(h,r),r.isMeshToonMaterial?(g(h,r),r.gradientMap&&(h.gradientMap.value=r.gradientMap)):g(h,r)):r.isMeshStandardMaterial?(v(h,r),r.isMeshPhysicalMaterial&&(h.clearCoat.value=r.clearCoat,h.clearCoatRoughness.value=r.clearCoatRoughness),h.roughness.value=r.roughness,h.metalness.value=r.metalness,r.roughnessMap&&(h.roughnessMap.value=r.roughnessMap),r.metalnessMap&&(h.metalnessMap.value=r.metalnessMap),r.emissiveMap&&(h.emissiveMap.value=r.emissiveMap),r.bumpMap&&(h.bumpMap.value=r.bumpMap,h.bumpScale.value=r.bumpScale),r.normalMap&&(h.normalMap.value=r.normalMap,h.normalScale.value.copy(r.normalScale)),r.displacementMap&&(h.displacementMap.value=r.displacementMap,h.displacementScale.value=r.displacementScale,h.displacementBias.value=r.displacementBias),r.envMap&&(h.envMapIntensity.value=r.envMapIntensity)):r.isMeshDepthMaterial?(v(h,r),r.displacementMap&&(h.displacementMap.value=r.displacementMap,h.displacementScale.value=r.displacementScale,h.displacementBias.value=r.displacementBias)):r.isMeshDistanceMaterial?(v(h,r),r.displacementMap&&(h.displacementMap.value=r.displacementMap,h.displacementScale.value=r.displacementScale,h.displacementBias.value=r.displacementBias),h.referencePosition.value.copy(r.referencePosition),h.nearDistance.value=r.nearDistance,h.farDistance.value=r.farDistance):r.isMeshNormalMaterial?(v(h,r),r.bumpMap&&(h.bumpMap.value=r.bumpMap,h.bumpScale.value=r.bumpScale),r.normalMap&&(h.normalMap.value=r.normalMap,h.normalScale.value.copy(r.normalScale)),r.displacementMap&&(h.displacementMap.value=r.displacementMap,h.displacementScale.value=r.displacementScale,h.displacementBias.value=r.displacementBias)):r.isLineBasicMaterial?(h.diffuse.value=r.color,h.opacity.value=r.opacity,r.isLineDashedMaterial&&(h.dashSize.value=r.dashSize,h.totalSize.value=r.dashSize+r.gapSize,h.scale.value=r.scale)):r.isPointsMaterial?(h.diffuse.value=r.color,h.opacity.value=r.opacity,h.size.value=r.size*X,h.scale.value=.5*W,h.map.value=r.map,null!==r.map&&(!0===r.map.matrixAutoUpdate&&(t=r.map.offset,s=r.map.repeat,a=r.map.center,r.map.matrix.setUvTransform(t.x,t.y,s.x,s.y,r.map.rotation,a.x,a.y)),h.uvTransform.value.copy(r.map.matrix))):r.isShadowMaterial&&(h.color.value=r.color,h.opacity.value=r.opacity),void 0!==h.ltcMat&&(h.ltcMat.value=yi.LTC_MAT_TEXTURE),void 0!==h.ltcMag&&(h.ltcMag.value=yi.LTC_MAG_TEXTURE),$.upload(ce,i.uniformsList,h,R)),u.setValue(ce,"modelViewMatrix",n.modelViewMatrix),u.setValue(ce,"normalMatrix",n.normalMatrix),u.setValue(ce,"modelMatrix",n.matrixWorld),c}function v(e,t){if(e.opacity.value=t.opacity,t.color&&(e.diffuse.value=t.color),t.emissive&&e.emissive.value.copy(t.emissive).multiplyScalar(t.emissiveIntensity),t.map&&(e.map.value=t.map),t.alphaMap&&(e.alphaMap.value=t.alphaMap),t.specularMap&&(e.specularMap.value=t.specularMap),t.envMap&&(e.envMap.value=t.envMap,e.flipEnvMap.value=t.envMap&&t.envMap.isCubeTexture?-1:1,e.reflectivity.value=t.reflectivity,e.refractionRatio.value=t.refractionRatio),t.lightMap&&(e.lightMap.value=t.lightMap,e.lightMapIntensity.value=t.lightMapIntensity),t.aoMap&&(e.aoMap.value=t.aoMap,e.aoMapIntensity.value=t.aoMapIntensity),t.map)var r=t.map;else t.specularMap?r=t.specularMap:t.displacementMap?r=t.displacementMap:t.normalMap?r=t.normalMap:t.bumpMap?r=t.bumpMap:t.roughnessMap?r=t.roughnessMap:t.metalnessMap?r=t.metalnessMap:t.alphaMap?r=t.alphaMap:t.emissiveMap&&(r=t.emissiveMap);if(void 0!==r){if(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate){t=r.offset;var n=r.repeat,i=r.center;r.matrix.setUvTransform(t.x,t.y,n.x,n.y,r.rotation,i.x,i.y)}e.uvTransform.value.copy(r.matrix)}}function g(e,t){e.specular.value=t.specular,e.shininess.value=Math.max(t.shininess,1e-4),t.emissiveMap&&(e.emissiveMap.value=t.emissiveMap),t.bumpMap&&(e.bumpMap.value=t.bumpMap,e.bumpScale.value=t.bumpScale),t.normalMap&&(e.normalMap.value=t.normalMap,e.normalScale.value.copy(t.normalScale)),t.displacementMap&&(e.displacementMap.value=t.displacementMap,e.displacementScale.value=t.displacementScale,e.displacementBias.value=t.displacementBias)}console.log("THREE.WebGLRenderer","88");var y=void 0!==(e=e||{}).canvas?e.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),b=void 0!==e.context?e.context:null,_=void 0!==e.alpha&&e.alpha,x=void 0===e.depth||e.depth,w=void 0===e.stencil||e.stencil,S=void 0!==e.antialias&&e.antialias,M=void 0===e.premultipliedAlpha||e.premultipliedAlpha,E=void 0!==e.preserveDrawingBuffer&&e.preserveDrawingBuffer,C=[],T=[],O=null,P=[],A=[];this.domElement=y,this.context=null,this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1,this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1,this.maxMorphTargets=8,this.maxMorphNormals=4;var R=this,j=!1,L=null,N=null,I=-1,D="",k=null,B=null,F=new c,U=new c,z=null,G=0,H=y.width,W=y.height,X=1,Y=new c(0,0,H,W),K=new c(0,0,H,W),Z=!1,J=new Q,te=new Ke,re=!1,ne=!1,ie=new n,oe=new o,se={geometries:0,textures:0},ae={frame:0,calls:0,vertices:0,faces:0,points:0};this.info={render:ae,memory:se,programs:null};try{_={alpha:_,depth:x,stencil:w,antialias:S,premultipliedAlpha:M,preserveDrawingBuffer:E};var ce=b||y.getContext("webgl",_)||y.getContext("experimental-webgl",_);if(null===ce){if(null!==y.getContext("webgl"))throw"Error creating WebGL context with your selected attributes.";throw"Error creating WebGL context."}void 0===ce.getShaderPrecisionFormat&&(ce.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}}),y.addEventListener("webglcontextlost",r,!1),y.addEventListener("webglcontextrestored",i,!1)}catch(e){console.error("THREE.WebGLRenderer: "+e)}var ue,he,le,pe,fe,de,me,ve,ge,ye,be,_e,xe,we,Se,Me,Ee,Ce;t();var Te=new Ye(R);this.vr=Te;var Oe=new ee(R,ve,he.maxTextureSize);this.shadowMap=Oe,this.getContext=function(){return ce},this.getContextAttributes=function(){return ce.getContextAttributes()},this.forceContextLoss=function(){var e=ue.get("WEBGL_lose_context");e&&e.loseContext()},this.forceContextRestore=function(){var e=ue.get("WEBGL_lose_context");e&&e.restoreContext()},this.getPixelRatio=function(){return X},this.setPixelRatio=function(e){void 0!==e&&(X=e,this.setSize(H,W,!1))},this.getSize=function(){return{width:H,height:W}},this.setSize=function(e,t,r){var n=Te.getDevice();n&&n.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(H=e,W=t,y.width=e*X,y.height=t*X,!1!==r&&(y.style.width=e+"px",y.style.height=t+"px"),this.setViewport(0,0,e,t))},this.getDrawingBufferSize=function(){return{width:H*X,height:W*X}},this.setDrawingBufferSize=function(e,t,r){H=e,W=t,X=r,y.width=e*r,y.height=t*r,this.setViewport(0,0,e,t)},this.setViewport=function(e,t,r,n){Y.set(e,W-t-n,r,n),le.viewport(F.copy(Y).multiplyScalar(X))},this.setScissor=function(e,t,r,n){K.set(e,W-t-n,r,n),le.scissor(U.copy(K).multiplyScalar(X))},this.setScissorTest=function(e){le.setScissorTest(Z=e)},this.getClearColor=function(){return _e.getClearColor()},this.setClearColor=function(){_e.setClearColor.apply(_e,arguments)},this.getClearAlpha=function(){return _e.getClearAlpha()},this.setClearAlpha=function(){_e.setClearAlpha.apply(_e,arguments)},this.clear=function(e,t,r){var n=0;(void 0===e||e)&&(n|=ce.COLOR_BUFFER_BIT),(void 0===t||t)&&(n|=ce.DEPTH_BUFFER_BIT),(void 0===r||r)&&(n|=ce.STENCIL_BUFFER_BIT),ce.clear(n)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.clearTarget=function(e,t,r,n){this.setRenderTarget(e),this.clear(t,r,n)},this.dispose=function(){y.removeEventListener("webglcontextlost",r,!1),y.removeEventListener("webglcontextrestored",i,!1),be.dispose(),Te.dispose()},this.renderBufferImmediate=function(e,t,r){le.initAttributes();var n=pe.get(e);if(e.hasPositions&&!n.position&&(n.position=ce.createBuffer()),e.hasNormals&&!n.normal&&(n.normal=ce.createBuffer()),e.hasUvs&&!n.uv&&(n.uv=ce.createBuffer()),e.hasColors&&!n.color&&(n.color=ce.createBuffer()),t=t.getAttributes(),e.hasPositions&&(ce.bindBuffer(ce.ARRAY_BUFFER,n.position),ce.bufferData(ce.ARRAY_BUFFER,e.positionArray,ce.DYNAMIC_DRAW),le.enableAttribute(t.position),ce.vertexAttribPointer(t.position,3,ce.FLOAT,!1,0,0)),e.hasNormals){if(ce.bindBuffer(ce.ARRAY_BUFFER,n.normal),!r.isMeshPhongMaterial&&!r.isMeshStandardMaterial&&!r.isMeshNormalMaterial&&!0===r.flatShading)for(var i=0,o=3*e.count;i<o;i+=9){var s=e.normalArray,a=(s[i+0]+s[i+3]+s[i+6])/3,c=(s[i+1]+s[i+4]+s[i+7])/3,u=(s[i+2]+s[i+5]+s[i+8])/3;s[i+0]=a,s[i+1]=c,s[i+2]=u,s[i+3]=a,s[i+4]=c,s[i+5]=u,s[i+6]=a,s[i+7]=c,s[i+8]=u}ce.bufferData(ce.ARRAY_BUFFER,e.normalArray,ce.DYNAMIC_DRAW),le.enableAttribute(t.normal),ce.vertexAttribPointer(t.normal,3,ce.FLOAT,!1,0,0)}e.hasUvs&&r.map&&(ce.bindBuffer(ce.ARRAY_BUFFER,n.uv),ce.bufferData(ce.ARRAY_BUFFER,e.uvArray,ce.DYNAMIC_DRAW),le.enableAttribute(t.uv),ce.vertexAttribPointer(t.uv,2,ce.FLOAT,!1,0,0)),e.hasColors&&0!==r.vertexColors&&(ce.bindBuffer(ce.ARRAY_BUFFER,n.color),ce.bufferData(ce.ARRAY_BUFFER,e.colorArray,ce.DYNAMIC_DRAW),le.enableAttribute(t.color),ce.vertexAttribPointer(t.color,3,ce.FLOAT,!1,0,0)),le.disableUnusedAttributes(),ce.drawArrays(ce.TRIANGLES,0,e.count),e.count=0},this.renderBufferDirect=function(e,t,r,n,i,o){le.setMaterial(n);var s=m(e,t,n,i),a=!1;(e=r.id+"_"+s.id+"_"+(!0===n.wireframe))!==D&&(D=e,a=!0),i.morphTargetInfluences&&(xe.update(i,r,n,s),a=!0);var c=r.index,u=r.attributes.position;if(t=1,!0===n.wireframe&&(c=me.getWireframeAttribute(r),t=2),e=we,null!==c){var h=de.get(c);(e=Se).setIndex(h)}if(a){if(a=void 0,r&&r.isInstancedBufferGeometry&&null===ue.get("ANGLE_instanced_arrays"))console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{void 0===a&&(a=0),le.initAttributes();var l=r.attributes,s=s.getAttributes(),p=n.defaultAttributeValues;for(S in s){var f=s[S];if(0<=f){if(void 0!==(w=l[S])){var d=w.normalized,v=w.itemSize;if(void 0!==(b=de.get(w))){var g=b.buffer,y=b.type,b=b.bytesPerElement;if(w.isInterleavedBufferAttribute){var _=w.data,x=_.stride,w=w.offset;_&&_.isInstancedInterleavedBuffer?(le.enableAttributeAndDivisor(f,_.meshPerAttribute),void 0===r.maxInstancedCount&&(r.maxInstancedCount=_.meshPerAttribute*_.count)):le.enableAttribute(f),ce.bindBuffer(ce.ARRAY_BUFFER,g),ce.vertexAttribPointer(f,v,y,d,x*b,(a*x+w)*b)}else w.isInstancedBufferAttribute?(le.enableAttributeAndDivisor(f,w.meshPerAttribute),void 0===r.maxInstancedCount&&(r.maxInstancedCount=w.meshPerAttribute*w.count)):le.enableAttribute(f),ce.bindBuffer(ce.ARRAY_BUFFER,g),ce.vertexAttribPointer(f,v,y,d,0,a*v*b)}}else if(void 0!==p&&void 0!==(d=p[S]))switch(d.length){case 2:ce.vertexAttrib2fv(f,d);break;case 3:ce.vertexAttrib3fv(f,d);break;case 4:ce.vertexAttrib4fv(f,d);break;default:ce.vertexAttrib1fv(f,d)}}}le.disableUnusedAttributes()}null!==c&&ce.bindBuffer(ce.ELEMENT_ARRAY_BUFFER,h.buffer)}h=0,null!==c?h=c.count:void 0!==u&&(h=u.count),c=r.drawRange.start*t,u=null!==o?o.start*t:0;var S=Math.max(c,u);if(0!==(o=Math.max(0,Math.min(h,c+r.drawRange.count*t,u+(null!==o?o.count*t:1/0))-1-S+1))){if(i.isMesh)if(!0===n.wireframe)le.setLineWidth(n.wireframeLinewidth*(null===L?X:1)),e.setMode(ce.LINES);else switch(i.drawMode){case 0:e.setMode(ce.TRIANGLES);break;case 1:e.setMode(ce.TRIANGLE_STRIP);break;case 2:e.setMode(ce.TRIANGLE_FAN)}else i.isLine?(void 0===(n=n.linewidth)&&(n=1),le.setLineWidth(n*(null===L?X:1)),i.isLineSegments?e.setMode(ce.LINES):i.isLineLoop?e.setMode(ce.LINE_LOOP):e.setMode(ce.LINE_STRIP)):i.isPoints&&e.setMode(ce.POINTS);r&&r.isInstancedBufferGeometry?0<r.maxInstancedCount&&e.renderInstances(r,S,o):e.render(S,o)}},this.compile=function(e,t){C.length=0,T.length=0,e.traverse(function(e){e.isLight&&(C.push(e),e.castShadow&&T.push(e))}),ge.setup(C,T,t),e.traverse(function(t){if(t.material)if(Array.isArray(t.material))for(var r=0;r<t.material.length;r++)d(t.material[r],e.fog,t);else d(t.material,e.fog,t)})};var Pe=!1,Ae=null;this.animate=function(e){Ae=e,Pe||((e=Te.getDevice())&&e.isPresenting?e.requestAnimationFrame(u):window.requestAnimationFrame(u),Pe=!0)},this.render=function(e,t,r,n){if(t&&t.isCamera){if(!j){D="",I=-1,k=null,!0===e.autoUpdate&&e.updateMatrixWorld(),null===t.parent&&t.updateMatrixWorld(),Te.enabled&&(t=Te.getCamera(t)),ie.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),J.setFromMatrix(ie),C.length=0,T.length=0,P.length=0,A.length=0,ne=this.localClippingEnabled,re=te.init(this.clippingPlanes,ne,t),(O=be.get(e,t)).init(),h(e,t,R.sortObjects),!0===R.sortObjects&&O.sort(),re&&te.beginShadows(),Oe.render(T,e,t),ge.setup(C,T,t),re&&te.endShadows(),ae.frame++,ae.calls=0,ae.vertices=0,ae.faces=0,ae.points=0,void 0===r&&(r=null),this.setRenderTarget(r),_e.render(O,e,t,n),n=O.opaque;var i=O.transparent;if(e.overrideMaterial){var o=e.overrideMaterial;n.length&&p(n,e,t,o),i.length&&p(i,e,t,o)}else n.length&&p(n,e,t),i.length&&p(i,e,t);Ee.render(P,e,t),Me.render(A,e,t,F),r&&fe.updateRenderTargetMipmap(r),le.buffers.depth.setTest(!0),le.buffers.depth.setMask(!0),le.buffers.color.setMask(!0),le.setPolygonOffset(!1),Te.enabled&&Te.submitFrame()}}else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")},this.setFaceCulling=function(e,t){le.setCullFace(e),le.setFlipSided(0===t)},this.allocTextureUnit=function(){var e=G;return e>=he.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+e+" texture units while this GPU supports only "+he.maxTextures),G+=1,e},this.setTexture2D=function(){var e=!1;return function(t,r){t&&t.isWebGLRenderTarget&&(e||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),e=!0),t=t.texture),fe.setTexture2D(t,r)}}(),this.setTexture=function(){var e=!1;return function(t,r){e||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),e=!0),fe.setTexture2D(t,r)}}(),this.setTextureCube=function(){var e=!1;return function(t,r){t&&t.isWebGLRenderTargetCube&&(e||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),e=!0),t=t.texture),t&&t.isCubeTexture||Array.isArray(t.image)&&6===t.image.length?fe.setTextureCube(t,r):fe.setTextureCubeDynamic(t,r)}}(),this.getRenderTarget=function(){return L},this.setRenderTarget=function(e){(L=e)&&void 0===pe.get(e).__webglFramebuffer&&fe.setupRenderTarget(e);var t=null,r=!1;e?(t=pe.get(e).__webglFramebuffer,e.isWebGLRenderTargetCube&&(t=t[e.activeCubeFace],r=!0),F.copy(e.viewport),U.copy(e.scissor),z=e.scissorTest):(F.copy(Y).multiplyScalar(X),U.copy(K).multiplyScalar(X),z=Z),N!==t&&(ce.bindFramebuffer(ce.FRAMEBUFFER,t),N=t),le.viewport(F),le.scissor(U),le.setScissorTest(z),r&&(r=pe.get(e.texture),ce.framebufferTexture2D(ce.FRAMEBUFFER,ce.COLOR_ATTACHMENT0,ce.TEXTURE_CUBE_MAP_POSITIVE_X+e.activeCubeFace,r.__webglTexture,e.activeMipMapLevel))},this.readRenderTargetPixels=function(e,t,r,n,i,o){if(e&&e.isWebGLRenderTarget){var s=pe.get(e).__webglFramebuffer;if(s){var a=!1;s!==N&&(ce.bindFramebuffer(ce.FRAMEBUFFER,s),a=!0);try{var c=e.texture,u=c.format,h=c.type;1023!==u&&Ce.convert(u)!==ce.getParameter(ce.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===h||Ce.convert(h)===ce.getParameter(ce.IMPLEMENTATION_COLOR_READ_TYPE)||1015===h&&(ue.get("OES_texture_float")||ue.get("WEBGL_color_buffer_float"))||1016===h&&ue.get("EXT_color_buffer_half_float")?ce.checkFramebufferStatus(ce.FRAMEBUFFER)===ce.FRAMEBUFFER_COMPLETE?0<=t&&t<=e.width-n&&0<=r&&r<=e.height-i&&ce.readPixels(t,r,n,i,Ce.convert(u),Ce.convert(h),o):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{a&&ce.bindFramebuffer(ce.FRAMEBUFFER,N)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")}}function Qe(e,t){this.name="",this.color=new z(e),this.density=void 0!==t?t:25e-5}function et(e,t,r){this.name="",this.color=new z(e),this.near=void 0!==t?t:1,this.far=void 0!==r?r:1e3}function tt(){ne.call(this),this.type="Scene",this.overrideMaterial=this.fog=this.background=null,this.autoUpdate=!0}function rt(e,t,r,n,i){ne.call(this),this.lensFlares=[],this.positionScreen=new o,this.customUpdateCallback=void 0,void 0!==e&&this.add(e,t,r,n,i)}function nt(e){W.call(this),this.type="SpriteMaterial",this.color=new z(16777215),this.map=null,this.rotation=0,this.lights=this.fog=!1,this.setValues(e)}function it(e){ne.call(this),this.type="Sprite",this.material=void 0!==e?e:new nt}function ot(){ne.call(this),this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function st(e,t){if(e=e||[],this.bones=e.slice(0),this.boneMatrices=new Float32Array(16*this.bones.length),void 0===t)this.calculateInverses();else if(this.bones.length===t.length)this.boneInverses=t.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],e=0,t=this.bones.length;e<t;e++)this.boneInverses.push(new n)}function at(){ne.call(this),this.type="Bone"}function ct(e,t){Ae.call(this,e,t),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new n,this.bindMatrixInverse=new n,e=new st(e=this.initBones()),this.bind(e,this.matrixWorld),this.normalizeSkinWeights()}function ut(e){W.call(this),this.type="LineBasicMaterial",this.color=new z(16777215),this.linewidth=1,this.linejoin=this.linecap="round",this.lights=!1,this.setValues(e)}function ht(e,t,r){if(1===r)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new lt(e,t);ne.call(this),this.type="Line",this.geometry=void 0!==e?e:new _e,this.material=void 0!==t?t:new ut({color:16777215*Math.random()})}function lt(e,t){ht.call(this,e,t),this.type="LineSegments"}function pt(e,t){ht.call(this,e,t),this.type="LineLoop"}function ft(e){W.call(this),this.type="PointsMaterial",this.color=new z(16777215),this.map=null,this.size=1,this.sizeAttenuation=!0,this.lights=!1,this.setValues(e)}function dt(e,t){ne.call(this),this.type="Points",this.geometry=void 0!==e?e:new _e,this.material=void 0!==t?t:new ft({color:16777215*Math.random()})}function mt(){ne.call(this),this.type="Group"}function vt(e,t,r,n,i,o,s,c,u){function h(){var e=l.image;e.readyState>=e.HAVE_CURRENT_DATA&&(l.needsUpdate=!0),requestAnimationFrame(h)}a.call(this,e,t,r,n,i,o,s,c,u),this.generateMipmaps=!1;var l=this;requestAnimationFrame(h)}function gt(e,t,r,n,i,o,s,c,u,h,l,p){a.call(this,null,o,s,c,u,h,n,i,l,p),this.image={width:t,height:r},this.mipmaps=e,this.generateMipmaps=this.flipY=!1}function yt(e,t,r,n,i,o,s,c,u,h){if(1026!==(h=void 0!==h?h:1026)&&1027!==h)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===r&&1026===h&&(r=1012),void 0===r&&1027===h&&(r=1020),a.call(this,null,n,i,o,s,c,h,r,u),this.image={width:e,height:t},this.magFilter=void 0!==s?s:1003,this.minFilter=void 0!==c?c:1003,this.generateMipmaps=this.flipY=!1}function bt(e){_e.call(this),this.type="WireframeGeometry";var t,r,n,i=[],s=[0,0],a={},c=["a","b","c"];if(e&&e.isGeometry){var u=e.faces,h=0;for(r=u.length;h<r;h++){var l=u[h];for(t=0;3>t;t++){var p=l[c[t]],f=l[c[(t+1)%3]];s[0]=Math.min(p,f),s[1]=Math.max(p,f),void 0===a[p=s[0]+","+s[1]]&&(a[p]={index1:s[0],index2:s[1]})}}for(p in a)h=a[p],c=e.vertices[h.index1],i.push(c.x,c.y,c.z),c=e.vertices[h.index2],i.push(c.x,c.y,c.z)}else if(e&&e.isBufferGeometry){c=new o;if(null!==e.index){u=e.attributes.position,l=e.index;var d=e.groups;for(0===d.length&&(d=[{start:0,count:l.count,materialIndex:0}]),e=0,n=d.length;e<n;++e)for(h=d[e],t=h.start,r=h.count,h=t,r=t+r;h<r;h+=3)for(t=0;3>t;t++)p=l.getX(h+t),f=l.getX(h+(t+1)%3),s[0]=Math.min(p,f),s[1]=Math.max(p,f),p=s[0]+","+s[1],void 0===a[p]&&(a[p]={index1:s[0],index2:s[1]});for(p in a)h=a[p],c.fromBufferAttribute(u,h.index1),i.push(c.x,c.y,c.z),c.fromBufferAttribute(u,h.index2),i.push(c.x,c.y,c.z)}else for(u=e.attributes.position,h=0,r=u.count/3;h<r;h++)for(t=0;3>t;t++)a=3*h+t,c.fromBufferAttribute(u,a),i.push(c.x,c.y,c.z),a=3*h+(t+1)%3,c.fromBufferAttribute(u,a),i.push(c.x,c.y,c.z)}this.addAttribute("position",new ve(i,3))}function _t(e,t,r){ae.call(this),this.type="ParametricGeometry",this.parameters={func:e,slices:t,stacks:r},this.fromBufferGeometry(new xt(e,t,r)),this.mergeVertices()}function xt(e,t,r){_e.call(this),this.type="ParametricBufferGeometry",this.parameters={func:e,slices:t,stacks:r};var n,i,s=[],a=[],c=[],u=[],h=new o,l=new o,p=new o,f=new o,d=new o,m=t+1;for(n=0;n<=r;n++){var v=n/r;for(i=0;i<=t;i++){var g=i/t,l=e(g,v,l);a.push(l.x,l.y,l.z),0<=g-1e-5?(p=e(g-1e-5,v,p),f.subVectors(l,p)):(p=e(g+1e-5,v,p),f.subVectors(p,l)),0<=v-1e-5?(p=e(g,v-1e-5,p),d.subVectors(l,p)):(p=e(g,v+1e-5,p),d.subVectors(p,l)),h.crossVectors(f,d).normalize(),c.push(h.x,h.y,h.z),u.push(g,v)}}for(n=0;n<r;n++)for(i=0;i<t;i++)e=n*m+i+1,h=(n+1)*m+i+1,l=(n+1)*m+i,s.push(n*m+i,e,l),s.push(e,h,l);this.setIndex(s),this.addAttribute("position",new ve(a,3)),this.addAttribute("normal",new ve(c,3)),this.addAttribute("uv",new ve(u,2))}function wt(e,t,r,n){ae.call(this),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:r,detail:n},this.fromBufferGeometry(new St(e,t,r,n)),this.mergeVertices()}function St(e,t,n,i){function s(e){u.push(e.x,e.y,e.z)}function a(t,r){t*=3,r.x=e[t+0],r.y=e[t+1],r.z=e[t+2]}function c(e,t,r,n){0>n&&1===e.x&&(h[t]=e.x-1),0===r.x&&0===r.z&&(h[t]=n/2/Math.PI+.5)}_e.call(this),this.type="PolyhedronBufferGeometry",this.parameters={vertices:e,indices:t,radius:n,detail:i},n=n||1;var u=[],h=[];!function(e){for(var r=new o,n=new o,i=new o,c=0;c<t.length;c+=3){a(t[c+0],r),a(t[c+1],n),a(t[c+2],i);var u,h,l=r,p=n,f=i,d=Math.pow(2,e),m=[];for(h=0;h<=d;h++){m[h]=[];var v=l.clone().lerp(f,h/d),g=p.clone().lerp(f,h/d),y=d-h;for(u=0;u<=y;u++)m[h][u]=0===u&&h===d?v:v.clone().lerp(g,u/y)}for(h=0;h<d;h++)for(u=0;u<2*(d-h)-1;u++)l=Math.floor(u/2),0==u%2?(s(m[h][l+1]),s(m[h+1][l]),s(m[h][l])):(s(m[h][l+1]),s(m[h+1][l+1]),s(m[h+1][l]))}}(i=i||0),function(e){for(var t=new o,r=0;r<u.length;r+=3)t.x=u[r+0],t.y=u[r+1],t.z=u[r+2],t.normalize().multiplyScalar(e),u[r+0]=t.x,u[r+1]=t.y,u[r+2]=t.z}(n),function(){for(var e=new o,t=0;t<u.length;t+=3)e.x=u[t+0],e.y=u[t+1],e.z=u[t+2],h.push(Math.atan2(e.z,-e.x)/2/Math.PI+.5,1-(Math.atan2(-e.y,Math.sqrt(e.x*e.x+e.z*e.z))/Math.PI+.5));for(var e=new o,t=new o,n=new o,i=new o,s=new r,a=new r,l=new r,p=0,f=0;p<u.length;p+=9,f+=6){e.set(u[p+0],u[p+1],u[p+2]),t.set(u[p+3],u[p+4],u[p+5]),n.set(u[p+6],u[p+7],u[p+8]),s.set(h[f+0],h[f+1]),a.set(h[f+2],h[f+3]),l.set(h[f+4],h[f+5]),i.copy(e).add(t).add(n).divideScalar(3);var d=Math.atan2(i.z,-i.x);c(s,f+0,e,d),c(a,f+2,t,d),c(l,f+4,n,d)}for(e=0;e<h.length;e+=6)t=h[e+0],n=h[e+2],i=h[e+4],s=Math.min(t,n,i),.9<Math.max(t,n,i)&&.1>s&&(.2>t&&(h[e+0]+=1),.2>n&&(h[e+2]+=1),.2>i&&(h[e+4]+=1))}(),this.addAttribute("position",new ve(u,3)),this.addAttribute("normal",new ve(u.slice(),3)),this.addAttribute("uv",new ve(h,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}function Mt(e,t){ae.call(this),this.type="TetrahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Et(e,t)),this.mergeVertices()}function Et(e,t){St.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],e,t),this.type="TetrahedronBufferGeometry",this.parameters={radius:e,detail:t}}function Ct(e,t){ae.call(this),this.type="OctahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Tt(e,t)),this.mergeVertices()}function Tt(e,t){St.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],e,t),this.type="OctahedronBufferGeometry",this.parameters={radius:e,detail:t}}function Ot(e,t){ae.call(this),this.type="IcosahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Pt(e,t)),this.mergeVertices()}function Pt(e,t){var r=(1+Math.sqrt(5))/2;St.call(this,[-1,r,0,1,r,0,-1,-r,0,1,-r,0,0,-1,r,0,1,r,0,-1,-r,0,1,-r,r,0,-1,r,0,1,-r,0,-1,-r,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],e,t),this.type="IcosahedronBufferGeometry",this.parameters={radius:e,detail:t}}function At(e,t){ae.call(this),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Rt(e,t)),this.mergeVertices()}function Rt(e,t){var r=(1+Math.sqrt(5))/2,n=1/r;St.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-n,-r,0,-n,r,0,n,-r,0,n,r,-n,-r,0,-n,r,0,n,-r,0,n,r,0,-r,0,-n,r,0,-n,-r,0,n,r,0,n],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronBufferGeometry",this.parameters={radius:e,detail:t}}function jt(e,t,r,n,i,o){ae.call(this),this.type="TubeGeometry",this.parameters={path:e,tubularSegments:t,radius:r,radialSegments:n,closed:i},void 0!==o&&console.warn("THREE.TubeGeometry: taper has been removed."),e=new Lt(e,t,r,n,i),this.tangents=e.tangents,this.normals=e.normals,this.binormals=e.binormals,this.fromBufferGeometry(e),this.mergeVertices()}function Lt(e,t,n,i,s){function a(r){d=e.getPointAt(r/t,d);var o=c.normals[r];for(r=c.binormals[r],h=0;h<=i;h++){var s=h/i*Math.PI*2,a=Math.sin(s),s=-Math.cos(s);p.x=s*o.x+a*r.x,p.y=s*o.y+a*r.y,p.z=s*o.z+a*r.z,p.normalize(),v.push(p.x,p.y,p.z),l.x=d.x+n*p.x,l.y=d.y+n*p.y,l.z=d.z+n*p.z,m.push(l.x,l.y,l.z)}}_e.call(this),this.type="TubeBufferGeometry",this.parameters={path:e,tubularSegments:t,radius:n,radialSegments:i,closed:s},t=t||64,n=n||1,i=i||8,s=s||!1;var c=e.computeFrenetFrames(t,s);this.tangents=c.tangents,this.normals=c.normals,this.binormals=c.binormals;var u,h,l=new o,p=new o,f=new r,d=new o,m=[],v=[],g=[],y=[];for(u=0;u<t;u++)a(u);for(a(!1===s?t:0),u=0;u<=t;u++)for(h=0;h<=i;h++)f.x=u/t,f.y=h/i,g.push(f.x,f.y);!function(){for(h=1;h<=t;h++)for(u=1;u<=i;u++){var e=(i+1)*h+(u-1),r=(i+1)*h+u,n=(i+1)*(h-1)+u;y.push((i+1)*(h-1)+(u-1),e,n),y.push(e,r,n)}}(),this.setIndex(y),this.addAttribute("position",new ve(m,3)),this.addAttribute("normal",new ve(v,3)),this.addAttribute("uv",new ve(g,2))}function Nt(e,t,r,n,i,o,s){ae.call(this),this.type="TorusKnotGeometry",this.parameters={radius:e,tube:t,tubularSegments:r,radialSegments:n,p:i,q:o},void 0!==s&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead."),this.fromBufferGeometry(new It(e,t,r,n,i,o)),this.mergeVertices()}function It(e,t,r,n,i,s){function a(e,t,r,n,i){var o=Math.sin(e);t=r/t*e,r=Math.cos(t),i.x=n*(2+r)*.5*Math.cos(e),i.y=n*(2+r)*o*.5,i.z=n*Math.sin(t)*.5}_e.call(this),this.type="TorusKnotBufferGeometry",this.parameters={radius:e,tube:t,tubularSegments:r,radialSegments:n,p:i,q:s},e=e||1,t=t||.4,r=Math.floor(r)||64,n=Math.floor(n)||8,i=i||2,s=s||3;var c,u=[],h=[],l=[],p=[],f=new o,d=new o,m=new o,v=new o,g=new o,y=new o,b=new o;for(c=0;c<=r;++c){var _=c/r*i*Math.PI*2;for(a(_,i,s,e,m),a(_+.01,i,s,e,v),y.subVectors(v,m),b.addVectors(v,m),g.crossVectors(y,b),b.crossVectors(g,y),g.normalize(),b.normalize(),_=0;_<=n;++_){var x=_/n*Math.PI*2,w=-t*Math.cos(x),x=t*Math.sin(x);f.x=m.x+(w*b.x+x*g.x),f.y=m.y+(w*b.y+x*g.y),f.z=m.z+(w*b.z+x*g.z),h.push(f.x,f.y,f.z),d.subVectors(f,m).normalize(),l.push(d.x,d.y,d.z),p.push(c/r),p.push(_/n)}}for(_=1;_<=r;_++)for(c=1;c<=n;c++)e=(n+1)*_+(c-1),t=(n+1)*_+c,i=(n+1)*(_-1)+c,u.push((n+1)*(_-1)+(c-1),e,i),u.push(e,t,i);this.setIndex(u),this.addAttribute("position",new ve(h,3)),this.addAttribute("normal",new ve(l,3)),this.addAttribute("uv",new ve(p,2))}function Dt(e,t,r,n,i){ae.call(this),this.type="TorusGeometry",this.parameters={radius:e,tube:t,radialSegments:r,tubularSegments:n,arc:i},this.fromBufferGeometry(new kt(e,t,r,n,i)),this.mergeVertices()}function kt(e,t,r,n,i){_e.call(this),this.type="TorusBufferGeometry",this.parameters={radius:e,tube:t,radialSegments:r,tubularSegments:n,arc:i},e=e||1,t=t||.4,r=Math.floor(r)||8,n=Math.floor(n)||6,i=i||2*Math.PI;var s,a,c=[],u=[],h=[],l=[],p=new o,f=new o,d=new o;for(s=0;s<=r;s++)for(a=0;a<=n;a++){var m=a/n*i,v=s/r*Math.PI*2;f.x=(e+t*Math.cos(v))*Math.cos(m),f.y=(e+t*Math.cos(v))*Math.sin(m),f.z=t*Math.sin(v),u.push(f.x,f.y,f.z),p.x=e*Math.cos(m),p.y=e*Math.sin(m),d.subVectors(f,p).normalize(),h.push(d.x,d.y,d.z),l.push(a/n),l.push(s/r)}for(s=1;s<=r;s++)for(a=1;a<=n;a++)e=(n+1)*(s-1)+a-1,t=(n+1)*(s-1)+a,i=(n+1)*s+a,c.push((n+1)*s+a-1,e,i),c.push(e,t,i);this.setIndex(c),this.addAttribute("position",new ve(u,3)),this.addAttribute("normal",new ve(h,3)),this.addAttribute("uv",new ve(l,2))}function Bt(e,t){ae.call(this),this.type="ExtrudeGeometry",this.parameters={shapes:e,options:t},this.fromBufferGeometry(new Ft(e,t)),this.mergeVertices()}function Ft(e,t){void 0!==e&&(_e.call(this),this.type="ExtrudeBufferGeometry",e=Array.isArray(e)?e:[e],this.addShapeList(e,t),this.computeVertexNormals())}function Ut(e,t){ae.call(this),this.type="TextGeometry",this.parameters={text:e,parameters:t},this.fromBufferGeometry(new $t(e,t)),this.mergeVertices()}function $t(e,t){var r=(t=t||{}).font;if(!r||!r.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new ae;e=r.generateShapes(e,t.size,t.curveSegments),t.amount=void 0!==t.height?t.height:50,void 0===t.bevelThickness&&(t.bevelThickness=10),void 0===t.bevelSize&&(t.bevelSize=8),void 0===t.bevelEnabled&&(t.bevelEnabled=!1),Ft.call(this,e,t),this.type="TextBufferGeometry"}function zt(e,t,r,n,i,o,s){ae.call(this),this.type="SphereGeometry",this.parameters={radius:e,widthSegments:t,heightSegments:r,phiStart:n,phiLength:i,thetaStart:o,thetaLength:s},this.fromBufferGeometry(new Gt(e,t,r,n,i,o,s)),this.mergeVertices()}function Gt(e,t,r,n,i,s,a){_e.call(this),this.type="SphereBufferGeometry",this.parameters={radius:e,widthSegments:t,heightSegments:r,phiStart:n,phiLength:i,thetaStart:s,thetaLength:a},e=e||1,t=Math.max(3,Math.floor(t)||8),r=Math.max(2,Math.floor(r)||6),n=void 0!==n?n:0,i=void 0!==i?i:2*Math.PI;var c,u,h=(s=void 0!==s?s:0)+(a=void 0!==a?a:Math.PI),l=0,p=[],f=new o,d=new o,m=[],v=[],g=[],y=[];for(u=0;u<=r;u++){var b=[],_=u/r;for(c=0;c<=t;c++){var x=c/t;f.x=-e*Math.cos(n+x*i)*Math.sin(s+_*a),f.y=e*Math.cos(s+_*a),f.z=e*Math.sin(n+x*i)*Math.sin(s+_*a),v.push(f.x,f.y,f.z),d.set(f.x,f.y,f.z).normalize(),g.push(d.x,d.y,d.z),y.push(x,1-_),b.push(l++)}p.push(b)}for(u=0;u<r;u++)for(c=0;c<t;c++)e=p[u][c+1],n=p[u][c],i=p[u+1][c],a=p[u+1][c+1],(0!==u||0<s)&&m.push(e,n,a),(u!==r-1||h<Math.PI)&&m.push(n,i,a);this.setIndex(m),this.addAttribute("position",new ve(v,3)),this.addAttribute("normal",new ve(g,3)),this.addAttribute("uv",new ve(y,2))}function Vt(e,t,r,n,i,o){ae.call(this),this.type="RingGeometry",this.parameters={innerRadius:e,outerRadius:t,thetaSegments:r,phiSegments:n,thetaStart:i,thetaLength:o},this.fromBufferGeometry(new Ht(e,t,r,n,i,o)),this.mergeVertices()}function Ht(e,t,n,i,s,a){_e.call(this),this.type="RingBufferGeometry",this.parameters={innerRadius:e,outerRadius:t,thetaSegments:n,phiSegments:i,thetaStart:s,thetaLength:a},e=e||.5,t=t||1,s=void 0!==s?s:0,a=void 0!==a?a:2*Math.PI,n=void 0!==n?Math.max(3,n):8;var c,u,h=[],l=[],p=[],f=[],d=e,m=(t-e)/(i=void 0!==i?Math.max(1,i):1),v=new o,g=new r;for(c=0;c<=i;c++){for(u=0;u<=n;u++)e=s+u/n*a,v.x=d*Math.cos(e),v.y=d*Math.sin(e),l.push(v.x,v.y,v.z),p.push(0,0,1),g.x=(v.x/t+1)/2,g.y=(v.y/t+1)/2,f.push(g.x,g.y);d+=m}for(c=0;c<i;c++)for(t=c*(n+1),u=0;u<n;u++)e=u+t,s=e+n+1,a=e+n+2,d=e+1,h.push(e,s,d),h.push(s,a,d);this.setIndex(h),this.addAttribute("position",new ve(l,3)),this.addAttribute("normal",new ve(p,3)),this.addAttribute("uv",new ve(f,2))}function qt(e,t,r,n){ae.call(this),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:r,phiLength:n},this.fromBufferGeometry(new Wt(e,t,r,n)),this.mergeVertices()}function Wt(e,t,n,i){_e.call(this),this.type="LatheBufferGeometry",this.parameters={points:e,segments:t,phiStart:n,phiLength:i},t=Math.floor(t)||12,n=n||0,i=i||2*Math.PI,i=ci.clamp(i,0,2*Math.PI);var s,a=[],c=[],u=[],h=1/t,l=new o,p=new r;for(s=0;s<=t;s++){var f=n+s*h*i,d=Math.sin(f),m=Math.cos(f);for(f=0;f<=e.length-1;f++)l.x=e[f].x*d,l.y=e[f].y,l.z=e[f].x*m,c.push(l.x,l.y,l.z),p.x=s/t,p.y=f/(e.length-1),u.push(p.x,p.y)}for(s=0;s<t;s++)for(f=0;f<e.length-1;f++)n=f+s*e.length,h=n+e.length,l=n+e.length+1,p=n+1,a.push(n,h,p),a.push(h,l,p);if(this.setIndex(a),this.addAttribute("position",new ve(c,3)),this.addAttribute("uv",new ve(u,2)),this.computeVertexNormals(),i===2*Math.PI)for(i=this.attributes.normal.array,a=new o,c=new o,u=new o,n=t*e.length*3,f=s=0;s<e.length;s++,f+=3)a.x=i[f+0],a.y=i[f+1],a.z=i[f+2],c.x=i[n+f+0],c.y=i[n+f+1],c.z=i[n+f+2],u.addVectors(a,c).normalize(),i[f+0]=i[n+f+0]=u.x,i[f+1]=i[n+f+1]=u.y,i[f+2]=i[n+f+2]=u.z}function Xt(e,t){ae.call(this),this.type="ShapeGeometry","object"==typeof t&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),t=t.curveSegments),this.parameters={shapes:e,curveSegments:t},this.fromBufferGeometry(new Yt(e,t)),this.mergeVertices()}function Yt(e,t){function r(e){var r,a=i.length/3,u=(e=e.extractPoints(t)).shape,h=e.holes;if(!1===Ti.isClockWise(u))for(u=u.reverse(),e=0,r=h.length;e<r;e++){var l=h[e];!0===Ti.isClockWise(l)&&(h[e]=l.reverse())}var p=Ti.triangulateShape(u,h);for(e=0,r=h.length;e<r;e++)l=h[e],u=u.concat(l);for(e=0,r=u.length;e<r;e++)l=u[e],i.push(l.x,l.y,0),o.push(0,0,1),s.push(l.x,l.y);for(e=0,r=p.length;e<r;e++)u=p[e],n.push(u[0]+a,u[1]+a,u[2]+a),c+=3}_e.call(this),this.type="ShapeBufferGeometry",this.parameters={shapes:e,curveSegments:t},t=t||12;var n=[],i=[],o=[],s=[],a=0,c=0;if(!1===Array.isArray(e))r(e);else for(var u=0;u<e.length;u++)r(e[u]),this.addGroup(a,c,u),a+=c,c=0;this.setIndex(n),this.addAttribute("position",new ve(i,3)),this.addAttribute("normal",new ve(o,3)),this.addAttribute("uv",new ve(s,2))}function Kt(e,t){_e.call(this),this.type="EdgesGeometry",this.parameters={thresholdAngle:t};var r=[];t=Math.cos(ci.DEG2RAD*(void 0!==t?t:1));var n=[0,0],i={},o=["a","b","c"];if(e.isBufferGeometry){var s=new ae;s.fromBufferGeometry(e)}else s=e.clone();s.mergeVertices(),s.computeFaceNormals(),e=s.vertices;for(var a=0,c=(s=s.faces).length;a<c;a++)for(var u=s[a],h=0;3>h;h++){var l=u[o[h]],p=u[o[(h+1)%3]];n[0]=Math.min(l,p),n[1]=Math.max(l,p),void 0===i[l=n[0]+","+n[1]]?i[l]={index1:n[0],index2:n[1],face1:a,face2:void 0}:i[l].face2=a}for(l in i)(void 0===(n=i[l]).face2||s[n.face1].normal.dot(s[n.face2].normal)<=t)&&(o=e[n.index1],r.push(o.x,o.y,o.z),o=e[n.index2],r.push(o.x,o.y,o.z));this.addAttribute("position",new ve(r,3))}function Zt(e,t,r,n,i,o,s,a){ae.call(this),this.type="CylinderGeometry",this.parameters={radiusTop:e,radiusBottom:t,height:r,radialSegments:n,heightSegments:i,openEnded:o,thetaStart:s,thetaLength:a},this.fromBufferGeometry(new Jt(e,t,r,n,i,o,s,a)),this.mergeVertices()}function Jt(e,t,n,i,s,a,c,u){function h(n){var s,a=new r,h=new o,g=0,_=!0===n?e:t,x=!0===n?1:-1,w=v;for(s=1;s<=i;s++)f.push(0,y*x,0),d.push(0,x,0),m.push(.5,.5),v++;var S=v;for(s=0;s<=i;s++){var M=s/i*u+c,E=Math.cos(M),M=Math.sin(M);h.x=_*M,h.y=y*x,h.z=_*E,f.push(h.x,h.y,h.z),d.push(0,x,0),a.x=.5*E+.5,a.y=.5*M*x+.5,m.push(a.x,a.y),v++}for(s=0;s<i;s++)a=w+s,h=S+s,!0===n?p.push(h,h+1,a):p.push(h+1,h,a),g+=3;l.addGroup(b,g,!0===n?1:2),b+=g}_e.call(this),this.type="CylinderBufferGeometry",this.parameters={radiusTop:e,radiusBottom:t,height:n,radialSegments:i,heightSegments:s,openEnded:a,thetaStart:c,thetaLength:u};var l=this;e=void 0!==e?e:1,t=void 0!==t?t:1,n=n||1,i=Math.floor(i)||8,s=Math.floor(s)||1,a=void 0!==a&&a,c=void 0!==c?c:0,u=void 0!==u?u:2*Math.PI;var p=[],f=[],d=[],m=[],v=0,g=[],y=n/2,b=0;!function(){var r,a,h=new o,_=new o,x=0,w=(t-e)/n;for(a=0;a<=s;a++){var S=[],M=a/s,E=M*(t-e)+e;for(r=0;r<=i;r++){var C=r/i,T=C*u+c,O=Math.sin(T),T=Math.cos(T);_.x=E*O,_.y=-M*n+y,_.z=E*T,f.push(_.x,_.y,_.z),h.set(O,w,T).normalize(),d.push(h.x,h.y,h.z),m.push(C,1-M),S.push(v++)}g.push(S)}for(r=0;r<i;r++)for(a=0;a<s;a++)h=g[a+1][r],_=g[a+1][r+1],w=g[a][r+1],p.push(g[a][r],h,w),p.push(h,_,w),x+=6;l.addGroup(b,x,0),b+=x}(),!1===a&&(0<e&&h(!0),0<t&&h(!1)),this.setIndex(p),this.addAttribute("position",new ve(f,3)),this.addAttribute("normal",new ve(d,3)),this.addAttribute("uv",new ve(m,2))}function Qt(e,t,r,n,i,o,s){Zt.call(this,0,e,t,r,n,i,o,s),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:o,thetaLength:s}}function er(e,t,r,n,i,o,s){Jt.call(this,0,e,t,r,n,i,o,s),this.type="ConeBufferGeometry",this.parameters={radius:e,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:o,thetaLength:s}}function tr(e,t,r,n){ae.call(this),this.type="CircleGeometry",this.parameters={radius:e,segments:t,thetaStart:r,thetaLength:n},this.fromBufferGeometry(new rr(e,t,r,n)),this.mergeVertices()}function rr(e,t,n,i){_e.call(this),this.type="CircleBufferGeometry",this.parameters={radius:e,segments:t,thetaStart:n,thetaLength:i},e=e||1,t=void 0!==t?Math.max(3,t):8,n=void 0!==n?n:0,i=void 0!==i?i:2*Math.PI;var s,a=[],c=[],u=[],h=[],l=new o,p=new r;c.push(0,0,0),u.push(0,0,1),h.push(.5,.5);var f=0;for(s=3;f<=t;f++,s+=3){var d=n+f/t*i;l.x=e*Math.cos(d),l.y=e*Math.sin(d),c.push(l.x,l.y,l.z),u.push(0,0,1),p.x=(c[s]/e+1)/2,p.y=(c[s+1]/e+1)/2,h.push(p.x,p.y)}for(s=1;s<=t;s++)a.push(s,s+1,0);this.setIndex(a),this.addAttribute("position",new ve(c,3)),this.addAttribute("normal",new ve(u,3)),this.addAttribute("uv",new ve(h,2))}function nr(e){W.call(this),this.type="ShadowMaterial",this.color=new z(0),this.opacity=1,this.transparent=this.lights=!0,this.setValues(e)}function ir(e){Ce.call(this,e),this.type="RawShaderMaterial"}function or(e){W.call(this),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new z(16777215),this.metalness=this.roughness=.5,this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new z(0),this.emissiveIntensity=1,this.bumpMap=this.emissiveMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new r(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinejoin=this.wireframeLinecap="round",this.morphNormals=this.morphTargets=this.skinning=!1,this.setValues(e)}function sr(e){or.call(this),this.defines={PHYSICAL:""},this.type="MeshPhysicalMaterial",this.reflectivity=.5,this.clearCoatRoughness=this.clearCoat=0,this.setValues(e)}function ar(e){W.call(this),this.type="MeshPhongMaterial",this.color=new z(16777215),this.specular=new z(1118481),this.shininess=30,this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new z(0),this.emissiveIntensity=1,this.bumpMap=this.emissiveMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new r(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.envMap=this.alphaMap=this.specularMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinejoin=this.wireframeLinecap="round",this.morphNormals=this.morphTargets=this.skinning=!1,this.setValues(e)}function cr(e){ar.call(this),this.defines={TOON:""},this.type="MeshToonMaterial",this.gradientMap=null,this.setValues(e)}function ur(e){W.call(this),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new r(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.morphNormals=this.morphTargets=this.skinning=this.lights=this.fog=!1,this.setValues(e)}function hr(e){W.call(this),this.type="MeshLambertMaterial",this.color=new z(16777215),this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new z(0),this.emissiveIntensity=1,this.envMap=this.alphaMap=this.specularMap=this.emissiveMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinejoin=this.wireframeLinecap="round",this.morphNormals=this.morphTargets=this.skinning=!1,this.setValues(e)}function lr(e){ut.call(this),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}function pr(e,t,r){var n=this,i=!1,o=0,s=0,a=void 0;this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=r,this.itemStart=function(e){s++,!1===i&&void 0!==n.onStart&&n.onStart(e,o,s),i=!0},this.itemEnd=function(e){o++,void 0!==n.onProgress&&n.onProgress(e,o,s),o===s&&(i=!1,void 0!==n.onLoad)&&n.onLoad()},this.itemError=function(e){void 0!==n.onError&&n.onError(e)},this.resolveURL=function(e){return a?a(e):e},this.setURLModifier=function(e){a=e}}function fr(e){this.manager=void 0!==e?e:Ri}function dr(e){this.manager=void 0!==e?e:Ri,this._parser=null}function mr(e){this.manager=void 0!==e?e:Ri,this._parser=null}function vr(e){this.manager=void 0!==e?e:Ri}function gr(e){this.manager=void 0!==e?e:Ri}function yr(e){this.manager=void 0!==e?e:Ri}function br(e,t){ne.call(this),this.type="Light",this.color=new z(e),this.intensity=void 0!==t?t:1,this.receiveShadow=void 0}function _r(e,t,r){br.call(this,e,r),this.type="HemisphereLight",this.castShadow=void 0,this.position.copy(ne.DefaultUp),this.updateMatrix(),this.groundColor=new z(t)}function xr(e){this.camera=e,this.bias=0,this.radius=1,this.mapSize=new r(512,512),this.map=null,this.matrix=new n}function wr(){xr.call(this,new We(50,1,.5,500))}function Sr(e,t,r,n,i,o){br.call(this,e,t),this.type="SpotLight",this.position.copy(ne.DefaultUp),this.updateMatrix(),this.target=new ne,Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(e){this.intensity=e/Math.PI}}),this.distance=void 0!==r?r:0,this.angle=void 0!==n?n:Math.PI/3,this.penumbra=void 0!==i?i:0,this.decay=void 0!==o?o:1,this.shadow=new wr}function Mr(e,t,r,n){br.call(this,e,t),this.type="PointLight",Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(e){this.intensity=e/(4*Math.PI)}}),this.distance=void 0!==r?r:0,this.decay=void 0!==n?n:1,this.shadow=new xr(new We(90,1,.5,500))}function Er(){xr.call(this,new oe(-5,5,5,-5,.5,500))}function Cr(e,t){br.call(this,e,t),this.type="DirectionalLight",this.position.copy(ne.DefaultUp),this.updateMatrix(),this.target=new ne,this.shadow=new Er}function Tr(e,t){br.call(this,e,t),this.type="AmbientLight",this.castShadow=void 0}function Or(e,t,r,n){br.call(this,e,t),this.type="RectAreaLight",this.position.set(0,1,0),this.updateMatrix(),this.width=void 0!==r?r:10,this.height=void 0!==n?n:10}function Pr(e,t,r,n){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=void 0!==n?n:new t.constructor(r),this.sampleValues=t,this.valueSize=r}function Ar(e,t,r,n){Pr.call(this,e,t,r,n),this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function Rr(e,t,r,n){Pr.call(this,e,t,r,n)}function jr(e,t,r,n){Pr.call(this,e,t,r,n)}function Lr(e,t,r,n){if(void 0===e)throw Error("track name is undefined");if(void 0===t||0===t.length)throw Error("no keyframes in track named "+e);this.name=e,this.times=Li.convertArray(t,this.TimeBufferType),this.values=Li.convertArray(r,this.ValueBufferType),this.setInterpolation(n||this.DefaultInterpolation),this.validate(),this.optimize()}function Nr(e,t,r,n){Lr.call(this,e,t,r,n)}function Ir(e,t,r,n){Pr.call(this,e,t,r,n)}function Dr(e,t,r,n){Lr.call(this,e,t,r,n)}function kr(e,t,r,n){Lr.call(this,e,t,r,n)}function Br(e,t,r,n){Lr.call(this,e,t,r,n)}function Fr(e,t,r){Lr.call(this,e,t,r)}function Ur(e,t,r,n){Lr.call(this,e,t,r,n)}function $r(e,t,r,n){Lr.apply(this,e,t,r,n)}function zr(e,t,r){this.name=e,this.tracks=r,this.duration=void 0!==t?t:-1,this.uuid=ci.generateUUID(),0>this.duration&&this.resetDuration(),this.optimize()}function Gr(e){this.manager=void 0!==e?e:Ri,this.textures={}}function Vr(e){this.manager=void 0!==e?e:Ri}function Hr(){this.onLoadStart=function(){},this.onLoadProgress=function(){},this.onLoadComplete=function(){}}function qr(e){"boolean"==typeof e&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),e=void 0),this.manager=void 0!==e?e:Ri,this.withCredentials=!1}function Wr(e){this.manager=void 0!==e?e:Ri,this.texturePath=""}function Xr(e,t,r,n,i){var o=e*e;return(2*r-2*n+(t=.5*(n-t))+(i=.5*(i-r)))*e*o+(-3*r+3*n-2*t-i)*o+t*e+r}function Yr(e,t,r,n){var i=1-e;return i*i*t+2*(1-e)*e*r+e*e*n}function Kr(e,t,r,n,i){var o=1-e,s=1-e;return o*o*o*t+3*s*s*e*r+3*(1-e)*e*e*n+e*e*e*i}function Zr(){this.type="Curve",this.arcLengthDivisions=200}function Jr(e,t){Zr.call(this),this.type="LineCurve",this.v1=e||new r,this.v2=t||new r}function Qr(){Zr.call(this),this.type="CurvePath",this.curves=[],this.autoClose=!1}function en(e,t,r,n,i,o,s,a){Zr.call(this),this.type="EllipseCurve",this.aX=e||0,this.aY=t||0,this.xRadius=r||1,this.yRadius=n||1,this.aStartAngle=i||0,this.aEndAngle=o||2*Math.PI,this.aClockwise=s||!1,this.aRotation=a||0}function tn(e){Zr.call(this),this.type="SplineCurve",this.points=e||[]}function rn(e,t,n,i){Zr.call(this),this.type="CubicBezierCurve",this.v0=e||new r,this.v1=t||new r,this.v2=n||new r,this.v3=i||new r}function nn(e,t,n){Zr.call(this),this.type="QuadraticBezierCurve",this.v0=e||new r,this.v1=t||new r,this.v2=n||new r}function on(e){Qr.call(this),this.type="Path",this.currentPoint=new r,e&&this.setFromPoints(e)}function sn(e){on.call(this,e),this.type="Shape",this.holes=[]}function an(){this.type="ShapePath",this.subPaths=[],this.currentPath=null}function cn(e){this.type="Font",this.data=e}function un(e){this.manager=void 0!==e?e:Ri}function hn(e){this.manager=void 0!==e?e:Ri}function ln(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new We,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new We,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1}function pn(e,t,r){ne.call(this),this.type="CubeCamera";var n=new We(90,1,e,t);n.up.set(0,-1,0),n.lookAt(new o(1,0,0)),this.add(n);var i=new We(90,1,e,t);i.up.set(0,-1,0),i.lookAt(new o(-1,0,0)),this.add(i);var s=new We(90,1,e,t);s.up.set(0,0,1),s.lookAt(new o(0,1,0)),this.add(s);var a=new We(90,1,e,t);a.up.set(0,0,-1),a.lookAt(new o(0,-1,0)),this.add(a);var c=new We(90,1,e,t);c.up.set(0,-1,0),c.lookAt(new o(0,0,1)),this.add(c);var u=new We(90,1,e,t);u.up.set(0,-1,0),u.lookAt(new o(0,0,-1)),this.add(u),this.renderTarget=new h(r,r,{format:1022,magFilter:1006,minFilter:1006}),this.renderTarget.texture.name="CubeCamera",this.update=function(e,t){null===this.parent&&this.updateMatrixWorld();var r=this.renderTarget,o=r.texture.generateMipmaps;r.texture.generateMipmaps=!1,r.activeCubeFace=0,e.render(t,n,r),r.activeCubeFace=1,e.render(t,i,r),r.activeCubeFace=2,e.render(t,s,r),r.activeCubeFace=3,e.render(t,a,r),r.activeCubeFace=4,e.render(t,c,r),r.texture.generateMipmaps=o,r.activeCubeFace=5,e.render(t,u,r),e.setRenderTarget(null)},this.clear=function(e,t,r,n){for(var i=this.renderTarget,o=0;6>o;o++)i.activeCubeFace=o,e.setRenderTarget(i),e.clear(t,r,n);e.setRenderTarget(null)}}function fn(){ne.call(this),this.type="AudioListener",this.context=$i.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null}function dn(e){ne.call(this),this.type="Audio",this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.loop=!1,this.offset=this.startTime=0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.sourceType="empty",this.filters=[]}function mn(e){dn.call(this,e),this.panner=this.context.createPanner(),this.panner.connect(this.gain)}function vn(e,t){this.analyser=e.context.createAnalyser(),this.analyser.fftSize=void 0!==t?t:2048,this.data=new Uint8Array(this.analyser.frequencyBinCount),e.getOutput().connect(this.analyser)}function gn(e,t,r){switch(this.binding=e,this.valueSize=r,e=Float64Array,t){case"quaternion":t=this._slerp;break;case"string":case"bool":e=Array,t=this._select;break;default:t=this._lerp}this.buffer=new e(4*r),this._mixBufferRegion=t,this.referenceCount=this.useCount=this.cumulativeWeight=0}function yn(e,t,r){r=r||bn.parseTrackName(t),this._targetGroup=e,this._bindings=e.subscribe_(t,r)}function bn(e,t,r){this.path=t,this.parsedPath=r||bn.parseTrackName(t),this.node=bn.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e}function _n(){this.uuid=ci.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;var e={};this._indicesByUUID=e;for(var t=0,r=arguments.length;t!==r;++t)e[arguments[t].uuid]=t;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};var n=this;this.stats={objects:{get total(){return n._objects.length},get inUse(){return this.total-n.nCachedObjects_}},get bindingsPerObject(){return n._bindings.length}}}function xn(e,t,r){this._mixer=e,this._clip=t,this._localRoot=r||null,t=(e=t.tracks).length,r=Array(t);for(var n={endingStart:2400,endingEnd:2400},i=0;i!==t;++i){var o=e[i].createInterpolant(null);r[i]=o,o.settings=n}this._interpolantSettings=n,this._interpolants=r,this._propertyBindings=Array(t),this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function wn(e){this._root=e,this._initMemoryManager(),this.time=this._accuIndex=0,this.timeScale=1}function Sn(e,t){"string"==typeof e&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),e=t),this.value=e}function Mn(){_e.call(this),this.type="InstancedBufferGeometry",this.maxInstancedCount=void 0}function En(e,t,r,n){this.uuid=ci.generateUUID(),this.data=e,this.itemSize=t,this.offset=r,this.normalized=!0===n}function Cn(e,t){this.uuid=ci.generateUUID(),this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.dynamic=!1,this.updateRange={offset:0,count:-1},this.onUploadCallback=function(){},this.version=0}function Tn(e,t,r){Cn.call(this,e,t),this.meshPerAttribute=r||1}function On(e,t,r){ce.call(this,e,t),this.meshPerAttribute=r||1}function Pn(e,t,r,n){this.ray=new Te(e,t),this.near=r||0,this.far=n||1/0,this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}},Object.defineProperties(this.params,{PointCloud:{get:function(){return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."),this.Points}}})}function An(e,t){return e.distance-t.distance}function Rn(e,t,r,n){if(!1!==e.visible&&(e.raycast(t,r),!0===n)){n=0;for(var i=(e=e.children).length;n<i;n++)Rn(e[n],t,r,!0)}}function jn(e){this.autoStart=void 0===e||e,this.elapsedTime=this.oldTime=this.startTime=0,this.running=!1}function Ln(e,t,r){return this.radius=void 0!==e?e:1,this.phi=void 0!==t?t:0,this.theta=void 0!==r?r:0,this}function Nn(e,t,r){return this.radius=void 0!==e?e:1,this.theta=void 0!==t?t:0,this.y=void 0!==r?r:0,this}function In(e){ne.call(this),this.material=e,this.render=function(){}}function Dn(e,t,r,n){this.object=e,this.size=void 0!==t?t:1,e=void 0!==r?r:16711680,n=void 0!==n?n:1,t=0,(r=this.object.geometry)&&r.isGeometry?t=3*r.faces.length:r&&r.isBufferGeometry&&(t=r.attributes.normal.count),r=new _e,t=new ve(6*t,3),r.addAttribute("position",t),lt.call(this,r,new ut({color:e,linewidth:n})),this.matrixAutoUpdate=!1,this.update()}function kn(e,t){ne.call(this),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,e=new _e,t=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(var r=0,n=1;32>r;r++,n++){var i=r/32*Math.PI*2,o=n/32*Math.PI*2;t.push(Math.cos(i),Math.sin(i),1,Math.cos(o),Math.sin(o),1)}e.addAttribute("position",new ve(t,3)),t=new ut({fog:!1}),this.cone=new lt(e,t),this.add(this.cone),this.update()}function Bn(e){var t=[];e&&e.isBone&&t.push(e);for(var r=0;r<e.children.length;r++)t.push.apply(t,Bn(e.children[r]));return t}function Fn(e){for(var t=Bn(e),r=new _e,n=[],i=[],o=new z(0,0,1),s=new z(0,1,0),a=0;a<t.length;a++){var c=t[a];c.parent&&c.parent.isBone&&(n.push(0,0,0),n.push(0,0,0),i.push(o.r,o.g,o.b),i.push(s.r,s.g,s.b))}r.addAttribute("position",new ve(n,3)),r.addAttribute("color",new ve(i,3)),n=new ut({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0}),lt.call(this,r,n),this.root=e,this.bones=t,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}function Un(e,t,r){this.light=e,this.light.updateMatrixWorld(),this.color=r,e=new Gt(t,4,2),t=new Ee({wireframe:!0,fog:!1}),Ae.call(this,e,t),this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}function $n(e,t){ne.call(this),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,e=new ut({fog:!1}),(t=new _e).addAttribute("position",new ce(new Float32Array(15),3)),this.line=new ht(t,e),this.add(this.line),this.update()}function zn(e,t,r){ne.call(this),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=r,(e=new Tt(t)).rotateY(.5*Math.PI),this.material=new Ee({wireframe:!0,fog:!1}),void 0===this.color&&(this.material.vertexColors=2),t=e.getAttribute("position"),t=new Float32Array(3*t.count),e.addAttribute("color",new ce(t,3)),this.add(new Ae(e,this.material)),this.update()}function Gn(e,t,r,n){e=e||10,t=t||10,r=new z(void 0!==r?r:4473924),n=new z(void 0!==n?n:8947848);var i=t/2,o=e/t,s=e/2;e=[];for(var a=[],c=0,u=0,h=-s;c<=t;c++,h+=o){e.push(-s,0,h,s,0,h),e.push(h,0,-s,h,0,s);var l=c===i?r:n;l.toArray(a,u),u+=3,l.toArray(a,u),u+=3,l.toArray(a,u),u+=3,l.toArray(a,u),u+=3}(t=new _e).addAttribute("position",new ve(e,3)),t.addAttribute("color",new ve(a,3)),r=new ut({vertexColors:2}),lt.call(this,t,r)}function Vn(e,t,r,n,i,o){e=e||10,t=t||16,r=r||8,n=n||64,i=new z(void 0!==i?i:4473924),o=new z(void 0!==o?o:8947848);var s,a=[],c=[];for(s=0;s<=t;s++){var u=s/t*2*Math.PI,h=Math.sin(u)*e;u=Math.cos(u)*e,a.push(0,0,0),a.push(h,0,u);var l=1&s?i:o;c.push(l.r,l.g,l.b),c.push(l.r,l.g,l.b)}for(s=0;s<=r;s++){l=1&s?i:o;var p=e-e/r*s;for(t=0;t<n;t++)u=t/n*2*Math.PI,h=Math.sin(u)*p,u=Math.cos(u)*p,a.push(h,0,u),c.push(l.r,l.g,l.b),u=(t+1)/n*2*Math.PI,h=Math.sin(u)*p,u=Math.cos(u)*p,a.push(h,0,u),c.push(l.r,l.g,l.b)}(e=new _e).addAttribute("position",new ve(a,3)),e.addAttribute("color",new ve(c,3)),a=new ut({vertexColors:2}),lt.call(this,e,a)}function Hn(e,t,r,n){this.object=e,this.size=void 0!==t?t:1,e=void 0!==r?r:16776960,n=void 0!==n?n:1,t=0,(r=this.object.geometry)&&r.isGeometry?t=r.faces.length:console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead."),r=new _e,t=new ve(6*t,3),r.addAttribute("position",t),lt.call(this,r,new ut({color:e,linewidth:n})),this.matrixAutoUpdate=!1,this.update()}function qn(e,t,r){ne.call(this),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=r,void 0===t&&(t=1),(e=new _e).addAttribute("position",new ve([-t,t,0,t,t,0,t,-t,0,-t,-t,0,-t,t,0],3)),t=new ut({fog:!1}),this.lightPlane=new ht(e,t),this.add(this.lightPlane),(e=new _e).addAttribute("position",new ve([0,0,0,0,0,1],3)),this.targetLine=new ht(e,t),this.add(this.targetLine),this.update()}function Wn(e){function t(e,t,n){r(e,n),r(t,n)}function r(e,t){o.push(0,0,0),s.push(t.r,t.g,t.b),void 0===a[e]&&(a[e]=[]),a[e].push(o.length/3-1)}var n=new _e,i=new ut({color:16777215,vertexColors:1}),o=[],s=[],a={},c=new z(16755200),u=new z(16711680),h=new z(43775),l=new z(16777215),p=new z(3355443);t("n1","n2",c),t("n2","n4",c),t("n4","n3",c),t("n3","n1",c),t("f1","f2",c),t("f2","f4",c),t("f4","f3",c),t("f3","f1",c),t("n1","f1",c),t("n2","f2",c),t("n3","f3",c),t("n4","f4",c),t("p","n1",u),t("p","n2",u),t("p","n3",u),t("p","n4",u),t("u1","u2",h),t("u2","u3",h),t("u3","u1",h),t("c","t",l),t("p","c",p),t("cn1","cn2",p),t("cn3","cn4",p),t("cf1","cf2",p),t("cf3","cf4",p),n.addAttribute("position",new ve(o,3)),n.addAttribute("color",new ve(s,3)),lt.call(this,n,i),this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=a,this.update()}function Xn(e,t){this.object=e,void 0===t&&(t=16776960),e=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var r=new Float32Array(24),n=new _e;n.setIndex(new ce(e,1)),n.addAttribute("position",new ce(r,3)),lt.call(this,n,new ut({color:t})),this.matrixAutoUpdate=!1,this.update()}function Yn(e,t){this.type="Box3Helper",this.box=e,e=void 0!==t?t:16776960,t=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var r=new _e;r.setIndex(new ce(t,1)),r.addAttribute("position",new ve([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),lt.call(this,r,new ut({color:e})),this.geometry.computeBoundingSphere()}function Kn(e,t,r){this.type="PlaneHelper",this.plane=e,this.size=void 0===t?1:t,e=void 0!==r?r:16776960,(t=new _e).addAttribute("position",new ve([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3)),t.computeBoundingSphere(),ht.call(this,t,new ut({color:e})),(t=new _e).addAttribute("position",new ve([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),t.computeBoundingSphere(),this.add(new Ae(t,new Ee({color:e,opacity:.2,transparent:!0,depthWrite:!1})))}function Zn(e,t,r,n,i,o){ne.call(this),void 0===n&&(n=16776960),void 0===r&&(r=1),void 0===i&&(i=.2*r),void 0===o&&(o=.2*i),void 0===zi&&((zi=new _e).addAttribute("position",new ve([0,0,0,0,1,0],3)),(Gi=new Jt(0,.5,1,5,1)).translate(0,-.5,0)),this.position.copy(t),this.line=new ht(zi,new ut({color:n})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Ae(Gi,new Ee({color:n})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(e),this.setLength(r,i,o)}function Jn(e){var t=[0,0,0,e=e||1,0,0,0,0,0,0,e,0,0,0,0,0,0,e];(e=new _e).addAttribute("position",new ve(t,3)),e.addAttribute("color",new ve([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),t=new ut({vertexColors:2}),lt.call(this,e,t)}function Qn(){var e=0,t=0,r=0,n=0;return{initCatmullRom:function(i,o,s,a,c){e=o,t=i=c*(s-i),r=-3*o+3*s-2*i-(a=c*(a-o)),n=2*o-2*s+i+a},initNonuniformCatmullRom:function(i,o,s,a,c,u,h){e=o,t=i=((o-i)/c-(s-i)/(c+u)+(s-o)/u)*u,r=-3*o+3*s-2*i-(a=((s-o)/u-(a-o)/(u+h)+(a-s)/h)*u),n=2*o-2*s+i+a},calc:function(i){var o=i*i;return e+t*i+r*o+n*o*i}}}function ei(e,t,r,n){Zr.call(this),this.type="CatmullRomCurve3",this.points=e||[],this.closed=t||!1,this.curveType=r||"centripetal",this.tension=n||.5}function ti(e,t,r,n){Zr.call(this),this.type="CubicBezierCurve3",this.v0=e||new o,this.v1=t||new o,this.v2=r||new o,this.v3=n||new o}function ri(e,t,r){Zr.call(this),this.type="QuadraticBezierCurve3",this.v0=e||new o,this.v1=t||new o,this.v2=r||new o}function ni(e,t){Zr.call(this),this.type="LineCurve3",this.v1=e||new o,this.v2=t||new o}function ii(e,t,r,n,i,o){en.call(this,e,t,r,r,n,i,o),this.type="ArcCurve"}function oi(e){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),ei.call(this,e),this.type="catmullrom",this.closed=!0}function si(e){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),ei.call(this,e),this.type="catmullrom"}function ai(e){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead."),ei.call(this,e),this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52)),void 0===Number.isInteger&&(Number.isInteger=function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}),void 0===Math.sign&&(Math.sign=function(e){return 0>e?-1:0<e?1:+e}),!1=="name"in Function.prototype&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}}),void 0===Object.assign&&(Object.assign=function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),r=1;r<arguments.length;r++){var n=arguments[r];if(void 0!==n&&null!==n)for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}),Object.assign(t.prototype,{addEventListener:function(e,t){void 0===this._listeners&&(this._listeners={});var r=this._listeners;void 0===r[e]&&(r[e]=[]),-1===r[e].indexOf(t)&&r[e].push(t)},hasEventListener:function(e,t){if(void 0===this._listeners)return!1;var r=this._listeners;return void 0!==r[e]&&-1!==r[e].indexOf(t)},removeEventListener:function(e,t){void 0!==this._listeners&&void 0!==(e=this._listeners[e])&&-1!==(t=e.indexOf(t))&&e.splice(t,1)},dispatchEvent:function(e){if(void 0!==this._listeners){t=this._listeners[e.type];if(void 0!==t){e.target=this;for(var t,r=0,n=(t=t.slice(0)).length;r<n;r++)t[r].call(this,e)}}}});var ci={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var e,t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=0;return function(){for(var n="",i=0;36>i;i++)8===i||13===i||18===i||23===i?n+="-":14===i?n+="4":(2>=r&&(r=33554432+16777216*Math.random()|0),e=15&r,r>>=4,n+=t[19===i?3&e|8:e]);return n}}(),clamp:function(e,t,r){return Math.max(t,Math.min(r,e))},euclideanModulo:function(e,t){return(e%t+t)%t},mapLinear:function(e,t,r,n,i){return n+(e-t)*(i-n)/(r-t)},lerp:function(e,t,r){return(1-r)*e+r*t},smoothstep:function(e,t,r){return e<=t?0:e>=r?1:(e=(e-t)/(r-t))*e*(3-2*e)},smootherstep:function(e,t,r){return e<=t?0:e>=r?1:(e=(e-t)/(r-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},degToRad:function(e){return e*ci.DEG2RAD},radToDeg:function(e){return e*ci.RAD2DEG},isPowerOfTwo:function(e){return 0==(e&e-1)&&0!==e},ceilPowerOfTwo:function(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))},floorPowerOfTwo:function(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}};Object.defineProperties(r.prototype,{width:{get:function(){return this.x},set:function(e){this.x=e}},height:{get:function(){return this.y},set:function(e){this.y=e}}}),Object.assign(r.prototype,{isVector2:!0,set:function(e,t){return this.x=e,this.y=t,this},setScalar:function(e){return this.y=this.x=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw Error("index is out of range: "+e)}return this},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+e)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(e){return this.x=e.x,this.y=e.y,this},add:function(e,t){return void 0!==t?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this)},addScalar:function(e){return this.x+=e,this.y+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this},sub:function(e,t){return void 0!==t?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this)},subScalar:function(e){return this.x-=e,this.y-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this},multiply:function(e){return this.x*=e.x,this.y*=e.y,this},multiplyScalar:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return this.x/=e.x,this.y/=e.y,this},divideScalar:function(e){return this.multiplyScalar(1/e)},applyMatrix3:function(e){var t=this.x,r=this.y;return e=e.elements,this.x=e[0]*t+e[3]*r+e[6],this.y=e[1]*t+e[4]*r+e[7],this},min:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this},max:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this},clamp:function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this},clampScalar:function(){var e=new r,t=new r;return function(r,n){return e.set(r,r),t.set(n,n),this.clamp(e,t)}}(),clampLength:function(e,t){var r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(e,Math.min(t,r)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(e){return this.x*e.x+this.y*e.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var e=Math.atan2(this.y,this.x);return 0>e&&(e+=2*Math.PI),e},distanceTo:function(e){return Math.sqrt(this.distanceToSquared(e))},distanceToSquared:function(e){var t=this.x-e.x;return e=this.y-e.y,t*t+e*e},manhattanDistanceTo:function(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)},setLength:function(e){return this.normalize().multiplyScalar(e)},lerp:function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this},lerpVectors:function(e,t,r){return this.subVectors(t,e).multiplyScalar(r).add(e)},equals:function(e){return e.x===this.x&&e.y===this.y},fromArray:function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e},fromBufferAttribute:function(e,t,r){return void 0!==r&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this},rotateAround:function(e,t){var r=Math.cos(t);t=Math.sin(t);var n=this.x-e.x,i=this.y-e.y;return this.x=n*r-i*t+e.x,this.y=n*t+i*r+e.y,this}}),Object.assign(n.prototype,{isMatrix4:!0,set:function(e,t,r,n,i,o,s,a,c,u,h,l,p,f,d,m){var v=this.elements;return v[0]=e,v[4]=t,v[8]=r,v[12]=n,v[1]=i,v[5]=o,v[9]=s,v[13]=a,v[2]=c,v[6]=u,v[10]=h,v[14]=l,v[3]=p,v[7]=f,v[11]=d,v[15]=m,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new n).fromArray(this.elements)},copy:function(e){var t=this.elements;return e=e.elements,t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],this},copyPosition:function(e){var t=this.elements;return e=e.elements,t[12]=e[12],t[13]=e[13],t[14]=e[14],this},extractBasis:function(e,t,r){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),r.setFromMatrixColumn(this,2),this},makeBasis:function(e,t,r){return this.set(e.x,t.x,r.x,0,e.y,t.y,r.y,0,e.z,t.z,r.z,0,0,0,0,1),this},extractRotation:function(){var e=new o;return function(t){var r=this.elements,n=t.elements,i=1/e.setFromMatrixColumn(t,0).length(),o=1/e.setFromMatrixColumn(t,1).length();return t=1/e.setFromMatrixColumn(t,2).length(),r[0]=n[0]*i,r[1]=n[1]*i,r[2]=n[2]*i,r[4]=n[4]*o,r[5]=n[5]*o,r[6]=n[6]*o,r[8]=n[8]*t,r[9]=n[9]*t,r[10]=n[10]*t,this}}(),makeRotationFromEuler:function(e){e&&e.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var t=this.elements,r=e.x,n=e.y,i=e.z,o=Math.cos(r),r=Math.sin(r),s=Math.cos(n),n=Math.sin(n),a=Math.cos(i),i=Math.sin(i);if("XYZ"===e.order){var c=o*a,u=o*i,h=r*a;e=r*i,t[0]=s*a,t[4]=-s*i,t[8]=n,t[1]=u+h*n,t[5]=c-e*n,t[9]=-r*s,t[2]=e-c*n,t[6]=h+u*n,t[10]=o*s}else"YXZ"===e.order?(c=s*a,u=s*i,h=n*a,e=n*i,t[0]=c+e*r,t[4]=h*r-u,t[8]=o*n,t[1]=o*i,t[5]=o*a,t[9]=-r,t[2]=u*r-h,t[6]=e+c*r,t[10]=o*s):"ZXY"===e.order?(c=s*a,u=s*i,h=n*a,e=n*i,t[0]=c-e*r,t[4]=-o*i,t[8]=h+u*r,t[1]=u+h*r,t[5]=o*a,t[9]=e-c*r,t[2]=-o*n,t[6]=r,t[10]=o*s):"ZYX"===e.order?(c=o*a,u=o*i,h=r*a,e=r*i,t[0]=s*a,t[4]=h*n-u,t[8]=c*n+e,t[1]=s*i,t[5]=e*n+c,t[9]=u*n-h,t[2]=-n,t[6]=r*s,t[10]=o*s):"YZX"===e.order?(c=o*s,u=o*n,h=r*s,e=r*n,t[0]=s*a,t[4]=e-c*i,t[8]=h*i+u,t[1]=i,t[5]=o*a,t[9]=-r*a,t[2]=-n*a,t[6]=u*i+h,t[10]=c-e*i):"XZY"===e.order&&(c=o*s,u=o*n,h=r*s,e=r*n,t[0]=s*a,t[4]=-i,t[8]=n*a,t[1]=c*i+e,t[5]=o*a,t[9]=u*i-h,t[2]=h*i-u,t[6]=r*a,t[10]=e*i+c);return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this},makeRotationFromQuaternion:function(e){var t=this.elements,r=e._x,n=e._y,i=e._z,o=e._w,s=i+i;e=r*(u=r+r);var a=r*(h=n+n),r=r*s,c=n*h,n=n*s,i=i*s,u=o*u,h=o*h,o=o*s;return t[0]=1-(c+i),t[4]=a-o,t[8]=r+h,t[1]=a+o,t[5]=1-(e+i),t[9]=n-u,t[2]=r-h,t[6]=n+u,t[10]=1-(e+c),t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this},lookAt:function(){var e=new o,t=new o,r=new o;return function(n,i,o){var s=this.elements;return r.subVectors(n,i),0===r.lengthSq()&&(r.z=1),r.normalize(),e.crossVectors(o,r),0===e.lengthSq()&&(1===Math.abs(o.z)?r.x+=1e-4:r.z+=1e-4,r.normalize(),e.crossVectors(o,r)),e.normalize(),t.crossVectors(r,e),s[0]=e.x,s[4]=t.x,s[8]=r.x,s[1]=e.y,s[5]=t.y,s[9]=r.y,s[2]=e.z,s[6]=t.z,s[10]=r.z,this}}(),multiply:function(e,t){return void 0!==t?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(e,t)):this.multiplyMatrices(this,e)},premultiply:function(e){return this.multiplyMatrices(e,this)},multiplyMatrices:function(e,t){var r=e.elements,n=t.elements;t=this.elements,e=r[0];var i=r[4],o=r[8],s=r[12],a=r[1],c=r[5],u=r[9],h=r[13],l=r[2],p=r[6],f=r[10],d=r[14],m=r[3],v=r[7],g=r[11],r=r[15],y=n[0],b=n[4],_=n[8],x=n[12],w=n[1],S=n[5],M=n[9],E=n[13],C=n[2],T=n[6],O=n[10],P=n[14],A=n[3],R=n[7],j=n[11],n=n[15];return t[0]=e*y+i*w+o*C+s*A,t[4]=e*b+i*S+o*T+s*R,t[8]=e*_+i*M+o*O+s*j,t[12]=e*x+i*E+o*P+s*n,t[1]=a*y+c*w+u*C+h*A,t[5]=a*b+c*S+u*T+h*R,t[9]=a*_+c*M+u*O+h*j,t[13]=a*x+c*E+u*P+h*n,t[2]=l*y+p*w+f*C+d*A,t[6]=l*b+p*S+f*T+d*R,t[10]=l*_+p*M+f*O+d*j,t[14]=l*x+p*E+f*P+d*n,t[3]=m*y+v*w+g*C+r*A,t[7]=m*b+v*S+g*T+r*R,t[11]=m*_+v*M+g*O+r*j,t[15]=m*x+v*E+g*P+r*n,this},multiplyScalar:function(e){var t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this},applyToBufferAttribute:function(){var e=new o;return function(t){for(var r=0,n=t.count;r<n;r++)e.x=t.getX(r),e.y=t.getY(r),e.z=t.getZ(r),e.applyMatrix4(this),t.setXYZ(r,e.x,e.y,e.z);return t}}(),determinant:function(){var e=this.elements,t=e[0],r=e[4],n=e[8],i=e[12],o=e[1],s=e[5],a=e[9],c=e[13],u=e[2],h=e[6],l=e[10],p=e[14];return e[3]*(+i*a*h-n*c*h-i*s*l+r*c*l+n*s*p-r*a*p)+e[7]*(+t*a*p-t*c*l+i*o*l-n*o*p+n*c*u-i*a*u)+e[11]*(+t*c*h-t*s*p-i*o*h+r*o*p+i*s*u-r*c*u)+e[15]*(-n*s*u-t*a*h+t*s*l+n*o*h-r*o*l+r*a*u)},transpose:function(){var e=this.elements,t=e[1];return e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this},setPosition:function(e){var t=this.elements;return t[12]=e.x,t[13]=e.y,t[14]=e.z,this},getInverse:function(e,t){var r=this.elements,n=e.elements;e=n[0];var i=n[1],o=n[2],s=n[3],a=n[4],c=n[5],u=n[6],h=n[7],l=n[8],p=n[9],f=n[10],d=n[11],m=n[12],v=n[13],g=n[14],y=p*g*h-v*f*h+v*u*d-c*g*d-p*u*(n=n[15])+c*f*n,b=m*f*h-l*g*h-m*u*d+a*g*d+l*u*n-a*f*n,_=l*v*h-m*p*h+m*c*d-a*v*d-l*c*n+a*p*n,x=m*p*u-l*v*u-m*c*f+a*v*f+l*c*g-a*p*g,w=e*y+i*b+o*_+s*x;if(0===w){if(!0===t)throw Error("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");return console.warn("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0"),this.identity()}return t=1/w,r[0]=y*t,r[1]=(v*f*s-p*g*s-v*o*d+i*g*d+p*o*n-i*f*n)*t,r[2]=(c*g*s-v*u*s+v*o*h-i*g*h-c*o*n+i*u*n)*t,r[3]=(p*u*s-c*f*s-p*o*h+i*f*h+c*o*d-i*u*d)*t,r[4]=b*t,r[5]=(l*g*s-m*f*s+m*o*d-e*g*d-l*o*n+e*f*n)*t,r[6]=(m*u*s-a*g*s-m*o*h+e*g*h+a*o*n-e*u*n)*t,r[7]=(a*f*s-l*u*s+l*o*h-e*f*h-a*o*d+e*u*d)*t,r[8]=_*t,r[9]=(m*p*s-l*v*s-m*i*d+e*v*d+l*i*n-e*p*n)*t,r[10]=(a*v*s-m*c*s+m*i*h-e*v*h-a*i*n+e*c*n)*t,r[11]=(l*c*s-a*p*s-l*i*h+e*p*h+a*i*d-e*c*d)*t,r[12]=x*t,r[13]=(l*v*o-m*p*o+m*i*f-e*v*f-l*i*g+e*p*g)*t,r[14]=(m*c*o-a*v*o-m*i*u+e*v*u+a*i*g-e*c*g)*t,r[15]=(a*p*o-l*c*o+l*i*u-e*p*u-a*i*f+e*c*f)*t,this},scale:function(e){var t=this.elements,r=e.x,n=e.y;return e=e.z,t[0]*=r,t[4]*=n,t[8]*=e,t[1]*=r,t[5]*=n,t[9]*=e,t[2]*=r,t[6]*=n,t[10]*=e,t[3]*=r,t[7]*=n,t[11]*=e,this},getMaxScaleOnAxis:function(){var e=this.elements;return Math.sqrt(Math.max(e[0]*e[0]+e[1]*e[1]+e[2]*e[2],e[4]*e[4]+e[5]*e[5]+e[6]*e[6],e[8]*e[8]+e[9]*e[9]+e[10]*e[10]))},makeTranslation:function(e,t,r){return this.set(1,0,0,e,0,1,0,t,0,0,1,r,0,0,0,1),this},makeRotationX:function(e){var t=Math.cos(e);return e=Math.sin(e),this.set(1,0,0,0,0,t,-e,0,0,e,t,0,0,0,0,1),this},makeRotationY:function(e){var t=Math.cos(e);return e=Math.sin(e),this.set(t,0,e,0,0,1,0,0,-e,0,t,0,0,0,0,1),this},makeRotationZ:function(e){var t=Math.cos(e);return e=Math.sin(e),this.set(t,-e,0,0,e,t,0,0,0,0,1,0,0,0,0,1),this},makeRotationAxis:function(e,t){var r=Math.cos(t);t=Math.sin(t);var n=1-r,i=e.x,o=e.y;e=e.z;var s=n*i,a=n*o;return this.set(s*i+r,s*o-t*e,s*e+t*o,0,s*o+t*e,a*o+r,a*e-t*i,0,s*e-t*o,a*e+t*i,n*e*e+r,0,0,0,0,1),this},makeScale:function(e,t,r){return this.set(e,0,0,0,0,t,0,0,0,0,r,0,0,0,0,1),this},makeShear:function(e,t,r){return this.set(1,t,r,0,e,1,r,0,e,t,1,0,0,0,0,1),this},compose:function(e,t,r){return this.makeRotationFromQuaternion(t),this.scale(r),this.setPosition(e),this},decompose:function(){var e=new o,t=new n;return function(r,n,i){var o=this.elements,s=e.set(o[0],o[1],o[2]).length(),a=e.set(o[4],o[5],o[6]).length(),c=e.set(o[8],o[9],o[10]).length();0>this.determinant()&&(s=-s),r.x=o[12],r.y=o[13],r.z=o[14],t.copy(this),r=1/s;var o=1/a,u=1/c;return t.elements[0]*=r,t.elements[1]*=r,t.elements[2]*=r,t.elements[4]*=o,t.elements[5]*=o,t.elements[6]*=o,t.elements[8]*=u,t.elements[9]*=u,t.elements[10]*=u,n.setFromRotationMatrix(t),i.x=s,i.y=a,i.z=c,this}}(),makePerspective:function(e,t,r,n,i,o){void 0===o&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var s=this.elements;return s[0]=2*i/(t-e),s[4]=0,s[8]=(t+e)/(t-e),s[12]=0,s[1]=0,s[5]=2*i/(r-n),s[9]=(r+n)/(r-n),s[13]=0,s[2]=0,s[6]=0,s[10]=-(o+i)/(o-i),s[14]=-2*o*i/(o-i),s[3]=0,s[7]=0,s[11]=-1,s[15]=0,this},makeOrthographic:function(e,t,r,n,i,o){var s=this.elements,a=1/(t-e),c=1/(r-n),u=1/(o-i);return s[0]=2*a,s[4]=0,s[8]=0,s[12]=-(t+e)*a,s[1]=0,s[5]=2*c,s[9]=0,s[13]=-(r+n)*c,s[2]=0,s[6]=0,s[10]=-2*u,s[14]=-(o+i)*u,s[3]=0,s[7]=0,s[11]=0,s[15]=1,this},equals:function(e){var t=this.elements;e=e.elements;for(var r=0;16>r;r++)if(t[r]!==e[r])return!1;return!0},fromArray:function(e,t){void 0===t&&(t=0);for(var r=0;16>r;r++)this.elements[r]=e[r+t];return this},toArray:function(e,t){void 0===e&&(e=[]),void 0===t&&(t=0);var r=this.elements;return e[t]=r[0],e[t+1]=r[1],e[t+2]=r[2],e[t+3]=r[3],e[t+4]=r[4],e[t+5]=r[5],e[t+6]=r[6],e[t+7]=r[7],e[t+8]=r[8],e[t+9]=r[9],e[t+10]=r[10],e[t+11]=r[11],e[t+12]=r[12],e[t+13]=r[13],e[t+14]=r[14],e[t+15]=r[15],e}}),Object.assign(i,{slerp:function(e,t,r,n){return r.copy(e).slerp(t,n)},slerpFlat:function(e,t,r,n,i,o,s){var a=r[n+0],c=r[n+1],u=r[n+2];r=r[n+3],n=i[o+0];var h=i[o+1],l=i[o+2];if(i=i[o+3],r!==i||a!==n||c!==h||u!==l){o=1-s;var p=a*n+c*h+u*l+r*i,f=0<=p?1:-1,d=1-p*p;d>Number.EPSILON&&(d=Math.sqrt(d),p=Math.atan2(d,p*f),o=Math.sin(o*p)/d,s=Math.sin(s*p)/d),a=a*o+n*(f*=s),c=c*o+h*f,u=u*o+l*f,r=r*o+i*f,o===1-s&&(s=1/Math.sqrt(a*a+c*c+u*u+r*r),a*=s,c*=s,u*=s,r*=s)}e[t]=a,e[t+1]=c,e[t+2]=u,e[t+3]=r}}),Object.defineProperties(i.prototype,{x:{get:function(){return this._x},set:function(e){this._x=e,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(e){this._y=e,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(e){this._z=e,this.onChangeCallback()}},w:{get:function(){return this._w},set:function(e){this._w=e,this.onChangeCallback()}}}),Object.assign(i.prototype,{set:function(e,t,r,n){return this._x=e,this._y=t,this._z=r,this._w=n,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this.onChangeCallback(),this},setFromEuler:function(e,t){if(!e||!e.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var r=e._x,n=e._y,i=e._z;e=e.order;var o=Math.cos,s=Math.sin,a=o(r/2),c=o(n/2),o=o(i/2),r=s(r/2),n=s(n/2),i=s(i/2);return"XYZ"===e?(this._x=r*c*o+a*n*i,this._y=a*n*o-r*c*i,this._z=a*c*i+r*n*o,this._w=a*c*o-r*n*i):"YXZ"===e?(this._x=r*c*o+a*n*i,this._y=a*n*o-r*c*i,this._z=a*c*i-r*n*o,this._w=a*c*o+r*n*i):"ZXY"===e?(this._x=r*c*o-a*n*i,this._y=a*n*o+r*c*i,this._z=a*c*i+r*n*o,this._w=a*c*o-r*n*i):"ZYX"===e?(this._x=r*c*o-a*n*i,this._y=a*n*o+r*c*i,this._z=a*c*i-r*n*o,this._w=a*c*o+r*n*i):"YZX"===e?(this._x=r*c*o+a*n*i,this._y=a*n*o+r*c*i,this._z=a*c*i-r*n*o,this._w=a*c*o-r*n*i):"XZY"===e&&(this._x=r*c*o-a*n*i,this._y=a*n*o-r*c*i,this._z=a*c*i+r*n*o,this._w=a*c*o+r*n*i),!1!==t&&this.onChangeCallback(),this},setFromAxisAngle:function(e,t){t/=2;var r=Math.sin(t);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(t),this.onChangeCallback(),this},setFromRotationMatrix:function(e){var t=e.elements,r=t[0];e=t[4];var n=t[8],i=t[1],o=t[5],s=t[9],a=t[2],c=t[6],u=r+o+(t=t[10]);return 0<u?(r=.5/Math.sqrt(u+1),this._w=.25/r,this._x=(c-s)*r,this._y=(n-a)*r,this._z=(i-e)*r):r>o&&r>t?(r=2*Math.sqrt(1+r-o-t),this._w=(c-s)/r,this._x=.25*r,this._y=(e+i)/r,this._z=(n+a)/r):o>t?(r=2*Math.sqrt(1+o-r-t),this._w=(n-a)/r,this._x=(e+i)/r,this._y=.25*r,this._z=(s+c)/r):(r=2*Math.sqrt(1+t-r-o),this._w=(i-e)/r,this._x=(n+a)/r,this._y=(s+c)/r,this._z=.25*r),this.onChangeCallback(),this},setFromUnitVectors:function(){var e,t=new o;return function(r,n){return void 0===t&&(t=new o),1e-6>(e=r.dot(n)+1)?(e=0,Math.abs(r.x)>Math.abs(r.z)?t.set(-r.y,r.x,0):t.set(0,-r.z,r.y)):t.crossVectors(r,n),this._x=t.x,this._y=t.y,this._z=t.z,this._w=e,this.normalize()}}(),inverse:function(){return this.conjugate().normalize()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this.onChangeCallback(),this},dot:function(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var e=this.length();return 0===e?(this._z=this._y=this._x=0,this._w=1):(e=1/e,this._x*=e,this._y*=e,this._z*=e,this._w*=e),this.onChangeCallback(),this},multiply:function(e,t){return void 0!==t?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(e,t)):this.multiplyQuaternions(this,e)},premultiply:function(e){return this.multiplyQuaternions(e,this)},multiplyQuaternions:function(e,t){var r=e._x,n=e._y,i=e._z;e=e._w;var o=t._x,s=t._y,a=t._z;return t=t._w,this._x=r*t+e*o+n*a-i*s,this._y=n*t+e*s+i*o-r*a,this._z=i*t+e*a+r*s-n*o,this._w=e*t-r*o-n*s-i*a,this.onChangeCallback(),this},slerp:function(e,t){if(0===t)return this;if(1===t)return this.copy(e);var r=this._x,n=this._y,i=this._z,o=this._w;if(0>(a=o*e._w+r*e._x+n*e._y+i*e._z)?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),1<=a)return this._w=o,this._x=r,this._y=n,this._z=i,this;if(e=Math.sqrt(1-a*a),.001>Math.abs(e))return this._w=.5*(o+this._w),this._x=.5*(r+this._x),this._y=.5*(n+this._y),this._z=.5*(i+this._z),this;var s=Math.atan2(e,a),a=Math.sin((1-t)*s)/e;return t=Math.sin(t*s)/e,this._w=o*a+this._w*t,this._x=r*a+this._x*t,this._y=n*a+this._y*t,this._z=i*a+this._z*t,this.onChangeCallback(),this},equals:function(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w},fromArray:function(e,t){return void 0===t&&(t=0),this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this.onChangeCallback(),this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e},onChange:function(e){return this.onChangeCallback=e,this},onChangeCallback:function(){}}),Object.assign(o.prototype,{isVector3:!0,set:function(e,t,r){return this.x=e,this.y=t,this.z=r,this},setScalar:function(e){return this.z=this.y=this.x=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setZ:function(e){return this.z=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw Error("index is out of range: "+e)}return this},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+e)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},add:function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this)},addScalar:function(e){return this.x+=e,this.y+=e,this.z+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this},sub:function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this)},subScalar:function(e){return this.x-=e,this.y-=e,this.z-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},multiply:function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(e,t)):(this.x*=e.x,this.y*=e.y,this.z*=e.z,this)},multiplyScalar:function(e){return this.x*=e,this.y*=e,this.z*=e,this},multiplyVectors:function(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this},applyEuler:function(){var e=new i;return function(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(e.setFromEuler(t))}}(),applyAxisAngle:function(){var e=new i;return function(t,r){return this.applyQuaternion(e.setFromAxisAngle(t,r))}}(),applyMatrix3:function(e){var t=this.x,r=this.y,n=this.z;return e=e.elements,this.x=e[0]*t+e[3]*r+e[6]*n,this.y=e[1]*t+e[4]*r+e[7]*n,this.z=e[2]*t+e[5]*r+e[8]*n,this},applyMatrix4:function(e){var t=this.x,r=this.y,n=this.z,i=1/((e=e.elements)[3]*t+e[7]*r+e[11]*n+e[15]);return this.x=(e[0]*t+e[4]*r+e[8]*n+e[12])*i,this.y=(e[1]*t+e[5]*r+e[9]*n+e[13])*i,this.z=(e[2]*t+e[6]*r+e[10]*n+e[14])*i,this},applyQuaternion:function(e){var t=this.x,r=this.y,n=this.z,i=e.x,o=e.y,s=e.z,a=(e=e.w)*t+o*n-s*r,c=e*r+s*t-i*n,u=e*n+i*r-o*t,t=-i*t-o*r-s*n;return this.x=a*e+t*-i+c*-s-u*-o,this.y=c*e+t*-o+u*-i-a*-s,this.z=u*e+t*-s+a*-o-c*-i,this},project:function(){var e=new n;return function(t){return e.multiplyMatrices(t.projectionMatrix,e.getInverse(t.matrixWorld)),this.applyMatrix4(e)}}(),unproject:function(){var e=new n;return function(t){return e.multiplyMatrices(t.matrixWorld,e.getInverse(t.projectionMatrix)),this.applyMatrix4(e)}}(),transformDirection:function(e){var t=this.x,r=this.y,n=this.z;return e=e.elements,this.x=e[0]*t+e[4]*r+e[8]*n,this.y=e[1]*t+e[5]*r+e[9]*n,this.z=e[2]*t+e[6]*r+e[10]*n,this.normalize()},divide:function(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this},divideScalar:function(e){return this.multiplyScalar(1/e)},min:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this},max:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this},clamp:function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this},clampScalar:function(){var e=new o,t=new o;return function(r,n){return e.set(r,r,r),t.set(n,n,n),this.clamp(e,t)}}(),clampLength:function(e,t){var r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(e,Math.min(t,r)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(e){return this.normalize().multiplyScalar(e)},lerp:function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this},lerpVectors:function(e,t,r){return this.subVectors(t,e).multiplyScalar(r).add(e)},cross:function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(e,t)):this.crossVectors(this,e)},crossVectors:function(e,t){var r=e.x,n=e.y;e=e.z;var i=t.x,o=t.y;return t=t.z,this.x=n*t-e*o,this.y=e*i-r*t,this.z=r*o-n*i,this},projectOnVector:function(e){var t=e.dot(this)/e.lengthSq();return this.copy(e).multiplyScalar(t)},projectOnPlane:function(){var e=new o;return function(t){return e.copy(this).projectOnVector(t),this.sub(e)}}(),reflect:function(){var e=new o;return function(t){return this.sub(e.copy(t).multiplyScalar(2*this.dot(t)))}}(),angleTo:function(e){return e=this.dot(e)/Math.sqrt(this.lengthSq()*e.lengthSq()),Math.acos(ci.clamp(e,-1,1))},distanceTo:function(e){return Math.sqrt(this.distanceToSquared(e))},distanceToSquared:function(e){var t=this.x-e.x,r=this.y-e.y;return e=this.z-e.z,t*t+r*r+e*e},manhattanDistanceTo:function(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)},setFromSpherical:function(e){var t=Math.sin(e.phi)*e.radius;return this.x=t*Math.sin(e.theta),this.y=Math.cos(e.phi)*e.radius,this.z=t*Math.cos(e.theta),this},setFromCylindrical:function(e){return this.x=e.radius*Math.sin(e.theta),this.y=e.y,this.z=e.radius*Math.cos(e.theta),this},setFromMatrixPosition:function(e){return e=e.elements,this.x=e[12],this.y=e[13],this.z=e[14],this},setFromMatrixScale:function(e){var t=this.setFromMatrixColumn(e,0).length(),r=this.setFromMatrixColumn(e,1).length();return e=this.setFromMatrixColumn(e,2).length(),this.x=t,this.y=r,this.z=e,this},setFromMatrixColumn:function(e,t){return this.fromArray(e.elements,4*t)},equals:function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z},fromArray:function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e},fromBufferAttribute:function(e,t,r){return void 0!==r&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}}),Object.assign(s.prototype,{isMatrix3:!0,set:function(e,t,r,n,i,o,s,a,c){var u=this.elements;return u[0]=e,u[1]=n,u[2]=s,u[3]=t,u[4]=i,u[5]=a,u[6]=r,u[7]=o,u[8]=c,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(e){var t=this.elements;return e=e.elements,t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],this},setFromMatrix4:function(e){return e=e.elements,this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this},applyToBufferAttribute:function(){var e=new o;return function(t){for(var r=0,n=t.count;r<n;r++)e.x=t.getX(r),e.y=t.getY(r),e.z=t.getZ(r),e.applyMatrix3(this),t.setXYZ(r,e.x,e.y,e.z);return t}}(),multiply:function(e){return this.multiplyMatrices(this,e)},premultiply:function(e){return this.multiplyMatrices(e,this)},multiplyMatrices:function(e,t){var r=e.elements,n=t.elements;t=this.elements,e=r[0];var i=r[3],o=r[6],s=r[1],a=r[4],c=r[7],u=r[2],h=r[5],r=r[8],l=n[0],p=n[3],f=n[6],d=n[1],m=n[4],v=n[7],g=n[2],y=n[5],n=n[8];return t[0]=e*l+i*d+o*g,t[3]=e*p+i*m+o*y,t[6]=e*f+i*v+o*n,t[1]=s*l+a*d+c*g,t[4]=s*p+a*m+c*y,t[7]=s*f+a*v+c*n,t[2]=u*l+h*d+r*g,t[5]=u*p+h*m+r*y,t[8]=u*f+h*v+r*n,this},multiplyScalar:function(e){var t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this},determinant:function(){var e=this.elements,t=e[0],r=e[1],n=e[2],i=e[3],o=e[4],s=e[5],a=e[6],c=e[7];return t*o*(e=e[8])-t*s*c-r*i*e+r*s*a+n*i*c-n*o*a},getInverse:function(e,t){e&&e.isMatrix4&&console.error("THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument.");r=e.elements;e=this.elements;var r,n=r[0],i=r[1],o=r[2],s=r[3],a=r[4],c=r[5],u=r[6],h=r[7],l=(r=r[8])*a-c*h,p=c*u-r*s,f=h*s-a*u,d=n*l+i*p+o*f;if(0===d){if(!0===t)throw Error("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");return console.warn("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0"),this.identity()}return t=1/d,e[0]=l*t,e[1]=(o*h-r*i)*t,e[2]=(c*i-o*a)*t,e[3]=p*t,e[4]=(r*n-o*u)*t,e[5]=(o*s-c*n)*t,e[6]=f*t,e[7]=(i*u-h*n)*t,e[8]=(a*n-i*s)*t,this},transpose:function(){var e=this.elements,t=e[1];return e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this},getNormalMatrix:function(e){return this.setFromMatrix4(e).getInverse(this).transpose()},transposeIntoArray:function(e){var t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this},setUvTransform:function(e,t,r,n,i,o,s){var a=Math.cos(i);i=Math.sin(i),this.set(r*a,r*i,-r*(a*o+i*s)+o+e,-n*i,n*a,-n*(-i*o+a*s)+s+t,0,0,1)},scale:function(e,t){var r=this.elements;return r[0]*=e,r[3]*=e,r[6]*=e,r[1]*=t,r[4]*=t,r[7]*=t,this},rotate:function(e){var t=Math.cos(e);e=Math.sin(e);var r=this.elements,n=r[0],i=r[3],o=r[6],s=r[1],a=r[4],c=r[7];return r[0]=t*n+e*s,r[3]=t*i+e*a,r[6]=t*o+e*c,r[1]=-e*n+t*s,r[4]=-e*i+t*a,r[7]=-e*o+t*c,this},translate:function(e,t){var r=this.elements;return r[0]+=e*r[2],r[3]+=e*r[5],r[6]+=e*r[8],r[1]+=t*r[2],r[4]+=t*r[5],r[7]+=t*r[8],this},equals:function(e){var t=this.elements;e=e.elements;for(var r=0;9>r;r++)if(t[r]!==e[r])return!1;return!0},fromArray:function(e,t){void 0===t&&(t=0);for(var r=0;9>r;r++)this.elements[r]=e[r+t];return this},toArray:function(e,t){void 0===e&&(e=[]),void 0===t&&(t=0);var r=this.elements;return e[t]=r[0],e[t+1]=r[1],e[t+2]=r[2],e[t+3]=r[3],e[t+4]=r[4],e[t+5]=r[5],e[t+6]=r[6],e[t+7]=r[7],e[t+8]=r[8],e}});var ui=0;a.DEFAULT_IMAGE=void 0,a.DEFAULT_MAPPING=300,Object.defineProperty(a.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}}),Object.assign(a.prototype,t.prototype,{constructor:a,isTexture:!0,clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.name=e.name,this.image=e.image,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.encoding=e.encoding,this},toJSON:function(e){var t=void 0===e||"string"==typeof e;if(!t&&void 0!==e.textures[this.uuid])return e.textures[this.uuid];var r={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==this.image){var n=this.image;if(void 0===n.uuid&&(n.uuid=ci.generateUUID()),!t&&void 0===e.images[n.uuid]){var i=e.images,o=n.uuid,s=n.uuid;if(n instanceof HTMLCanvasElement)var a=n;else{(a=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")).width=n.width,a.height=n.height;var c=a.getContext("2d");n instanceof ImageData?c.putImageData(n,0,0):c.drawImage(n,0,0,n.width,n.height)}a=2048<a.width||2048<a.height?a.toDataURL("image/jpeg",.6):a.toDataURL("image/png"),i[o]={uuid:s,url:a}}r.image=n.uuid}return t||(e.textures[this.uuid]=r),r},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(e){if(300===this.mapping){if(e.applyMatrix3(this.matrix),0>e.x||1<e.x)switch(this.wrapS){case 1e3:e.x-=Math.floor(e.x);break;case 1001:e.x=0>e.x?0:1;break;case 1002:e.x=1===Math.abs(Math.floor(e.x)%2)?Math.ceil(e.x)-e.x:e.x-Math.floor(e.x)}if(0>e.y||1<e.y)switch(this.wrapT){case 1e3:e.y-=Math.floor(e.y);break;case 1001:e.y=0>e.y?0:1;break;case 1002:e.y=1===Math.abs(Math.floor(e.y)%2)?Math.ceil(e.y)-e.y:e.y-Math.floor(e.y)}this.flipY&&(e.y=1-e.y)}}}),Object.assign(c.prototype,{isVector4:!0,set:function(e,t,r,n){return this.x=e,this.y=t,this.z=r,this.w=n,this},setScalar:function(e){return this.w=this.z=this.y=this.x=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setZ:function(e){return this.z=e,this},setW:function(e){return this.w=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw Error("index is out of range: "+e)}return this},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+e)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this},add:function(e,t){return void 0!==t?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this)},addScalar:function(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this},sub:function(e,t){return void 0!==t?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this)},subScalar:function(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this},multiplyScalar:function(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this},applyMatrix4:function(e){var t=this.x,r=this.y,n=this.z,i=this.w;return e=e.elements,this.x=e[0]*t+e[4]*r+e[8]*n+e[12]*i,this.y=e[1]*t+e[5]*r+e[9]*n+e[13]*i,this.z=e[2]*t+e[6]*r+e[10]*n+e[14]*i,this.w=e[3]*t+e[7]*r+e[11]*n+e[15]*i,this},divideScalar:function(e){return this.multiplyScalar(1/e)},setAxisAngleFromQuaternion:function(e){this.w=2*Math.acos(e.w);var t=Math.sqrt(1-e.w*e.w);return 1e-4>t?(this.x=1,this.z=this.y=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this},setAxisAngleFromRotationMatrix:function(e){var t=(e=e.elements)[0],r=e[4],n=e[8],i=e[1],o=e[5],s=e[9],a=e[2],c=e[6],u=e[10];return.01>Math.abs(r-i)&&.01>Math.abs(n-a)&&.01>Math.abs(s-c)?.1>Math.abs(r+i)&&.1>Math.abs(n+a)&&.1>Math.abs(s+c)&&.1>Math.abs(t+o+u-3)?(this.set(1,0,0,0),this):(e=Math.PI,t=(t+1)/2,o=(o+1)/2,u=(u+1)/2,r=(r+i)/4,n=(n+a)/4,s=(s+c)/4,t>o&&t>u?.01>t?(c=0,r=a=.707106781):(c=Math.sqrt(t),a=r/c,r=n/c):o>u?.01>o?(c=.707106781,a=0,r=.707106781):(a=Math.sqrt(o),c=r/a,r=s/a):.01>u?(a=c=.707106781,r=0):(r=Math.sqrt(u),c=n/r,a=s/r),this.set(c,a,r,e),this):(e=Math.sqrt((c-s)*(c-s)+(n-a)*(n-a)+(i-r)*(i-r)),.001>Math.abs(e)&&(e=1),this.x=(c-s)/e,this.y=(n-a)/e,this.z=(i-r)/e,this.w=Math.acos((t+o+u-1)/2),this)},min:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this},max:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this},clamp:function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this},clampScalar:function(){var e,t;return function(r,n){return void 0===e&&(e=new c,t=new c),e.set(r,r,r,r),t.set(n,n,n,n),this.clamp(e,t)}}(),clampLength:function(e,t){var r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(e,Math.min(t,r)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z),this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(e){return this.normalize().multiplyScalar(e)},lerp:function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this},lerpVectors:function(e,t,r){return this.subVectors(t,e).multiplyScalar(r).add(e)},equals:function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w},fromArray:function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e},fromBufferAttribute:function(e,t,r){return void 0!==r&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}}),Object.assign(u.prototype,t.prototype,{isWebGLRenderTarget:!0,setSize:function(e,t){this.width===e&&this.height===t||(this.width=e,this.height=t,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.width=e.width,this.height=e.height,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.depthTexture=e.depthTexture,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),(h.prototype=Object.create(u.prototype)).constructor=h,h.prototype.isWebGLRenderTargetCube=!0,(l.prototype=Object.create(a.prototype)).constructor=l,l.prototype.isDataTexture=!0,(p.prototype=Object.create(a.prototype)).constructor=p,p.prototype.isCubeTexture=!0,Object.defineProperty(p.prototype,"images",{get:function(){return this.image},set:function(e){this.image=e}});var hi=new a,li=new p,pi=[],fi=[],di=new Float32Array(16),mi=new Float32Array(9);U.prototype.setValue=function(e,t){for(var r=this.seq,n=0,i=r.length;n!==i;++n){var o=r[n];o.setValue(e,t[o.id])}};var vi=/([\w\d_]+)(\])?(\[|\.)?/g;$.prototype.setValue=function(e,t,r){void 0!==(t=this.map[t])&&t.setValue(e,r,this.renderer)},$.prototype.setOptional=function(e,t,r){void 0!==(t=t[r])&&this.setValue(e,r,t)},$.upload=function(e,t,r,n){for(var i=0,o=t.length;i!==o;++i){var s=t[i],a=r[s.id];!1!==a.needsUpdate&&s.setValue(e,a.value,n)}},$.seqWithValue=function(e,t){for(var r=[],n=0,i=e.length;n!==i;++n){var o=e[n];o.id in t&&r.push(o)}return r};var gi={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Object.assign(z.prototype,{isColor:!0,r:1,g:1,b:1,set:function(e){return e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e),this},setScalar:function(e){return this.b=this.g=this.r=e,this},setHex:function(e){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,this},setRGB:function(e,t,r){return this.r=e,this.g=t,this.b=r,this},setHSL:function(){function e(e,t,r){return 0>r&&(r+=1),1<r&&--r,r<1/6?e+6*(t-e)*r:.5>r?t:r<2/3?e+6*(t-e)*(2/3-r):e}return function(t,r,n){return t=ci.euclideanModulo(t,1),r=ci.clamp(r,0,1),n=ci.clamp(n,0,1),0===r?this.r=this.g=this.b=n:(r=.5>=n?n*(1+r):n+r-n*r,n=2*n-r,this.r=e(n,r,t+1/3),this.g=e(n,r,t),this.b=e(n,r,t-1/3)),this}}(),setStyle:function(e){function t(t){void 0!==t&&1>parseFloat(t)&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}var r;if(r=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(e)){n=r[2];switch(r[1]){case"rgb":case"rgba":if(r=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(n))return this.r=Math.min(255,parseInt(r[1],10))/255,this.g=Math.min(255,parseInt(r[2],10))/255,this.b=Math.min(255,parseInt(r[3],10))/255,t(r[5]),this;if(r=/^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(n))return this.r=Math.min(100,parseInt(r[1],10))/100,this.g=Math.min(100,parseInt(r[2],10))/100,this.b=Math.min(100,parseInt(r[3],10))/100,t(r[5]),this;break;case"hsl":case"hsla":if(r=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(n)){var n=parseFloat(r[1])/360,i=parseInt(r[2],10)/100,o=parseInt(r[3],10)/100;return t(r[5]),this.setHSL(n,i,o)}}}else if(r=/^\#([A-Fa-f0-9]+)$/.exec(e)){if(r=r[1],3===(n=r.length))return this.r=parseInt(r.charAt(0)+r.charAt(0),16)/255,this.g=parseInt(r.charAt(1)+r.charAt(1),16)/255,this.b=parseInt(r.charAt(2)+r.charAt(2),16)/255,this;if(6===n)return this.r=parseInt(r.charAt(0)+r.charAt(1),16)/255,this.g=parseInt(r.charAt(2)+r.charAt(3),16)/255,this.b=parseInt(r.charAt(4)+r.charAt(5),16)/255,this}return e&&0<e.length&&(void 0!==(r=gi[e])?this.setHex(r):console.warn("THREE.Color: Unknown color "+e)),this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(e){return this.r=e.r,this.g=e.g,this.b=e.b,this},copyGammaToLinear:function(e,t){return void 0===t&&(t=2),this.r=Math.pow(e.r,t),this.g=Math.pow(e.g,t),this.b=Math.pow(e.b,t),this},copyLinearToGamma:function(e,t){return void 0===t&&(t=2),t=0<t?1/t:1,this.r=Math.pow(e.r,t),this.g=Math.pow(e.g,t),this.b=Math.pow(e.b,t),this},convertGammaToLinear:function(){var e=this.r,t=this.g,r=this.b;return this.r=e*e,this.g=t*t,this.b=r*r,this},convertLinearToGamma:function(){return this.r=Math.sqrt(this.r),this.g=Math.sqrt(this.g),this.b=Math.sqrt(this.b),this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(e){e=e||{h:0,s:0,l:0};var t,r=this.r,n=this.g,i=this.b,o=Math.max(r,n,i),s=((c=Math.min(r,n,i))+o)/2;if(c===o)c=t=0;else{var a=o-c,c=.5>=s?a/(o+c):a/(2-o-c);switch(o){case r:t=(n-i)/a+(n<i?6:0);break;case n:t=(i-r)/a+2;break;case i:t=(r-n)/a+4}t/=6}return e.h=t,e.s=c,e.l=s,e},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(e,t,r){var n=this.getHSL();return n.h+=e,n.s+=t,n.l+=r,this.setHSL(n.h,n.s,n.l),this},add:function(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this},addColors:function(e,t){return this.r=e.r+t.r,this.g=e.g+t.g,this.b=e.b+t.b,this},addScalar:function(e){return this.r+=e,this.g+=e,this.b+=e,this},sub:function(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this},multiply:function(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this},multiplyScalar:function(e){return this.r*=e,this.g*=e,this.b*=e,this},lerp:function(e,t){return this.r+=(e.r-this.r)*t,this.g+=(e.g-this.g)*t,this.b+=(e.b-this.b)*t,this},equals:function(e){return e.r===this.r&&e.g===this.g&&e.b===this.b},fromArray:function(e,t){return void 0===t&&(t=0),this.r=e[t],this.g=e[t+1],this.b=e[t+2],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e},toJSON:function(){return this.getHex()}});var yi={common:{diffuse:{value:new z(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new s},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new r(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new z(16777215)}},lights:{ambientLightColor:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}}},points:{diffuse:{value:new z(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},uvTransform:{value:new s}}},bi={merge:function(e){for(var t={},r=0;r<e.length;r++){var n,i=this.clone(e[r]);for(n in i)t[n]=i[n]}return t},clone:function(e){var t,r={};for(t in e){r[t]={};for(var n in e[t]){var i=e[t][n];i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture)?r[t][n]=i.clone():Array.isArray(i)?r[t][n]=i.slice():r[t][n]=i}}return r}},_i={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif\n",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif\n",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif\n",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif\n",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"\nvec3 transformed = vec3( position );\n",beginnormal_vertex:"\nvec3 objectNormal = vec3( normal );\n",bsdfs:"float punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\tif( decayExponent > 0.0 ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tfloat maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\treturn distanceFalloff * maxDistanceCutoffFactor;\n#else\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n#endif\n\t}\n\treturn 1.0;\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE  = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS  = 0.5 / LUT_SIZE;\n\tfloat theta = acos( dot( N, V ) );\n\tvec2 uv = vec2(\n\t\tsqrt( saturate( roughness ) ),\n\t\tsaturate( theta / ( 0.5 * PI ) ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.86267 + (0.49788 + 0.01436 * y ) * y;\n\tfloat b = 3.45068 + (4.18814 + y) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = (x > 0.0) ? v : 0.5 * inversesqrt( 1.0 - x * x ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tvec3 result = vec3( LTC_ClippedSphereFormFactor( vectorFormFactor ) );\n\treturn result;\n}\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;\n\treturn specularColor * AB.x + AB.y;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif\n",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; ++ i ) {\n\t\tvec4 plane = clippingPlanes[ i ];\n\t\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t\t\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; ++ i ) {\n\t\t\tvec4 plane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\tif ( clipped ) discard;\n\t\n\t#endif\n#endif\n",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\n\t\tvarying vec3 vViewPosition;\n\t#endif\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif\n",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvarying vec3 vViewPosition;\n#endif\n",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n",color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif\n",color_pars_vertex:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif",common:"#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\n",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection = abs(direction);\n\tint face = -1;\n\tif( absDirection.x > absDirection.z ) {\n\t\tif(absDirection.x > absDirection.y )\n\t\t\tface = direction.x > 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z > absDirection.y )\n\t\t\tface = direction.z > 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1  (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness = dFdx(roughness);\n\tfloat dyRoughness = dFdy(roughness);\n\tvec3 dx = dFdx( vec * scale * dxRoughness );\n\tvec3 dy = dFdy( vec * scale * dyRoughness );\n\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\n\td = clamp(d, 1.0, cubeUV_rangeClamp);\n\tfloat mipLevel = 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a = 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\n\tfloat powScale = exp2_packed.x * exp2_packed.y;\n\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes = mipLevel == 0.0;\n\tscale =  bRes && (scale < a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face = getFaceFromDirection(direction);\n\tfloat rcpPowScale = 1.0 / powScale;\n\tif( face == 0) {\n\t\tr = vec3(direction.x, -direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 1) {\n\t\tr = vec3(direction.y, direction.x, direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 2) {\n\t\tr = vec3(direction.z, direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 3) {\n\t\tr = vec3(direction.x, direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face == 4) {\n\t\tr = vec3(direction.y, direction.x, -direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr = vec3(direction.z, -direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr = normalize(r);\n\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base = offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV(vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal = roughness* cubeUV_maxLods3;\n\tfloat r1 = floor(roughnessVal);\n\tfloat r2 = r1 + 1.0;\n\tfloat t = fract(roughnessVal);\n\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s = mipInfo.y;\n\tfloat level0 = mipInfo.x;\n\tfloat level1 = level0 + 1.0;\n\tlevel1 = level1 > 5.0 ? 5.0 : level1;\n\tlevel0 += min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result = mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif\n",defaultnormal_vertex:"vec3 transformedNormal = normalMatrix * objectNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif\n",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif\n",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif\n",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif\n",encodings_fragment:"  gl_FragColor = linearToOutputTexel( gl_FragColor );\n",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.xyz * value.w * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\n\tfloat M      = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM            = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\n\tfloat D      = max( maxRange / maxRGB, 1.0 );\n\tD            = min( floor( D ) / 255.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value )  {\n\tvec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\n\tXp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract(Le);\n\tvResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\n\treturn vec4( max(vRGB, 0.0), 1.0 );\n}\n",envmap_fragment:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec = normalize( reflectVec );\n\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\tenvColor = envMapTexelToLinear( envColor );\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif\n",envmap_pars_fragment:"#if defined( USE_ENVMAP ) || defined( PHYSICAL )\n\tuniform float reflectivity;\n\tuniform float envMapIntensity;\n#endif\n#ifdef USE_ENVMAP\n\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\n\t\tvarying vec3 vWorldPosition;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif\n",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif\n",envmap_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif\n",fog_vertex:"\n#ifdef USE_FOG\nfogDepth = -mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n  varying float fogDepth;\n#endif\n",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif\n",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif\n",gradientmap_pars_fragment:"#ifdef TOON\n\tuniform sampler2D gradientMap;\n\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\t\tfloat dotNL = dot( normal, lightDirection );\n\t\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t\t#ifdef USE_GRADIENTMAP\n\t\t\treturn texture2D( gradientMap, coord ).rgb;\n\t\t#else\n\t\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t\t#endif\n\t}\n#endif\n",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n#endif\n",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_DIR_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n#endif\n",lights_pars:"uniform vec3 ambientLightColor;\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t\tfloat shadowCameraNear;\n\t\tfloat shadowCameraFar;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight  ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltcMat;\tuniform sampler2D ltcMag;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif\n#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( queryVec, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\tvec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif\n",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;\n",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifdef TOON\n\t\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#else\n\t\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\t\tvec3 irradiance = dotNL * directLight.color;\n\t#endif\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)\n",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\n#ifdef STANDARD\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.clearCoat = saturate( clearCoat );\tmaterial.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );\n#endif\n",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n\t#ifndef STANDARD\n\t\tfloat clearCoat;\n\t\tfloat clearCoatRoughness;\n\t#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos - halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos + halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos + halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos - halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tfloat norm = texture2D( ltcMag, uv ).a;\n\t\tvec4 t = texture2D( ltcMat, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3(   1,   0, t.y ),\n\t\t\tvec3(   0, t.z,   0 ),\n\t\t\tvec3( t.w,   0, t.x )\n\t\t);\n\t\treflectedLight.directSpecular += lightColor * material.specularColor * norm * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifndef STANDARD\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\n\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\t#ifndef STANDARD\n\t\treflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifndef STANDARD\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\tfloat dotNL = dotNV;\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\n\t#ifndef STANDARD\n\t\treflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\n#define Material_BlinnShininessExponent( material )   GGXRoughnessToBlinnExponent( material.specularRoughness )\n#define Material_ClearCoat_BlinnShininessExponent( material )   GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}\n",lights_template:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize( vViewPosition );\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#ifdef USE_LIGHTMAP\n\t\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tirradiance += getLightProbeIndirectIrradiance( geometry, 8 );\n\t#endif\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tvec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\n\t#ifndef STANDARD\n\t\tvec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\n\t#else\n\t\tvec3 clearCoatRadiance = vec3( 0.0 );\n\t#endif\n\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\n#endif\n",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#ifdef USE_LOGDEPTHBUF\n\tuniform float logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n#endif\n",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n\tuniform float logDepthBufFC;\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\tgl_Position.z *= gl_Position.w;\n\t#endif\n#endif\n",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif\n",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n",map_particle_fragment:"#ifdef USE_MAP\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n",map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform mat3 uvTransform;\n\tuniform sampler2D map;\n#endif\n",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif\n",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n#endif\n",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\t#endif\n#endif\n",normal_fragment:"#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n#endif\n#ifdef USE_NORMALMAP\n\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif\n",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\n\t\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\n\t\tvec3 N = normalize( surf_norm );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = normalScale * mapN.xy;\n\t\tmat3 tsn = mat3( S, T, N );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif\n",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256.,  256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}\n",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif\n",project_vertex:"vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\ngl_Position = projectionMatrix * mvPosition;\n",dithering_fragment:"#if defined( DITHERING )\n  gl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif\n",dithering_pars_fragment:"#if defined( DITHERING )\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif\n",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif\n",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\n\t\tconst vec2 offset = vec2( 0.0, 1.0 );\n\t\tvec2 texelSize = vec2( 1.0 ) / size;\n\t\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\n\t\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\n\t\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\n\t\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\n\t\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\n\t\tvec2 f = fract( uv * size + 0.5 );\n\t\tfloat a = mix( lb, lt, f.y );\n\t\tfloat b = mix( rb, rt, f.y );\n\t\tfloat c = mix( a, b, f.x );\n\t\treturn c;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif\n",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n#endif\n",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n#endif\n",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tDirectionalLight directionalLight;\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tSpotLight spotLight;\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tPointLight pointLight;\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#endif\n\t#endif\n\treturn shadow;\n}\n",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif\n",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif\n",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix  = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n#endif\n",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n  gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif\n",tonemapping_pars_fragment:"#ifndef saturate\n\t#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\n",uv_pars_fragment:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\n",uv_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = uv2;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n#endif\n",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldPosition;\nvoid main() {\n\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\n\tgl_FragColor.a *= opacity;\n}\n",cube_vert:"varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}\n",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n}\n",depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n}\n",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}\n",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}\n",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}\n",equirect_vert:"varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}\n",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}\n",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <bsdfs>\n#include <lights_pars>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_template>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",meshphysical_frag:"#define PHYSICAL\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifndef STANDARD\n\tuniform float clearCoat;\n\tuniform float clearCoatRoughness;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <lights_pars>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_template>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",meshphysical_vert:"#define PHYSICAL\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\nvoid main() {\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}\n",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}\n",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#ifdef USE_SIZEATTENUATION\n\t\tgl_PointSize = size * ( scale / - mvPosition.z );\n\t#else\n\t\tgl_PointSize = size;\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <fog_fragment>\n}\n",shadow_vert:"#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n"},xi={basic:{uniforms:bi.merge([yi.common,yi.specularmap,yi.envmap,yi.aomap,yi.lightmap,yi.fog]),vertexShader:_i.meshbasic_vert,fragmentShader:_i.meshbasic_frag},lambert:{uniforms:bi.merge([yi.common,yi.specularmap,yi.envmap,yi.aomap,yi.lightmap,yi.emissivemap,yi.fog,yi.lights,{emissive:{value:new z(0)}}]),vertexShader:_i.meshlambert_vert,fragmentShader:_i.meshlambert_frag},phong:{uniforms:bi.merge([yi.common,yi.specularmap,yi.envmap,yi.aomap,yi.lightmap,yi.emissivemap,yi.bumpmap,yi.normalmap,yi.displacementmap,yi.gradientmap,yi.fog,yi.lights,{emissive:{value:new z(0)},specular:{value:new z(1118481)},shininess:{value:30}}]),vertexShader:_i.meshphong_vert,fragmentShader:_i.meshphong_frag},standard:{uniforms:bi.merge([yi.common,yi.envmap,yi.aomap,yi.lightmap,yi.emissivemap,yi.bumpmap,yi.normalmap,yi.displacementmap,yi.roughnessmap,yi.metalnessmap,yi.fog,yi.lights,{emissive:{value:new z(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:_i.meshphysical_vert,fragmentShader:_i.meshphysical_frag},points:{uniforms:bi.merge([yi.points,yi.fog]),vertexShader:_i.points_vert,fragmentShader:_i.points_frag},dashed:{uniforms:bi.merge([yi.common,yi.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:_i.linedashed_vert,fragmentShader:_i.linedashed_frag},depth:{uniforms:bi.merge([yi.common,yi.displacementmap]),vertexShader:_i.depth_vert,fragmentShader:_i.depth_frag},normal:{uniforms:bi.merge([yi.common,yi.bumpmap,yi.normalmap,yi.displacementmap,{opacity:{value:1}}]),vertexShader:_i.normal_vert,fragmentShader:_i.normal_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:_i.cube_vert,fragmentShader:_i.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:_i.equirect_vert,fragmentShader:_i.equirect_frag},distanceRGBA:{uniforms:bi.merge([yi.common,yi.displacementmap,{referencePosition:{value:new o},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:_i.distanceRGBA_vert,fragmentShader:_i.distanceRGBA_frag},shadow:{uniforms:bi.merge([yi.lights,yi.fog,{color:{value:new z(0)},opacity:{value:1}}]),vertexShader:_i.shadow_vert,fragmentShader:_i.shadow_frag}};xi.physical={uniforms:bi.merge([xi.standard.uniforms,{clearCoat:{value:0},clearCoatRoughness:{value:0}}]),vertexShader:_i.meshphysical_vert,fragmentShader:_i.meshphysical_frag},Object.assign(G.prototype,{set:function(e,t){return this.min.copy(e),this.max.copy(t),this},setFromPoints:function(e){this.makeEmpty();for(var t=0,r=e.length;t<r;t++)this.expandByPoint(e[t]);return this},setFromCenterAndSize:function(){var e=new r;return function(t,r){return r=e.copy(r).multiplyScalar(.5),this.min.copy(t).sub(r),this.max.copy(t).add(r),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.min.copy(e.min),this.max.copy(e.max),this},makeEmpty:function(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y},getCenter:function(e){return e=e||new r,this.isEmpty()?e.set(0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(e){return e=e||new r,this.isEmpty()?e.set(0,0):e.subVectors(this.max,this.min)},expandByPoint:function(e){return this.min.min(e),this.max.max(e),this},expandByVector:function(e){return this.min.sub(e),this.max.add(e),this},expandByScalar:function(e){return this.min.addScalar(-e),this.max.addScalar(e),this},containsPoint:function(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y)},containsBox:function(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y},getParameter:function(e,t){return(t||new r).set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y)},clampPoint:function(e,t){return(t||new r).copy(e).clamp(this.min,this.max)},distanceToPoint:function(){var e=new r;return function(t){return e.copy(t).clamp(this.min,this.max).sub(t).length()}}(),intersect:function(e){return this.min.max(e.min),this.max.min(e.max),this},union:function(e){return this.min.min(e.min),this.max.max(e.max),this},translate:function(e){return this.min.add(e),this.max.add(e),this},equals:function(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}),(H.prototype=Object.create(a.prototype)).constructor=H;var wi=0;Object.assign(W.prototype,t.prototype,{isMaterial:!0,onBeforeCompile:function(){},setValues:function(e){if(void 0!==e)for(var t in e){var r=e[t];if(void 0===r)console.warn("THREE.Material: '"+t+"' parameter is undefined.");else if("shading"===t)console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===r;else{var n=this[t];void 0===n?console.warn("THREE."+this.type+": '"+t+"' is not a property of this material."):n&&n.isColor?n.set(r):n&&n.isVector3&&r&&r.isVector3?n.copy(r):this[t]="overdraw"===t?Number(r):r}}},toJSON:function(e){function t(e){var t,r=[];for(t in e){var n=e[t];delete n.metadata,r.push(n)}return r}var r=void 0===e||"string"==typeof e;r&&(e={textures:{},images:{}});var n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};return n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearCoat&&(n.clearCoat=this.clearCoat),void 0!==this.clearCoatRoughness&&(n.clearCoatRoughness=this.clearCoatRoughness),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,n.reflectivity=this.reflectivity),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.size&&(n.size=this.size),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),!0===this.flatShading&&(n.flatShading=this.flatShading),0!==this.side&&(n.side=this.side),0!==this.vertexColors&&(n.vertexColors=this.vertexColors),1>this.opacity&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,0!==this.rotation&&(n.rotation=this.rotation),1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),0<this.alphaTest&&(n.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),1<this.wireframeLinewidth&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.skinning&&(n.skinning=!0),!1===this.visible&&(n.visible=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),r&&(r=t(e.textures),e=t(e.images),0<r.length&&(n.textures=r),0<e.length&&(n.images=e)),n},clone:function(){return(new this.constructor).copy(this)},copy:function(e){this.name=e.name,this.fog=e.fog,this.lights=e.lights,this.blending=e.blending,this.side=e.side,this.flatShading=e.flatShading,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.premultipliedAlpha=e.premultipliedAlpha,this.overdraw=e.overdraw,this.visible=e.visible,this.userData=JSON.parse(JSON.stringify(e.userData)),this.clipShadows=e.clipShadows,this.clipIntersection=e.clipIntersection;r=null;if(null!==(e=e.clippingPlanes))for(var t=e.length,r=Array(t),n=0;n!==t;++n)r[n]=e[n].clone();return this.clippingPlanes=r,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),(X.prototype=Object.create(W.prototype)).constructor=X,X.prototype.isMeshDepthMaterial=!0,X.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.depthPacking=e.depthPacking,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this},(Y.prototype=Object.create(W.prototype)).constructor=Y,Y.prototype.isMeshDistanceMaterial=!0,Y.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.referencePosition.copy(e.referencePosition),this.nearDistance=e.nearDistance,this.farDistance=e.farDistance,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this},Object.assign(K.prototype,{isBox3:!0,set:function(e,t){return this.min.copy(e),this.max.copy(t),this},setFromArray:function(e){for(var t=1/0,r=1/0,n=1/0,i=-1/0,o=-1/0,s=-1/0,a=0,c=e.length;a<c;a+=3){var u=e[a],h=e[a+1],l=e[a+2];u<t&&(t=u),h<r&&(r=h),l<n&&(n=l),u>i&&(i=u),h>o&&(o=h),l>s&&(s=l)}return this.min.set(t,r,n),this.max.set(i,o,s),this},setFromBufferAttribute:function(e){for(var t=1/0,r=1/0,n=1/0,i=-1/0,o=-1/0,s=-1/0,a=0,c=e.count;a<c;a++){var u=e.getX(a),h=e.getY(a),l=e.getZ(a);u<t&&(t=u),h<r&&(r=h),l<n&&(n=l),u>i&&(i=u),h>o&&(o=h),l>s&&(s=l)}return this.min.set(t,r,n),this.max.set(i,o,s),this},setFromPoints:function(e){this.makeEmpty();for(var t=0,r=e.length;t<r;t++)this.expandByPoint(e[t]);return this},setFromCenterAndSize:function(){var e=new o;return function(t,r){return r=e.copy(r).multiplyScalar(.5),this.min.copy(t).sub(r),this.max.copy(t).add(r),this}}(),setFromObject:function(e){return this.makeEmpty(),this.expandByObject(e)},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.min.copy(e.min),this.max.copy(e.max),this},makeEmpty:function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(e){return e=e||new o,this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(e){return e=e||new o,this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)},expandByPoint:function(e){return this.min.min(e),this.max.max(e),this},expandByVector:function(e){return this.min.sub(e),this.max.add(e),this},expandByScalar:function(e){return this.min.addScalar(-e),this.max.addScalar(e),this},expandByObject:function(){function e(e){var o=e.geometry;if(void 0!==o)if(o.isGeometry)for(o=o.vertices,r=0,n=o.length;r<n;r++)i.copy(o[r]),i.applyMatrix4(e.matrixWorld),t.expandByPoint(i);else if(o.isBufferGeometry&&void 0!==(o=o.attributes.position))for(r=0,n=o.count;r<n;r++)i.fromBufferAttribute(o,r).applyMatrix4(e.matrixWorld),t.expandByPoint(i)}var t,r,n,i=new o;return function(r){return t=this,r.updateMatrixWorld(!0),r.traverse(e),this}}(),containsPoint:function(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y||e.z<this.min.z||e.z>this.max.z)},containsBox:function(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z},getParameter:function(e,t){return(t||new o).set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y||e.max.z<this.min.z||e.min.z>this.max.z)},intersectsSphere:function(){var e=new o;return function(t){return this.clampPoint(t.center,e),e.distanceToSquared(t.center)<=t.radius*t.radius}}(),intersectsPlane:function(e){if(0<e.normal.x)var t=e.normal.x*this.min.x,r=e.normal.x*this.max.x;else t=e.normal.x*this.max.x,r=e.normal.x*this.min.x;return 0<e.normal.y?(t+=e.normal.y*this.min.y,r+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,r+=e.normal.y*this.min.y),0<e.normal.z?(t+=e.normal.z*this.min.z,r+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,r+=e.normal.z*this.min.z),t<=e.constant&&r>=e.constant},clampPoint:function(e,t){return(t||new o).copy(e).clamp(this.min,this.max)},distanceToPoint:function(){var e=new o;return function(t){return e.copy(t).clamp(this.min,this.max).sub(t).length()}}(),getBoundingSphere:function(){var e=new o;return function(t){return t=t||new Z,this.getCenter(t.center),t.radius=.5*this.getSize(e).length(),t}}(),intersect:function(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this},union:function(e){return this.min.min(e.min),this.max.max(e.max),this},applyMatrix4:function(){var e=[new o,new o,new o,new o,new o,new o,new o,new o];return function(t){return this.isEmpty()?this:(e[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),e[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),e[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),e[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),e[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),e[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),e[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),e[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(e),this)}}(),translate:function(e){return this.min.add(e),this.max.add(e),this},equals:function(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}),Object.assign(Z.prototype,{set:function(e,t){return this.center.copy(e),this.radius=t,this},setFromPoints:function(){var e=new K;return function(t,r){var n=this.center;void 0!==r?n.copy(r):e.setFromPoints(t).getCenter(n);for(var i=r=0,o=t.length;i<o;i++)r=Math.max(r,n.distanceToSquared(t[i]));return this.radius=Math.sqrt(r),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.center.copy(e.center),this.radius=e.radius,this},empty:function(){return 0>=this.radius},containsPoint:function(e){return e.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(e){return e.distanceTo(this.center)-this.radius},intersectsSphere:function(e){var t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t},intersectsBox:function(e){return e.intersectsSphere(this)},intersectsPlane:function(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius},clampPoint:function(e,t){var r=this.center.distanceToSquared(e);return(t=t||new o).copy(e),r>this.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t},getBoundingBox:function(e){return(e=e||new K).set(this.center,this.center),e.expandByScalar(this.radius),e},applyMatrix4:function(e){return this.center.applyMatrix4(e),this.radius*=e.getMaxScaleOnAxis(),this},translate:function(e){return this.center.add(e),this},equals:function(e){return e.center.equals(this.center)&&e.radius===this.radius}}),Object.assign(J.prototype,{set:function(e,t){return this.normal.copy(e),this.constant=t,this},setComponents:function(e,t,r,n){return this.normal.set(e,t,r),this.constant=n,this},setFromNormalAndCoplanarPoint:function(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this},setFromCoplanarPoints:function(){var e=new o,t=new o;return function(r,n,i){return n=e.subVectors(i,n).cross(t.subVectors(r,n)).normalize(),this.setFromNormalAndCoplanarPoint(n,r),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.normal.copy(e.normal),this.constant=e.constant,this},normalize:function(){var e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this},negate:function(){return this.constant*=-1,this.normal.negate(),this},distanceToPoint:function(e){return this.normal.dot(e)+this.constant},distanceToSphere:function(e){return this.distanceToPoint(e.center)-e.radius},projectPoint:function(e,t){return(t||new o).copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)},intersectLine:function(){var e=new o;return function(t,r){r=r||new o;var n=t.delta(e),i=this.normal.dot(n);if(0===i){if(0===this.distanceToPoint(t.start))return r.copy(t.start)}else if(!(0>(i=-(t.start.dot(this.normal)+this.constant)/i)||1<i))return r.copy(n).multiplyScalar(i).add(t.start)}}(),intersectsLine:function(e){var t=this.distanceToPoint(e.start);return e=this.distanceToPoint(e.end),0>t&&0<e||0>e&&0<t},intersectsBox:function(e){return e.intersectsPlane(this)},intersectsSphere:function(e){return e.intersectsPlane(this)},coplanarPoint:function(e){return(e||new o).copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var e=new o,t=new s;return function(r,n){return n=n||t.getNormalMatrix(r),r=this.coplanarPoint(e).applyMatrix4(r),n=this.normal.applyMatrix3(n).normalize(),this.constant=-r.dot(n),this}}(),translate:function(e){return this.constant-=e.dot(this.normal),this},equals:function(e){return e.normal.equals(this.normal)&&e.constant===this.constant}}),Object.assign(Q.prototype,{set:function(e,t,r,n,i,o){var s=this.planes;return s[0].copy(e),s[1].copy(t),s[2].copy(r),s[3].copy(n),s[4].copy(i),s[5].copy(o),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){for(var t=this.planes,r=0;6>r;r++)t[r].copy(e.planes[r]);return this},setFromMatrix:function(e){var t=this.planes;e=(v=e.elements)[0];var r=v[1],n=v[2],i=v[3],o=v[4],s=v[5],a=v[6],c=v[7],u=v[8],h=v[9],l=v[10],p=v[11],f=v[12],d=v[13],m=v[14],v=v[15];return t[0].setComponents(i-e,c-o,p-u,v-f).normalize(),t[1].setComponents(i+e,c+o,p+u,v+f).normalize(),t[2].setComponents(i+r,c+s,p+h,v+d).normalize(),t[3].setComponents(i-r,c-s,p-h,v-d).normalize(),t[4].setComponents(i-n,c-a,p-l,v-m).normalize(),t[5].setComponents(i+n,c+a,p+l,v+m).normalize(),this},intersectsObject:function(){var e=new Z;return function(t){var r=t.geometry;return null===r.boundingSphere&&r.computeBoundingSphere(),e.copy(r.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(e)}}(),intersectsSprite:function(){var e=new Z;return function(t){return e.center.set(0,0,0),e.radius=.7071067811865476,e.applyMatrix4(t.matrixWorld),this.intersectsSphere(e)}}(),intersectsSphere:function(e){var t=this.planes,r=e.center;e=-e.radius;for(var n=0;6>n;n++)if(t[n].distanceToPoint(r)<e)return!1;return!0},intersectsBox:function(){var e=new o,t=new o;return function(r){for(var n=this.planes,i=0;6>i;i++){s=n[i];e.x=0<s.normal.x?r.min.x:r.max.x,t.x=0<s.normal.x?r.max.x:r.min.x,e.y=0<s.normal.y?r.min.y:r.max.y,t.y=0<s.normal.y?r.max.y:r.min.y,e.z=0<s.normal.z?r.min.z:r.max.z,t.z=0<s.normal.z?r.max.z:r.min.z;var o=s.distanceToPoint(e),s=s.distanceToPoint(t);if(0>o&&0>s)return!1}return!0}}(),containsPoint:function(e){for(var t=this.planes,r=0;6>r;r++)if(0>t[r].distanceToPoint(e))return!1;return!0}}),te.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" "),te.DefaultOrder="XYZ",Object.defineProperties(te.prototype,{x:{get:function(){return this._x},set:function(e){this._x=e,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(e){this._y=e,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(e){this._z=e,this.onChangeCallback()}},order:{get:function(){return this._order},set:function(e){this._order=e,this.onChangeCallback()}}}),Object.assign(te.prototype,{isEuler:!0,set:function(e,t,r,n){return this._x=e,this._y=t,this._z=r,this._order=n||this._order,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this.onChangeCallback(),this},setFromRotationMatrix:function(e,t,r){var n=ci.clamp;e=(l=e.elements)[0];var i=l[4],o=l[8],s=l[1],a=l[5],c=l[9],u=l[2],h=l[6],l=l[10];return"XYZ"===(t=t||this._order)?(this._y=Math.asin(n(o,-1,1)),.99999>Math.abs(o)?(this._x=Math.atan2(-c,l),this._z=Math.atan2(-i,e)):(this._x=Math.atan2(h,a),this._z=0)):"YXZ"===t?(this._x=Math.asin(-n(c,-1,1)),.99999>Math.abs(c)?(this._y=Math.atan2(o,l),this._z=Math.atan2(s,a)):(this._y=Math.atan2(-u,e),this._z=0)):"ZXY"===t?(this._x=Math.asin(n(h,-1,1)),.99999>Math.abs(h)?(this._y=Math.atan2(-u,l),this._z=Math.atan2(-i,a)):(this._y=0,this._z=Math.atan2(s,e))):"ZYX"===t?(this._y=Math.asin(-n(u,-1,1)),.99999>Math.abs(u)?(this._x=Math.atan2(h,l),this._z=Math.atan2(s,e)):(this._x=0,this._z=Math.atan2(-i,a))):"YZX"===t?(this._z=Math.asin(n(s,-1,1)),.99999>Math.abs(s)?(this._x=Math.atan2(-c,a),this._y=Math.atan2(-u,e)):(this._x=0,this._y=Math.atan2(o,l))):"XZY"===t?(this._z=Math.asin(-n(i,-1,1)),.99999>Math.abs(i)?(this._x=Math.atan2(h,a),this._y=Math.atan2(o,e)):(this._x=Math.atan2(-c,l),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+t),this._order=t,!1!==r&&this.onChangeCallback(),this},setFromQuaternion:function(){var e=new n;return function(t,r,n){return e.makeRotationFromQuaternion(t),this.setFromRotationMatrix(e,r,n)}}(),setFromVector3:function(e,t){return this.set(e.x,e.y,e.z,t||this._order)},reorder:function(){var e=new i;return function(t){return e.setFromEuler(this),this.setFromQuaternion(e,t)}}(),equals:function(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order},fromArray:function(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this.onChangeCallback(),this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e},toVector3:function(e){return e?e.set(this._x,this._y,this._z):new o(this._x,this._y,this._z)},onChange:function(e){return this.onChangeCallback=e,this},onChangeCallback:function(){}}),Object.assign(re.prototype,{set:function(e){this.mask=1<<e|0},enable:function(e){this.mask=this.mask|1<<e|0},toggle:function(e){this.mask^=1<<e|0},disable:function(e){this.mask&=~(1<<e|0)},test:function(e){return 0!=(this.mask&e.mask)}});var Si=0;ne.DefaultUp=new o(0,1,0),ne.DefaultMatrixAutoUpdate=!0,Object.assign(ne.prototype,t.prototype,{isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix:function(e){this.matrix.multiplyMatrices(e,this.matrix),this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(e){return this.quaternion.premultiply(e),this},setRotationFromAxisAngle:function(e,t){this.quaternion.setFromAxisAngle(e,t)},setRotationFromEuler:function(e){this.quaternion.setFromEuler(e,!0)},setRotationFromMatrix:function(e){this.quaternion.setFromRotationMatrix(e)},setRotationFromQuaternion:function(e){this.quaternion.copy(e)},rotateOnAxis:function(){var e=new i;return function(t,r){return e.setFromAxisAngle(t,r),this.quaternion.multiply(e),this}}(),rotateOnWorldAxis:function(){var e=new i;return function(t,r){return e.setFromAxisAngle(t,r),this.quaternion.premultiply(e),this}}(),rotateX:function(){var e=new o(1,0,0);return function(t){return this.rotateOnAxis(e,t)}}(),rotateY:function(){var e=new o(0,1,0);return function(t){return this.rotateOnAxis(e,t)}}(),rotateZ:function(){var e=new o(0,0,1);return function(t){return this.rotateOnAxis(e,t)}}(),translateOnAxis:function(){var e=new o;return function(t,r){return e.copy(t).applyQuaternion(this.quaternion),this.position.add(e.multiplyScalar(r)),this}}(),translateX:function(){var e=new o(1,0,0);return function(t){return this.translateOnAxis(e,t)}}(),translateY:function(){var e=new o(0,1,0);return function(t){return this.translateOnAxis(e,t)}}(),translateZ:function(){var e=new o(0,0,1);return function(t){return this.translateOnAxis(e,t)}}(),localToWorld:function(e){return e.applyMatrix4(this.matrixWorld)},worldToLocal:function(){var e=new n;return function(t){return t.applyMatrix4(e.getInverse(this.matrixWorld))}}(),lookAt:function(){var e=new n,t=new o;return function(r,n,i){r.isVector3?t.copy(r):t.set(r,n,i),this.isCamera?e.lookAt(this.position,t,this.up):e.lookAt(t,this.position,this.up),this.quaternion.setFromRotationMatrix(e)}}(),add:function(e){if(1<arguments.length){for(var t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return e===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(null!==e.parent&&e.parent.remove(e),e.parent=this,e.dispatchEvent({type:"added"}),this.children.push(e)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",e),this)},remove:function(e){if(1<arguments.length){for(var t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}return-1!==(t=this.children.indexOf(e))&&(e.parent=null,e.dispatchEvent({type:"removed"}),this.children.splice(t,1)),this},getObjectById:function(e){return this.getObjectByProperty("id",e)},getObjectByName:function(e){return this.getObjectByProperty("name",e)},getObjectByProperty:function(e,t){if(this[e]===t)return this;for(var r=0,n=this.children.length;r<n;r++){var i=this.children[r].getObjectByProperty(e,t);if(void 0!==i)return i}},getWorldPosition:function(e){return e=e||new o,this.updateMatrixWorld(!0),e.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(){var e=new o,t=new o;return function(r){return r=r||new i,this.updateMatrixWorld(!0),this.matrixWorld.decompose(e,r,t),r}}(),getWorldRotation:function(){var e=new i;return function(t){return t=t||new te,this.getWorldQuaternion(e),t.setFromQuaternion(e,this.rotation.order,!1)}}(),getWorldScale:function(){var e=new o,t=new i;return function(r){return r=r||new o,this.updateMatrixWorld(!0),this.matrixWorld.decompose(e,t,r),r}}(),getWorldDirection:function(){var e=new i;return function(t){return t=t||new o,this.getWorldQuaternion(e),t.set(0,0,1).applyQuaternion(e)}}(),raycast:function(){},traverse:function(e){e(this);for(var t=this.children,r=0,n=t.length;r<n;r++)t[r].traverse(e)},traverseVisible:function(e){if(!1!==this.visible){e(this);for(var t=this.children,r=0,n=t.length;r<n;r++)t[r].traverseVisible(e)}},traverseAncestors:function(e){var t=this.parent;null!==t&&(e(t),t.traverseAncestors(e))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,e=!0);for(var t=this.children,r=0,n=t.length;r<n;r++)t[r].updateMatrixWorld(e)},toJSON:function(e){function t(t,r){return void 0===t[r.uuid]&&(t[r.uuid]=r.toJSON(e)),r.uuid}function r(e){var t,r=[];for(t in e){var n=e[t];delete n.metadata,r.push(n)}return r}var n=void 0===e||"string"==typeof e,i={};n&&(e={geometries:{},materials:{},textures:{},images:{}},i.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});var o={};if(o.uuid=this.uuid,o.type=this.type,""!==this.name&&(o.name=this.name),!0===this.castShadow&&(o.castShadow=!0),!0===this.receiveShadow&&(o.receiveShadow=!0),!1===this.visible&&(o.visible=!1),"{}"!==JSON.stringify(this.userData)&&(o.userData=this.userData),o.matrix=this.matrix.toArray(),void 0!==this.geometry&&(o.geometry=t(e.geometries,this.geometry)),void 0!==this.material)if(Array.isArray(this.material)){for(var s=[],a=0,c=this.material.length;a<c;a++)s.push(t(e.materials,this.material[a]));o.material=s}else o.material=t(e.materials,this.material);if(0<this.children.length)for(o.children=[],a=0;a<this.children.length;a++)o.children.push(this.children[a].toJSON(e).object);return n&&(n=r(e.geometries),s=r(e.materials),a=r(e.textures),c=r(e.images),0<n.length&&(i.geometries=n),0<s.length&&(i.materials=s),0<a.length&&(i.textures=a),0<c.length&&(i.images=c)),i.object=o,i},clone:function(e){return(new this.constructor).copy(this,e)},copy:function(e,t){if(void 0===t&&(t=!0),this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(t=0;t<e.children.length;t++)this.add(e.children[t].clone());return this}}),ie.prototype=Object.assign(Object.create(ne.prototype),{constructor:ie,isCamera:!0,copy:function(e,t){return ne.prototype.copy.call(this,e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this},getWorldDirection:function(){var e=new i;return function(t){return t=t||new o,this.getWorldQuaternion(e),t.set(0,0,-1).applyQuaternion(e)}}(),updateMatrixWorld:function(e){ne.prototype.updateMatrixWorld.call(this,e),this.matrixWorldInverse.getInverse(this.matrixWorld)},clone:function(){return(new this.constructor).copy(this)}}),oe.prototype=Object.assign(Object.create(ie.prototype),{constructor:oe,isOrthographicCamera:!0,copy:function(e,t){return ie.prototype.copy.call(this,e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=null===e.view?null:Object.assign({},e.view),this},setViewOffset:function(e,t,r,n,i,o){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=r,this.view.offsetY=n,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),r=(n=(this.right+this.left)/2)-e,n=n+e,e=(o=(this.top+this.bottom)/2)+t,t=o-t;if(null!==this.view&&this.view.enabled)var n=this.zoom/(this.view.width/this.view.fullWidth),t=this.zoom/(this.view.height/this.view.fullHeight),i=(this.right-this.left)/this.view.width,o=(this.top-this.bottom)/this.view.height,r=r+this.view.offsetX/n*i,n=r+this.view.width/n*i,e=e-this.view.offsetY/t*o,t=e-this.view.height/t*o;this.projectionMatrix.makeOrthographic(r,n,e,t,this.near,this.far)},toJSON:function(e){return e=ne.prototype.toJSON.call(this,e),e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}),Object.assign(se.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(e){this.a=e.a,this.b=e.b,this.c=e.c,this.normal.copy(e.normal),this.color.copy(e.color),this.materialIndex=e.materialIndex;for(var t=0,r=e.vertexNormals.length;t<r;t++)this.vertexNormals[t]=e.vertexNormals[t].clone();for(t=0,r=e.vertexColors.length;t<r;t++)this.vertexColors[t]=e.vertexColors[t].clone();return this}});var Mi=0;Object.assign(ae.prototype,t.prototype,{isGeometry:!0,applyMatrix:function(e){for(var t=(new s).getNormalMatrix(e),r=0,n=this.vertices.length;r<n;r++)this.vertices[r].applyMatrix4(e);for(r=0,n=this.faces.length;r<n;r++){(e=this.faces[r]).normal.applyMatrix3(t).normalize();for(var i=0,o=e.vertexNormals.length;i<o;i++)e.vertexNormals[i].applyMatrix3(t).normalize()}return null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this.normalsNeedUpdate=this.verticesNeedUpdate=!0,this},rotateX:function(){var e=new n;return function(t){return e.makeRotationX(t),this.applyMatrix(e),this}}(),rotateY:function(){var e=new n;return function(t){return e.makeRotationY(t),this.applyMatrix(e),this}}(),rotateZ:function(){var e=new n;return function(t){return e.makeRotationZ(t),this.applyMatrix(e),this}}(),translate:function(){var e=new n;return function(t,r,n){return e.makeTranslation(t,r,n),this.applyMatrix(e),this}}(),scale:function(){var e=new n;return function(t,r,n){return e.makeScale(t,r,n),this.applyMatrix(e),this}}(),lookAt:function(){var e=new ne;return function(t){e.lookAt(t),e.updateMatrix(),this.applyMatrix(e.matrix)}}(),fromBufferGeometry:function(e){function t(e,t,r,i){i=new se(e,t,r,void 0!==c?[p[e].clone(),p[t].clone(),p[r].clone()]:[],void 0!==u?[n.colors[e].clone(),n.colors[t].clone(),n.colors[r].clone()]:[],i),n.faces.push(i),void 0!==h&&n.faceVertexUvs[0].push([f[e].clone(),f[t].clone(),f[r].clone()]),void 0!==l&&n.faceVertexUvs[1].push([d[e].clone(),d[t].clone(),d[r].clone()])}var n=this,i=null!==e.index?e.index.array:void 0,s=e.attributes,a=s.position.array,c=void 0!==s.normal?s.normal.array:void 0,u=void 0!==s.color?s.color.array:void 0,h=void 0!==s.uv?s.uv.array:void 0,l=void 0!==s.uv2?s.uv2.array:void 0;void 0!==l&&(this.faceVertexUvs[1]=[]);for(var p=[],f=[],d=[],m=s=0;s<a.length;s+=3,m+=2)n.vertices.push(new o(a[s],a[s+1],a[s+2])),void 0!==c&&p.push(new o(c[s],c[s+1],c[s+2])),void 0!==u&&n.colors.push(new z(u[s],u[s+1],u[s+2])),void 0!==h&&f.push(new r(h[m],h[m+1])),void 0!==l&&d.push(new r(l[m],l[m+1]));var v=e.groups;if(0<v.length)for(s=0;s<v.length;s++)for(var a=v[s],g=a.start,y=a.count,m=g,g=g+y;m<g;m+=3)void 0!==i?t(i[m],i[m+1],i[m+2],a.materialIndex):t(m,m+1,m+2,a.materialIndex);else if(void 0!==i)for(s=0;s<i.length;s+=3)t(i[s],i[s+1],i[s+2]);else for(s=0;s<a.length/3;s+=3)t(s,s+1,s+2);return this.computeFaceNormals(),null!==e.boundingBox&&(this.boundingBox=e.boundingBox.clone()),null!==e.boundingSphere&&(this.boundingSphere=e.boundingSphere.clone()),this},center:function(){this.computeBoundingBox();var e=this.boundingBox.getCenter().negate();return this.translate(e.x,e.y,e.z),e},normalize:function(){this.computeBoundingSphere();var e=this.boundingSphere.center,t=0===(t=this.boundingSphere.radius)?1:1/t,r=new n;return r.set(t,0,0,-t*e.x,0,t,0,-t*e.y,0,0,t,-t*e.z,0,0,0,1),this.applyMatrix(r),this},computeFaceNormals:function(){for(var e=new o,t=new o,r=0,n=this.faces.length;r<n;r++){var i=this.faces[r],s=this.vertices[i.a],a=this.vertices[i.b];e.subVectors(this.vertices[i.c],a),t.subVectors(s,a),e.cross(t),e.normalize(),i.normal.copy(e)}},computeVertexNormals:function(e){void 0===e&&(e=!0);var t,r=Array(this.vertices.length),n=0;for(t=this.vertices.length;n<t;n++)r[n]=new o;if(e){var i=new o,s=new o;for(e=0,n=this.faces.length;e<n;e++){t=this.faces[e];var a=this.vertices[t.a],c=this.vertices[t.b],u=this.vertices[t.c];i.subVectors(u,c),s.subVectors(a,c),i.cross(s),r[t.a].add(i),r[t.b].add(i),r[t.c].add(i)}}else for(this.computeFaceNormals(),e=0,n=this.faces.length;e<n;e++)t=this.faces[e],r[t.a].add(t.normal),r[t.b].add(t.normal),r[t.c].add(t.normal);for(n=0,t=this.vertices.length;n<t;n++)r[n].normalize();for(e=0,n=this.faces.length;e<n;e++)t=this.faces[e],3===(a=t.vertexNormals).length?(a[0].copy(r[t.a]),a[1].copy(r[t.b]),a[2].copy(r[t.c])):(a[0]=r[t.a].clone(),a[1]=r[t.b].clone(),a[2]=r[t.c].clone());0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var e;this.computeFaceNormals();var t=0;for(e=this.faces.length;t<e;t++){var r=this.faces[t],n=r.vertexNormals;3===n.length?(n[0].copy(r.normal),n[1].copy(r.normal),n[2].copy(r.normal)):(n[0]=r.normal.clone(),n[1]=r.normal.clone(),n[2]=r.normal.clone())}0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var e,t,r=0;for(t=this.faces.length;r<t;r++){var n=this.faces[r];n.__originalFaceNormal?n.__originalFaceNormal.copy(n.normal):n.__originalFaceNormal=n.normal.clone(),n.__originalVertexNormals||(n.__originalVertexNormals=[]);var i=0;for(e=n.vertexNormals.length;i<e;i++)n.__originalVertexNormals[i]?n.__originalVertexNormals[i].copy(n.vertexNormals[i]):n.__originalVertexNormals[i]=n.vertexNormals[i].clone()}var s=new ae;for(s.faces=this.faces,i=0,e=this.morphTargets.length;i<e;i++){if(!this.morphNormals[i]){this.morphNormals[i]={},this.morphNormals[i].faceNormals=[],this.morphNormals[i].vertexNormals=[],n=this.morphNormals[i].faceNormals;var a=this.morphNormals[i].vertexNormals;for(r=0,t=this.faces.length;r<t;r++){var c=new o,u={a:new o,b:new o,c:new o};n.push(c),a.push(u)}}for(a=this.morphNormals[i],s.vertices=this.morphTargets[i].vertices,s.computeFaceNormals(),s.computeVertexNormals(),r=0,t=this.faces.length;r<t;r++)n=this.faces[r],c=a.faceNormals[r],u=a.vertexNormals[r],c.copy(n.normal),u.a.copy(n.vertexNormals[0]),u.b.copy(n.vertexNormals[1]),u.c.copy(n.vertexNormals[2])}for(r=0,t=this.faces.length;r<t;r++)n=this.faces[r],n.normal=n.__originalFaceNormal,n.vertexNormals=n.__originalVertexNormals},computeLineDistances:function(){for(var e=0,t=this.vertices,r=0,n=t.length;r<n;r++)0<r&&(e+=t[r].distanceTo(t[r-1])),this.lineDistances[r]=e},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new K),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new Z),this.boundingSphere.setFromPoints(this.vertices)},merge:function(e,t,r){if(e&&e.isGeometry){var n,i=this.vertices.length,o=this.vertices,a=e.vertices,c=this.faces,u=e.faces,h=this.faceVertexUvs[0],l=e.faceVertexUvs[0],p=this.colors,f=e.colors;void 0===r&&(r=0),void 0!==t&&(n=(new s).getNormalMatrix(t)),e=0;for(var d=a.length;e<d;e++){var m=a[e].clone();void 0!==t&&m.applyMatrix4(t),o.push(m)}for(e=0,d=f.length;e<d;e++)p.push(f[e].clone());for(e=0,d=u.length;e<d;e++){var v=(a=u[e]).vertexNormals,f=a.vertexColors;for((p=new se(a.a+i,a.b+i,a.c+i)).normal.copy(a.normal),void 0!==n&&p.normal.applyMatrix3(n).normalize(),t=0,o=v.length;t<o;t++)m=v[t].clone(),void 0!==n&&m.applyMatrix3(n).normalize(),p.vertexNormals.push(m);for(p.color.copy(a.color),t=0,o=f.length;t<o;t++)m=f[t],p.vertexColors.push(m.clone());p.materialIndex=a.materialIndex+r,c.push(p)}for(e=0,d=l.length;e<d;e++)if(r=l[e],n=[],void 0!==r){for(t=0,o=r.length;t<o;t++)n.push(r[t].clone());h.push(n)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",e)},mergeMesh:function(e){e&&e.isMesh?(e.matrixAutoUpdate&&e.updateMatrix(),this.merge(e.geometry,e.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",e)},mergeVertices:function(){var e,t={},r=[],n=[],i=Math.pow(10,4),o=0;for(e=this.vertices.length;o<e;o++){var s=this.vertices[o];void 0===t[s=Math.round(s.x*i)+"_"+Math.round(s.y*i)+"_"+Math.round(s.z*i)]?(t[s]=o,r.push(this.vertices[o]),n[o]=r.length-1):n[o]=n[t[s]]}for(t=[],o=0,e=this.faces.length;o<e;o++)for(i=this.faces[o],i.a=n[i.a],i.b=n[i.b],i.c=n[i.c],i=[i.a,i.b,i.c],s=0;3>s;s++)if(i[s]===i[(s+1)%3]){t.push(o);break}for(o=t.length-1;0<=o;o--)for(i=t[o],this.faces.splice(i,1),n=0,e=this.faceVertexUvs.length;n<e;n++)this.faceVertexUvs[n].splice(i,1);return o=this.vertices.length-r.length,this.vertices=r,o},setFromPoints:function(e){this.vertices=[];for(var t=0,r=e.length;t<r;t++){var n=e[t];this.vertices.push(new o(n.x,n.y,n.z||0))}return this},sortFacesByMaterialIndex:function(){for(var e=this.faces,t=e.length,r=0;r<t;r++)e[r]._id=r;e.sort(function(e,t){return e.materialIndex-t.materialIndex});var n,i,o=this.faceVertexUvs[0],s=this.faceVertexUvs[1];for(o&&o.length===t&&(n=[]),s&&s.length===t&&(i=[]),r=0;r<t;r++){var a=e[r]._id;n&&n.push(o[a]),i&&i.push(s[a])}n&&(this.faceVertexUvs[0]=n),i&&(this.faceVertexUvs[1]=i)},toJSON:function(){function e(e,t,r){return r?e|1<<t:e&~(1<<t)}function t(e){var t=e.x.toString()+e.y.toString()+e.z.toString();return void 0!==u[t]?u[t]:(u[t]=c.length/3,c.push(e.x,e.y,e.z),u[t])}function r(e){var t=e.r.toString()+e.g.toString()+e.b.toString();return void 0!==l[t]?l[t]:(l[t]=h.length,h.push(e.getHex()),l[t])}function n(e){var t=e.x.toString()+e.y.toString();return void 0!==f[t]?f[t]:(f[t]=p.length/2,p.push(e.x,e.y),f[t])}var i={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),void 0!==this.parameters){var o,s=this.parameters;for(o in s)void 0!==s[o]&&(i[o]=s[o]);return i}for(s=[],o=0;o<this.vertices.length;o++){a=this.vertices[o];s.push(a.x,a.y,a.z)}var a=[],c=[],u={},h=[],l={},p=[],f={};for(o=0;o<this.faces.length;o++){var d=this.faces[o],m=void 0!==this.faceVertexUvs[0][o],v=0<d.normal.length(),g=0<d.vertexNormals.length,y=1!==d.color.r||1!==d.color.g||1!==d.color.b,b=0<d.vertexColors.length,_=e(_=e(_=e(_=e(_=e(_=e(_=e(_=e(_=0,0,0),1,!0),2,!1),3,m),4,v),5,g),6,y),7,b);a.push(_),a.push(d.a,d.b,d.c),a.push(d.materialIndex),m&&(m=this.faceVertexUvs[0][o],a.push(n(m[0]),n(m[1]),n(m[2]))),v&&a.push(t(d.normal)),g&&(v=d.vertexNormals,a.push(t(v[0]),t(v[1]),t(v[2]))),y&&a.push(r(d.color)),b&&(d=d.vertexColors,a.push(r(d[0]),r(d[1]),r(d[2])))}return i.data={},i.data.vertices=s,i.data.normals=c,0<h.length&&(i.data.colors=h),0<p.length&&(i.data.uvs=[p]),i.data.faces=a,i},clone:function(){return(new ae).copy(this)},copy:function(e){var t,r,n;this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingSphere=this.boundingBox=null,this.name=e.name;var i=e.vertices,o=0;for(t=i.length;o<t;o++)this.vertices.push(i[o].clone());for(o=0,t=(i=e.colors).length;o<t;o++)this.colors.push(i[o].clone());for(o=0,t=(i=e.faces).length;o<t;o++)this.faces.push(i[o].clone());for(o=0,t=e.faceVertexUvs.length;o<t;o++){var s=e.faceVertexUvs[o];for(void 0===this.faceVertexUvs[o]&&(this.faceVertexUvs[o]=[]),i=0,r=s.length;i<r;i++){var a=s[i],c=[],u=0;for(n=a.length;u<n;u++)c.push(a[u].clone());this.faceVertexUvs[o].push(c)}}for(o=0,t=(u=e.morphTargets).length;o<t;o++){if(n={},n.name=u[o].name,void 0!==u[o].vertices)for(n.vertices=[],i=0,r=u[o].vertices.length;i<r;i++)n.vertices.push(u[o].vertices[i].clone());if(void 0!==u[o].normals)for(n.normals=[],i=0,r=u[o].normals.length;i<r;i++)n.normals.push(u[o].normals[i].clone());this.morphTargets.push(n)}for(o=0,t=(u=e.morphNormals).length;o<t;o++){if(n={},void 0!==u[o].vertexNormals)for(n.vertexNormals=[],i=0,r=u[o].vertexNormals.length;i<r;i++)s=u[o].vertexNormals[i],a={},a.a=s.a.clone(),a.b=s.b.clone(),a.c=s.c.clone(),n.vertexNormals.push(a);if(void 0!==u[o].faceNormals)for(n.faceNormals=[],i=0,r=u[o].faceNormals.length;i<r;i++)n.faceNormals.push(u[o].faceNormals[i].clone());this.morphNormals.push(n)}for(o=0,t=(i=e.skinWeights).length;o<t;o++)this.skinWeights.push(i[o].clone());for(o=0,t=(i=e.skinIndices).length;o<t;o++)this.skinIndices.push(i[o].clone());for(o=0,t=(i=e.lineDistances).length;o<t;o++)this.lineDistances.push(i[o]);return null!==(o=e.boundingBox)&&(this.boundingBox=o.clone()),null!==(o=e.boundingSphere)&&(this.boundingSphere=o.clone()),this.elementsNeedUpdate=e.elementsNeedUpdate,this.verticesNeedUpdate=e.verticesNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.lineDistancesNeedUpdate=e.lineDistancesNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty(ce.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}}),Object.assign(ce.prototype,{isBufferAttribute:!0,setArray:function(e){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.count=void 0!==e?e.length/this.itemSize:0,this.array=e},setDynamic:function(e){return this.dynamic=e,this},copy:function(e){return this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.dynamic=e.dynamic,this},copyAt:function(e,t,r){e*=this.itemSize,r*=t.itemSize;for(var n=0,i=this.itemSize;n<i;n++)this.array[e+n]=t.array[r+n];return this},copyArray:function(e){return this.array.set(e),this},copyColorsArray:function(e){for(var t=this.array,r=0,n=0,i=e.length;n<i;n++){var o=e[n];void 0===o&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",n),o=new z),t[r++]=o.r,t[r++]=o.g,t[r++]=o.b}return this},copyIndicesArray:function(e){for(var t=this.array,r=0,n=0,i=e.length;n<i;n++){var o=e[n];t[r++]=o.a,t[r++]=o.b,t[r++]=o.c}return this},copyVector2sArray:function(e){for(var t=this.array,n=0,i=0,o=e.length;i<o;i++){var s=e[i];void 0===s&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",i),s=new r),t[n++]=s.x,t[n++]=s.y}return this},copyVector3sArray:function(e){for(var t=this.array,r=0,n=0,i=e.length;n<i;n++){var s=e[n];void 0===s&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",n),s=new o),t[r++]=s.x,t[r++]=s.y,t[r++]=s.z}return this},copyVector4sArray:function(e){for(var t=this.array,r=0,n=0,i=e.length;n<i;n++){var o=e[n];void 0===o&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",n),o=new c),t[r++]=o.x,t[r++]=o.y,t[r++]=o.z,t[r++]=o.w}return this},set:function(e,t){return void 0===t&&(t=0),this.array.set(e,t),this},getX:function(e){return this.array[e*this.itemSize]},setX:function(e,t){return this.array[e*this.itemSize]=t,this},getY:function(e){return this.array[e*this.itemSize+1]},setY:function(e,t){return this.array[e*this.itemSize+1]=t,this},getZ:function(e){return this.array[e*this.itemSize+2]},setZ:function(e,t){return this.array[e*this.itemSize+2]=t,this},getW:function(e){return this.array[e*this.itemSize+3]},setW:function(e,t){return this.array[e*this.itemSize+3]=t,this},setXY:function(e,t,r){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=r,this},setXYZ:function(e,t,r,n){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=r,this.array[e+2]=n,this},setXYZW:function(e,t,r,n,i){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=r,this.array[e+2]=n,this.array[e+3]=i,this},onUpload:function(e){return this.onUploadCallback=e,this},clone:function(){return new this.constructor(this.array,this.itemSize).copy(this)}}),(ue.prototype=Object.create(ce.prototype)).constructor=ue,(he.prototype=Object.create(ce.prototype)).constructor=he,(le.prototype=Object.create(ce.prototype)).constructor=le,(pe.prototype=Object.create(ce.prototype)).constructor=pe,(fe.prototype=Object.create(ce.prototype)).constructor=fe,(de.prototype=Object.create(ce.prototype)).constructor=de,(me.prototype=Object.create(ce.prototype)).constructor=me,(ve.prototype=Object.create(ce.prototype)).constructor=ve,(ge.prototype=Object.create(ce.prototype)).constructor=ge,Object.assign(ye.prototype,{computeGroups:function(e){var t=[],r=void 0;e=e.faces;for(var n=0;n<e.length;n++){var i=e[n];if(i.materialIndex!==r){r=i.materialIndex,void 0!==o&&(o.count=3*n-o.start,t.push(o));var o={start:3*n,materialIndex:r}}}void 0!==o&&(o.count=3*n-o.start,t.push(o)),this.groups=t},fromGeometry:function(e){var t=e.faces,n=e.vertices,i=e.faceVertexUvs,o=i[0]&&0<i[0].length,s=i[1]&&0<i[1].length,a=e.morphTargets,c=a.length;if(0<c){for(var u=[],h=0;h<c;h++)u[h]=[];this.morphTargets.position=u}var l=e.morphNormals,p=l.length;if(0<p){var f=[];for(h=0;h<p;h++)f[h]=[];this.morphTargets.normal=f}for(var d=e.skinIndices,m=e.skinWeights,v=d.length===n.length,g=m.length===n.length,h=0;h<t.length;h++){var y=t[h];this.vertices.push(n[y.a],n[y.b],n[y.c]);var b=y.vertexNormals;for(3===b.length?this.normals.push(b[0],b[1],b[2]):(b=y.normal,this.normals.push(b,b,b)),3===(b=y.vertexColors).length?this.colors.push(b[0],b[1],b[2]):(b=y.color,this.colors.push(b,b,b)),!0===o&&(void 0!==(b=i[0][h])?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",h),this.uvs.push(new r,new r,new r))),!0===s&&(void 0!==(b=i[1][h])?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",h),this.uvs2.push(new r,new r,new r))),b=0;b<c;b++){var _=a[b].vertices;u[b].push(_[y.a],_[y.b],_[y.c])}for(b=0;b<p;b++)_=l[b].vertexNormals[h],f[b].push(_.a,_.b,_.c);v&&this.skinIndices.push(d[y.a],d[y.b],d[y.c]),g&&this.skinWeights.push(m[y.a],m[y.b],m[y.c])}return this.computeGroups(e),this.verticesNeedUpdate=e.verticesNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,this}});var Ei=1;Object.assign(_e.prototype,t.prototype,{isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(e){Array.isArray(e)?this.index=new(65535<be(e)?me:fe)(e,1):this.index=e},addAttribute:function(e,t,r){if(t&&t.isBufferAttribute||t&&t.isInterleavedBufferAttribute){if("index"!==e)return this.attributes[e]=t,this;console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(t)}else console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.addAttribute(e,new ce(t,r))},getAttribute:function(e){return this.attributes[e]},removeAttribute:function(e){return delete this.attributes[e],this},addGroup:function(e,t,r){this.groups.push({start:e,count:t,materialIndex:void 0!==r?r:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(e,t){this.drawRange.start=e,this.drawRange.count=t},applyMatrix:function(e){var t=this.attributes.position;return void 0!==t&&(e.applyToBufferAttribute(t),t.needsUpdate=!0),void 0!==(t=this.attributes.normal)&&((new s).getNormalMatrix(e).applyToBufferAttribute(t),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(){var e=new n;return function(t){return e.makeRotationX(t),this.applyMatrix(e),this}}(),rotateY:function(){var e=new n;return function(t){return e.makeRotationY(t),this.applyMatrix(e),this}}(),rotateZ:function(){var e=new n;return function(t){return e.makeRotationZ(t),this.applyMatrix(e),this}}(),translate:function(){var e=new n;return function(t,r,n){return e.makeTranslation(t,r,n),this.applyMatrix(e),this}}(),scale:function(){var e=new n;return function(t,r,n){return e.makeScale(t,r,n),this.applyMatrix(e),this}}(),lookAt:function(){var e=new ne;return function(t){e.lookAt(t),e.updateMatrix(),this.applyMatrix(e.matrix)}}(),center:function(){this.computeBoundingBox();var e=this.boundingBox.getCenter().negate();return this.translate(e.x,e.y,e.z),e},setFromObject:function(e){var t=e.geometry;if(e.isPoints||e.isLine){e=new ve(3*t.vertices.length,3);var r=new ve(3*t.colors.length,3);this.addAttribute("position",e.copyVector3sArray(t.vertices)),this.addAttribute("color",r.copyColorsArray(t.colors)),t.lineDistances&&t.lineDistances.length===t.vertices.length&&(e=new ve(t.lineDistances.length,1),this.addAttribute("lineDistance",e.copyArray(t.lineDistances))),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone())}else e.isMesh&&t&&t.isGeometry&&this.fromGeometry(t);return this},setFromPoints:function(e){for(var t=[],r=0,n=e.length;r<n;r++){var i=e[r];t.push(i.x,i.y,i.z||0)}return this.addAttribute("position",new ve(t,3)),this},updateFromObject:function(e){var t=e.geometry;if(e.isMesh){var r=t.__directGeometry;if(!0===t.elementsNeedUpdate&&(r=void 0,t.elementsNeedUpdate=!1),void 0===r)return this.fromGeometry(t);r.verticesNeedUpdate=t.verticesNeedUpdate,r.normalsNeedUpdate=t.normalsNeedUpdate,r.colorsNeedUpdate=t.colorsNeedUpdate,r.uvsNeedUpdate=t.uvsNeedUpdate,r.groupsNeedUpdate=t.groupsNeedUpdate,t.verticesNeedUpdate=!1,t.normalsNeedUpdate=!1,t.colorsNeedUpdate=!1,t.uvsNeedUpdate=!1,t.groupsNeedUpdate=!1,t=r}return!0===t.verticesNeedUpdate&&(void 0!==(r=this.attributes.position)&&(r.copyVector3sArray(t.vertices),r.needsUpdate=!0),t.verticesNeedUpdate=!1),!0===t.normalsNeedUpdate&&(void 0!==(r=this.attributes.normal)&&(r.copyVector3sArray(t.normals),r.needsUpdate=!0),t.normalsNeedUpdate=!1),!0===t.colorsNeedUpdate&&(void 0!==(r=this.attributes.color)&&(r.copyColorsArray(t.colors),r.needsUpdate=!0),t.colorsNeedUpdate=!1),t.uvsNeedUpdate&&(void 0!==(r=this.attributes.uv)&&(r.copyVector2sArray(t.uvs),r.needsUpdate=!0),t.uvsNeedUpdate=!1),t.lineDistancesNeedUpdate&&(void 0!==(r=this.attributes.lineDistance)&&(r.copyArray(t.lineDistances),r.needsUpdate=!0),t.lineDistancesNeedUpdate=!1),t.groupsNeedUpdate&&(t.computeGroups(e.geometry),this.groups=t.groups,t.groupsNeedUpdate=!1),this},fromGeometry:function(e){return e.__directGeometry=(new ye).fromGeometry(e),this.fromDirectGeometry(e.__directGeometry)},fromDirectGeometry:function(e){r=new Float32Array(3*e.vertices.length);this.addAttribute("position",new ce(r,3).copyVector3sArray(e.vertices)),0<e.normals.length&&(r=new Float32Array(3*e.normals.length),this.addAttribute("normal",new ce(r,3).copyVector3sArray(e.normals))),0<e.colors.length&&(r=new Float32Array(3*e.colors.length),this.addAttribute("color",new ce(r,3).copyColorsArray(e.colors))),0<e.uvs.length&&(r=new Float32Array(2*e.uvs.length),this.addAttribute("uv",new ce(r,2).copyVector2sArray(e.uvs))),0<e.uvs2.length&&(r=new Float32Array(2*e.uvs2.length),this.addAttribute("uv2",new ce(r,2).copyVector2sArray(e.uvs2))),0<e.indices.length&&(r=new(65535<be(e.indices)?Uint32Array:Uint16Array)(3*e.indices.length),this.setIndex(new ce(r,1).copyIndicesArray(e.indices))),this.groups=e.groups;for(var t in e.morphTargets){for(var r=[],n=e.morphTargets[t],i=0,o=n.length;i<o;i++){var s=n[i],a=new ve(3*s.length,3);r.push(a.copyVector3sArray(s))}this.morphAttributes[t]=r}return 0<e.skinIndices.length&&(t=new ve(4*e.skinIndices.length,4),this.addAttribute("skinIndex",t.copyVector4sArray(e.skinIndices))),0<e.skinWeights.length&&(t=new ve(4*e.skinWeights.length,4),this.addAttribute("skinWeight",t.copyVector4sArray(e.skinWeights))),null!==e.boundingSphere&&(this.boundingSphere=e.boundingSphere.clone()),null!==e.boundingBox&&(this.boundingBox=e.boundingBox.clone()),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new K);var e=this.attributes.position;void 0!==e?this.boundingBox.setFromBufferAttribute(e):this.boundingBox.makeEmpty(),(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){var e=new K,t=new o;return function(){null===this.boundingSphere&&(this.boundingSphere=new Z);var r=this.attributes.position;if(r){var n=this.boundingSphere.center;e.setFromBufferAttribute(r),e.getCenter(n);for(var i=0,o=0,s=r.count;o<s;o++)t.x=r.getX(o),t.y=r.getY(o),t.z=r.getZ(o),i=Math.max(i,n.distanceToSquared(t));this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}}(),computeFaceNormals:function(){},computeVertexNormals:function(){var e=this.index,t=this.attributes,r=this.groups;if(t.position){var n=t.position.array;if(void 0===t.normal)this.addAttribute("normal",new ce(new Float32Array(n.length),3));else for(var i=t.normal.array,s=0,a=i.length;s<a;s++)i[s]=0;var i=t.normal.array,c=new o,u=new o,h=new o,l=new o,p=new o;if(e){e=e.array,0===r.length&&this.addGroup(0,e.length);for(var f=0,d=r.length;f<d;++f){a=(s=r[f]).start;var m=s.count;for(s=a,a+=m;s<a;s+=3){m=3*e[s+0];var v=3*e[s+1],g=3*e[s+2];c.fromArray(n,m),u.fromArray(n,v),h.fromArray(n,g),l.subVectors(h,u),p.subVectors(c,u),l.cross(p),i[m]+=l.x,i[m+1]+=l.y,i[m+2]+=l.z,i[v]+=l.x,i[v+1]+=l.y,i[v+2]+=l.z,i[g]+=l.x,i[g+1]+=l.y,i[g+2]+=l.z}}}else for(s=0,a=n.length;s<a;s+=9)c.fromArray(n,s),u.fromArray(n,s+3),h.fromArray(n,s+6),l.subVectors(h,u),p.subVectors(c,u),l.cross(p),i[s]=l.x,i[s+1]=l.y,i[s+2]=l.z,i[s+3]=l.x,i[s+4]=l.y,i[s+5]=l.z,i[s+6]=l.x,i[s+7]=l.y,i[s+8]=l.z;this.normalizeNormals(),t.normal.needsUpdate=!0}},merge:function(e,t){if(e&&e.isBufferGeometry){void 0===t&&(t=0);var r,n=this.attributes;for(r in n)if(void 0!==e.attributes[r])for(var i=n[r].array,o=e.attributes[r],s=o.array,a=0,o=o.itemSize*t;a<s.length;a++,o++)i[o]=s[a];return this}console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",e)},normalizeNormals:function(){var e=new o;return function(){for(var t=this.attributes.normal,r=0,n=t.count;r<n;r++)e.x=t.getX(r),e.y=t.getY(r),e.z=t.getZ(r),e.normalize(),t.setXYZ(r,e.x,e.y,e.z)}}(),toNonIndexed:function(){if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var e,t=new _e,r=this.index.array,n=this.attributes;for(e in n){for(var i,o=(s=n[e]).array,s=s.itemSize,a=new o.constructor(r.length*s),c=0,u=0,h=r.length;u<h;u++){i=r[u]*s;for(var l=0;l<s;l++)a[c++]=o[i++]}t.addAttribute(e,new ce(a,s))}return t},toJSON:function(){var e={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,""!==this.name&&(e.name=this.name),void 0!==this.parameters){var t=this.parameters;for(var r in t)void 0!==t[r]&&(e[r]=t[r]);return e}e.data={attributes:{}};var n=this.index;null!==n&&(t=Array.prototype.slice.call(n.array),e.data.index={type:n.array.constructor.name,array:t}),n=this.attributes;for(r in n){var i=n[r];t=Array.prototype.slice.call(i.array),e.data.attributes[r]={itemSize:i.itemSize,type:i.array.constructor.name,array:t,normalized:i.normalized}}return 0<(r=this.groups).length&&(e.data.groups=JSON.parse(JSON.stringify(r))),null!==(r=this.boundingSphere)&&(e.data.boundingSphere={center:r.center.toArray(),radius:r.radius}),e},clone:function(){return(new _e).copy(this)},copy:function(e){var t;this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingSphere=this.boundingBox=null,this.name=e.name;var r=e.index;null!==r&&this.setIndex(r.clone()),r=e.attributes;for(s in r)this.addAttribute(s,r[s].clone());var n=e.morphAttributes;for(s in n){var i=[],o=n[s];for(r=0,t=o.length;r<t;r++)i.push(o[r].clone());this.morphAttributes[s]=i}var s=e.groups;for(r=0,t=s.length;r<t;r++)n=s[r],this.addGroup(n.start,n.count,n.materialIndex);return null!==(s=e.boundingBox)&&(this.boundingBox=s.clone()),null!==(s=e.boundingSphere)&&(this.boundingSphere=s.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),(xe.prototype=Object.create(ae.prototype)).constructor=xe,(we.prototype=Object.create(_e.prototype)).constructor=we,(Se.prototype=Object.create(ae.prototype)).constructor=Se,(Me.prototype=Object.create(_e.prototype)).constructor=Me,(Ee.prototype=Object.create(W.prototype)).constructor=Ee,Ee.prototype.isMeshBasicMaterial=!0,Ee.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this},(Ce.prototype=Object.create(W.prototype)).constructor=Ce,Ce.prototype.isShaderMaterial=!0,Ce.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=bi.clone(e.uniforms),this.defines=e.defines,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.lights=e.lights,this.clipping=e.clipping,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this.extensions=e.extensions,this},Ce.prototype.toJSON=function(e){return e=W.prototype.toJSON.call(this,e),e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e},Object.assign(Te.prototype,{set:function(e,t){return this.origin.copy(e),this.direction.copy(t),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this},at:function(e,t){return(t||new o).copy(this.direction).multiplyScalar(e).add(this.origin)},lookAt:function(e){return this.direction.copy(e).sub(this.origin).normalize(),this},recast:function(){var e=new o;return function(t){return this.origin.copy(this.at(t,e)),this}}(),closestPointToPoint:function(e,t){return(t=t||new o).subVectors(e,this.origin),0>(e=t.dot(this.direction))?t.copy(this.origin):t.copy(this.direction).multiplyScalar(e).add(this.origin)},distanceToPoint:function(e){return Math.sqrt(this.distanceSqToPoint(e))},distanceSqToPoint:function(){var e=new o;return function(t){var r=e.subVectors(t,this.origin).dot(this.direction);return 0>r?this.origin.distanceToSquared(t):(e.copy(this.direction).multiplyScalar(r).add(this.origin),e.distanceToSquared(t))}}(),distanceSqToSegment:function(){var e=new o,t=new o,r=new o;return function(n,i,o,s){e.copy(n).add(i).multiplyScalar(.5),t.copy(i).sub(n).normalize(),r.copy(this.origin).sub(e);var a=.5*n.distanceTo(i),c=-this.direction.dot(t),u=r.dot(this.direction),h=-r.dot(t),l=r.lengthSq(),p=Math.abs(1-c*c);if(0<p){i=c*u-h;var f=a*p;0<=(n=c*h-u)?i>=-f?i<=f?(a=1/p,n*=a,i*=a,c=n*(n+c*i+2*u)+i*(c*n+i+2*h)+l):(i=a,n=Math.max(0,-(c*i+u)),c=-n*n+i*(i+2*h)+l):(i=-a,n=Math.max(0,-(c*i+u)),c=-n*n+i*(i+2*h)+l):i<=-f?(n=Math.max(0,-(-c*a+u)),i=0<n?-a:Math.min(Math.max(-a,-h),a),c=-n*n+i*(i+2*h)+l):i<=f?(n=0,i=Math.min(Math.max(-a,-h),a),c=i*(i+2*h)+l):(n=Math.max(0,-(c*a+u)),i=0<n?a:Math.min(Math.max(-a,-h),a),c=-n*n+i*(i+2*h)+l)}else i=0<c?-a:a,n=Math.max(0,-(c*i+u)),c=-n*n+i*(i+2*h)+l;return o&&o.copy(this.direction).multiplyScalar(n).add(this.origin),s&&s.copy(t).multiplyScalar(i).add(e),c}}(),intersectSphere:function(){var e=new o;return function(t,r){e.subVectors(t.center,this.origin);var n=e.dot(this.direction),i=e.dot(e)-n*n;return t=t.radius*t.radius,i>t?null:(t=Math.sqrt(t-i),i=n-t,n+=t,0>i&&0>n?null:0>i?this.at(n,r):this.at(i,r))}}(),intersectsSphere:function(e){return this.distanceToPoint(e.center)<=e.radius},distanceToPlane:function(e){var t=e.normal.dot(this.direction);return 0===t?0===e.distanceToPoint(this.origin)?0:null:0<=(e=-(this.origin.dot(e.normal)+e.constant)/t)?e:null},intersectPlane:function(e,t){return null===(e=this.distanceToPlane(e))?null:this.at(e,t)},intersectsPlane:function(e){var t=e.distanceToPoint(this.origin);return 0===t||0>e.normal.dot(this.direction)*t},intersectBox:function(e,t){var r=1/this.direction.x,n=1/this.direction.y,i=1/this.direction.z,o=this.origin;if(0<=r){var s=(e.min.x-o.x)*r;r*=e.max.x-o.x}else s=(e.max.x-o.x)*r,r*=e.min.x-o.x;if(0<=n){var a=(e.min.y-o.y)*n;n*=e.max.y-o.y}else a=(e.max.y-o.y)*n,n*=e.min.y-o.y;return s>n||a>r?null:((a>s||s!=s)&&(s=a),(n<r||r!=r)&&(r=n),0<=i?(a=(e.min.z-o.z)*i,e=(e.max.z-o.z)*i):(a=(e.max.z-o.z)*i,e=(e.min.z-o.z)*i),s>e||a>r?null:((a>s||s!=s)&&(s=a),(e<r||r!=r)&&(r=e),0>r?null:this.at(0<=s?s:r,t)))},intersectsBox:function(){var e=new o;return function(t){return null!==this.intersectBox(t,e)}}(),intersectTriangle:function(){var e=new o,t=new o,r=new o,n=new o;return function(i,o,s,a,c){if(t.subVectors(o,i),r.subVectors(s,i),n.crossVectors(t,r),0<(o=this.direction.dot(n))){if(a)return null;a=1}else{if(!(0>o))return null;a=-1,o=-o}return e.subVectors(this.origin,i),0>(i=a*this.direction.dot(r.crossVectors(e,r)))?null:0>(s=a*this.direction.dot(t.cross(e)))||i+s>o?null:0>(i=-a*e.dot(n))?null:this.at(i/o,c)}}(),applyMatrix4:function(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this},equals:function(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}}),Object.assign(Oe.prototype,{set:function(e,t){return this.start.copy(e),this.end.copy(t),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.start.copy(e.start),this.end.copy(e.end),this},getCenter:function(e){return(e||new o).addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(e){return(e||new o).subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(e,t){return t=t||new o,this.delta(t).multiplyScalar(e).add(this.start)},closestPointToPointParameter:function(){var e=new o,t=new o;return function(r,n){return e.subVectors(r,this.start),t.subVectors(this.end,this.start),r=t.dot(t),r=t.dot(e)/r,n&&(r=ci.clamp(r,0,1)),r}}(),closestPointToPoint:function(e,t,r){return e=this.closestPointToPointParameter(e,t),r=r||new o,this.delta(r).multiplyScalar(e).add(this.start)},applyMatrix4:function(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this},equals:function(e){return e.start.equals(this.start)&&e.end.equals(this.end)}}),Object.assign(Pe,{normal:function(){var e=new o;return function(t,r,n,i){return(i=i||new o).subVectors(n,r),e.subVectors(t,r),i.cross(e),0<(t=i.lengthSq())?i.multiplyScalar(1/Math.sqrt(t)):i.set(0,0,0)}}(),barycoordFromPoint:function(){var e=new o,t=new o,r=new o;return function(n,i,s,a,c){e.subVectors(a,i),t.subVectors(s,i),r.subVectors(n,i),n=e.dot(e),i=e.dot(t),s=e.dot(r);var u=t.dot(t);a=t.dot(r);var h=n*u-i*i;return c=c||new o,0===h?c.set(-2,-1,-1):(h=1/h,u=(u*s-i*a)*h,n=(n*a-i*s)*h,c.set(1-u-n,n,u))}}(),containsPoint:function(){var e=new o;return function(t,r,n,i){return 0<=(t=Pe.barycoordFromPoint(t,r,n,i,e)).x&&0<=t.y&&1>=t.x+t.y}}()}),Object.assign(Pe.prototype,{set:function(e,t,r){return this.a.copy(e),this.b.copy(t),this.c.copy(r),this},setFromPointsAndIndices:function(e,t,r,n){return this.a.copy(e[t]),this.b.copy(e[r]),this.c.copy(e[n]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this},area:function(){var e=new o,t=new o;return function(){return e.subVectors(this.c,this.b),t.subVectors(this.a,this.b),.5*e.cross(t).length()}}(),midpoint:function(e){return(e||new o).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(e){return Pe.normal(this.a,this.b,this.c,e)},plane:function(e){return(e||new J).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(e,t){return Pe.barycoordFromPoint(e,this.a,this.b,this.c,t)},containsPoint:function(e){return Pe.containsPoint(e,this.a,this.b,this.c)},closestPointToPoint:function(){var e=new J,t=[new Oe,new Oe,new Oe],r=new o,n=new o;return function(i,s){s=s||new o;var a=1/0;if(e.setFromCoplanarPoints(this.a,this.b,this.c),e.projectPoint(i,r),!0===this.containsPoint(r))s.copy(r);else for(t[0].set(this.a,this.b),t[1].set(this.b,this.c),t[2].set(this.c,this.a),i=0;i<t.length;i++){t[i].closestPointToPoint(r,!0,n);var c=r.distanceToSquared(n);c<a&&(a=c,s.copy(n))}return s}}(),equals:function(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}),Ae.prototype=Object.assign(Object.create(ne.prototype),{constructor:Ae,isMesh:!0,setDrawMode:function(e){this.drawMode=e},copy:function(e){return ne.prototype.copy.call(this,e),this.drawMode=e.drawMode,void 0!==e.morphTargetInfluences&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),void 0!==e.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this},updateMorphTargets:function(){var e=this.geometry;if(e.isBufferGeometry){e=e.morphAttributes;var t=Object.keys(e);if(0<t.length){var r=e[t[0]];if(void 0!==r)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},e=0,t=r.length;e<t;e++){var n=r[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}else if(void 0!==(r=e.morphTargets)&&0<r.length)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},e=0,t=r.length;e<t;e++)n=r[e].name||String(e),this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e},raycast:function(){function e(e,t,r,n,i,o,s){return Pe.barycoordFromPoint(e,t,r,n,y),i.multiplyScalar(y.x),o.multiplyScalar(y.y),s.multiplyScalar(y.z),i.add(o).add(s),i.clone()}function t(e,t,r,n,i,o,s,a){return null===(1===t.side?n.intersectTriangle(s,o,i,!0,a):n.intersectTriangle(i,o,s,2!==t.side,a))?null:(_.copy(a),_.applyMatrix4(e.matrixWorld),(t=r.ray.origin.distanceTo(_))<r.near||t>r.far?null:{distance:t,point:_.clone(),object:e})}function i(r,n,i,o,s,a,c,p){return u.fromBufferAttribute(o,a),h.fromBufferAttribute(o,c),l.fromBufferAttribute(o,p),(r=t(r,r.material,n,i,u,h,l,b))&&(s&&(m.fromBufferAttribute(s,a),v.fromBufferAttribute(s,c),g.fromBufferAttribute(s,p),r.uv=e(b,u,h,l,m,v,g)),r.face=new se(a,c,p,Pe.normal(u,h,l)),r.faceIndex=a),r}var s=new n,a=new Te,c=new Z,u=new o,h=new o,l=new o,p=new o,f=new o,d=new o,m=new r,v=new r,g=new r,y=new o,b=new o,_=new o;return function(r,n){var o=this.geometry,y=this.material,_=this.matrixWorld;if(void 0!==y&&(null===o.boundingSphere&&o.computeBoundingSphere(),c.copy(o.boundingSphere),c.applyMatrix4(_),!1!==r.ray.intersectsSphere(c)&&(s.getInverse(_),a.copy(r.ray).applyMatrix4(s),null===o.boundingBox||!1!==a.intersectsBox(o.boundingBox)))){var x;if(o.isBufferGeometry){var w,y=o.index,S=o.attributes.position,_=o.attributes.uv;if(null!==y){var M=0;for(w=y.count;M<w;M+=3){o=y.getX(M);var E=y.getX(M+1),C=y.getX(M+2);(x=i(this,r,a,S,_,o,E,C))&&(x.faceIndex=Math.floor(M/3),n.push(x))}}else if(void 0!==S)for(M=0,w=S.count;M<w;M+=3)o=M,E=M+1,C=M+2,(x=i(this,r,a,S,_,o,E,C))&&(x.index=o,n.push(x))}else if(o.isGeometry){_=Array.isArray(y);M=o.vertices,w=o.faces,0<(E=o.faceVertexUvs[0]).length&&(S=E);for(var T=0,O=w.length;T<O;T++){var P=w[T];if(void 0!==(x=_?y[P.materialIndex]:y)){E=M[P.a],C=M[P.b];var A=M[P.c];if(!0===x.morphTargets){var R=o.morphTargets,j=this.morphTargetInfluences;u.set(0,0,0),h.set(0,0,0),l.set(0,0,0);for(var L=0,N=R.length;L<N;L++){var I=j[L];if(0!==I){var D=R[L].vertices;u.addScaledVector(p.subVectors(D[P.a],E),I),h.addScaledVector(f.subVectors(D[P.b],C),I),l.addScaledVector(d.subVectors(D[P.c],A),I)}}u.add(E),h.add(C),l.add(A),E=u,C=h,A=l}(x=t(this,x,r,a,E,C,A,b))&&(S&&S[T]&&(R=S[T],m.copy(R[0]),v.copy(R[1]),g.copy(R[2]),x.uv=e(b,E,C,A,m,v,g)),x.face=P,x.faceIndex=T,n.push(x))}}}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}});var Ci=0;We.prototype=Object.assign(Object.create(ie.prototype),{constructor:We,isPerspectiveCamera:!0,copy:function(e,t){return ie.prototype.copy.call(this,e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this},setFocalLength:function(e){e=.5*this.getFilmHeight()/e,this.fov=2*ci.RAD2DEG*Math.atan(e),this.updateProjectionMatrix()},getFocalLength:function(){var e=Math.tan(.5*ci.DEG2RAD*this.fov);return.5*this.getFilmHeight()/e},getEffectiveFOV:function(){return 2*ci.RAD2DEG*Math.atan(Math.tan(.5*ci.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(e,t,r,n,i,o){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=r,this.view.offsetY=n,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var e=this.near,t=2*(s=e*Math.tan(.5*ci.DEG2RAD*this.fov)/this.zoom),r=-.5*(a=this.aspect*t),n=this.view;if(null!==this.view&&this.view.enabled)var i=n.fullWidth,o=n.fullHeight,r=r+n.offsetX*a/i,s=s-n.offsetY*t/o,a=n.width/i*a,t=n.height/o*t;0!==(n=this.filmOffset)&&(r+=e*n/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+a,s,s-t,e,this.far)},toJSON:function(e){return e=ne.prototype.toJSON.call(this,e),e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}),Xe.prototype=Object.assign(Object.create(We.prototype),{constructor:Xe,isArrayCamera:!0}),Qe.prototype.isFogExp2=!0,Qe.prototype.clone=function(){return new Qe(this.color.getHex(),this.density)},Qe.prototype.toJSON=function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}},et.prototype.isFog=!0,et.prototype.clone=function(){return new et(this.color.getHex(),this.near,this.far)},et.prototype.toJSON=function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}},tt.prototype=Object.assign(Object.create(ne.prototype),{constructor:tt,copy:function(e,t){return ne.prototype.copy.call(this,e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.fog&&(this.fog=e.fog.clone()),null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.autoUpdate=e.autoUpdate,this.matrixAutoUpdate=e.matrixAutoUpdate,this},toJSON:function(e){var t=ne.prototype.toJSON.call(this,e);return null!==this.background&&(t.object.background=this.background.toJSON(e)),null!==this.fog&&(t.object.fog=this.fog.toJSON()),t}}),rt.prototype=Object.assign(Object.create(ne.prototype),{constructor:rt,isLensFlare:!0,copy:function(e){ne.prototype.copy.call(this,e),this.positionScreen.copy(e.positionScreen),this.customUpdateCallback=e.customUpdateCallback;for(var t=0,r=e.lensFlares.length;t<r;t++)this.lensFlares.push(e.lensFlares[t]);return this},add:function(e,t,r,n,i,o){void 0===t&&(t=-1),void 0===r&&(r=0),void 0===o&&(o=1),void 0===i&&(i=new z(16777215)),void 0===n&&(n=1),r=Math.min(r,Math.max(0,r)),this.lensFlares.push({texture:e,size:t,distance:r,x:0,y:0,z:0,scale:1,rotation:0,opacity:o,color:i,blending:n})},updateLensFlares:function(){var e,t=this.lensFlares.length,r=2*-this.positionScreen.x,n=2*-this.positionScreen.y;for(e=0;e<t;e++){var i=this.lensFlares[e];i.x=this.positionScreen.x+r*i.distance,i.y=this.positionScreen.y+n*i.distance,i.wantedRotation=i.x*Math.PI*.25,i.rotation+=.25*(i.wantedRotation-i.rotation)}}}),(nt.prototype=Object.create(W.prototype)).constructor=nt,nt.prototype.isSpriteMaterial=!0,nt.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.rotation=e.rotation,this},it.prototype=Object.assign(Object.create(ne.prototype),{constructor:it,isSprite:!0,raycast:function(){var e=new o,t=new o,r=new o;return function(n,i){t.setFromMatrixPosition(this.matrixWorld),n.ray.closestPointToPoint(t,e),r.setFromMatrixScale(this.matrixWorld);var o=r.x*r.y/4;t.distanceToSquared(e)>o||(o=n.ray.origin.distanceTo(e))<n.near||o>n.far||i.push({distance:o,point:e.clone(),face:null,object:this})}}(),clone:function(){return new this.constructor(this.material).copy(this)}}),ot.prototype=Object.assign(Object.create(ne.prototype),{constructor:ot,copy:function(e){ne.prototype.copy.call(this,e,!1);for(var t=0,r=(e=e.levels).length;t<r;t++){var n=e[t];this.addLevel(n.object.clone(),n.distance)}return this},addLevel:function(e,t){void 0===t&&(t=0),t=Math.abs(t);for(var r=this.levels,n=0;n<r.length&&!(t<r[n].distance);n++);r.splice(n,0,{distance:t,object:e}),this.add(e)},getObjectForDistance:function(e){for(var t=this.levels,r=1,n=t.length;r<n&&!(e<t[r].distance);r++);return t[r-1].object},raycast:function(){var e=new o;return function(t,r){e.setFromMatrixPosition(this.matrixWorld);var n=t.ray.origin.distanceTo(e);this.getObjectForDistance(n).raycast(t,r)}}(),update:function(){var e=new o,t=new o;return function(r){var n=this.levels;if(1<n.length){e.setFromMatrixPosition(r.matrixWorld),t.setFromMatrixPosition(this.matrixWorld),r=e.distanceTo(t),n[0].object.visible=!0;for(var i=1,o=n.length;i<o&&r>=n[i].distance;i++)n[i-1].object.visible=!1,n[i].object.visible=!0;for(;i<o;i++)n[i].object.visible=!1}}}(),toJSON:function(e){(e=ne.prototype.toJSON.call(this,e)).object.levels=[];for(var t=this.levels,r=0,n=t.length;r<n;r++){var i=t[r];e.object.levels.push({object:i.object.uuid,distance:i.distance})}return e}}),Object.assign(st.prototype,{calculateInverses:function(){this.boneInverses=[];for(var e=0,t=this.bones.length;e<t;e++){var r=new n;this.bones[e]&&r.getInverse(this.bones[e].matrixWorld),this.boneInverses.push(r)}},pose:function(){var e,t,r=0;for(t=this.bones.length;r<t;r++)(e=this.bones[r])&&e.matrixWorld.getInverse(this.boneInverses[r]);for(r=0,t=this.bones.length;r<t;r++)(e=this.bones[r])&&(e.parent&&e.parent.isBone?(e.matrix.getInverse(e.parent.matrixWorld),e.matrix.multiply(e.matrixWorld)):e.matrix.copy(e.matrixWorld),e.matrix.decompose(e.position,e.quaternion,e.scale))},update:function(){var e=new n,t=new n;return function(){for(var r=this.bones,n=this.boneInverses,i=this.boneMatrices,o=this.boneTexture,s=0,a=r.length;s<a;s++)e.multiplyMatrices(r[s]?r[s].matrixWorld:t,n[s]),e.toArray(i,16*s);void 0!==o&&(o.needsUpdate=!0)}}(),clone:function(){return new st(this.bones,this.boneInverses)}}),at.prototype=Object.assign(Object.create(ne.prototype),{constructor:at,isBone:!0}),ct.prototype=Object.assign(Object.create(Ae.prototype),{constructor:ct,isSkinnedMesh:!0,initBones:function(){var e,t=[];if(this.geometry&&void 0!==this.geometry.bones){var r=0;for(e=this.geometry.bones.length;r<e;r++){var n=this.geometry.bones[r],i=new at;t.push(i),i.name=n.name,i.position.fromArray(n.pos),i.quaternion.fromArray(n.rotq),void 0!==n.scl&&i.scale.fromArray(n.scl)}for(r=0,e=this.geometry.bones.length;r<e;r++)-1!==(n=this.geometry.bones[r]).parent&&null!==n.parent&&void 0!==t[n.parent]?t[n.parent].add(t[r]):this.add(t[r])}return this.updateMatrixWorld(!0),t},bind:function(e,t){this.skeleton=e,void 0===t&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),t=this.matrixWorld),this.bindMatrix.copy(t),this.bindMatrixInverse.getInverse(t)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){var e;if(this.geometry&&this.geometry.isGeometry)for(e=0;e<this.geometry.skinWeights.length;e++){var t=1/(r=this.geometry.skinWeights[e]).manhattanLength();1/0!==t?r.multiplyScalar(t):r.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry){var r=new c,n=this.geometry.attributes.skinWeight;for(e=0;e<n.count;e++)r.x=n.getX(e),r.y=n.getY(e),r.z=n.getZ(e),r.w=n.getW(e),t=1/r.manhattanLength(),1/0!==t?r.multiplyScalar(t):r.set(1,0,0,0),n.setXYZW(e,r.x,r.y,r.z,r.w)}},updateMatrixWorld:function(e){Ae.prototype.updateMatrixWorld.call(this,e),"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),(ut.prototype=Object.create(W.prototype)).constructor=ut,ut.prototype.isLineBasicMaterial=!0,ut.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this},ht.prototype=Object.assign(Object.create(ne.prototype),{constructor:ht,isLine:!0,raycast:function(){var e=new n,t=new Te,r=new Z;return function(n,i){var s=(s=n.linePrecision)*s,a=this.geometry,c=this.matrixWorld;if(null===a.boundingSphere&&a.computeBoundingSphere(),r.copy(a.boundingSphere),r.applyMatrix4(c),!1!==n.ray.intersectsSphere(r)){e.getInverse(c),t.copy(n.ray).applyMatrix4(e);var u=new o,h=new o,c=new o,l=new o,p=this&&this.isLineSegments?2:1;if(a.isBufferGeometry){var f=a.index,d=a.attributes.position.array;if(null!==f)for(var m=f.array,a=0,v=m.length-1;a<v;a+=p)f=m[a+1],u.fromArray(d,3*m[a]),h.fromArray(d,3*f),(f=t.distanceSqToSegment(u,h,l,c))>s||(l.applyMatrix4(this.matrixWorld),(f=n.ray.origin.distanceTo(l))<n.near||f>n.far||i.push({distance:f,point:c.clone().applyMatrix4(this.matrixWorld),index:a,face:null,faceIndex:null,object:this}));else for(a=0,v=d.length/3-1;a<v;a+=p)u.fromArray(d,3*a),h.fromArray(d,3*a+3),(f=t.distanceSqToSegment(u,h,l,c))>s||(l.applyMatrix4(this.matrixWorld),(f=n.ray.origin.distanceTo(l))<n.near||f>n.far||i.push({distance:f,point:c.clone().applyMatrix4(this.matrixWorld),index:a,face:null,faceIndex:null,object:this}))}else if(a.isGeometry)for(u=a.vertices,h=u.length,a=0;a<h-1;a+=p)(f=t.distanceSqToSegment(u[a],u[a+1],l,c))>s||(l.applyMatrix4(this.matrixWorld),(f=n.ray.origin.distanceTo(l))<n.near||f>n.far||i.push({distance:f,point:c.clone().applyMatrix4(this.matrixWorld),index:a,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),lt.prototype=Object.assign(Object.create(ht.prototype),{constructor:lt,isLineSegments:!0}),pt.prototype=Object.assign(Object.create(ht.prototype),{constructor:pt,isLineLoop:!0}),(ft.prototype=Object.create(W.prototype)).constructor=ft,ft.prototype.isPointsMaterial=!0,ft.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this},dt.prototype=Object.assign(Object.create(ne.prototype),{constructor:dt,isPoints:!0,raycast:function(){var e=new n,t=new Te,r=new Z;return function(n,i){function s(e,r){var o=t.distanceSqToPoint(e);if(o<l){(e=t.closestPointToPoint(e)).applyMatrix4(u);var s=n.ray.origin.distanceTo(e);s<n.near||s>n.far||i.push({distance:s,distanceToRay:Math.sqrt(o),point:e.clone(),index:r,face:null,object:a})}}var a=this,c=this.geometry,u=this.matrixWorld,h=n.params.Points.threshold;if(null===c.boundingSphere&&c.computeBoundingSphere(),r.copy(c.boundingSphere),r.applyMatrix4(u),r.radius+=h,!1!==n.ray.intersectsSphere(r)){e.getInverse(u),t.copy(n.ray).applyMatrix4(e);var l=(h=h/((this.scale.x+this.scale.y+this.scale.z)/3))*h,h=new o;if(c.isBufferGeometry){var p=c.index,c=c.attributes.position.array;if(null!==p)for(var f=p.array,p=0,d=f.length;p<d;p++){var m=f[p];h.fromArray(c,3*m),s(h,m)}else for(p=0,f=c.length/3;p<f;p++)h.fromArray(c,3*p),s(h,p)}else for(h=c.vertices,p=0,f=h.length;p<f;p++)s(h[p],p)}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),mt.prototype=Object.assign(Object.create(ne.prototype),{constructor:mt}),(vt.prototype=Object.create(a.prototype)).constructor=vt,(gt.prototype=Object.create(a.prototype)).constructor=gt,gt.prototype.isCompressedTexture=!0,(yt.prototype=Object.create(a.prototype)).constructor=yt,yt.prototype.isDepthTexture=!0,(bt.prototype=Object.create(_e.prototype)).constructor=bt,(_t.prototype=Object.create(ae.prototype)).constructor=_t,(xt.prototype=Object.create(_e.prototype)).constructor=xt,(wt.prototype=Object.create(ae.prototype)).constructor=wt,(St.prototype=Object.create(_e.prototype)).constructor=St,(Mt.prototype=Object.create(ae.prototype)).constructor=Mt,(Et.prototype=Object.create(St.prototype)).constructor=Et,(Ct.prototype=Object.create(ae.prototype)).constructor=Ct,(Tt.prototype=Object.create(St.prototype)).constructor=Tt,(Ot.prototype=Object.create(ae.prototype)).constructor=Ot,(Pt.prototype=Object.create(St.prototype)).constructor=Pt,(At.prototype=Object.create(ae.prototype)).constructor=At,(Rt.prototype=Object.create(St.prototype)).constructor=Rt,(jt.prototype=Object.create(ae.prototype)).constructor=jt,(Lt.prototype=Object.create(_e.prototype)).constructor=Lt,(Nt.prototype=Object.create(ae.prototype)).constructor=Nt,(It.prototype=Object.create(_e.prototype)).constructor=It,(Dt.prototype=Object.create(ae.prototype)).constructor=Dt,(kt.prototype=Object.create(_e.prototype)).constructor=kt;var Ti={area:function(e){for(var t=e.length,r=0,n=t-1,i=0;i<t;n=i++)r+=e[n].x*e[i].y-e[i].x*e[n].y;return.5*r},triangulate:function(e,t){var r=e.length;if(3>r)return null;var n,i=[],o=[],s=[];if(0<Ti.area(e))for(n=0;n<r;n++)o[n]=n;else for(n=0;n<r;n++)o[n]=r-1-n;var a=2*r;for(n=r-1;2<r;){if(0>=a--){console.warn("THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()");break}var c=n;r<=c&&(c=0),r<=(n=c+1)&&(n=0);var u=n+1;r<=u&&(u=0);e:{var h,l=e[o[c]].x,p=e[o[c]].y,f=e[o[n]].x,d=e[o[n]].y,m=e[o[u]].x,v=e[o[u]].y;if(0>=(f-l)*(v-p)-(d-p)*(m-l))var g=!1;else{var y=m-f,b=v-d,_=l-m,x=p-v,w=f-l;for(g=d-p,h=0;h<r;h++){var S=e[o[h]].x,M=e[o[h]].y;if(!(S===l&&M===p||S===f&&M===d||S===m&&M===v)){var E=S-l,C=M-p,T=S-f,O=M-d;if(S-=m,M-=v,O=y*O-b*T,C=w*C-g*E,S=_*M-x*S,O>=-Number.EPSILON&&S>=-Number.EPSILON&&C>=-Number.EPSILON){g=!1;break e}}}g=!0}}if(g){for(i.push([e[o[c]],e[o[n]],e[o[u]]]),s.push([o[c],o[n],o[u]]),c=n,u=n+1;u<r;c++,u++)o[c]=o[u];a=2*--r}}return t?s:i},triangulateShape:function(e,t){function r(e){var t=e.length;2<t&&e[t-1].equals(e[0])&&e.pop()}function n(e,t,r){return e.x!==t.x?e.x<t.x?e.x<=r.x&&r.x<=t.x:t.x<=r.x&&r.x<=e.x:e.y<t.y?e.y<=r.y&&r.y<=t.y:t.y<=r.y&&r.y<=e.y}function i(e,t,r,i,o){var s=t.x-e.x,a=t.y-e.y,c=i.x-r.x,u=i.y-r.y,h=e.x-r.x,l=e.y-r.y,p=a*c-s*u,f=a*h-s*l;if(Math.abs(p)>Number.EPSILON){if(0<p){if(0>f||f>p)return[];if(0>(c=u*h-c*l)||c>p)return[]}else{if(0<f||f<p)return[];if(0<(c=u*h-c*l)||c<p)return[]}return 0===c?!o||0!==f&&f!==p?[e]:[]:c===p?!o||0!==f&&f!==p?[t]:[]:0===f?[r]:f===p?[i]:(o=c/p,[{x:e.x+o*s,y:e.y+o*a}])}return 0!==f||u*h!=c*l?[]:(a=0===s&&0===a,c=0===c&&0===u,a&&c?e.x!==r.x||e.y!==r.y?[]:[e]:a?n(r,i,e)?[e]:[]:c?n(e,t,r)?[r]:[]:(0!==s?(e.x<t.x?(s=e,c=e.x,a=t,e=t.x):(s=t,c=t.x,a=e,e=e.x),r.x<i.x?(t=r,p=r.x,u=i,r=i.x):(t=i,p=i.x,u=r,r=r.x)):(e.y<t.y?(s=e,c=e.y,a=t,e=t.y):(s=t,c=t.y,a=e,e=e.y),r.y<i.y?(t=r,p=r.y,u=i,r=i.y):(t=i,p=i.y,u=r,r=r.y)),c<=p?e<p?[]:e===p?o?[]:[t]:e<=r?[t,a]:[t,u]:c>r?[]:c===r?o?[]:[s]:e<=r?[s,a]:[s,u]))}function o(e,t,r,n){var i=t.x-e.x,o=t.y-e.y;t=r.x-e.x,r=r.y-e.y;var s=n.x-e.x;return n=n.y-e.y,e=i*r-o*t,i=i*n-o*s,Math.abs(e)>Number.EPSILON?(t=s*r-n*t,0<e?0<=i&&0<=t:0<=i||0<=t):0<i}r(e),t.forEach(r);var s,a={},c=e.concat(),u=0;for(s=t.length;u<s;u++)Array.prototype.push.apply(c,t[u]);for(u=0,s=c.length;u<s;u++){var h=c[u].x+":"+c[u].y;void 0!==a[h]&&console.warn("THREE.ShapeUtils: Duplicate point",h,u),a[h]=u}for(u=function(e,t){function r(e,t){var r=u.length-1,n=e-1;0>n&&(n=r);var i=e+1;return i>r&&(i=0),!!(r=o(u[e],u[n],u[i],y[t]))&&(r=y.length-1,0>(n=t-1)&&(n=r),(i=t+1)>r&&(i=0),!!(r=o(y[t],y[n],y[i],u[e])))}function n(e,t){var r;for(r=0;r<u.length;r++){var n=r+1;if(n%=u.length,0<(n=i(e,t,u[r],u[n],!0)).length)return!0}return!1}function s(e,r){var n,o;for(n=0;n<h.length;n++){var s=t[h[n]];for(o=0;o<s.length;o++){var a=o+1;if(a%=s.length,0<(a=i(e,r,s[o],s[a],!0)).length)return!0}}return!1}var a,c,u=e.concat(),h=[];e=[];var l,p=0;for(a=t.length;p<a;p++)h.push(p);for(var f=0,d=2*h.length;0<h.length;){if(0>--d){console.log('THREE.ShapeUtils: Infinite Loop! Holes left:" + indepHoles.length + ", Probably Hole outside Shape!');break}for(c=f;c<u.length;c++){var m=u[c];for(a=-1,p=0;p<h.length;p++){var v=h[p],g=m.x+":"+m.y+":"+v;if(void 0===e[g]){var y=t[v];for(l=0;l<y.length;l++)if(v=y[l],r(c,l)&&!n(m,v)&&!s(m,v)){a=l,h.splice(p,1),f=u.slice(0,c+1),v=u.slice(c),l=y.slice(a);var b=y.slice(0,a+1);u=f.concat(l).concat(b).concat(v),f=c;break}if(0<=a)break;e[g]=!0}}if(0<=a)break}}return u}(e,t),c=Ti.triangulate(u,!1),u=0,s=c.length;u<s;u++)for(t=c[u],e=0;3>e;e++)h=t[e].x+":"+t[e].y,void 0!==(h=a[h])&&(t[e]=h);return c.concat()},isClockWise:function(e){return 0>Ti.area(e)}};(Bt.prototype=Object.create(ae.prototype)).constructor=Bt,(Ft.prototype=Object.create(_e.prototype)).constructor=Ft,Ft.prototype.getArrays=function(){var e=(e=this.getAttribute("position"))?Array.prototype.slice.call(e.array):[],t=(t=this.getAttribute("uv"))?Array.prototype.slice.call(t.array):[],r=this.index;return{position:e,uv:t,index:r=r?Array.prototype.slice.call(r.array):[]}},Ft.prototype.addShapeList=function(e,t){var r=e.length;t.arrays=this.getArrays();for(var n=0;n<r;n++)this.addShape(e[n],t);this.setIndex(t.arrays.index),this.addAttribute("position",new ve(t.arrays.position,3)),this.addAttribute("uv",new ve(t.arrays.uv,2))},Ft.prototype.addShape=function(e,t){function n(e,t,r){return t||console.error("THREE.ExtrudeGeometry: vec does not exist"),t.clone().multiplyScalar(r).add(e)}function i(e,t,n){var i=e.x-t.x,o=e.y-t.y,s=n.x-e.x,a=n.y-e.y,c=i*i+o*o;if(Math.abs(i*a-o*s)>Number.EPSILON){var u=Math.sqrt(c),h=Math.sqrt(s*s+a*a),c=t.x-o/u;if(t=t.y+i/u,a=((n.x-a/h-c)*a-(n.y+s/h-t)*s)/(i*a-o*s),s=c+i*a-e.x,i=t+o*a-e.y,2>=(o=s*s+i*i))return new r(s,i);o=Math.sqrt(o/2)}else e=!1,i>Number.EPSILON?s>Number.EPSILON&&(e=!0):i<-Number.EPSILON?s<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(a)&&(e=!0),e?(s=-o,o=Math.sqrt(c)):(s=i,i=o,o=Math.sqrt(c/2));return new r(s/o,i/o)}function s(e,t){for($=e.length;0<=--$;){var r=$,n=$-1;0>n&&(n=e.length-1);var i,o=x+2*y;for(i=0;i<o;i++){var s=F*i,a=t+n+s,c=t+n+(p=F*(i+1)),p=t+r+p;u(t+r+s),u(a),u(p),u(a),u(c),u(p),s=l.length/3,h((s=M.generateSideWallUV(R,l,s-6,s-3,s-2,s-1))[0]),h(s[1]),h(s[3]),h(s[1]),h(s[2]),h(s[3])}}}function a(e,t,r){d.push(e),d.push(t),d.push(r)}function c(e,t,r){u(e),u(t),u(r),e=l.length/3,h((e=M.generateTopUV(R,l,e-3,e-2,e-1))[0]),h(e[1]),h(e[2])}function u(e){p.push(l.length/3),l.push(d[3*e+0]),l.push(d[3*e+1]),l.push(d[3*e+2])}function h(e){f.push(e.x),f.push(e.y)}var l=(m=t.arrays?t.arrays:this.getArrays()).position,p=m.index,f=m.uv,d=[],m=void 0!==t.amount?t.amount:100,v=void 0!==t.bevelThickness?t.bevelThickness:6,g=void 0!==t.bevelSize?t.bevelSize:v-2,y=void 0!==t.bevelSegments?t.bevelSegments:3,b=void 0===t.bevelEnabled||t.bevelEnabled,_=void 0!==t.curveSegments?t.curveSegments:12,x=void 0!==t.steps?t.steps:1,w=t.extrudePath,S=!1,M=void 0!==t.UVGenerator?t.UVGenerator:Bt.WorldUVGenerator;if(w){var E=w.getSpacedPoints(x);S=!0,b=!1;var C=void 0!==t.frames?t.frames:w.computeFrenetFrames(x,!1),T=new o,O=new o,P=new o}b||(g=v=y=0);var A,R=this;e=(_=e.extractPoints(_)).shape;var j=_.holes;if(!Ti.isClockWise(e)){e=e.reverse();var L=0;for(A=j.length;L<A;L++){var N=j[L];Ti.isClockWise(N)&&(j[L]=N.reverse())}}var I=Ti.triangulateShape(e,j),D=e;for(L=0,A=j.length;L<A;L++)N=j[L],e=e.concat(N);var k,B,F=e.length,U=I.length,_=[],$=0,z=D.length,G=z-1;for(k=$+1;$<z;$++,G++,k++)G===z&&(G=0),k===z&&(k=0),_[$]=i(D[$],D[G],D[k]);var w=[],V=_.concat();for(L=0,A=j.length;L<A;L++){N=j[L];var H=[];for($=0,G=(z=N.length)-1,k=$+1;$<z;$++,G++,k++)G===z&&(G=0),k===z&&(k=0),H[$]=i(N[$],N[G],N[k]);w.push(H),V=V.concat(H)}for(G=0;G<y;G++){z=G/y;var q=v*Math.cos(z*Math.PI/2);for(k=g*Math.sin(z*Math.PI/2),$=0,z=D.length;$<z;$++){var W=n(D[$],_[$],k);a(W.x,W.y,-q)}for(L=0,A=j.length;L<A;L++)for(N=j[L],H=w[L],$=0,z=N.length;$<z;$++)W=n(N[$],H[$],k),a(W.x,W.y,-q)}for(k=g,$=0;$<F;$++)W=b?n(e[$],V[$],k):e[$],S?(O.copy(C.normals[0]).multiplyScalar(W.x),T.copy(C.binormals[0]).multiplyScalar(W.y),P.copy(E[0]).add(O).add(T),a(P.x,P.y,P.z)):a(W.x,W.y,0);for(z=1;z<=x;z++)for($=0;$<F;$++)W=b?n(e[$],V[$],k):e[$],S?(O.copy(C.normals[z]).multiplyScalar(W.x),T.copy(C.binormals[z]).multiplyScalar(W.y),P.copy(E[z]).add(O).add(T),a(P.x,P.y,P.z)):a(W.x,W.y,m/x*z);for(G=y-1;0<=G;G--){for(z=G/y,q=v*Math.cos(z*Math.PI/2),k=g*Math.sin(z*Math.PI/2),$=0,z=D.length;$<z;$++)W=n(D[$],_[$],k),a(W.x,W.y,m+q);for(L=0,A=j.length;L<A;L++)for(N=j[L],H=w[L],$=0,z=N.length;$<z;$++)W=n(N[$],H[$],k),S?a(W.x,W.y+E[x-1].y,E[x-1].x+q):a(W.x,W.y,m+q)}!function(){var e=l.length/3;if(b){var r=0*F;for($=0;$<U;$++)B=I[$],c(B[2]+r,B[1]+r,B[0]+r);for(r=F*(x+2*y),$=0;$<U;$++)B=I[$],c(B[0]+r,B[1]+r,B[2]+r)}else{for($=0;$<U;$++)B=I[$],c(B[2],B[1],B[0]);for($=0;$<U;$++)B=I[$],c(B[0]+F*x,B[1]+F*x,B[2]+F*x)}R.addGroup(e,l.length/3-e,void 0!==t.material?t.material:0)}(),function(){var e=l.length/3,r=0;for(s(D,r),r+=D.length,L=0,A=j.length;L<A;L++)N=j[L],s(N,r),r+=N.length;R.addGroup(e,l.length/3-e,void 0!==t.extrudeMaterial?t.extrudeMaterial:1)}(),t.arrays||(this.setIndex(p),this.addAttribute("position",new ve(l,3)),this.addAttribute("uv",new ve(t.arrays.uv,2)))},Bt.WorldUVGenerator={generateTopUV:function(e,t,n,i,o){e=t[3*i],i=t[3*i+1];var s=t[3*o];return o=t[3*o+1],[new r(t[3*n],t[3*n+1]),new r(e,i),new r(s,o)]},generateSideWallUV:function(e,t,n,i,o,s){e=t[3*n];var a=t[3*n+1];n=t[3*n+2];var c=t[3*i],u=t[3*i+1];i=t[3*i+2];var h=t[3*o],l=t[3*o+1];o=t[3*o+2];var p=t[3*s],f=t[3*s+1];return t=t[3*s+2],.01>Math.abs(a-u)?[new r(e,1-n),new r(c,1-i),new r(h,1-o),new r(p,1-t)]:[new r(a,1-n),new r(u,1-i),new r(l,1-o),new r(f,1-t)]}},(Ut.prototype=Object.create(ae.prototype)).constructor=Ut,($t.prototype=Object.create(Ft.prototype)).constructor=$t,(zt.prototype=Object.create(ae.prototype)).constructor=zt,(Gt.prototype=Object.create(_e.prototype)).constructor=Gt,(Vt.prototype=Object.create(ae.prototype)).constructor=Vt,(Ht.prototype=Object.create(_e.prototype)).constructor=Ht,(qt.prototype=Object.create(ae.prototype)).constructor=qt,(Wt.prototype=Object.create(_e.prototype)).constructor=Wt,(Xt.prototype=Object.create(ae.prototype)).constructor=Xt,(Yt.prototype=Object.create(_e.prototype)).constructor=Yt,(Kt.prototype=Object.create(_e.prototype)).constructor=Kt,(Zt.prototype=Object.create(ae.prototype)).constructor=Zt,(Jt.prototype=Object.create(_e.prototype)).constructor=Jt,(Qt.prototype=Object.create(Zt.prototype)).constructor=Qt,(er.prototype=Object.create(Jt.prototype)).constructor=er,(tr.prototype=Object.create(ae.prototype)).constructor=tr,(rr.prototype=Object.create(_e.prototype)).constructor=rr;var Oi=Object.freeze({WireframeGeometry:bt,ParametricGeometry:_t,ParametricBufferGeometry:xt,TetrahedronGeometry:Mt,TetrahedronBufferGeometry:Et,OctahedronGeometry:Ct,OctahedronBufferGeometry:Tt,IcosahedronGeometry:Ot,IcosahedronBufferGeometry:Pt,DodecahedronGeometry:At,DodecahedronBufferGeometry:Rt,PolyhedronGeometry:wt,PolyhedronBufferGeometry:St,TubeGeometry:jt,TubeBufferGeometry:Lt,TorusKnotGeometry:Nt,TorusKnotBufferGeometry:It,TorusGeometry:Dt,TorusBufferGeometry:kt,TextGeometry:Ut,TextBufferGeometry:$t,SphereGeometry:zt,SphereBufferGeometry:Gt,RingGeometry:Vt,RingBufferGeometry:Ht,PlaneGeometry:Se,PlaneBufferGeometry:Me,LatheGeometry:qt,LatheBufferGeometry:Wt,ShapeGeometry:Xt,ShapeBufferGeometry:Yt,ExtrudeGeometry:Bt,ExtrudeBufferGeometry:Ft,EdgesGeometry:Kt,ConeGeometry:Qt,ConeBufferGeometry:er,CylinderGeometry:Zt,CylinderBufferGeometry:Jt,CircleGeometry:tr,CircleBufferGeometry:rr,BoxGeometry:xe,BoxBufferGeometry:we});(nr.prototype=Object.create(W.prototype)).constructor=nr,nr.prototype.isShadowMaterial=!0,(ir.prototype=Object.create(Ce.prototype)).constructor=ir,ir.prototype.isRawShaderMaterial=!0,(or.prototype=Object.create(W.prototype)).constructor=or,or.prototype.isMeshStandardMaterial=!0,or.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},(sr.prototype=Object.create(or.prototype)).constructor=sr,sr.prototype.isMeshPhysicalMaterial=!0,sr.prototype.copy=function(e){return or.prototype.copy.call(this,e),this.defines={PHYSICAL:""},this.reflectivity=e.reflectivity,this.clearCoat=e.clearCoat,this.clearCoatRoughness=e.clearCoatRoughness,this},(ar.prototype=Object.create(W.prototype)).constructor=ar,ar.prototype.isMeshPhongMaterial=!0,ar.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},(cr.prototype=Object.create(ar.prototype)).constructor=cr,cr.prototype.isMeshToonMaterial=!0,cr.prototype.copy=function(e){return ar.prototype.copy.call(this,e),this.gradientMap=e.gradientMap,this},(ur.prototype=Object.create(W.prototype)).constructor=ur,ur.prototype.isMeshNormalMaterial=!0,ur.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},(hr.prototype=Object.create(W.prototype)).constructor=hr,hr.prototype.isMeshLambertMaterial=!0,hr.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},(lr.prototype=Object.create(ut.prototype)).constructor=lr,lr.prototype.isLineDashedMaterial=!0,lr.prototype.copy=function(e){return ut.prototype.copy.call(this,e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this};var Pi=Object.freeze({ShadowMaterial:nr,SpriteMaterial:nt,RawShaderMaterial:ir,ShaderMaterial:Ce,PointsMaterial:ft,MeshPhysicalMaterial:sr,MeshStandardMaterial:or,MeshPhongMaterial:ar,MeshToonMaterial:cr,MeshNormalMaterial:ur,MeshLambertMaterial:hr,MeshDepthMaterial:X,MeshDistanceMaterial:Y,MeshBasicMaterial:Ee,LineDashedMaterial:lr,LineBasicMaterial:ut,Material:W}),Ai={enabled:!1,files:{},add:function(e,t){!1!==this.enabled&&(this.files[e]=t)},get:function(e){if(!1!==this.enabled)return this.files[e]},remove:function(e){delete this.files[e]},clear:function(){this.files={}}},Ri=new pr,ji={};Object.assign(fr.prototype,{load:function(e,t,r,n){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);var i=this,o=Ai.get(e);if(void 0!==o)return i.manager.itemStart(e),setTimeout(function(){t&&t(o),i.manager.itemEnd(e)},0),o;if(void 0===ji[e]){if(a=e.match(/^data:(.*?)(;base64)?,(.*)$/)){r=a[1];var s=!!a[2],a=a[3],a=window.decodeURIComponent(a);s&&(a=window.atob(a));try{var c=(this.responseType||"").toLowerCase();switch(c){case"arraybuffer":case"blob":for(var u=new Uint8Array(a.length),s=0;s<a.length;s++)u[s]=a.charCodeAt(s);var h="blob"===c?new Blob([u.buffer],{type:r}):u.buffer;break;case"document":h=(new DOMParser).parseFromString(a,r);break;case"json":h=JSON.parse(a);break;default:h=a}window.setTimeout(function(){t&&t(h),i.manager.itemEnd(e)},0)}catch(t){window.setTimeout(function(){n&&n(t),i.manager.itemEnd(e),i.manager.itemError(e)},0)}}else{ji[e]=[],ji[e].push({onLoad:t,onProgress:r,onError:n});var l=new XMLHttpRequest;l.open("GET",e,!0),l.addEventListener("load",function(t){var r=t.target.response;Ai.add(e,r);var n=ji[e];if(delete ji[e],200===this.status){for(var o=0,s=n.length;o<s;o++){var a=n[o];a.onLoad&&a.onLoad(r)}i.manager.itemEnd(e)}else if(0===this.status){for(console.warn("THREE.FileLoader: HTTP Status 0 received."),o=0,s=n.length;o<s;o++)(a=n[o]).onLoad&&a.onLoad(r);i.manager.itemEnd(e)}else{for(o=0,s=n.length;o<s;o++)(a=n[o]).onError&&a.onError(t);i.manager.itemEnd(e),i.manager.itemError(e)}},!1),l.addEventListener("progress",function(t){for(var r=ji[e],n=0,i=r.length;n<i;n++){var o=r[n];o.onProgress&&o.onProgress(t)}},!1),l.addEventListener("error",function(t){var r=ji[e];delete ji[e];for(var n=0,o=r.length;n<o;n++){var s=r[n];s.onError&&s.onError(t)}i.manager.itemEnd(e),i.manager.itemError(e)},!1),void 0!==this.responseType&&(l.responseType=this.responseType),void 0!==this.withCredentials&&(l.withCredentials=this.withCredentials),l.overrideMimeType&&l.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(s in this.requestHeader)l.setRequestHeader(s,this.requestHeader[s]);l.send(null)}return i.manager.itemStart(e),l}ji[e].push({onLoad:t,onProgress:r,onError:n})},setPath:function(e){return this.path=e,this},setResponseType:function(e){return this.responseType=e,this},setWithCredentials:function(e){return this.withCredentials=e,this},setMimeType:function(e){return this.mimeType=e,this},setRequestHeader:function(e){return this.requestHeader=e,this}}),Object.assign(dr.prototype,{load:function(e,t,r,n){function i(i){u.load(e[i],function(e){e=s._parser(e,!0),a[i]={width:e.width,height:e.height,format:e.format,mipmaps:e.mipmaps},6===(o+=1)&&(1===e.mipmapCount&&(c.minFilter=1006),c.format=e.format,c.needsUpdate=!0,t&&t(c))},r,n)}var o,s=this,a=[],c=new gt;c.image=a;var u=new fr(this.manager);if(u.setPath(this.path),u.setResponseType("arraybuffer"),Array.isArray(e))for(var h=o=0,l=e.length;h<l;++h)i(h);else u.load(e,function(e){if((e=s._parser(e,!0)).isCubemap)for(var r=e.mipmaps.length/e.mipmapCount,n=0;n<r;n++){a[n]={mipmaps:[]};for(var i=0;i<e.mipmapCount;i++)a[n].mipmaps.push(e.mipmaps[n*e.mipmapCount+i]),a[n].format=e.format,a[n].width=e.width,a[n].height=e.height}else c.image.width=e.width,c.image.height=e.height,c.mipmaps=e.mipmaps;1===e.mipmapCount&&(c.minFilter=1006),c.format=e.format,c.needsUpdate=!0,t&&t(c)},r,n);return c},setPath:function(e){return this.path=e,this}}),Object.assign(mr.prototype,{load:function(e,t,r,n){var i=this,o=new l,s=new fr(this.manager);return s.setResponseType("arraybuffer"),s.load(e,function(e){(e=i._parser(e))&&(void 0!==e.image?o.image=e.image:void 0!==e.data&&(o.image.width=e.width,o.image.height=e.height,o.image.data=e.data),o.wrapS=void 0!==e.wrapS?e.wrapS:1001,o.wrapT=void 0!==e.wrapT?e.wrapT:1001,o.magFilter=void 0!==e.magFilter?e.magFilter:1006,o.minFilter=void 0!==e.minFilter?e.minFilter:1008,o.anisotropy=void 0!==e.anisotropy?e.anisotropy:1,void 0!==e.format&&(o.format=e.format),void 0!==e.type&&(o.type=e.type),void 0!==e.mipmaps&&(o.mipmaps=e.mipmaps),1===e.mipmapCount&&(o.minFilter=1006),o.needsUpdate=!0,t&&t(o,e))},r,n),o}}),Object.assign(vr.prototype,{crossOrigin:"Anonymous",load:function(e,t,r,n){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);var i=this,o=Ai.get(e);return void 0!==o?(i.manager.itemStart(e),setTimeout(function(){t&&t(o),i.manager.itemEnd(e)},0),o):((r=document.createElementNS("http://www.w3.org/1999/xhtml","img")).addEventListener("load",function(){Ai.add(e,this),t&&t(this),i.manager.itemEnd(e)},!1),r.addEventListener("error",function(t){n&&n(t),i.manager.itemEnd(e),i.manager.itemError(e)},!1),"data:"!==e.substr(0,5)&&void 0!==this.crossOrigin&&(r.crossOrigin=this.crossOrigin),i.manager.itemStart(e),r.src=e,r)},setCrossOrigin:function(e){return this.crossOrigin=e,this},setPath:function(e){return this.path=e,this}}),Object.assign(gr.prototype,{crossOrigin:"Anonymous",load:function(e,t,r,n){function i(r){s.load(e[r],function(e){o.images[r]=e,6===++a&&(o.needsUpdate=!0,t&&t(o))},void 0,n)}var o=new p,s=new vr(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);var a=0;for(r=0;r<e.length;++r)i(r);return o},setCrossOrigin:function(e){return this.crossOrigin=e,this},setPath:function(e){return this.path=e,this}}),Object.assign(yr.prototype,{crossOrigin:"Anonymous",load:function(e,t,r,n){var i=new vr(this.manager);i.setCrossOrigin(this.crossOrigin),i.setPath(this.path);var o=new a;return o.image=i.load(e,function(){var r=0<e.search(/\.(jpg|jpeg)$/)||0===e.search(/^data\:image\/jpeg/);o.format=r?1022:1023,o.needsUpdate=!0,void 0!==t&&t(o)},r,n),o},setCrossOrigin:function(e){return this.crossOrigin=e,this},setPath:function(e){return this.path=e,this}}),br.prototype=Object.assign(Object.create(ne.prototype),{constructor:br,isLight:!0,copy:function(e){return ne.prototype.copy.call(this,e),this.color.copy(e.color),this.intensity=e.intensity,this},toJSON:function(e){return e=ne.prototype.toJSON.call(this,e),e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}),_r.prototype=Object.assign(Object.create(br.prototype),{constructor:_r,isHemisphereLight:!0,copy:function(e){return br.prototype.copy.call(this,e),this.groundColor.copy(e.groundColor),this}}),Object.assign(xr.prototype,{copy:function(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var e={};return 0!==this.bias&&(e.bias=this.bias),1!==this.radius&&(e.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}),wr.prototype=Object.assign(Object.create(xr.prototype),{constructor:wr,isSpotLightShadow:!0,update:function(e){var t=this.camera,r=2*ci.RAD2DEG*e.angle,n=this.mapSize.width/this.mapSize.height;e=e.distance||t.far,r===t.fov&&n===t.aspect&&e===t.far||(t.fov=r,t.aspect=n,t.far=e,t.updateProjectionMatrix())}}),Sr.prototype=Object.assign(Object.create(br.prototype),{constructor:Sr,isSpotLight:!0,copy:function(e){return br.prototype.copy.call(this,e),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}),Mr.prototype=Object.assign(Object.create(br.prototype),{constructor:Mr,isPointLight:!0,copy:function(e){return br.prototype.copy.call(this,e),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}),Er.prototype=Object.assign(Object.create(xr.prototype),{constructor:Er}),Cr.prototype=Object.assign(Object.create(br.prototype),{constructor:Cr,isDirectionalLight:!0,copy:function(e){return br.prototype.copy.call(this,e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}),Tr.prototype=Object.assign(Object.create(br.prototype),{constructor:Tr,isAmbientLight:!0}),Or.prototype=Object.assign(Object.create(br.prototype),{constructor:Or,isRectAreaLight:!0,copy:function(e){return br.prototype.copy.call(this,e),this.width=e.width,this.height=e.height,this},toJSON:function(e){return e=br.prototype.toJSON.call(this,e),e.object.width=this.width,e.object.height=this.height,e}});var Li={arraySlice:function(e,t,r){return Li.isTypedArray(e)?new e.constructor(e.subarray(t,void 0!==r?r:e.length)):e.slice(t,r)},convertArray:function(e,t,r){return!e||!r&&e.constructor===t?e:"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)},isTypedArray:function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)},getKeyframeOrder:function(e){for(var t=e.length,r=Array(t),n=0;n!==t;++n)r[n]=n;return r.sort(function(t,r){return e[t]-e[r]}),r},sortedArray:function(e,t,r){for(var n=e.length,i=new e.constructor(n),o=0,s=0;s!==n;++o)for(var a=r[o]*t,c=0;c!==t;++c)i[s++]=e[a+c];return i},flattenJSON:function(e,t,r,n){for(var i=1,o=e[0];void 0!==o&&void 0===o[n];)o=e[i++];if(void 0!==o){var s=o[n];if(void 0!==s)if(Array.isArray(s))do{void 0!==(s=o[n])&&(t.push(o.time),r.push.apply(r,s)),o=e[i++]}while(void 0!==o);else if(void 0!==s.toArray)do{void 0!==(s=o[n])&&(t.push(o.time),s.toArray(r,r.length)),o=e[i++]}while(void 0!==o);else do{void 0!==(s=o[n])&&(t.push(o.time),r.push(s)),o=e[i++]}while(void 0!==o)}}};Object.assign(Pr.prototype,{evaluate:function(e){var t=this.parameterPositions,r=this._cachedIndex,n=t[r],i=t[r-1];e:{t:{r:{n:if(!(e<n)){for(var o=r+2;;){if(void 0===n){if(e<i)break n;return this._cachedIndex=r=t.length,this.afterEnd_(r-1,e,i)}if(r===o)break;if(i=n,n=t[++r],e<n)break t}n=t.length;break r}if(e>=i)break e;for(e<(o=t[1])&&(r=2,i=o),o=r-2;;){if(void 0===i)return this._cachedIndex=0,this.beforeStart_(0,e,n);if(r===o)break;if(n=i,i=t[--r-1],e>=i)break t}n=r,r=0}for(;r<n;)i=r+n>>>1,e<t[i]?n=i:r=i+1;if(n=t[r],void 0===(i=t[r-1]))return this._cachedIndex=0,this.beforeStart_(0,e,n);if(void 0===n)return this._cachedIndex=r=t.length,this.afterEnd_(r-1,i,e)}this._cachedIndex=r,this.intervalChanged_(r,i,n)}return this.interpolate_(r,i,e,n)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(e){var t=this.resultBuffer,r=this.sampleValues,n=this.valueSize;e*=n;for(var i=0;i!==n;++i)t[i]=r[e+i];return t},interpolate_:function(){throw Error("call to abstract method")},intervalChanged_:function(){}}),Object.assign(Pr.prototype,{beforeStart_:Pr.prototype.copySampleValue_,afterEnd_:Pr.prototype.copySampleValue_}),Ar.prototype=Object.assign(Object.create(Pr.prototype),{constructor:Ar,DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(e,t,r){var n=this.parameterPositions,i=e-2,o=e+1,s=n[i],a=n[o];if(void 0===s)switch(this.getSettings_().endingStart){case 2401:i=e,s=2*t-r;break;case 2402:s=t+n[i=n.length-2]-n[i+1];break;default:i=e,s=r}if(void 0===a)switch(this.getSettings_().endingEnd){case 2401:o=e,a=2*r-t;break;case 2402:o=1,a=r+n[1]-n[0];break;default:o=e-1,a=t}e=.5*(r-t),n=this.valueSize,this._weightPrev=e/(t-s),this._weightNext=e/(a-r),this._offsetPrev=i*n,this._offsetNext=o*n},interpolate_:function(e,t,r,n){var i=this.resultBuffer,o=this.sampleValues,s=this.valueSize,a=(e*=s)-s,c=this._offsetPrev,u=this._offsetNext,h=this._weightPrev,l=this._weightNext,p=(r-t)/(n-t);for(t=-h*(n=(r=p*p)*p)+2*h*r-h*p,h=(1+h)*n+(-1.5-2*h)*r+(-.5+h)*p+1,p=(-1-l)*n+(1.5+l)*r+.5*p,l=l*n-l*r,r=0;r!==s;++r)i[r]=t*o[c+r]+h*o[a+r]+p*o[e+r]+l*o[u+r];return i}}),Rr.prototype=Object.assign(Object.create(Pr.prototype),{constructor:Rr,interpolate_:function(e,t,r,n){var i=this.resultBuffer,o=this.sampleValues,s=this.valueSize,a=(e*=s)-s;for(r=1-(t=(r-t)/(n-t)),n=0;n!==s;++n)i[n]=o[a+n]*r+o[e+n]*t;return i}}),jr.prototype=Object.assign(Object.create(Pr.prototype),{constructor:jr,interpolate_:function(e){return this.copySampleValue_(e-1)}});var Ni={TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(e){return new jr(this.times,this.values,this.getValueSize(),e)},InterpolantFactoryMethodLinear:function(e){return new Rr(this.times,this.values,this.getValueSize(),e)},InterpolantFactoryMethodSmooth:function(e){return new Ar(this.times,this.values,this.getValueSize(),e)},setInterpolation:function(e){switch(e){case 2300:var t=this.InterpolantFactoryMethodDiscrete;break;case 2301:t=this.InterpolantFactoryMethodLinear;break;case 2302:t=this.InterpolantFactoryMethodSmooth}if(void 0===t){if(t="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name,void 0===this.createInterpolant){if(e===this.DefaultInterpolation)throw Error(t);this.setInterpolation(this.DefaultInterpolation)}console.warn("THREE.KeyframeTrackPrototype:",t)}else this.createInterpolant=t},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(e){if(0!==e)for(var t=this.times,r=0,n=t.length;r!==n;++r)t[r]+=e;return this},scale:function(e){if(1!==e)for(var t=this.times,r=0,n=t.length;r!==n;++r)t[r]*=e;return this},trim:function(e,t){for(var r=this.times,n=r.length,i=0,o=n-1;i!==n&&r[i]<e;)++i;for(;-1!==o&&r[o]>t;)--o;return++o,0===i&&o===n||(i>=o&&(o=Math.max(o,1),i=o-1),e=this.getValueSize(),this.times=Li.arraySlice(r,i,o),this.values=Li.arraySlice(this.values,i*e,o*e)),this},validate:function(){var e=!0;0!=(r=this.getValueSize())-Math.floor(r)&&(console.error("THREE.KeyframeTrackPrototype: Invalid value size in track.",this),e=!1);var t=this.times,r=this.values,n=t.length;0===n&&(console.error("THREE.KeyframeTrackPrototype: Track is empty.",this),e=!1);for(var i=null,o=0;o!==n;o++){var s=t[o];if("number"==typeof s&&isNaN(s)){console.error("THREE.KeyframeTrackPrototype: Time is not a valid number.",this,o,s),e=!1;break}if(null!==i&&i>s){console.error("THREE.KeyframeTrackPrototype: Out of order keys.",this,o,s,i),e=!1;break}i=s}if(void 0!==r&&Li.isTypedArray(r))for(o=0,t=r.length;o!==t;++o)if(n=r[o],isNaN(n)){console.error("THREE.KeyframeTrackPrototype: Value is not a valid number.",this,o,n),e=!1;break}return e},optimize:function(){for(var e,t,r=this.times,n=this.values,i=this.getValueSize(),o=2302===this.getInterpolation(),s=1,a=r.length-1,c=1;c<a;++c){e=!1;if((l=r[c])!==r[c+1]&&(1!==c||l!==l[0]))if(o)e=!0;else for(var u=(t=c*i)-i,h=t+i,l=0;l!==i;++l){var p=n[t+l];if(p!==n[u+l]||p!==n[h+l]){e=!0;break}}if(e){if(c!==s)for(r[s]=r[c],t=c*i,e=s*i,l=0;l!==i;++l)n[e+l]=n[t+l];++s}}if(0<a){for(r[s]=r[a],t=a*i,e=s*i,l=0;l!==i;++l)n[e+l]=n[t+l];++s}return s!==r.length&&(this.times=Li.arraySlice(r,0,s),this.values=Li.arraySlice(n,0,s*i)),this}};Nr.prototype=Object.assign(Object.create(Ni),{constructor:Nr,ValueTypeName:"vector"}),Ir.prototype=Object.assign(Object.create(Pr.prototype),{constructor:Ir,interpolate_:function(e,t,r,n){var o=this.resultBuffer,s=this.sampleValues,a=this.valueSize;for(t=(r-t)/(n-t),r=(e*=a)+a;e!==r;e+=4)i.slerpFlat(o,0,s,e-a,s,e,t);return o}}),Dr.prototype=Object.assign(Object.create(Ni),{constructor:Dr,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(e){return new Ir(this.times,this.values,this.getValueSize(),e)},InterpolantFactoryMethodSmooth:void 0}),kr.prototype=Object.assign(Object.create(Ni),{constructor:kr,ValueTypeName:"number"}),Br.prototype=Object.assign(Object.create(Ni),{constructor:Br,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Fr.prototype=Object.assign(Object.create(Ni),{constructor:Fr,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Ur.prototype=Object.assign(Object.create(Ni),{constructor:Ur,ValueTypeName:"color"}),$r.prototype=Ni,Ni.constructor=$r,Object.assign($r,{parse:function(e){if(void 0===e.type)throw Error("track type undefined, can not parse");var t=$r._getTrackTypeForValueTypeName(e.type);if(void 0===e.times){var r=[],n=[];Li.flattenJSON(e.keys,r,n,"value"),e.times=r,e.values=n}return void 0!==t.parse?t.parse(e):new t(e.name,e.times,e.values,e.interpolation)},toJSON:function(e){if(void 0!==(t=e.constructor).toJSON)t=t.toJSON(e);else{var t={name:e.name,times:Li.convertArray(e.times,Array),values:Li.convertArray(e.values,Array)},r=e.getInterpolation();r!==e.DefaultInterpolation&&(t.interpolation=r)}return t.type=e.ValueTypeName,t},_getTrackTypeForValueTypeName:function(e){switch(e.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return kr;case"vector":case"vector2":case"vector3":case"vector4":return Nr;case"color":return Ur;case"quaternion":return Dr;case"bool":case"boolean":return Fr;case"string":return Br}throw Error("Unsupported typeName: "+e)}}),Object.assign(zr,{parse:function(e){for(var t=[],r=e.tracks,n=1/(e.fps||1),i=0,o=r.length;i!==o;++i)t.push($r.parse(r[i]).scale(n));return new zr(e.name,e.duration,t)},toJSON:function(e){var t=[],r=e.tracks;e={name:e.name,duration:e.duration,tracks:t};for(var n=0,i=r.length;n!==i;++n)t.push($r.toJSON(r[n]));return e},CreateFromMorphTargetSequence:function(e,t,r,n){for(var i=t.length,o=[],s=0;s<i;s++){u=[];(c=[]).push((s+i-1)%i,s,(s+1)%i),u.push(0,1,0);var a=Li.getKeyframeOrder(c),c=Li.sortedArray(c,1,a),u=Li.sortedArray(u,1,a);n||0!==c[0]||(c.push(i),u.push(u[0])),o.push(new kr(".morphTargetInfluences["+t[s].name+"]",c,u).scale(1/r))}return new zr(e,-1,o)},findByName:function(e,t){var r=e;for(Array.isArray(e)||(r=e.geometry&&e.geometry.animations||e.animations),e=0;e<r.length;e++)if(r[e].name===t)return r[e];return null},CreateClipsFromMorphTargetSequences:function(e,t,r){for(var n,i={},o=/^([\w-]*?)([\d]+)$/,s=0,a=e.length;s<a;s++){var c=e[s],u=c.name.match(o);u&&1<u.length&&(n=u[1],(u=i[n])||(i[n]=u=[]),u.push(c))}e=[];for(n in i)e.push(zr.CreateFromMorphTargetSequence(n,i[n],t,r));return e},parseAnimation:function(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;var r=function(e,t,r,n,i){if(0!==r.length){var o=[],s=[];Li.flattenJSON(r,o,s,n),0!==o.length&&i.push(new e(t,o,s))}},n=[],i=e.name||"default",o=e.length||-1,s=e.fps||30;e=e.hierarchy||[];for(var a=0;a<e.length;a++){var c=e[a].keys;if(c&&0!==c.length)if(c[0].morphTargets){for(var o={},u=0;u<c.length;u++)if(c[u].morphTargets)for(f=0;f<c[u].morphTargets.length;f++)o[c[u].morphTargets[f]]=-1;for(var h in o){for(var l=[],p=[],f=0;f!==c[u].morphTargets.length;++f){var d=c[u];l.push(d.time),p.push(d.morphTarget===h?1:0)}n.push(new kr(".morphTargetInfluence["+h+"]",l,p))}o=o.length*(s||1)}else u=".bones["+t[a].name+"]",r(Nr,u+".position",c,"pos",n),r(Dr,u+".quaternion",c,"rot",n),r(Nr,u+".scale",c,"scl",n)}return 0===n.length?null:new zr(i,o,n)}}),Object.assign(zr.prototype,{resetDuration:function(){for(var e=0,t=0,r=this.tracks.length;t!==r;++t)var n=this.tracks[t],e=Math.max(e,n.times[n.times.length-1]);this.duration=e},trim:function(){for(var e=0;e<this.tracks.length;e++)this.tracks[e].trim(0,this.duration);return this},optimize:function(){for(var e=0;e<this.tracks.length;e++)this.tracks[e].optimize();return this}}),Object.assign(Gr.prototype,{load:function(e,t,r,n){var i=this;new fr(i.manager).load(e,function(e){t(i.parse(JSON.parse(e)))},r,n)},setTextures:function(e){this.textures=e},parse:function(e){function t(e){return void 0===n[e]&&console.warn("THREE.MaterialLoader: Undefined texture",e),n[e]}var n=this.textures,i=new Pi[e.type];if(void 0!==e.uuid&&(i.uuid=e.uuid),void 0!==e.name&&(i.name=e.name),void 0!==e.color&&i.color.setHex(e.color),void 0!==e.roughness&&(i.roughness=e.roughness),void 0!==e.metalness&&(i.metalness=e.metalness),void 0!==e.emissive&&i.emissive.setHex(e.emissive),void 0!==e.specular&&i.specular.setHex(e.specular),void 0!==e.shininess&&(i.shininess=e.shininess),void 0!==e.clearCoat&&(i.clearCoat=e.clearCoat),void 0!==e.clearCoatRoughness&&(i.clearCoatRoughness=e.clearCoatRoughness),void 0!==e.uniforms&&(i.uniforms=e.uniforms),void 0!==e.vertexShader&&(i.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(i.fragmentShader=e.fragmentShader),void 0!==e.vertexColors&&(i.vertexColors=e.vertexColors),void 0!==e.fog&&(i.fog=e.fog),void 0!==e.flatShading&&(i.flatShading=e.flatShading),void 0!==e.blending&&(i.blending=e.blending),void 0!==e.side&&(i.side=e.side),void 0!==e.opacity&&(i.opacity=e.opacity),void 0!==e.transparent&&(i.transparent=e.transparent),void 0!==e.alphaTest&&(i.alphaTest=e.alphaTest),void 0!==e.depthTest&&(i.depthTest=e.depthTest),void 0!==e.depthWrite&&(i.depthWrite=e.depthWrite),void 0!==e.colorWrite&&(i.colorWrite=e.colorWrite),void 0!==e.wireframe&&(i.wireframe=e.wireframe),void 0!==e.wireframeLinewidth&&(i.wireframeLinewidth=e.wireframeLinewidth),void 0!==e.wireframeLinecap&&(i.wireframeLinecap=e.wireframeLinecap),void 0!==e.wireframeLinejoin&&(i.wireframeLinejoin=e.wireframeLinejoin),void 0!==e.rotation&&(i.rotation=e.rotation),1!==e.linewidth&&(i.linewidth=e.linewidth),void 0!==e.dashSize&&(i.dashSize=e.dashSize),void 0!==e.gapSize&&(i.gapSize=e.gapSize),void 0!==e.scale&&(i.scale=e.scale),void 0!==e.skinning&&(i.skinning=e.skinning),void 0!==e.morphTargets&&(i.morphTargets=e.morphTargets),void 0!==e.dithering&&(i.dithering=e.dithering),void 0!==e.visible&&(i.visible=e.visible),void 0!==e.userData&&(i.userData=e.userData),void 0!==e.shading&&(i.flatShading=1===e.shading),void 0!==e.size&&(i.size=e.size),void 0!==e.sizeAttenuation&&(i.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(i.map=t(e.map)),void 0!==e.alphaMap&&(i.alphaMap=t(e.alphaMap),i.transparent=!0),void 0!==e.bumpMap&&(i.bumpMap=t(e.bumpMap)),void 0!==e.bumpScale&&(i.bumpScale=e.bumpScale),void 0!==e.normalMap&&(i.normalMap=t(e.normalMap)),void 0!==e.normalScale){var o=e.normalScale;!1===Array.isArray(o)&&(o=[o,o]),i.normalScale=(new r).fromArray(o)}return void 0!==e.displacementMap&&(i.displacementMap=t(e.displacementMap)),void 0!==e.displacementScale&&(i.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(i.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(i.roughnessMap=t(e.roughnessMap)),void 0!==e.metalnessMap&&(i.metalnessMap=t(e.metalnessMap)),void 0!==e.emissiveMap&&(i.emissiveMap=t(e.emissiveMap)),void 0!==e.emissiveIntensity&&(i.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(i.specularMap=t(e.specularMap)),void 0!==e.envMap&&(i.envMap=t(e.envMap)),void 0!==e.reflectivity&&(i.reflectivity=e.reflectivity),void 0!==e.lightMap&&(i.lightMap=t(e.lightMap)),void 0!==e.lightMapIntensity&&(i.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(i.aoMap=t(e.aoMap)),void 0!==e.aoMapIntensity&&(i.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(i.gradientMap=t(e.gradientMap)),i}}),Object.assign(Vr.prototype,{load:function(e,t,r,n){var i=this;new fr(i.manager).load(e,function(e){t(i.parse(JSON.parse(e)))},r,n)},parse:function(e){var t=new _e,r=e.data.index;void 0!==r&&(r=new Ii[r.type](r.array),t.setIndex(new ce(r,1)));var n=e.data.attributes;for(s in n){var i=n[s];r=new Ii[i.type](i.array),t.addAttribute(s,new ce(r,i.itemSize,i.normalized))}var s=e.data.groups||e.data.drawcalls||e.data.offsets;if(void 0!==s)for(r=0,n=s.length;r!==n;++r)i=s[r],t.addGroup(i.start,i.count,i.materialIndex);return void 0!==(e=e.data.boundingSphere)&&(s=new o,void 0!==e.center&&s.fromArray(e.center),t.boundingSphere=new Z(s,e.radius)),t}});var Ii={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!=typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};Hr.Handlers={handlers:[],add:function(e,t){this.handlers.push(e,t)},get:function(e){for(var t=this.handlers,r=0,n=t.length;r<n;r+=2){var i=t[r+1];if(t[r].test(e))return i}return null}},Object.assign(Hr.prototype,{crossOrigin:void 0,extractUrlBase:function(e){return 1===(e=e.split("/")).length?"./":(e.pop(),e.join("/")+"/")},initMaterials:function(e,t,r){for(var n=[],i=0;i<e.length;++i)n[i]=this.createMaterial(e[i],t,r);return n},createMaterial:function(){var e={NoBlending:0,NormalBlending:1,AdditiveBlending:2,SubtractiveBlending:3,MultiplyBlending:4,CustomBlending:5},t=new z,r=new yr,n=new Gr;return function(i,o,s){function a(e,t,n,i,a){e=o+e;var c=Hr.Handlers.get(e);return null!==c?e=c.load(e):(r.setCrossOrigin(s),e=r.load(e)),void 0!==t&&(e.repeat.fromArray(t),1!==t[0]&&(e.wrapS=1e3),1!==t[1]&&(e.wrapT=1e3)),void 0!==n&&e.offset.fromArray(n),void 0!==i&&("repeat"===i[0]&&(e.wrapS=1e3),"mirror"===i[0]&&(e.wrapS=1002),"repeat"===i[1]&&(e.wrapT=1e3),"mirror"===i[1]&&(e.wrapT=1002)),void 0!==a&&(e.anisotropy=a),t=ci.generateUUID(),u[t]=e,t}var c,u={},h={uuid:ci.generateUUID(),type:"MeshLambertMaterial"};for(c in i){var l=i[c];switch(c){case"DbgColor":case"DbgIndex":case"opticalDensity":case"illumination":break;case"DbgName":h.name=l;break;case"blending":h.blending=e[l];break;case"colorAmbient":case"mapAmbient":console.warn("THREE.Loader.createMaterial:",c,"is no longer supported.");break;case"colorDiffuse":h.color=t.fromArray(l).getHex();break;case"colorSpecular":h.specular=t.fromArray(l).getHex();break;case"colorEmissive":h.emissive=t.fromArray(l).getHex();break;case"specularCoef":h.shininess=l;break;case"shading":"basic"===l.toLowerCase()&&(h.type="MeshBasicMaterial"),"phong"===l.toLowerCase()&&(h.type="MeshPhongMaterial"),"standard"===l.toLowerCase()&&(h.type="MeshStandardMaterial");break;case"mapDiffuse":h.map=a(l,i.mapDiffuseRepeat,i.mapDiffuseOffset,i.mapDiffuseWrap,i.mapDiffuseAnisotropy);break;case"mapDiffuseRepeat":case"mapDiffuseOffset":case"mapDiffuseWrap":case"mapDiffuseAnisotropy":break;case"mapEmissive":h.emissiveMap=a(l,i.mapEmissiveRepeat,i.mapEmissiveOffset,i.mapEmissiveWrap,i.mapEmissiveAnisotropy);break;case"mapEmissiveRepeat":case"mapEmissiveOffset":case"mapEmissiveWrap":case"mapEmissiveAnisotropy":break;case"mapLight":h.lightMap=a(l,i.mapLightRepeat,i.mapLightOffset,i.mapLightWrap,i.mapLightAnisotropy);break;case"mapLightRepeat":case"mapLightOffset":case"mapLightWrap":case"mapLightAnisotropy":break;case"mapAO":h.aoMap=a(l,i.mapAORepeat,i.mapAOOffset,i.mapAOWrap,i.mapAOAnisotropy);break;case"mapAORepeat":case"mapAOOffset":case"mapAOWrap":case"mapAOAnisotropy":break;case"mapBump":h.bumpMap=a(l,i.mapBumpRepeat,i.mapBumpOffset,i.mapBumpWrap,i.mapBumpAnisotropy);break;case"mapBumpScale":h.bumpScale=l;break;case"mapBumpRepeat":case"mapBumpOffset":case"mapBumpWrap":case"mapBumpAnisotropy":break;case"mapNormal":h.normalMap=a(l,i.mapNormalRepeat,i.mapNormalOffset,i.mapNormalWrap,i.mapNormalAnisotropy);break;case"mapNormalFactor":h.normalScale=[l,l];break;case"mapNormalRepeat":case"mapNormalOffset":case"mapNormalWrap":case"mapNormalAnisotropy":break;case"mapSpecular":h.specularMap=a(l,i.mapSpecularRepeat,i.mapSpecularOffset,i.mapSpecularWrap,i.mapSpecularAnisotropy);break;case"mapSpecularRepeat":case"mapSpecularOffset":case"mapSpecularWrap":case"mapSpecularAnisotropy":break;case"mapMetalness":h.metalnessMap=a(l,i.mapMetalnessRepeat,i.mapMetalnessOffset,i.mapMetalnessWrap,i.mapMetalnessAnisotropy);break;case"mapMetalnessRepeat":case"mapMetalnessOffset":case"mapMetalnessWrap":case"mapMetalnessAnisotropy":break;case"mapRoughness":h.roughnessMap=a(l,i.mapRoughnessRepeat,i.mapRoughnessOffset,i.mapRoughnessWrap,i.mapRoughnessAnisotropy);break;case"mapRoughnessRepeat":case"mapRoughnessOffset":case"mapRoughnessWrap":case"mapRoughnessAnisotropy":break;case"mapAlpha":h.alphaMap=a(l,i.mapAlphaRepeat,i.mapAlphaOffset,i.mapAlphaWrap,i.mapAlphaAnisotropy);break;case"mapAlphaRepeat":case"mapAlphaOffset":case"mapAlphaWrap":case"mapAlphaAnisotropy":break;case"flipSided":h.side=1;break;case"doubleSided":h.side=2;break;case"transparency":console.warn("THREE.Loader.createMaterial: transparency has been renamed to opacity"),h.opacity=l;break;case"depthTest":case"depthWrite":case"colorWrite":case"opacity":case"reflectivity":case"transparent":case"visible":case"wireframe":h[c]=l;break;case"vertexColors":!0===l&&(h.vertexColors=2),"face"===l&&(h.vertexColors=1);break;default:console.error("THREE.Loader.createMaterial: Unsupported",c,l)}}return"MeshBasicMaterial"===h.type&&delete h.emissive,"MeshPhongMaterial"!==h.type&&delete h.specular,1>h.opacity&&(h.transparent=!0),n.setTextures(u),n.parse(h)}}()}),Object.assign(qr.prototype,{load:function(e,t,r,n){var i=this,o=this.texturePath&&"string"==typeof this.texturePath?this.texturePath:Hr.prototype.extractUrlBase(e),s=new fr(this.manager);s.setWithCredentials(this.withCredentials),s.load(e,function(r){var n=(r=JSON.parse(r)).metadata;if(void 0!==n&&void 0!==(n=n.type)){if("object"===n.toLowerCase())return void console.error("THREE.JSONLoader: "+e+" should be loaded with THREE.ObjectLoader instead.");if("scene"===n.toLowerCase())return void console.error("THREE.JSONLoader: "+e+" should be loaded with THREE.SceneLoader instead.")}r=i.parse(r,o),t(r.geometry,r.materials)},r,n)},setTexturePath:function(e){this.texturePath=e},parse:function(e,t){void 0!==e.data&&(e=e.data),e.scale=void 0!==e.scale?1/e.scale:1;var n,i,s,a=new ae,u=e,h=u.faces,l=u.vertices,p=u.normals,f=u.colors,d=u.scale,m=0;if(void 0!==u.uvs){for(n=0;n<u.uvs.length;n++)u.uvs[n].length&&m++;for(n=0;n<m;n++)a.faceVertexUvs[n]=[]}var v=0;for(s=l.length;v<s;)n=new o,n.x=l[v++]*d,n.y=l[v++]*d,n.z=l[v++]*d,a.vertices.push(n);for(v=0,s=h.length;v<s;){var g=1&(l=h[v++]),y=2&l;n=8&l;var b=16&l,_=32&l;if(d=64&l,l&=128,g){(g=new se).a=h[v],g.b=h[v+1],g.c=h[v+3];var x=new se;if(x.a=h[v+1],x.b=h[v+2],x.c=h[v+3],v+=4,y&&(y=h[v++],g.materialIndex=y,x.materialIndex=y),y=a.faces.length,n)for(n=0;n<m;n++){var w=u.uvs[n];for(a.faceVertexUvs[n][y]=[],a.faceVertexUvs[n][y+1]=[],i=0;4>i;i++){var S=h[v++],M=w[2*S];M=new r(M,S=w[2*S+1]),2!==i&&a.faceVertexUvs[n][y].push(M),0!==i&&a.faceVertexUvs[n][y+1].push(M)}}if(b&&(b=3*h[v++],g.normal.set(p[b++],p[b++],p[b]),x.normal.copy(g.normal)),_)for(n=0;4>n;n++)b=3*h[v++],_=new o(p[b++],p[b++],p[b]),2!==n&&g.vertexNormals.push(_),0!==n&&x.vertexNormals.push(_);if(d&&(d=h[v++],d=f[d],g.color.setHex(d),x.color.setHex(d)),l)for(n=0;4>n;n++)d=h[v++],d=f[d],2!==n&&g.vertexColors.push(new z(d)),0!==n&&x.vertexColors.push(new z(d));a.faces.push(g),a.faces.push(x)}else{if(g=new se,g.a=h[v++],g.b=h[v++],g.c=h[v++],y&&(y=h[v++],g.materialIndex=y),y=a.faces.length,n)for(n=0;n<m;n++)for(w=u.uvs[n],a.faceVertexUvs[n][y]=[],i=0;3>i;i++)S=h[v++],M=w[2*S],S=w[2*S+1],M=new r(M,S),a.faceVertexUvs[n][y].push(M);if(b&&(b=3*h[v++],g.normal.set(p[b++],p[b++],p[b])),_)for(n=0;3>n;n++)b=3*h[v++],_=new o(p[b++],p[b++],p[b]),g.vertexNormals.push(_);if(d&&(d=h[v++],g.color.setHex(f[d])),l)for(n=0;3>n;n++)d=h[v++],g.vertexColors.push(new z(f[d]));a.faces.push(g)}}if(u=e,v=void 0!==u.influencesPerVertex?u.influencesPerVertex:2,u.skinWeights)for(s=0,h=u.skinWeights.length;s<h;s+=v)a.skinWeights.push(new c(u.skinWeights[s],1<v?u.skinWeights[s+1]:0,2<v?u.skinWeights[s+2]:0,3<v?u.skinWeights[s+3]:0));if(u.skinIndices)for(s=0,h=u.skinIndices.length;s<h;s+=v)a.skinIndices.push(new c(u.skinIndices[s],1<v?u.skinIndices[s+1]:0,2<v?u.skinIndices[s+2]:0,3<v?u.skinIndices[s+3]:0));if(a.bones=u.bones,a.bones&&0<a.bones.length&&(a.skinWeights.length!==a.skinIndices.length||a.skinIndices.length!==a.vertices.length)&&console.warn("When skinning, number of vertices ("+a.vertices.length+"), skinIndices ("+a.skinIndices.length+"), and skinWeights ("+a.skinWeights.length+") should match."),s=e,h=s.scale,void 0!==s.morphTargets)for(u=0,v=s.morphTargets.length;u<v;u++)for(a.morphTargets[u]={},a.morphTargets[u].name=s.morphTargets[u].name,a.morphTargets[u].vertices=[],p=a.morphTargets[u].vertices,f=s.morphTargets[u].vertices,m=0,l=f.length;m<l;m+=3)d=new o,d.x=f[m]*h,d.y=f[m+1]*h,d.z=f[m+2]*h,p.push(d);if(void 0!==s.morphColors&&0<s.morphColors.length)for(console.warn('THREE.JSONLoader: "morphColors" no longer supported. Using them as face colors.'),h=a.faces,s=s.morphColors[0].colors,u=0,v=h.length;u<v;u++)h[u].color.fromArray(s,3*u);for(u=[],v=[],void 0!==(s=e).animation&&v.push(s.animation),void 0!==s.animations&&(s.animations.length?v=v.concat(s.animations):v.push(s.animations)),s=0;s<v.length;s++)(h=zr.parseAnimation(v[s],a.bones))&&u.push(h);return a.morphTargets&&(v=zr.CreateClipsFromMorphTargetSequences(a.morphTargets,10),u=u.concat(v)),0<u.length&&(a.animations=u),a.computeFaceNormals(),a.computeBoundingSphere(),void 0===e.materials||0===e.materials.length?{geometry:a}:(e=Hr.prototype.initMaterials(e.materials,t,this.crossOrigin),{geometry:a,materials:e})}}),Object.assign(Wr.prototype,{load:function(e,t,r,n){""===this.texturePath&&(this.texturePath=e.substring(0,e.lastIndexOf("/")+1));var i=this;new fr(i.manager).load(e,function(r){var o=null;try{o=JSON.parse(r)}catch(t){return void 0!==n&&n(t),void console.error("THREE:ObjectLoader: Can't parse "+e+".",t.message)}void 0===(r=o.metadata)||void 0===r.type||"geometry"===r.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+e+". Use THREE.JSONLoader instead."):i.parse(o,t)},r,n)},setTexturePath:function(e){this.texturePath=e},setCrossOrigin:function(e){this.crossOrigin=e},parse:function(e,t){var r=this.parseGeometries(e.geometries),n=this.parseImages(e.images,function(){void 0!==t&&t(i)}),n=this.parseTextures(e.textures,n),n=this.parseMaterials(e.materials,n),i=this.parseObject(e.object,r,n);return e.animations&&(i.animations=this.parseAnimations(e.animations)),void 0!==e.images&&0!==e.images.length||void 0===t||t(i),i},parseGeometries:function(e){var t={};if(void 0!==e)for(var r=new qr,n=new Vr,i=0,o=e.length;i<o;i++){var s=e[i];switch(s.type){case"PlaneGeometry":case"PlaneBufferGeometry":var a=new Oi[s.type](s.width,s.height,s.widthSegments,s.heightSegments);break;case"BoxGeometry":case"BoxBufferGeometry":case"CubeGeometry":a=new Oi[s.type](s.width,s.height,s.depth,s.widthSegments,s.heightSegments,s.depthSegments);break;case"CircleGeometry":case"CircleBufferGeometry":a=new Oi[s.type](s.radius,s.segments,s.thetaStart,s.thetaLength);break;case"CylinderGeometry":case"CylinderBufferGeometry":a=new Oi[s.type](s.radiusTop,s.radiusBottom,s.height,s.radialSegments,s.heightSegments,s.openEnded,s.thetaStart,s.thetaLength);break;case"ConeGeometry":case"ConeBufferGeometry":a=new Oi[s.type](s.radius,s.height,s.radialSegments,s.heightSegments,s.openEnded,s.thetaStart,s.thetaLength);break;case"SphereGeometry":case"SphereBufferGeometry":a=new Oi[s.type](s.radius,s.widthSegments,s.heightSegments,s.phiStart,s.phiLength,s.thetaStart,s.thetaLength);break;case"DodecahedronGeometry":case"DodecahedronBufferGeometry":case"IcosahedronGeometry":case"IcosahedronBufferGeometry":case"OctahedronGeometry":case"OctahedronBufferGeometry":case"TetrahedronGeometry":case"TetrahedronBufferGeometry":a=new Oi[s.type](s.radius,s.detail);break;case"RingGeometry":case"RingBufferGeometry":a=new Oi[s.type](s.innerRadius,s.outerRadius,s.thetaSegments,s.phiSegments,s.thetaStart,s.thetaLength);break;case"TorusGeometry":case"TorusBufferGeometry":a=new Oi[s.type](s.radius,s.tube,s.radialSegments,s.tubularSegments,s.arc);break;case"TorusKnotGeometry":case"TorusKnotBufferGeometry":a=new Oi[s.type](s.radius,s.tube,s.tubularSegments,s.radialSegments,s.p,s.q);break;case"LatheGeometry":case"LatheBufferGeometry":a=new Oi[s.type](s.points,s.segments,s.phiStart,s.phiLength);break;case"PolyhedronGeometry":case"PolyhedronBufferGeometry":a=new Oi[s.type](s.vertices,s.indices,s.radius,s.details);break;case"BufferGeometry":a=n.parse(s);break;case"Geometry":a=r.parse(s,this.texturePath).geometry;break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+s.type+'"');continue}a.uuid=s.uuid,void 0!==s.name&&(a.name=s.name),t[s.uuid]=a}return t},parseMaterials:function(e,t){var r={};if(void 0!==e){var n=new Gr;n.setTextures(t),t=0;for(var i=e.length;t<i;t++){var o=e[t];if("MultiMaterial"===o.type){for(var s=[],a=0;a<o.materials.length;a++)s.push(n.parse(o.materials[a]));r[o.uuid]=s}else r[o.uuid]=n.parse(o)}}return r},parseAnimations:function(e){for(var t=[],r=0;r<e.length;r++){var n=zr.parse(e[r]);t.push(n)}return t},parseImages:function(e,t){function r(e){return n.manager.itemStart(e),o.load(e,function(){n.manager.itemEnd(e)},void 0,function(){n.manager.itemEnd(e),n.manager.itemError(e)})}var n=this,i={};if(void 0!==e&&0<e.length){var o=new vr(t=new pr(t));o.setCrossOrigin(this.crossOrigin),t=0;for(var s=e.length;t<s;t++){var a=e[t],c=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(a.url)?a.url:n.texturePath+a.url;i[a.uuid]=r(c)}}return i},parseTextures:function(e,t){function r(e,t){return"number"==typeof e?e:(console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",e),t[e])}var n={};if(void 0!==e)for(var i=0,o=e.length;i<o;i++){var s=e[i];void 0===s.image&&console.warn('THREE.ObjectLoader: No "image" specified for',s.uuid),void 0===t[s.image]&&console.warn("THREE.ObjectLoader: Undefined image",s.image);var c=new a(t[s.image]);c.needsUpdate=!0,c.uuid=s.uuid,void 0!==s.name&&(c.name=s.name),void 0!==s.mapping&&(c.mapping=r(s.mapping,Di)),void 0!==s.offset&&c.offset.fromArray(s.offset),void 0!==s.repeat&&c.repeat.fromArray(s.repeat),void 0!==s.center&&c.center.fromArray(s.center),void 0!==s.rotation&&(c.rotation=s.rotation),void 0!==s.wrap&&(c.wrapS=r(s.wrap[0],ki),c.wrapT=r(s.wrap[1],ki)),void 0!==s.minFilter&&(c.minFilter=r(s.minFilter,Bi)),void 0!==s.magFilter&&(c.magFilter=r(s.magFilter,Bi)),void 0!==s.anisotropy&&(c.anisotropy=s.anisotropy),void 0!==s.flipY&&(c.flipY=s.flipY),n[s.uuid]=c}return n},parseObject:function(){var e=new n;return function(t,r,n){function i(e){return void 0===r[e]&&console.warn("THREE.ObjectLoader: Undefined geometry",e),r[e]}function o(e){if(void 0!==e){if(Array.isArray(e)){for(var t=[],r=0,i=e.length;r<i;r++){var o=e[r];void 0===n[o]&&console.warn("THREE.ObjectLoader: Undefined material",o),t.push(n[o])}return t}return void 0===n[e]&&console.warn("THREE.ObjectLoader: Undefined material",e),n[e]}}switch(t.type){case"Scene":var s=new tt;void 0!==t.background&&Number.isInteger(t.background)&&(s.background=new z(t.background)),void 0!==t.fog&&("Fog"===t.fog.type?s.fog=new et(t.fog.color,t.fog.near,t.fog.far):"FogExp2"===t.fog.type&&(s.fog=new Qe(t.fog.color,t.fog.density)));break;case"PerspectiveCamera":s=new We(t.fov,t.aspect,t.near,t.far),void 0!==t.focus&&(s.focus=t.focus),void 0!==t.zoom&&(s.zoom=t.zoom),void 0!==t.filmGauge&&(s.filmGauge=t.filmGauge),void 0!==t.filmOffset&&(s.filmOffset=t.filmOffset),void 0!==t.view&&(s.view=Object.assign({},t.view));break;case"OrthographicCamera":s=new oe(t.left,t.right,t.top,t.bottom,t.near,t.far);break;case"AmbientLight":s=new Tr(t.color,t.intensity);break;case"DirectionalLight":s=new Cr(t.color,t.intensity);break;case"PointLight":s=new Mr(t.color,t.intensity,t.distance,t.decay);break;case"RectAreaLight":s=new Or(t.color,t.intensity,t.width,t.height);break;case"SpotLight":s=new Sr(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);break;case"HemisphereLight":s=new _r(t.color,t.groundColor,t.intensity);break;case"SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case"Mesh":s=i(t.geometry);a=o(t.material);s=s.bones&&0<s.bones.length?new ct(s,a):new Ae(s,a);break;case"LOD":s=new ot;break;case"Line":s=new ht(i(t.geometry),o(t.material),t.mode);break;case"LineLoop":s=new pt(i(t.geometry),o(t.material));break;case"LineSegments":s=new lt(i(t.geometry),o(t.material));break;case"PointCloud":case"Points":s=new dt(i(t.geometry),o(t.material));break;case"Sprite":s=new it(o(t.material));break;case"Group":s=new mt;break;default:s=new ne}if(s.uuid=t.uuid,void 0!==t.name&&(s.name=t.name),void 0!==t.matrix?(e.fromArray(t.matrix),e.decompose(s.position,s.quaternion,s.scale)):(void 0!==t.position&&s.position.fromArray(t.position),void 0!==t.rotation&&s.rotation.fromArray(t.rotation),void 0!==t.quaternion&&s.quaternion.fromArray(t.quaternion),void 0!==t.scale&&s.scale.fromArray(t.scale)),void 0!==t.castShadow&&(s.castShadow=t.castShadow),void 0!==t.receiveShadow&&(s.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(s.shadow.bias=t.shadow.bias),void 0!==t.shadow.radius&&(s.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&s.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(s.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(s.visible=t.visible),void 0!==t.userData&&(s.userData=t.userData),void 0!==t.children)for(var a=t.children,c=0;c<a.length;c++)s.add(this.parseObject(a[c],r,n));if("LOD"===t.type)for(t=t.levels,a=0;a<t.length;a++){var c=t[a],u=s.getObjectByProperty("uuid",c.object);void 0!==u&&s.addLevel(u,c.distance)}return s}}()});var Di={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},ki={RepeatWrapping:1e3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},Bi={NearestFilter:1003,NearestMipMapNearestFilter:1004,NearestMipMapLinearFilter:1005,LinearFilter:1006,LinearMipMapNearestFilter:1007,LinearMipMapLinearFilter:1008};Object.assign(Zr.prototype,{getPoint:function(){return console.warn("THREE.Curve: .getPoint() not implemented."),null},getPointAt:function(e,t){return e=this.getUtoTmapping(e),this.getPoint(e,t)},getPoints:function(e){void 0===e&&(e=5);for(var t=[],r=0;r<=e;r++)t.push(this.getPoint(r/e));return t},getSpacedPoints:function(e){void 0===e&&(e=5);for(var t=[],r=0;r<=e;r++)t.push(this.getPointAt(r/e));return t},getLength:function(){var e=this.getLengths();return e[e.length-1]},getLengths:function(e){if(void 0===e&&(e=this.arcLengthDivisions),this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var t,r=[],n=this.getPoint(0),i=0;for(r.push(0),t=1;t<=e;t++){var o=this.getPoint(t/e);i+=o.distanceTo(n),r.push(i),n=o}return this.cacheArcLengths=r},updateArcLengths:function(){this.needsUpdate=!0,this.getLengths()},getUtoTmapping:function(e,t){var r=this.getLengths(),n=r.length;t=t||e*r[n-1];for(var i,o=0,s=n-1;o<=s;)if(e=Math.floor(o+(s-o)/2),0>(i=r[e]-t))o=e+1;else{if(!(0<i)){s=e;break}s=e-1}return e=s,r[e]===t?e/(n-1):(o=r[e],(e+(t-o)/(r[e+1]-o))/(n-1))},getTangent:function(e){var t=e-1e-4;return e+=1e-4,0>t&&(t=0),1<e&&(e=1),t=this.getPoint(t),this.getPoint(e).clone().sub(t).normalize()},getTangentAt:function(e){return e=this.getUtoTmapping(e),this.getTangent(e)},computeFrenetFrames:function(e,t){var r,i=new o,s=[],a=[],c=[],u=new o,h=new n;for(r=0;r<=e;r++){var l=r/e;s[r]=this.getTangentAt(l),s[r].normalize()}a[0]=new o,c[0]=new o,r=Number.MAX_VALUE,l=Math.abs(s[0].x);var p=Math.abs(s[0].y),f=Math.abs(s[0].z);for(l<=r&&(r=l,i.set(1,0,0)),p<=r&&(r=p,i.set(0,1,0)),f<=r&&i.set(0,0,1),u.crossVectors(s[0],i).normalize(),a[0].crossVectors(s[0],u),c[0].crossVectors(s[0],a[0]),r=1;r<=e;r++)a[r]=a[r-1].clone(),c[r]=c[r-1].clone(),u.crossVectors(s[r-1],s[r]),u.length()>Number.EPSILON&&(u.normalize(),i=Math.acos(ci.clamp(s[r-1].dot(s[r]),-1,1)),a[r].applyMatrix4(h.makeRotationAxis(u,i))),c[r].crossVectors(s[r],a[r]);if(!0===t)for(i=Math.acos(ci.clamp(a[0].dot(a[e]),-1,1)),i/=e,0<s[0].dot(u.crossVectors(a[0],a[e]))&&(i=-i),r=1;r<=e;r++)a[r].applyMatrix4(h.makeRotationAxis(s[r],i*r)),c[r].crossVectors(s[r],a[r]);return{tangents:s,normals:a,binormals:c}},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}),(Jr.prototype=Object.create(Zr.prototype)).constructor=Jr,Jr.prototype.isLineCurve=!0,Jr.prototype.getPoint=function(e,t){return t=t||new r,1===e?t.copy(this.v2):(t.copy(this.v2).sub(this.v1),t.multiplyScalar(e).add(this.v1)),t},Jr.prototype.getPointAt=function(e,t){return this.getPoint(e,t)},Jr.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()},Jr.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v1.copy(e.v1),this.v2.copy(e.v2),this},Qr.prototype=Object.assign(Object.create(Zr.prototype),{constructor:Qr,add:function(e){this.curves.push(e)},closePath:function(){var e=this.curves[0].getPoint(0),t=this.curves[this.curves.length-1].getPoint(1);e.equals(t)||this.curves.push(new Jr(t,e))},getPoint:function(e){var t=e*this.getLength(),r=this.getCurveLengths();for(e=0;e<r.length;){if(r[e]>=t)return t=r[e]-t,e=this.curves[e],r=e.getLength(),e.getPointAt(0===r?0:1-t/r);e++}return null},getLength:function(){var e=this.getCurveLengths();return e[e.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var e=[],t=0,r=0,n=this.curves.length;r<n;r++)t+=this.curves[r].getLength(),e.push(t);return this.cacheLengths=e},getSpacedPoints:function(e){void 0===e&&(e=40);for(var t=[],r=0;r<=e;r++)t.push(this.getPoint(r/e));return this.autoClose&&t.push(t[0]),t},getPoints:function(e){e=e||12;for(var t,r=[],n=0,i=this.curves;n<i.length;n++)for(var o=i[n],o=o.getPoints(o&&o.isEllipseCurve?2*e:o&&o.isLineCurve?1:o&&o.isSplineCurve?e*o.points.length:e),s=0;s<o.length;s++){var a=o[s];t&&t.equals(a)||(r.push(a),t=a)}return this.autoClose&&1<r.length&&!r[r.length-1].equals(r[0])&&r.push(r[0]),r},copy:function(e){Zr.prototype.copy.call(this,e),this.curves=[];for(var t=0,r=e.curves.length;t<r;t++)this.curves.push(e.curves[t].clone());return this.autoClose=e.autoClose,this}}),(en.prototype=Object.create(Zr.prototype)).constructor=en,en.prototype.isEllipseCurve=!0,en.prototype.getPoint=function(e,t){t=t||new r;for(var n=2*Math.PI,i=this.aEndAngle-this.aStartAngle,o=Math.abs(i)<Number.EPSILON;0>i;)i+=n;for(;i>n;)i-=n;i<Number.EPSILON&&(i=o?0:n),!0!==this.aClockwise||o||(i=i===n?-n:i-n),n=this.aStartAngle+e*i,e=this.aX+this.xRadius*Math.cos(n);var s=this.aY+this.yRadius*Math.sin(n);return 0!==this.aRotation&&(n=Math.cos(this.aRotation),i=Math.sin(this.aRotation),o=e-this.aX,s-=this.aY,e=o*n-s*i+this.aX,s=o*i+s*n+this.aY),t.set(e,s)},en.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this},(tn.prototype=Object.create(Zr.prototype)).constructor=tn,tn.prototype.isSplineCurve=!0,tn.prototype.getPoint=function(e,t){t=t||new r;var n=(n=((a=this.points).length-1)*e)-(e=Math.floor(n)),i=a[0===e?e:e-1],o=a[e],s=a[e>a.length-2?a.length-1:e+1],a=a[e>a.length-3?a.length-1:e+2];return t.set(Xr(n,i.x,o.x,s.x,a.x),Xr(n,i.y,o.y,s.y,a.y)),t},tn.prototype.copy=function(e){Zr.prototype.copy.call(this,e),this.points=[];for(var t=0,r=e.points.length;t<r;t++)this.points.push(e.points[t].clone());return this},(rn.prototype=Object.create(Zr.prototype)).constructor=rn,rn.prototype.isCubicBezierCurve=!0,rn.prototype.getPoint=function(e,t){t=t||new r;var n=this.v0,i=this.v1,o=this.v2,s=this.v3;return t.set(Kr(e,n.x,i.x,o.x,s.x),Kr(e,n.y,i.y,o.y,s.y)),t},rn.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this},(nn.prototype=Object.create(Zr.prototype)).constructor=nn,nn.prototype.isQuadraticBezierCurve=!0,nn.prototype.getPoint=function(e,t){t=t||new r;var n=this.v0,i=this.v1,o=this.v2;return t.set(Yr(e,n.x,i.x,o.x),Yr(e,n.y,i.y,o.y)),t},nn.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this};var Fi=Object.assign(Object.create(Qr.prototype),{setFromPoints:function(e){this.moveTo(e[0].x,e[0].y);for(var t=1,r=e.length;t<r;t++)this.lineTo(e[t].x,e[t].y)},moveTo:function(e,t){this.currentPoint.set(e,t)},lineTo:function(e,t){var n=new Jr(this.currentPoint.clone(),new r(e,t));this.curves.push(n),this.currentPoint.set(e,t)},quadraticCurveTo:function(e,t,n,i){e=new nn(this.currentPoint.clone(),new r(e,t),new r(n,i)),this.curves.push(e),this.currentPoint.set(n,i)},bezierCurveTo:function(e,t,n,i,o,s){e=new rn(this.currentPoint.clone(),new r(e,t),new r(n,i),new r(o,s)),this.curves.push(e),this.currentPoint.set(o,s)},splineThru:function(e){var t=new tn(t=[this.currentPoint.clone()].concat(e));this.curves.push(t),this.currentPoint.copy(e[e.length-1])},arc:function(e,t,r,n,i,o){this.absarc(e+this.currentPoint.x,t+this.currentPoint.y,r,n,i,o)},absarc:function(e,t,r,n,i,o){this.absellipse(e,t,r,r,n,i,o)},ellipse:function(e,t,r,n,i,o,s,a){this.absellipse(e+this.currentPoint.x,t+this.currentPoint.y,r,n,i,o,s,a)},absellipse:function(e,t,r,n,i,o,s,a){e=new en(e,t,r,n,i,o,s,a),0<this.curves.length&&((t=e.getPoint(0)).equals(this.currentPoint)||this.lineTo(t.x,t.y)),this.curves.push(e),e=e.getPoint(1),this.currentPoint.copy(e)},copy:function(e){return Qr.prototype.copy.call(this,e),this.currentPoint.copy(e.currentPoint),this}});on.prototype=Fi,Fi.constructor=on,sn.prototype=Object.assign(Object.create(Fi),{constructor:sn,getPointsHoles:function(e){for(var t=[],r=0,n=this.holes.length;r<n;r++)t[r]=this.holes[r].getPoints(e);return t},extractPoints:function(e){return{shape:this.getPoints(e),holes:this.getPointsHoles(e)}},copy:function(e){on.prototype.copy.call(this,e),this.holes=[];for(var t=0,r=e.holes.length;t<r;t++)this.holes.push(e.holes[t].clone());return this}}),Object.assign(an.prototype,{moveTo:function(e,t){this.currentPath=new on,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t)},lineTo:function(e,t){this.currentPath.lineTo(e,t)},quadraticCurveTo:function(e,t,r,n){this.currentPath.quadraticCurveTo(e,t,r,n)},bezierCurveTo:function(e,t,r,n,i,o){this.currentPath.bezierCurveTo(e,t,r,n,i,o)},splineThru:function(e){this.currentPath.splineThru(e)},toShapes:function(e,t){function r(e){for(var t=[],r=0,n=e.length;r<n;r++){var i=e[r],o=new sn;o.curves=i.curves,t.push(o)}return t}function n(e,t){for(var r=t.length,n=!1,i=r-1,o=0;o<r;i=o++){var s=t[i],a=t[o],c=a.x-s.x,u=a.y-s.y;if(Math.abs(u)>Number.EPSILON){if(0>u&&(s=t[o],c=-c,a=t[i],u=-u),!(e.y<s.y||e.y>a.y))if(e.y===s.y){if(e.x===s.x)return!0}else{if(0==(i=u*(e.x-s.x)-c*(e.y-s.y)))return!0;0>i||(n=!n)}}else if(e.y===s.y&&(a.x<=e.x&&e.x<=s.x||s.x<=e.x&&e.x<=a.x))return!0}return n}var i=Ti.isClockWise,o=this.subPaths;if(0===o.length)return[];if(!0===t)return r(o);if(t=[],1===o.length){var s=o[0],a=new sn;return a.curves=s.curves,t.push(a),t}var c=!i(o[0].getPoints()),c=e?!c:c;a=[];var u=[],h=[],l=0;u[l]=void 0,h[l]=[];for(var p=0,f=o.length;p<f;p++){var d=(s=o[p]).getPoints(),m=i(d);(m=e?!m:m)?(!c&&u[l]&&l++,u[l]={s:new sn,p:d},u[l].s.curves=s.curves,c&&l++,h[l]=[]):h[l].push({h:s,p:d[0]})}if(!u[0])return r(o);if(1<u.length){for(p=!1,e=[],i=0,o=u.length;i<o;i++)a[i]=[];for(i=0,o=u.length;i<o;i++)for(s=h[i],m=0;m<s.length;m++){for(c=s[m],l=!0,d=0;d<u.length;d++)n(c.p,u[d].p)&&(i!==d&&e.push({froms:i,tos:d,hole:m}),l?(l=!1,a[d].push(c)):p=!0);l&&a[i].push(c)}0<e.length&&(p||(h=a))}for(p=0,i=u.length;p<i;p++)for(a=u[p].s,t.push(a),e=h[p],o=0,s=e.length;o<s;o++)a.holes.push(e[o].h);return t}}),Object.assign(cn.prototype,{isFont:!0,generateShapes:function(e,t,r){void 0===t&&(t=100),void 0===r&&(r=4);var n=this.data;e=String(e).split("");var i=t/n.resolution,o=(n.boundingBox.yMax-n.boundingBox.yMin+n.underlineThickness)*i,s=0,a=0;t=[];for(var c=0;c<e.length;c++){var u=e[c];if("\n"===u)s=0,a-=o;else{var h,l=i,p=s,f=a;if(u=n.glyphs[u]||n.glyphs["?"]){var d=new an,m=[];if(u.o)for(var v=u._cachedOutline||(u._cachedOutline=u.o.split(" ")),g=0,y=v.length;g<y;)switch(v[g++]){case"m":var b=v[g++]*l+p,_=v[g++]*l+f;d.moveTo(b,_);break;case"l":b=v[g++]*l+p,_=v[g++]*l+f,d.lineTo(b,_);break;case"q":var x=v[g++]*l+p,w=v[g++]*l+f,S=v[g++]*l+p,M=v[g++]*l+f;if(d.quadraticCurveTo(S,M,x,w),h=m[m.length-1]){var E=h.x;h=h.y;for(var C=1;C<=r;C++){var T=C/r;Yr(T,E,S,x),Yr(T,h,M,w)}}break;case"b":if(x=v[g++]*l+p,w=v[g++]*l+f,S=v[g++]*l+p,M=v[g++]*l+f,b=v[g++]*l+p,_=v[g++]*l+f,d.bezierCurveTo(S,M,b,_,x,w),h=m[m.length-1])for(E=h.x,h=h.y,C=1;C<=r;C++)T=C/r,Kr(T,E,S,b,x),Kr(T,h,M,_,w)}l={offsetX:u.ha*l,path:d}}else l=void 0;s+=l.offsetX,t.push(l.path)}}for(r=[],n=0,e=t.length;n<e;n++)Array.prototype.push.apply(r,t[n].toShapes());return r}}),Object.assign(un.prototype,{load:function(e,t,r,n){var i=this,o=new fr(this.manager);o.setPath(this.path),o.load(e,function(e){try{var r=JSON.parse(e)}catch(t){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),r=JSON.parse(e.substring(65,e.length-2))}e=i.parse(r),t&&t(e)},r,n)},parse:function(e){return new cn(e)},setPath:function(e){return this.path=e,this}});var Ui,$i={getContext:function(){return void 0===Ui&&(Ui=new(window.AudioContext||window.webkitAudioContext)),Ui},setContext:function(e){Ui=e}};Object.assign(hn.prototype,{load:function(e,t,r,n){var i=new fr(this.manager);i.setResponseType("arraybuffer"),i.load(e,function(e){$i.getContext().decodeAudioData(e,function(e){t(e)})},r,n)}}),Object.assign(ln.prototype,{update:function(){var e,t,r,i,o,s,a,c,u=new n,h=new n;return function(n){if(e!==this||t!==n.focus||r!==n.fov||i!==n.aspect*this.aspect||o!==n.near||s!==n.far||a!==n.zoom||c!==this.eyeSep){e=this,t=n.focus,r=n.fov,i=n.aspect*this.aspect,o=n.near,s=n.far,a=n.zoom;var l=n.projectionMatrix.clone(),p=(c=this.eyeSep/2)*o/t,f=o*Math.tan(ci.DEG2RAD*r*.5)/a;h.elements[12]=-c,u.elements[12]=c;var d=-f*i+p,m=f*i+p;l.elements[0]=2*o/(m-d),l.elements[8]=(m+d)/(m-d),this.cameraL.projectionMatrix.copy(l),d=-f*i-p,m=f*i-p,l.elements[0]=2*o/(m-d),l.elements[8]=(m+d)/(m-d),this.cameraR.projectionMatrix.copy(l)}this.cameraL.matrixWorld.copy(n.matrixWorld).multiply(h),this.cameraR.matrixWorld.copy(n.matrixWorld).multiply(u)}}()}),(pn.prototype=Object.create(ne.prototype)).constructor=pn,fn.prototype=Object.assign(Object.create(ne.prototype),{constructor:fn,getInput:function(){return this.gain},removeFilter:function(){null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null)},getFilter:function(){return this.filter},setFilter:function(e){null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination)},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(e){this.gain.gain.value=e},updateMatrixWorld:function(){var e=new o,t=new i,r=new o,n=new o;return function(i){ne.prototype.updateMatrixWorld.call(this,i),i=this.context.listener;var o=this.up;this.matrixWorld.decompose(e,t,r),n.set(0,0,-1).applyQuaternion(t),i.positionX?(i.positionX.setValueAtTime(e.x,this.context.currentTime),i.positionY.setValueAtTime(e.y,this.context.currentTime),i.positionZ.setValueAtTime(e.z,this.context.currentTime),i.forwardX.setValueAtTime(n.x,this.context.currentTime),i.forwardY.setValueAtTime(n.y,this.context.currentTime),i.forwardZ.setValueAtTime(n.z,this.context.currentTime),i.upX.setValueAtTime(o.x,this.context.currentTime),i.upY.setValueAtTime(o.y,this.context.currentTime),i.upZ.setValueAtTime(o.z,this.context.currentTime)):(i.setPosition(e.x,e.y,e.z),i.setOrientation(n.x,n.y,n.z,o.x,o.y,o.z))}}()}),dn.prototype=Object.assign(Object.create(ne.prototype),{constructor:dn,getOutput:function(){return this.gain},setNodeSource:function(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this},setBuffer:function(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this},play:function(){if(!0===this.isPlaying)console.warn("THREE.Audio: Audio is already playing.");else{if(!1!==this.hasPlaybackControl){var e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.onended=this.onEnded.bind(this),e.playbackRate.setValueAtTime(this.playbackRate,this.startTime),this.startTime=this.context.currentTime,e.start(this.startTime,this.offset),this.isPlaying=!0,this.source=e,this.connect()}console.warn("THREE.Audio: this Audio has no playback control.")}},pause:function(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this.source.stop(),this.offset+=(this.context.currentTime-this.startTime)*this.playbackRate,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")},stop:function(){if(!1!==this.hasPlaybackControl)return this.source.stop(),this.offset=0,this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")},connect:function(){if(0<this.filters.length){this.source.connect(this.filters[0]);for(var e=1,t=this.filters.length;e<t;e++)this.filters[e-1].connect(this.filters[e]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(0<this.filters.length){this.source.disconnect(this.filters[0]);for(var e=1,t=this.filters.length;e<t;e++)this.filters[e-1].disconnect(this.filters[e]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},setFilters:function(e){return e||(e=[]),!0===this.isPlaying?(this.disconnect(),this.filters=e,this.connect()):this.filters=e,this},getFilter:function(){return this.getFilters()[0]},setFilter:function(e){return this.setFilters(e?[e]:[])},setPlaybackRate:function(e){if(!1!==this.hasPlaybackControl)return this.playbackRate=e,!0===this.isPlaying&&this.source.playbackRate.setValueAtTime(this.playbackRate,this.context.currentTime),this;console.warn("THREE.Audio: this Audio has no playback control.")},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(e){if(!1!==this.hasPlaybackControl)return this.loop=e,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn("THREE.Audio: this Audio has no playback control.")},getVolume:function(){return this.gain.gain.value},setVolume:function(e){return this.gain.gain.value=e,this}}),mn.prototype=Object.assign(Object.create(dn.prototype),{constructor:mn,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},setRefDistance:function(e){this.panner.refDistance=e},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(e){this.panner.rolloffFactor=e},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(e){this.panner.distanceModel=e},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(e){this.panner.maxDistance=e},updateMatrixWorld:function(){var e=new o;return function(t){ne.prototype.updateMatrixWorld.call(this,t),e.setFromMatrixPosition(this.matrixWorld),this.panner.setPosition(e.x,e.y,e.z)}}()}),Object.assign(vn.prototype,{getFrequencyData:function(){return this.analyser.getByteFrequencyData(this.data),this.data},getAverageFrequency:function(){for(var e=0,t=this.getFrequencyData(),r=0;r<t.length;r++)e+=t[r];return e/t.length}}),Object.assign(gn.prototype,{accumulate:function(e,t){var r=this.buffer,n=this.valueSize;e=e*n+n;var i=this.cumulativeWeight;if(0===i){for(i=0;i!==n;++i)r[e+i]=r[i];i=t}else i+=t,this._mixBufferRegion(r,e,0,t/i,n);this.cumulativeWeight=i},apply:function(e){var t=this.valueSize,r=this.buffer;e=e*t+t;var n=this.cumulativeWeight,i=this.binding;this.cumulativeWeight=0,1>n&&this._mixBufferRegion(r,e,3*t,1-n,t);for(var n=t,o=t+t;n!==o;++n)if(r[n]!==r[n+t]){i.setValue(r,e);break}},saveOriginalState:function(){var e=this.buffer,t=this.valueSize,r=3*t;this.binding.getValue(e,r);for(var n=t;n!==r;++n)e[n]=e[r+n%t];this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(e,t,r,n,i){if(.5<=n)for(n=0;n!==i;++n)e[t+n]=e[r+n]},_slerp:function(e,t,r,n){i.slerpFlat(e,t,e,t,e,r,n)},_lerp:function(e,t,r,n,i){for(var o=1-n,s=0;s!==i;++s){var a=t+s;e[a]=e[a]*o+e[r+s]*n}}}),Object.assign(yn.prototype,{getValue:function(e,t){this.bind();var r=this._bindings[this._targetGroup.nCachedObjects_];void 0!==r&&r.getValue(e,t)},setValue:function(e,t){for(var r=this._bindings,n=this._targetGroup.nCachedObjects_,i=r.length;n!==i;++n)r[n].setValue(e,t)},bind:function(){for(var e=this._bindings,t=this._targetGroup.nCachedObjects_,r=e.length;t!==r;++t)e[t].bind()},unbind:function(){for(var e=this._bindings,t=this._targetGroup.nCachedObjects_,r=e.length;t!==r;++t)e[t].unbind()}}),Object.assign(bn,{Composite:yn,create:function(e,t,r){return e&&e.isAnimationObjectGroup?new bn.Composite(e,t,r):new bn(e,t,r)},sanitizeNodeName:function(e){return e.replace(/\s/g,"_").replace(/[^\w-]/g,"")},parseTrackName:function(){var e=new RegExp("^"+/((?:[\w-]+[\/:])*)/.source+/([\w-\.]+)?/.source+/(?:\.([\w-]+)(?:\[(.+)\])?)?/.source+/\.([\w-]+)(?:\[(.+)\])?/.source+"$"),t=["material","materials","bones"];return function(r){n=e.exec(r);if(!n)throw Error("PropertyBinding: Cannot parse trackName: "+r);var n,i=(n={nodeName:n[2],objectName:n[3],objectIndex:n[4],propertyName:n[5],propertyIndex:n[6]}).nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){var o=n.nodeName.substring(i+1);-1!==t.indexOf(o)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=o)}if(null===n.propertyName||0===n.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+r);return n}}(),findNode:function(e,t){if(!t||""===t||"root"===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){var r=function(e){for(var r=0;r<e.bones.length;r++){var n=e.bones[r];if(n.name===t)return n}return null}(e.skeleton);if(r)return r}if(e.children){var n=function(e){for(var r=0;r<e.length;r++){var i=e[r];if(i.name===t||i.uuid===t||(i=n(i.children)))return i}return null};if(e=n(e.children))return e}return null}}),Object.assign(bn.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(e,t){e[t]=this.node[this.propertyName]},function(e,t){for(var r=this.resolvedProperty,n=0,i=r.length;n!==i;++n)e[t++]=r[n]},function(e,t){e[t]=this.resolvedProperty[this.propertyIndex]},function(e,t){this.resolvedProperty.toArray(e,t)}],SetterByBindingTypeAndVersioning:[[function(e,t){this.targetObject[this.propertyName]=e[t]},function(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.needsUpdate=!0},function(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(e,t){for(var r=this.resolvedProperty,n=0,i=r.length;n!==i;++n)r[n]=e[t++]},function(e,t){for(var r=this.resolvedProperty,n=0,i=r.length;n!==i;++n)r[n]=e[t++];this.targetObject.needsUpdate=!0},function(e,t){for(var r=this.resolvedProperty,n=0,i=r.length;n!==i;++n)r[n]=e[t++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(e,t){this.resolvedProperty[this.propertyIndex]=e[t]},function(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.needsUpdate=!0},function(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(e,t){this.resolvedProperty.fromArray(e,t)},function(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.needsUpdate=!0},function(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function(e,t){this.bind(),this.getValue(e,t)},setValue:function(e,t){this.bind(),this.setValue(e,t)},bind:function(){var e=this.node,t=this.parsedPath,r=t.objectName,n=t.propertyName,i=t.propertyIndex;if(e||(this.node=e=bn.findNode(this.rootNode,t.nodeName)||this.rootNode),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,e){if(r){var o=t.objectIndex;switch(r){case"materials":if(!e.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!e.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);e=e.material.materials;break;case"bones":if(!e.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);for(e=e.skeleton.bones,r=0;r<e.length;r++)if(e[r].name===o){o=r;break}break;default:if(void 0===e[r])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);e=e[r]}if(void 0!==o){if(void 0===e[o])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);e=e[o]}}if(void 0===(o=e[n]))console.error("THREE.PropertyBinding: Trying to update property for track: "+t.nodeName+"."+n+" but it wasn't found.",e);else{if(t=this.Versioning.None,void 0!==e.needsUpdate?(t=this.Versioning.NeedsUpdate,this.targetObject=e):void 0!==e.matrixWorldNeedsUpdate&&(t=this.Versioning.MatrixWorldNeedsUpdate,this.targetObject=e),r=this.BindingType.Direct,void 0!==i){if("morphTargetInfluences"===n){if(!e.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(e.geometry.isBufferGeometry){if(!e.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);for(r=0;r<this.node.geometry.morphAttributes.position.length;r++)if(e.geometry.morphAttributes.position[r].name===i){i=r;break}}else{if(!e.geometry.morphTargets)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.",this);for(r=0;r<this.node.geometry.morphTargets.length;r++)if(e.geometry.morphTargets[r].name===i){i=r;break}}}r=this.BindingType.ArrayElement,this.resolvedProperty=o,this.propertyIndex=i}else void 0!==o.fromArray&&void 0!==o.toArray?(r=this.BindingType.HasFromToArray,this.resolvedProperty=o):Array.isArray(o)?(r=this.BindingType.EntireArray,this.resolvedProperty=o):this.propertyName=n;this.getValue=this.GetterByBindingType[r],this.setValue=this.SetterByBindingTypeAndVersioning[r][t]}}else console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.")},unbind:function(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}),Object.assign(bn.prototype,{_getValue_unbound:bn.prototype.getValue,_setValue_unbound:bn.prototype.setValue}),Object.assign(_n.prototype,{isAnimationObjectGroup:!0,add:function(){for(var e=this._objects,t=e.length,r=this.nCachedObjects_,n=this._indicesByUUID,i=this._paths,o=this._parsedPaths,s=this._bindings,a=s.length,c=0,u=arguments.length;c!==u;++c){var h=arguments[c],l=n[p=h.uuid];if(void 0===l){l=t++,n[p]=l,e.push(h);for(var p=0,f=a;p!==f;++p)s[p].push(new bn(h,i[p],o[p]))}else if(l<r){var d=--r;for(n[(f=e[d]).uuid]=l,e[l]=f,n[p]=d,e[d]=h,p=0,f=a;p!==f;++p){var m=s[p],v=m[l];m[l]=m[d],void 0===v&&(v=new bn(h,i[p],o[p])),m[d]=v}}else void 0!==e[l]&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=r},remove:function(){for(var e=this._objects,t=this.nCachedObjects_,r=this._indicesByUUID,n=this._bindings,i=n.length,o=0,s=arguments.length;o!==s;++o){var a=arguments[o],c=a.uuid,u=r[c];if(void 0!==u&&u>=t){var h=t++,l=e[h];for(r[l.uuid]=u,e[u]=l,r[c]=h,e[h]=a,a=0,c=i;a!==c;++a){var p=(l=n[a])[u];l[u]=l[h],l[h]=p}}}this.nCachedObjects_=t},uncache:function(){for(var e,t,r=this._objects,n=r.length,i=this.nCachedObjects_,o=this._indicesByUUID,s=this._bindings,a=s.length,c=0,u=arguments.length;c!==u;++c){var h=o[t=arguments[c].uuid];if(void 0!==h)if(delete o[t],h<i){var l=--i,p=r[l];e=r[t=--n],o[p.uuid]=h,r[h]=p,o[e.uuid]=l,r[l]=e,r.pop();for(var p=0,f=a;p!==f;++p){var d=(e=s[p])[t];e[h]=e[l],e[l]=d,e.pop()}}else for(t=--n,e=r[t],o[e.uuid]=h,r[h]=e,r.pop(),p=0,f=a;p!==f;++p)e=s[p],e[h]=e[t],e.pop()}this.nCachedObjects_=i},subscribe_:function(e,t){var r=this._bindingsIndicesByPath,n=r[e],i=this._bindings;if(void 0!==n)return i[n];var o=this._paths,s=this._parsedPaths,a=this._objects,c=this.nCachedObjects_,u=Array(a.length),n=i.length;for(r[e]=n,o.push(e),s.push(t),i.push(u),r=c,n=a.length;r!==n;++r)u[r]=new bn(a[r],e,t);return u},unsubscribe_:function(e){var t=this._bindingsIndicesByPath,r=t[e];if(void 0!==r){var n=this._paths,i=this._parsedPaths,o=this._bindings,s=o.length-1,a=o[s];t[e[s]]=r,o[r]=a,o.pop(),i[r]=i[s],i.pop(),n[r]=n[s],n.pop()}}}),Object.assign(xn.prototype,{play:function(){return this._mixer._activateAction(this),this},stop:function(){return this._mixer._deactivateAction(this),this.reset()},reset:function(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()},isRunning:function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(e){return this._startTime=e,this},setLoop:function(e,t){return this.loop=e,this.repetitions=t,this},setEffectiveWeight:function(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(e){return this._scheduleFading(e,0,1)},fadeOut:function(e){return this._scheduleFading(e,1,0)},crossFadeFrom:function(e,t,r){if(e.fadeOut(t),this.fadeIn(t),r){r=this._clip.duration;var n=e._clip.duration,i=r/n;e.warp(1,n/r,t),this.warp(i,1,t)}return this},crossFadeTo:function(e,t,r){return e.crossFadeFrom(this,t,r)},stopFading:function(){var e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this},setEffectiveTimeScale:function(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()},getEffectiveTimeScale:function(){return this._effectiveTimeScale},setDuration:function(e){return this.timeScale=this._clip.duration/e,this.stopWarping()},syncWith:function(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()},halt:function(e){return this.warp(this._effectiveTimeScale,0,e)},warp:function(e,t,r){var n=this._mixer,i=n.time,o=this._timeScaleInterpolant,s=this.timeScale;return null===o&&(this._timeScaleInterpolant=o=n._lendControlInterpolant()),n=o.parameterPositions,o=o.sampleValues,n[0]=i,n[1]=i+r,o[0]=e/s,o[1]=t/s,this},stopWarping:function(){var e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this},getMixer:function(){return this._mixer},getClip:function(){return this._clip},getRoot:function(){return this._localRoot||this._mixer._root},_update:function(e,t,r,n){if(this.enabled){if(null!==(i=this._startTime)){if(0>(t=(e-i)*r)||0===r)return;this._startTime=null,t*=r}if(t*=this._updateTimeScale(e),r=this._updateTime(t),0<(e=this._updateWeight(e))){t=this._interpolants;for(var i=this._propertyBindings,o=0,s=t.length;o!==s;++o)t[o].evaluate(r),i[o].accumulate(n,e)}}else this._updateWeight(e)},_updateWeight:function(e){t=0;if(this.enabled){var t=this.weight,r=this._weightInterpolant;if(null!==r){var n=r.evaluate(e)[0],t=t*n;e>r.parameterPositions[1]&&(this.stopFading(),0===n&&(this.enabled=!1))}}return this._effectiveWeight=t},_updateTimeScale:function(e){t=0;if(!this.paused){var t=this.timeScale,r=this._timeScaleInterpolant;if(null!==r){t=t*r.evaluate(e)[0];e>r.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t},_updateTime:function(e){o=this.time+e;if(0===e)return o;var t=this._clip.duration,r=this.loop,n=this._loopCount;if(2200===r)e:{if(-1===n&&(this._loopCount=0,this._setEndings(!0,!0,!1)),o>=t)o=t;else{if(!(0>o))break e;o=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this._mixer.dispatchEvent({type:"finished",action:this,direction:0>e?-1:1})}else{if(r=2202===r,-1===n&&(0<=e?(n=0,this._setEndings(!0,0===this.repetitions,r)):this._setEndings(0===this.repetitions,!0,r)),o>=t||0>o){var i=Math.floor(o/t),o=o-t*i,n=n+Math.abs(i),s=this.repetitions-n;0>s?(this.clampWhenFinished?this.paused=!0:this.enabled=!1,o=0<e?t:0,this._mixer.dispatchEvent({type:"finished",action:this,direction:0<e?1:-1})):(0===s?(e=0>e,this._setEndings(e,!e,r)):this._setEndings(!1,!1,r),this._loopCount=n,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:i}))}if(r&&1==(1&n))return this.time=o,t-o}return this.time=o},_setEndings:function(e,t,r){var n=this._interpolantSettings;r?(n.endingStart=2401,n.endingEnd=2401):(n.endingStart=e?this.zeroSlopeAtStart?2401:2400:2402,n.endingEnd=t?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(e,t,r){var n=this._mixer,i=n.time,o=this._weightInterpolant;return null===o&&(this._weightInterpolant=o=n._lendControlInterpolant()),n=o.parameterPositions,o=o.sampleValues,n[0]=i,o[0]=t,n[1]=i+e,o[1]=r,this}}),Object.assign(wn.prototype,t.prototype,{_bindAction:function(e,t){var r=e._localRoot||this._root,n=e._clip.tracks,i=n.length,o=e._propertyBindings;e=e._interpolants;var s=r.uuid,a=this._bindingsByRootAndName,c=a[s];for(void 0===c&&(c={},a[s]=c),a=0;a!==i;++a){var u=n[a],h=u.name,l=c[h];if(void 0===l){if(void 0!==(l=o[a])){null===l._cacheIndex&&(++l.referenceCount,this._addInactiveBinding(l,s,h));continue}++(l=new gn(bn.create(r,h,t&&t._propertyBindings[a].binding.parsedPath),u.ValueTypeName,u.getValueSize())).referenceCount,this._addInactiveBinding(l,s,h)}o[a]=l,e[a].resultBuffer=l.buffer}},_activateAction:function(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){var t=(e._localRoot||this._root).uuid,r=e._clip.uuid,n=this._actionsByClip[r];this._bindAction(e,n&&n.knownActions[0]),this._addInactiveAction(e,r,t)}for(r=0,n=(t=e._propertyBindings).length;r!==n;++r){var i=t[r];0==i.useCount++&&(this._lendBinding(i),i.saveOriginalState())}this._lendAction(e)}},_deactivateAction:function(e){if(this._isActiveAction(e)){for(var t=e._propertyBindings,r=0,n=t.length;r!==n;++r){var i=t[r];0==--i.useCount&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(e)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}},_isActiveAction:function(e){return null!==(e=e._cacheIndex)&&e<this._nActiveActions},_addInactiveAction:function(e,t,r){var n=this._actions,i=this._actionsByClip,o=i[t];void 0===o?(o={knownActions:[e],actionByRoot:{}},e._byClipCacheIndex=0,i[t]=o):(t=o.knownActions,e._byClipCacheIndex=t.length,t.push(e)),e._cacheIndex=n.length,n.push(e),o.actionByRoot[r]=e},_removeInactiveAction:function(e){var t=(n=this._actions)[n.length-1],r=e._cacheIndex;t._cacheIndex=r,n[r]=t,n.pop(),e._cacheIndex=null;var n=e._clip.uuid,i=(r=(t=this._actionsByClip)[n]).knownActions,o=i[i.length-1],s=e._byClipCacheIndex;o._byClipCacheIndex=s,i[s]=o,i.pop(),e._byClipCacheIndex=null,delete r.actionByRoot[(e._localRoot||this._root).uuid],0===i.length&&delete t[n],this._removeInactiveBindingsForAction(e)},_removeInactiveBindingsForAction:function(e){for(var t=0,r=(e=e._propertyBindings).length;t!==r;++t){var n=e[t];0==--n.referenceCount&&this._removeInactiveBinding(n)}},_lendAction:function(e){var t=this._actions,r=e._cacheIndex,n=this._nActiveActions++,i=t[n];e._cacheIndex=n,t[n]=e,i._cacheIndex=r,t[r]=i},_takeBackAction:function(e){var t=this._actions,r=e._cacheIndex,n=--this._nActiveActions,i=t[n];e._cacheIndex=n,t[n]=e,i._cacheIndex=r,t[r]=i},_addInactiveBinding:function(e,t,r){var n=this._bindingsByRootAndName,i=n[t],o=this._bindings;void 0===i&&(i={},n[t]=i),i[r]=e,e._cacheIndex=o.length,o.push(e)},_removeInactiveBinding:function(e){var t=this._bindings,r=(n=e.binding).rootNode.uuid,n=n.path,i=this._bindingsByRootAndName,o=i[r],s=t[t.length-1];e=e._cacheIndex,s._cacheIndex=e,t[e]=s,t.pop(),delete o[n];e:{for(var a in o)break e;delete i[r]}},_lendBinding:function(e){var t=this._bindings,r=e._cacheIndex,n=this._nActiveBindings++,i=t[n];e._cacheIndex=n,t[n]=e,i._cacheIndex=r,t[r]=i},_takeBackBinding:function(e){var t=this._bindings,r=e._cacheIndex,n=--this._nActiveBindings,i=t[n];e._cacheIndex=n,t[n]=e,i._cacheIndex=r,t[r]=i},_lendControlInterpolant:function(){var e=this._controlInterpolants,t=this._nActiveControlInterpolants++,r=e[t];return void 0===r&&(r=new Rr(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),r.__cacheIndex=t,e[t]=r),r},_takeBackControlInterpolant:function(e){var t=this._controlInterpolants,r=e.__cacheIndex,n=--this._nActiveControlInterpolants,i=t[n];e.__cacheIndex=n,t[n]=e,i.__cacheIndex=r,t[r]=i},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(e,t){var r=t||this._root,n=r.uuid;e=null!==(r="string"==typeof e?zr.findByName(r,e):e)?r.uuid:e;var i=this._actionsByClip[e],o=null;if(void 0!==i){if(void 0!==(o=i.actionByRoot[n]))return o;o=i.knownActions[0],null===r&&(r=o._clip)}return null===r?null:(t=new xn(this,r,t),this._bindAction(t,o),this._addInactiveAction(t,e,n),t)},existingAction:function(e,t){var r=t||this._root;return t=r.uuid,r="string"==typeof e?zr.findByName(r,e):e,void 0!==(e=this._actionsByClip[r?r.uuid:e])?e.actionByRoot[t]||null:null},stopAllAction:function(){for(var e=this._actions,t=this._nActiveActions,r=this._bindings,n=this._nActiveBindings,i=this._nActiveBindings=this._nActiveActions=0;i!==t;++i)e[i].reset();for(i=0;i!==n;++i)r[i].useCount=0;return this},update:function(e){e*=this.timeScale;for(var t=this._actions,r=this._nActiveActions,n=this.time+=e,i=Math.sign(e),o=this._accuIndex^=1,s=0;s!==r;++s)t[s]._update(n,e,i,o);for(e=this._bindings,t=this._nActiveBindings,s=0;s!==t;++s)e[s].apply(o);return this},getRoot:function(){return this._root},uncacheClip:function(e){var t=this._actions;e=e.uuid;var r=this._actionsByClip,n=r[e];if(void 0!==n){for(var i=0,o=(n=n.knownActions).length;i!==o;++i){var s=n[i];this._deactivateAction(s);var a=s._cacheIndex,c=t[t.length-1];s._cacheIndex=null,s._byClipCacheIndex=null,c._cacheIndex=a,t[a]=c,t.pop(),this._removeInactiveBindingsForAction(s)}delete r[e]}},uncacheRoot:function(e){e=e.uuid;var t=this._actionsByClip;for(n in t){var r=t[n].actionByRoot[e];void 0!==r&&(this._deactivateAction(r),this._removeInactiveAction(r))}var n=this._bindingsByRootAndName[e];if(void 0!==n)for(var i in n)(e=n[i]).restoreOriginalState(),this._removeInactiveBinding(e)},uncacheAction:function(e,t){null!==(e=this.existingAction(e,t))&&(this._deactivateAction(e),this._removeInactiveAction(e))}}),Sn.prototype.clone=function(){return new Sn(void 0===this.value.clone?this.value:this.value.clone())},Mn.prototype=Object.assign(Object.create(_e.prototype),{constructor:Mn,isInstancedBufferGeometry:!0,copy:function(e){return _e.prototype.copy.call(this,e),this.maxInstancedCount=e.maxInstancedCount,this},clone:function(){return(new this.constructor).copy(this)}}),Object.defineProperties(En.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}}),Object.assign(En.prototype,{isInterleavedBufferAttribute:!0,setX:function(e,t){return this.data.array[e*this.data.stride+this.offset]=t,this},setY:function(e,t){return this.data.array[e*this.data.stride+this.offset+1]=t,this},setZ:function(e,t){return this.data.array[e*this.data.stride+this.offset+2]=t,this},setW:function(e,t){return this.data.array[e*this.data.stride+this.offset+3]=t,this},getX:function(e){return this.data.array[e*this.data.stride+this.offset]},getY:function(e){return this.data.array[e*this.data.stride+this.offset+1]},getZ:function(e){return this.data.array[e*this.data.stride+this.offset+2]},getW:function(e){return this.data.array[e*this.data.stride+this.offset+3]},setXY:function(e,t,r){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=r,this},setXYZ:function(e,t,r,n){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=r,this.data.array[e+2]=n,this},setXYZW:function(e,t,r,n,i){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=r,this.data.array[e+2]=n,this.data.array[e+3]=i,this}}),Object.defineProperty(Cn.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}}),Object.assign(Cn.prototype,{isInterleavedBuffer:!0,setArray:function(e){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.count=void 0!==e?e.length/this.stride:0,this.array=e},setDynamic:function(e){return this.dynamic=e,this},copy:function(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.dynamic=e.dynamic,this},copyAt:function(e,t,r){e*=this.stride,r*=t.stride;for(var n=0,i=this.stride;n<i;n++)this.array[e+n]=t.array[r+n];return this},set:function(e,t){return void 0===t&&(t=0),this.array.set(e,t),this},clone:function(){return(new this.constructor).copy(this)},onUpload:function(e){return this.onUploadCallback=e,this}}),Tn.prototype=Object.assign(Object.create(Cn.prototype),{constructor:Tn,isInstancedInterleavedBuffer:!0,copy:function(e){return Cn.prototype.copy.call(this,e),this.meshPerAttribute=e.meshPerAttribute,this}}),On.prototype=Object.assign(Object.create(ce.prototype),{constructor:On,isInstancedBufferAttribute:!0,copy:function(e){return ce.prototype.copy.call(this,e),this.meshPerAttribute=e.meshPerAttribute,this}}),Object.assign(Pn.prototype,{linePrecision:1,set:function(e,t){this.ray.set(e,t)},setFromCamera:function(e,t){t&&t.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(t.matrixWorld),this.ray.direction.set(e.x,e.y,.5).unproject(t).sub(this.ray.origin).normalize()):t&&t.isOrthographicCamera?(this.ray.origin.set(e.x,e.y,(t.near+t.far)/(t.near-t.far)).unproject(t),this.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld)):console.error("THREE.Raycaster: Unsupported camera type.")},intersectObject:function(e,t){var r=[];return Rn(e,this,r,t),r.sort(An),r},intersectObjects:function(e,t){var r=[];if(!1===Array.isArray(e))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),r;for(var n=0,i=e.length;n<i;n++)Rn(e[n],this,r,t);return r.sort(An),r}}),Object.assign(jn.prototype,{start:function(){this.oldTime=this.startTime=("undefined"==typeof performance?Date:performance).now(),this.elapsedTime=0,this.running=!0},stop:function(){this.getElapsedTime(),this.autoStart=this.running=!1},getElapsedTime:function(){return this.getDelta(),this.elapsedTime},getDelta:function(){t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var e=("undefined"==typeof performance?Date:performance).now(),t=(e-this.oldTime)/1e3;this.oldTime=e,this.elapsedTime+=t}return t}}),Object.assign(Ln.prototype,{set:function(e,t,r){return this.radius=e,this.phi=t,this.theta=r,this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this},makeSafe:function(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this},setFromVector3:function(e){return this.radius=e.length(),0===this.radius?this.phi=this.theta=0:(this.theta=Math.atan2(e.x,e.z),this.phi=Math.acos(ci.clamp(e.y/this.radius,-1,1))),this}}),Object.assign(Nn.prototype,{set:function(e,t,r){return this.radius=e,this.theta=t,this.y=r,this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.radius=e.radius,this.theta=e.theta,this.y=e.y,this},setFromVector3:function(e){return this.radius=Math.sqrt(e.x*e.x+e.z*e.z),this.theta=Math.atan2(e.x,e.z),this.y=e.y,this}}),(In.prototype=Object.create(ne.prototype)).constructor=In,In.prototype.isImmediateRenderObject=!0,(Dn.prototype=Object.create(lt.prototype)).constructor=Dn,Dn.prototype.update=function(){var e=new o,t=new o,r=new s;return function(){var n,i=["a","b","c"];this.object.updateMatrixWorld(!0),r.getNormalMatrix(this.object.matrixWorld);var o=this.object.matrixWorld,s=this.geometry.attributes.position;if((n=this.object.geometry)&&n.isGeometry)for(var a=n.vertices,c=n.faces,u=n=0,h=c.length;u<h;u++)for(var l=c[u],p=0,f=l.vertexNormals.length;p<f;p++){var d=l.vertexNormals[p];e.copy(a[l[i[p]]]).applyMatrix4(o),t.copy(d).applyMatrix3(r).normalize().multiplyScalar(this.size).add(e),s.setXYZ(n,e.x,e.y,e.z),n+=1,s.setXYZ(n,t.x,t.y,t.z),n+=1}else if(n&&n.isBufferGeometry)for(i=n.attributes.position,a=n.attributes.normal,p=n=0,f=i.count;p<f;p++)e.set(i.getX(p),i.getY(p),i.getZ(p)).applyMatrix4(o),t.set(a.getX(p),a.getY(p),a.getZ(p)),t.applyMatrix3(r).normalize().multiplyScalar(this.size).add(e),s.setXYZ(n,e.x,e.y,e.z),n+=1,s.setXYZ(n,t.x,t.y,t.z),n+=1;s.needsUpdate=!0}}(),(kn.prototype=Object.create(ne.prototype)).constructor=kn,kn.prototype.dispose=function(){this.cone.geometry.dispose(),this.cone.material.dispose()},kn.prototype.update=function(){var e=new o,t=new o;return function(){this.light.updateMatrixWorld();var r=this.light.distance?this.light.distance:1e3,n=r*Math.tan(this.light.angle);this.cone.scale.set(n,n,r),e.setFromMatrixPosition(this.light.matrixWorld),t.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(t.sub(e)),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}(),(Fn.prototype=Object.create(lt.prototype)).constructor=Fn,Fn.prototype.updateMatrixWorld=function(){var e=new o,t=new n,r=new n;return function(n){var i=this.bones,o=this.geometry,s=o.getAttribute("position");r.getInverse(this.root.matrixWorld);for(var a=0,c=0;a<i.length;a++){var u=i[a];u.parent&&u.parent.isBone&&(t.multiplyMatrices(r,u.matrixWorld),e.setFromMatrixPosition(t),s.setXYZ(c,e.x,e.y,e.z),t.multiplyMatrices(r,u.parent.matrixWorld),e.setFromMatrixPosition(t),s.setXYZ(c+1,e.x,e.y,e.z),c+=2)}o.getAttribute("position").needsUpdate=!0,ne.prototype.updateMatrixWorld.call(this,n)}}(),(Un.prototype=Object.create(Ae.prototype)).constructor=Un,Un.prototype.dispose=function(){this.geometry.dispose(),this.material.dispose()},Un.prototype.update=function(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)},($n.prototype=Object.create(ne.prototype)).constructor=$n,$n.prototype.dispose=function(){this.children[0].geometry.dispose(),this.children[0].material.dispose()},$n.prototype.update=function(){var e=.5*this.light.width,t=.5*this.light.height,r=this.line.geometry.attributes.position,n=r.array;n[0]=e,n[1]=-t,n[2]=0,n[3]=e,n[4]=t,n[5]=0,n[6]=-e,n[7]=t,n[8]=0,n[9]=-e,n[10]=-t,n[11]=0,n[12]=e,n[13]=-t,n[14]=0,r.needsUpdate=!0,void 0!==this.color?this.line.material.color.set(this.color):this.line.material.color.copy(this.light.color)},(zn.prototype=Object.create(ne.prototype)).constructor=zn,zn.prototype.dispose=function(){this.children[0].geometry.dispose(),this.children[0].material.dispose()},zn.prototype.update=function(){var e=new o,t=new z,r=new z;return function(){var n=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var i=n.geometry.getAttribute("color");t.copy(this.light.color),r.copy(this.light.groundColor);for(var o=0,s=i.count;o<s;o++){var a=o<s/2?t:r;i.setXYZ(o,a.r,a.g,a.b)}i.needsUpdate=!0}n.lookAt(e.setFromMatrixPosition(this.light.matrixWorld).negate())}}(),(Gn.prototype=Object.create(lt.prototype)).constructor=Gn,(Vn.prototype=Object.create(lt.prototype)).constructor=Vn,(Hn.prototype=Object.create(lt.prototype)).constructor=Hn,Hn.prototype.update=function(){var e=new o,t=new o,r=new s;return function(){this.object.updateMatrixWorld(!0),r.getNormalMatrix(this.object.matrixWorld);for(var n=this.object.matrixWorld,i=this.geometry.attributes.position,o=this.object.geometry,s=o.vertices,a=0,c=0,u=(o=o.faces).length;c<u;c++){var h=o[c],l=h.normal;e.copy(s[h.a]).add(s[h.b]).add(s[h.c]).divideScalar(3).applyMatrix4(n),t.copy(l).applyMatrix3(r).normalize().multiplyScalar(this.size).add(e),i.setXYZ(a,e.x,e.y,e.z),a+=1,i.setXYZ(a,t.x,t.y,t.z),a+=1}i.needsUpdate=!0}}(),(qn.prototype=Object.create(ne.prototype)).constructor=qn,qn.prototype.dispose=function(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()},qn.prototype.update=function(){var e=new o,t=new o,r=new o;return function(){e.setFromMatrixPosition(this.light.matrixWorld),t.setFromMatrixPosition(this.light.target.matrixWorld),r.subVectors(t,e),this.lightPlane.lookAt(r),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(r),this.targetLine.scale.z=r.length()}}(),(Wn.prototype=Object.create(lt.prototype)).constructor=Wn,Wn.prototype.update=function(){function e(e,o,s,a){if(n.set(o,s,a).unproject(i),void 0!==(e=r[e]))for(o=t.getAttribute("position"),s=0,a=e.length;s<a;s++)o.setXYZ(e[s],n.x,n.y,n.z)}var t,r,n=new o,i=new ie;return function(){t=this.geometry,r=this.pointMap,i.projectionMatrix.copy(this.camera.projectionMatrix),e("c",0,0,-1),e("t",0,0,1),e("n1",-1,-1,-1),e("n2",1,-1,-1),e("n3",-1,1,-1),e("n4",1,1,-1),e("f1",-1,-1,1),e("f2",1,-1,1),e("f3",-1,1,1),e("f4",1,1,1),e("u1",.7,1.1,-1),e("u2",-.7,1.1,-1),e("u3",0,2,-1),e("cf1",-1,0,1),e("cf2",1,0,1),e("cf3",0,-1,1),e("cf4",0,1,1),e("cn1",-1,0,-1),e("cn2",1,0,-1),e("cn3",0,-1,-1),e("cn4",0,1,-1),t.getAttribute("position").needsUpdate=!0}}(),(Xn.prototype=Object.create(lt.prototype)).constructor=Xn,Xn.prototype.update=function(){var e=new K;return function(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&e.setFromObject(this.object),!e.isEmpty()){t=e.min;var r=e.max,n=this.geometry.attributes.position,i=n.array;i[0]=r.x,i[1]=r.y,i[2]=r.z,i[3]=t.x,i[4]=r.y,i[5]=r.z,i[6]=t.x,i[7]=t.y,i[8]=r.z,i[9]=r.x,i[10]=t.y,i[11]=r.z,i[12]=r.x,i[13]=r.y,i[14]=t.z,i[15]=t.x,i[16]=r.y,i[17]=t.z,i[18]=t.x,i[19]=t.y,i[20]=t.z,i[21]=r.x,i[22]=t.y,i[23]=t.z,n.needsUpdate=!0,this.geometry.computeBoundingSphere()}}}(),Xn.prototype.setFromObject=function(e){return this.object=e,this.update(),this},(Yn.prototype=Object.create(lt.prototype)).constructor=Yn,Yn.prototype.updateMatrixWorld=function(e){var t=this.box;t.isEmpty()||(t.getCenter(this.position),t.getSize(this.scale),this.scale.multiplyScalar(.5),ne.prototype.updateMatrixWorld.call(this,e))},(Kn.prototype=Object.create(ht.prototype)).constructor=Kn,Kn.prototype.updateMatrixWorld=function(e){var t=-this.plane.constant;1e-8>Math.abs(t)&&(t=1e-8),this.scale.set(.5*this.size,.5*this.size,t),this.lookAt(this.plane.normal),ne.prototype.updateMatrixWorld.call(this,e)};var zi,Gi;(Zn.prototype=Object.create(ne.prototype)).constructor=Zn,Zn.prototype.setDirection=function(){var e,t=new o;return function(r){.99999<r.y?this.quaternion.set(0,0,0,1):-.99999>r.y?this.quaternion.set(1,0,0,0):(t.set(r.z,0,-r.x).normalize(),e=Math.acos(r.y),this.quaternion.setFromAxisAngle(t,e))}}(),Zn.prototype.setLength=function(e,t,r){void 0===t&&(t=.2*e),void 0===r&&(r=.2*t),this.line.scale.set(1,Math.max(0,e-t),1),this.line.updateMatrix(),this.cone.scale.set(r,t,r),this.cone.position.y=e,this.cone.updateMatrix()},Zn.prototype.setColor=function(e){this.line.material.color.copy(e),this.cone.material.color.copy(e)},(Jn.prototype=Object.create(lt.prototype)).constructor=Jn;var Vi=new o,Hi=new Qn,qi=new Qn,Wi=new Qn;(ei.prototype=Object.create(Zr.prototype)).constructor=ei,ei.prototype.isCatmullRomCurve3=!0,ei.prototype.getPoint=function(e,t){t=t||new o;var r=this.points;e*=(c=r.length)-(this.closed?0:1);if(e-=u=Math.floor(e),this.closed?u+=0<u?0:(Math.floor(Math.abs(u)/r.length)+1)*r.length:0===e&&u===c-1&&(u=c-2,e=1),this.closed||0<u)var n=r[(u-1)%c];else Vi.subVectors(r[0],r[1]).add(r[0]),n=Vi;var i=r[u%c],s=r[(u+1)%c];if(this.closed||u+2<c?r=r[(u+2)%c]:(Vi.subVectors(r[c-1],r[c-2]).add(r[c-1]),r=Vi),"centripetal"===this.curveType||"chordal"===this.curveType){var a="chordal"===this.curveType?.5:.25,c=Math.pow(n.distanceToSquared(i),a),u=Math.pow(i.distanceToSquared(s),a),a=Math.pow(s.distanceToSquared(r),a);1e-4>u&&(u=1),1e-4>c&&(c=u),1e-4>a&&(a=u),Hi.initNonuniformCatmullRom(n.x,i.x,s.x,r.x,c,u,a),qi.initNonuniformCatmullRom(n.y,i.y,s.y,r.y,c,u,a),Wi.initNonuniformCatmullRom(n.z,i.z,s.z,r.z,c,u,a)}else"catmullrom"===this.curveType&&(Hi.initCatmullRom(n.x,i.x,s.x,r.x,this.tension),qi.initCatmullRom(n.y,i.y,s.y,r.y,this.tension),Wi.initCatmullRom(n.z,i.z,s.z,r.z,this.tension));return t.set(Hi.calc(e),qi.calc(e),Wi.calc(e)),t},ei.prototype.copy=function(e){Zr.prototype.copy.call(this,e),this.points=[];for(var t=0,r=e.points.length;t<r;t++)this.points.push(e.points[t].clone());return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this},(ti.prototype=Object.create(Zr.prototype)).constructor=ti,ti.prototype.isCubicBezierCurve3=!0,ti.prototype.getPoint=function(e,t){t=t||new o;var r=this.v0,n=this.v1,i=this.v2,s=this.v3;return t.set(Kr(e,r.x,n.x,i.x,s.x),Kr(e,r.y,n.y,i.y,s.y),Kr(e,r.z,n.z,i.z,s.z)),t},ti.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this},(ri.prototype=Object.create(Zr.prototype)).constructor=ri,ri.prototype.isQuadraticBezierCurve3=!0,ri.prototype.getPoint=function(e,t){t=t||new o;var r=this.v0,n=this.v1,i=this.v2;return t.set(Yr(e,r.x,n.x,i.x),Yr(e,r.y,n.y,i.y),Yr(e,r.z,n.z,i.z)),t},ri.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this},(ni.prototype=Object.create(Zr.prototype)).constructor=ni,ni.prototype.isLineCurve3=!0,ni.prototype.getPoint=function(e,t){return t=t||new o,1===e?t.copy(this.v2):(t.copy(this.v2).sub(this.v1),t.multiplyScalar(e).add(this.v1)),t},ni.prototype.getPointAt=function(e,t){return this.getPoint(e,t)},ni.prototype.copy=function(e){return Zr.prototype.copy.call(this,e),this.v1.copy(e.v1),this.v2.copy(e.v2),this},(ii.prototype=Object.create(en.prototype)).constructor=ii,ii.prototype.isArcCurve=!0,Zr.create=function(e,t){return console.log("THREE.Curve.create() has been deprecated"),e.prototype=Object.create(Zr.prototype),e.prototype.constructor=e,e.prototype.getPoint=t,e},Object.assign(Qr.prototype,{createPointsGeometry:function(e){return console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead."),e=this.getPoints(e),this.createGeometry(e)},createSpacedPointsGeometry:function(e){return console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead."),e=this.getSpacedPoints(e),this.createGeometry(e)},createGeometry:function(e){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var t=new ae,r=0,n=e.length;r<n;r++){var i=e[r];t.vertices.push(new o(i.x,i.y,i.z||0))}return t}}),Object.assign(on.prototype,{fromPoints:function(e){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(e)}}),oi.prototype=Object.create(ei.prototype),si.prototype=Object.create(ei.prototype),ai.prototype=Object.create(ei.prototype),Object.assign(ai.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}}),Gn.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},Fn.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")},Object.assign(G.prototype,{center:function(e){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(e)},empty:function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(e){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},size:function(e){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(e)}}),Object.assign(K.prototype,{center:function(e){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(e)},empty:function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(e){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},isIntersectionSphere:function(e){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(e)},size:function(e){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(e)}}),Oe.prototype.center=function(e){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(e)},Object.assign(ci,{random16:function(){return console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead."),Math.random()},nearestPowerOfTwo:function(e){return console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo()."),ci.floorPowerOfTwo(e)},nextPowerOfTwo:function(e){return console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo()."),ci.ceilPowerOfTwo(e)}}),Object.assign(s.prototype,{flattenToArrayOffset:function(e,t){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(e,t)},multiplyVector3:function(e){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),e.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBuffer:function(e){return console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(e)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}}),Object.assign(n.prototype,{extractPosition:function(e){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(e)},flattenToArrayOffset:function(e,t){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(e,t)},getPosition:function(){var e;return function(){return void 0===e&&(e=new o),console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),e.setFromMatrixColumn(this,3)}}(),setRotationFromQuaternion:function(e){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(e)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(e){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},multiplyVector4:function(e){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(e){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),e.transformDirection(this)},crossVector:function(e){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBuffer:function(e){return console.warn("THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(e)},applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(e,t,r,n,i,o){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(e,t,n,r,i,o)}}),J.prototype.isIntersectionLine=function(e){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(e)},i.prototype.multiplyVector3=function(e){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),e.applyQuaternion(this)},Object.assign(Te.prototype,{isIntersectionBox:function(e){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},isIntersectionPlane:function(e){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(e)},isIntersectionSphere:function(e){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(e)}}),Object.assign(sn.prototype,{extractAllPoints:function(e){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(e)},extrude:function(e){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new Bt(this,e)},makeGeometry:function(e){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new Xt(this,e)}}),Object.assign(r.prototype,{fromAttribute:function(e,t,r){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,r)},distanceToManhattan:function(e){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(e)},lengthManhattan:function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(o.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(e){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(e)},getScaleFromMatrix:function(e){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(e)},getColumnFromMatrix:function(e,t){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(t,e)},applyProjection:function(e){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(e)},fromAttribute:function(e,t,r){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,r)},distanceToManhattan:function(e){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(e)},lengthManhattan:function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(c.prototype,{fromAttribute:function(e,t,r){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,r)},lengthManhattan:function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),ae.prototype.computeTangents=function(){console.warn("THREE.Geometry: .computeTangents() has been removed.")},Object.assign(ne.prototype,{getChildByName:function(e){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(e)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(e,t){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(t,e)}}),Object.defineProperties(ne.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(e){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=e}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),Object.defineProperties(ot.prototype,{objects:{get:function(){return console.warn("THREE.LOD: .objects has been renamed to .levels."),this.levels}}}),Object.defineProperty(st.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}}),Object.defineProperty(Zr.prototype,"__arcLengthDivisions",{get:function(){return console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions},set:function(e){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions=e}}),We.prototype.setLens=function(e,t){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==t&&(this.filmGauge=t),this.setFocalLength(e)},Object.defineProperties(br.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(e){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=e}},shadowCameraLeft:{set:function(e){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=e}},shadowCameraRight:{set:function(e){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=e}},shadowCameraTop:{set:function(e){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=e}},shadowCameraBottom:{set:function(e){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=e}},shadowCameraNear:{set:function(e){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=e}},shadowCameraFar:{set:function(e){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=e}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(e){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=e}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(e){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=e}},shadowMapHeight:{set:function(e){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=e}}}),Object.defineProperties(ce.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}}}),Object.assign(_e.prototype,{addIndex:function(e){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(e)},addDrawCall:function(e,t,r){void 0!==r&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(e,t)},clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},computeTangents:function(){console.warn("THREE.BufferGeometry: .computeTangents() has been removed.")},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")}}),Object.defineProperties(_e.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),Object.defineProperties(Sn.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this}}}),Object.defineProperties(W.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new z}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(e){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===e}}}),Object.defineProperties(ar.prototype,{metal:{get:function(){return console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead."),!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}}),Object.defineProperties(Ce.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(e){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=e}}}),Object.assign(Je.prototype,{getCurrentRenderTarget:function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},getMaxAnisotropy:function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},getPrecision:function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},resetGLState:function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},supportsFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},supportsCompressedTexturePVRTC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},supportsInstancedArrays:function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(e){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(e)},initMaterial:function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},addPostPlugin:function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")}}),Object.defineProperties(Je.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(e){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=e}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(e){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=e}},shadowMapCullFace:{get:function(){return this.shadowMap.cullFace},set:function(e){console.warn("THREE.WebGLRenderer: .shadowMapCullFace is now .shadowMap.cullFace."),this.shadowMap.cullFace=e}}}),Object.defineProperties(ee.prototype,{cullFace:{get:function(){return this.renderReverseSided?2:1},set:function(e){e=1!==e,console.warn("WebGLRenderer: .shadowMap.cullFace is deprecated. Set .shadowMap.renderReverseSided to "+e+"."),this.renderReverseSided=e}}}),Object.defineProperties(u.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(e){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=e}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(e){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=e}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(e){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=e}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(e){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=e}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(e){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=e}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(e){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=e}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(e){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=e}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(e){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=e}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(e){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=e}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(e){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=e}}}),dn.prototype.load=function(e){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var t=this;return(new hn).load(e,function(e){t.setBuffer(e)}),this},vn.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},pn.prototype.updateCubeMap=function(e,t){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(e,t)},e.WebGLRenderTargetCube=h,e.WebGLRenderTarget=u,e.WebGLRenderer=Je,e.ShaderLib=xi,e.UniformsLib=yi,e.UniformsUtils=bi,e.ShaderChunk=_i,e.FogExp2=Qe,e.Fog=et,e.Scene=tt,e.LensFlare=rt,e.Sprite=it,e.LOD=ot,e.SkinnedMesh=ct,e.Skeleton=st,e.Bone=at,e.Mesh=Ae,e.LineSegments=lt,e.LineLoop=pt,e.Line=ht,e.Points=dt,e.Group=mt,e.VideoTexture=vt,e.DataTexture=l,e.CompressedTexture=gt,e.CubeTexture=p,e.CanvasTexture=H,e.DepthTexture=yt,e.Texture=a,e.CompressedTextureLoader=dr,e.DataTextureLoader=mr,e.CubeTextureLoader=gr,e.TextureLoader=yr,e.ObjectLoader=Wr,e.MaterialLoader=Gr,e.BufferGeometryLoader=Vr,e.DefaultLoadingManager=Ri,e.LoadingManager=pr,e.JSONLoader=qr,e.ImageLoader=vr,e.FontLoader=un,e.FileLoader=fr,e.Loader=Hr,e.Cache=Ai,e.AudioLoader=hn,e.SpotLightShadow=wr,e.SpotLight=Sr,e.PointLight=Mr,e.RectAreaLight=Or,e.HemisphereLight=_r,e.DirectionalLightShadow=Er,e.DirectionalLight=Cr,e.AmbientLight=Tr,e.LightShadow=xr,e.Light=br,e.StereoCamera=ln,e.PerspectiveCamera=We,e.OrthographicCamera=oe,e.CubeCamera=pn,e.ArrayCamera=Xe,e.Camera=ie,e.AudioListener=fn,e.PositionalAudio=mn,e.AudioContext=$i,e.AudioAnalyser=vn,e.Audio=dn,e.VectorKeyframeTrack=Nr,e.StringKeyframeTrack=Br,e.QuaternionKeyframeTrack=Dr,e.NumberKeyframeTrack=kr,e.ColorKeyframeTrack=Ur,e.BooleanKeyframeTrack=Fr,e.PropertyMixer=gn,e.PropertyBinding=bn,e.KeyframeTrack=$r,e.AnimationUtils=Li,e.AnimationObjectGroup=_n,e.AnimationMixer=wn,e.AnimationClip=zr,e.Uniform=Sn,e.InstancedBufferGeometry=Mn,e.BufferGeometry=_e,e.Geometry=ae,e.InterleavedBufferAttribute=En,e.InstancedInterleavedBuffer=Tn,e.InterleavedBuffer=Cn,e.InstancedBufferAttribute=On,e.Face3=se,e.Object3D=ne,e.Raycaster=Pn,e.Layers=re,e.EventDispatcher=t,e.Clock=jn,e.QuaternionLinearInterpolant=Ir,e.LinearInterpolant=Rr,e.DiscreteInterpolant=jr,e.CubicInterpolant=Ar,e.Interpolant=Pr,e.Triangle=Pe,e.Math=ci,e.Spherical=Ln,e.Cylindrical=Nn,e.Plane=J,e.Frustum=Q,e.Sphere=Z,e.Ray=Te,e.Matrix4=n,e.Matrix3=s,e.Box3=K,e.Box2=G,e.Line3=Oe,e.Euler=te,e.Vector4=c,e.Vector3=o,e.Vector2=r,e.Quaternion=i,e.Color=z,e.ImmediateRenderObject=In,e.VertexNormalsHelper=Dn,e.SpotLightHelper=kn,e.SkeletonHelper=Fn,e.PointLightHelper=Un,e.RectAreaLightHelper=$n,e.HemisphereLightHelper=zn,e.GridHelper=Gn,e.PolarGridHelper=Vn,e.FaceNormalsHelper=Hn,e.DirectionalLightHelper=qn,e.CameraHelper=Wn,e.BoxHelper=Xn,e.Box3Helper=Yn,e.PlaneHelper=Kn,e.ArrowHelper=Zn,e.AxesHelper=Jn,e.CatmullRomCurve3=ei,e.CubicBezierCurve3=ti,e.QuadraticBezierCurve3=ri,e.LineCurve3=ni,e.ArcCurve=ii,e.EllipseCurve=en,e.SplineCurve=tn,e.CubicBezierCurve=rn,e.QuadraticBezierCurve=nn,e.LineCurve=Jr,e.Shape=sn,e.Path=on,e.ShapePath=an,e.Font=cn,e.CurvePath=Qr,e.Curve=Zr,e.ShapeUtils=Ti,e.SceneUtils={createMultiMaterialObject:function(e,t){for(var r=new mt,n=0,i=t.length;n<i;n++)r.add(new Ae(e,t[n]));return r},detach:function(e,t,r){e.applyMatrix(t.matrixWorld),t.remove(e),r.add(e)},attach:function(e,t,r){e.applyMatrix((new n).getInverse(r.matrixWorld)),t.remove(e),r.add(e)}},e.WebGLUtils=Ze,e.WireframeGeometry=bt,e.ParametricGeometry=_t,e.ParametricBufferGeometry=xt,e.TetrahedronGeometry=Mt,e.TetrahedronBufferGeometry=Et,e.OctahedronGeometry=Ct,e.OctahedronBufferGeometry=Tt,e.IcosahedronGeometry=Ot,e.IcosahedronBufferGeometry=Pt,e.DodecahedronGeometry=At,e.DodecahedronBufferGeometry=Rt,e.PolyhedronGeometry=wt,e.PolyhedronBufferGeometry=St,e.TubeGeometry=jt,e.TubeBufferGeometry=Lt,e.TorusKnotGeometry=Nt,e.TorusKnotBufferGeometry=It,e.TorusGeometry=Dt,e.TorusBufferGeometry=kt,e.TextGeometry=Ut,e.TextBufferGeometry=$t,e.SphereGeometry=zt,e.SphereBufferGeometry=Gt,e.RingGeometry=Vt,e.RingBufferGeometry=Ht,e.PlaneGeometry=Se,e.PlaneBufferGeometry=Me,e.LatheGeometry=qt,e.LatheBufferGeometry=Wt,e.ShapeGeometry=Xt,e.ShapeBufferGeometry=Yt,e.ExtrudeGeometry=Bt,e.ExtrudeBufferGeometry=Ft,e.EdgesGeometry=Kt,e.ConeGeometry=Qt,e.ConeBufferGeometry=er,e.CylinderGeometry=Zt,e.CylinderBufferGeometry=Jt,e.CircleGeometry=tr,e.CircleBufferGeometry=rr,e.BoxGeometry=xe,e.BoxBufferGeometry=we,e.ShadowMaterial=nr,e.SpriteMaterial=nt,e.RawShaderMaterial=ir,e.ShaderMaterial=Ce,e.PointsMaterial=ft,e.MeshPhysicalMaterial=sr,e.MeshStandardMaterial=or,e.MeshPhongMaterial=ar,e.MeshToonMaterial=cr,e.MeshNormalMaterial=ur,e.MeshLambertMaterial=hr,e.MeshDepthMaterial=X,e.MeshDistanceMaterial=Y,e.MeshBasicMaterial=Ee,e.LineDashedMaterial=lr,e.LineBasicMaterial=ut,e.Material=W,e.Float64BufferAttribute=ge,e.Float32BufferAttribute=ve,e.Uint32BufferAttribute=me,e.Int32BufferAttribute=de,e.Uint16BufferAttribute=fe,e.Int16BufferAttribute=pe,e.Uint8ClampedBufferAttribute=le,e.Uint8BufferAttribute=he,e.Int8BufferAttribute=ue,e.BufferAttribute=ce,e.REVISION="88",e.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2},e.CullFaceNone=0,e.CullFaceBack=1,e.CullFaceFront=2,e.CullFaceFrontBack=3,e.FrontFaceDirectionCW=0,e.FrontFaceDirectionCCW=1,e.BasicShadowMap=0,e.PCFShadowMap=1,e.PCFSoftShadowMap=2,e.FrontSide=0,e.BackSide=1,e.DoubleSide=2,e.FlatShading=1,e.SmoothShading=2,e.NoColors=0,e.FaceColors=1,e.VertexColors=2,e.NoBlending=0,e.NormalBlending=1,e.AdditiveBlending=2,e.SubtractiveBlending=3,e.MultiplyBlending=4,e.CustomBlending=5,e.AddEquation=100,e.SubtractEquation=101,e.ReverseSubtractEquation=102,e.MinEquation=103,e.MaxEquation=104,e.ZeroFactor=200,e.OneFactor=201,e.SrcColorFactor=202,e.OneMinusSrcColorFactor=203,e.SrcAlphaFactor=204,e.OneMinusSrcAlphaFactor=205,e.DstAlphaFactor=206,e.OneMinusDstAlphaFactor=207,e.DstColorFactor=208,e.OneMinusDstColorFactor=209,e.SrcAlphaSaturateFactor=210,e.NeverDepth=0,e.AlwaysDepth=1,e.LessDepth=2,e.LessEqualDepth=3,e.EqualDepth=4,e.GreaterEqualDepth=5,e.GreaterDepth=6,e.NotEqualDepth=7,e.MultiplyOperation=0,e.MixOperation=1,e.AddOperation=2,e.NoToneMapping=0,e.LinearToneMapping=1,e.ReinhardToneMapping=2,e.Uncharted2ToneMapping=3,e.CineonToneMapping=4,e.UVMapping=300,e.CubeReflectionMapping=301,e.CubeRefractionMapping=302,e.EquirectangularReflectionMapping=303,e.EquirectangularRefractionMapping=304,e.SphericalReflectionMapping=305,e.CubeUVReflectionMapping=306,e.CubeUVRefractionMapping=307,e.RepeatWrapping=1e3,e.ClampToEdgeWrapping=1001,e.MirroredRepeatWrapping=1002,e.NearestFilter=1003,e.NearestMipMapNearestFilter=1004,e.NearestMipMapLinearFilter=1005,e.LinearFilter=1006,e.LinearMipMapNearestFilter=1007,e.LinearMipMapLinearFilter=1008,e.UnsignedByteType=1009,e.ByteType=1010,e.ShortType=1011,e.UnsignedShortType=1012,e.IntType=1013,e.UnsignedIntType=1014,e.FloatType=1015,e.HalfFloatType=1016,e.UnsignedShort4444Type=1017,e.UnsignedShort5551Type=1018,e.UnsignedShort565Type=1019,e.UnsignedInt248Type=1020,e.AlphaFormat=1021,e.RGBFormat=1022,e.RGBAFormat=1023,e.LuminanceFormat=1024,e.LuminanceAlphaFormat=1025,e.RGBEFormat=1023,e.DepthFormat=1026,e.DepthStencilFormat=1027,e.RGB_S3TC_DXT1_Format=2001,e.RGBA_S3TC_DXT1_Format=2002,e.RGBA_S3TC_DXT3_Format=2003,e.RGBA_S3TC_DXT5_Format=2004,e.RGB_PVRTC_4BPPV1_Format=2100,e.RGB_PVRTC_2BPPV1_Format=2101,e.RGBA_PVRTC_4BPPV1_Format=2102,e.RGBA_PVRTC_2BPPV1_Format=2103,e.RGB_ETC1_Format=2151,e.LoopOnce=2200,e.LoopRepeat=2201,e.LoopPingPong=2202,e.InterpolateDiscrete=2300,e.InterpolateLinear=2301,e.InterpolateSmooth=2302,e.ZeroCurvatureEnding=2400,e.ZeroSlopeEnding=2401,e.WrapAroundEnding=2402,e.TrianglesDrawMode=0,e.TriangleStripDrawMode=1,e.TriangleFanDrawMode=2,e.LinearEncoding=3e3,e.sRGBEncoding=3001,e.GammaEncoding=3007,e.RGBEEncoding=3002,e.LogLuvEncoding=3003,e.RGBM7Encoding=3004,e.RGBM16Encoding=3005,e.RGBDEncoding=3006,e.BasicDepthPacking=3200,e.RGBADepthPacking=3201,e.CubeGeometry=xe,e.Face4=function(e,t,r,n,i,o,s){return console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead."),new se(e,t,r,i,o,s)},e.LineStrip=0,e.LinePieces=1,e.MeshFaceMaterial=function(e){return console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead."),e},e.MultiMaterial=function(e){return void 0===e&&(e=[]),console.warn("THREE.MultiMaterial has been removed. Use an Array instead."),e.isMultiMaterial=!0,e.materials=e,e.clone=function(){return e.slice()},e},e.PointCloud=function(e,t){return console.warn("THREE.PointCloud has been renamed to THREE.Points."),new dt(e,t)},e.Particle=function(e){return console.warn("THREE.Particle has been renamed to THREE.Sprite."),new it(e)},e.ParticleSystem=function(e,t){return console.warn("THREE.ParticleSystem has been renamed to THREE.Points."),new dt(e,t)},e.PointCloudMaterial=function(e){return console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."),new ft(e)},e.ParticleBasicMaterial=function(e){return console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."),new ft(e)},e.ParticleSystemMaterial=function(e){return console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."),new ft(e)},e.Vertex=function(e,t,r){return console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead."),new o(e,t,r)},e.DynamicBufferAttribute=function(e,t){return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead."),new ce(e,t).setDynamic(!0)},e.Int8Attribute=function(e,t){return console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead."),new ue(e,t)},e.Uint8Attribute=function(e,t){return console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead."),new he(e,t)},e.Uint8ClampedAttribute=function(e,t){return console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead."),new le(e,t)},e.Int16Attribute=function(e,t){return console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead."),new pe(e,t)},e.Uint16Attribute=function(e,t){return console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead."),new fe(e,t)},e.Int32Attribute=function(e,t){return console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead."),new de(e,t)},e.Uint32Attribute=function(e,t){return console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead."),new me(e,t)},e.Float32Attribute=function(e,t){return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),new ve(e,t)},e.Float64Attribute=function(e,t){return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),new ge(e,t)},e.ClosedSplineCurve3=oi,e.SplineCurve3=si,e.Spline=ai,e.AxisHelper=function(e){return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),new Jn(e)},e.BoundingBoxHelper=function(e,t){return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),new Xn(e,t)},e.EdgesHelper=function(e,t){return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),new lt(new Kt(e.geometry),new ut({color:void 0!==t?t:16777215}))},e.WireframeHelper=function(e,t){return console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead."),new lt(new bt(e.geometry),new ut({color:void 0!==t?t:16777215}))},e.XHRLoader=function(e){return console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader."),new fr(e)},e.BinaryTextureLoader=function(e){return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),new mr(e)},e.GeometryUtils={merge:function(e,t,r){if(console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead."),t.isMesh){t.matrixAutoUpdate&&t.updateMatrix();var n=t.matrix;t=t.geometry}e.merge(t,n,r)},center:function(e){return console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead."),e.center()}},e.ImageUtils={crossOrigin:void 0,loadTexture:function(e,t,r,n){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");var i=new yr;return i.setCrossOrigin(this.crossOrigin),e=i.load(e,r,void 0,n),t&&(e.mapping=t),e},loadTextureCube:function(e,t,r,n){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");var i=new gr;return i.setCrossOrigin(this.crossOrigin),e=i.load(e,r,void 0,n),t&&(e.mapping=t),e},loadCompressedTexture:function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},loadCompressedTextureCube:function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")}},e.Projector=function(){console.error("THREE.Projector has been moved to /examples/js/renderers/Projector.js."),this.projectVector=function(e,t){console.warn("THREE.Projector: .projectVector() is now vector.project()."),e.project(t)},this.unprojectVector=function(e,t){console.warn("THREE.Projector: .unprojectVector() is now vector.unproject()."),e.unproject(t)},this.pickingRay=function(){console.error("THREE.Projector: .pickingRay() is now raycaster.setFromCamera().")}},e.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js"),this.domElement=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),this.clear=function(){},this.render=function(){},this.setClearColor=function(){},this.setSize=function(){}},Object.defineProperty(e,"__esModule",{value:!0})})},{}],241:[function(e,t,r){"use strict";function n(e,t){if(!(this instanceof n))return new n(e,t);if(this.data=e||[],this.length=this.data.length,this.compare=t||function(e,t){return e<t?-1:e>t?1:0},this.length>0)for(var r=this.length>>1;r>=0;r--)this._down(r)}t.exports=n,n.prototype={push:function(e){this.data.push(e),this.length++,this._up(this.length-1)},pop:function(){if(0!==this.length){var e=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),e}},peek:function(){return this.data[0]},_up:function(e){for(var t=this.data,r=this.compare,n=t[e];e>0;){var i=e-1>>1,o=t[i];if(r(n,o)>=0)break;t[e]=o,e=i}t[e]=n},_down:function(e){for(var t=this.data,r=this.compare,n=this.length,i=n>>1,o=t[e];e<i;){var s=1+(e<<1),a=s+1,c=t[s];if(a<n&&r(t[a],c)<0&&(s=a,c=t[a]),r(c,o)>=0)break;t[e]=c,e=s}t[e]=o}}},{}],242:[function(e,t,r){(function(){function e(e){return function(t,r,n,i){r=x(r,i,4);var o=!O(t)&&_.keys(t),s=(o||t).length,a=e>0?0:s-1;return arguments.length<3&&(n=t[o?o[a]:a],a+=e),function(t,r,n,i,o,s){for(;o>=0&&o<s;o+=e){var a=i?i[o]:o;n=r(n,t[a],a,t)}return n}(t,r,n,o,a,s)}}function n(e){return function(t,r,n){r=w(r,n);for(var i=T(t),o=e>0?0:i-1;o>=0&&o<i;o+=e)if(r(t[o],o,t))return o;return-1}}function i(e,t,r){return function(n,i,o){var s=0,a=T(n);if("number"==typeof o)e>0?s=o>=0?o:Math.max(o+a,s):a=o>=0?Math.min(o+1,a):o+a+1;else if(r&&o&&a)return o=r(n,i),n[o]===i?o:-1;if(i!=i)return(o=t(p.call(n,s,a),_.isNaN))>=0?o+s:-1;for(o=e>0?s:a-1;o>=0&&o<a;o+=e)if(n[o]===i)return o;return-1}}function o(e,t){var r=L.length,n=e.constructor,i=_.isFunction(n)&&n.prototype||u,o="constructor";for(_.has(e,o)&&!_.contains(t,o)&&t.push(o);r--;)(o=L[r])in e&&e[o]!==i[o]&&!_.contains(t,o)&&t.push(o)}var s=this,a=s._,c=Array.prototype,u=Object.prototype,h=Function.prototype,l=c.push,p=c.slice,f=u.toString,d=u.hasOwnProperty,m=Array.isArray,v=Object.keys,g=h.bind,y=Object.create,b=function(){},_=function(e){return e instanceof _?e:this instanceof _?void(this._wrapped=e):new _(e)};void 0!==r?(void 0!==t&&t.exports&&(r=t.exports=_),r._=_):s._=_,_.VERSION="1.8.3";var x=function(e,t,r){if(void 0===t)return e;switch(null==r?3:r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,i){return e.call(t,r,n,i)};case 4:return function(r,n,i,o){return e.call(t,r,n,i,o)}}return function(){return e.apply(t,arguments)}},w=function(e,t,r){return null==e?_.identity:_.isFunction(e)?x(e,t,r):_.isObject(e)?_.matcher(e):_.property(e)};_.iteratee=function(e,t){return w(e,t,1/0)};var S=function(e,t){return function(r){var n=arguments.length;if(n<2||null==r)return r;for(var i=1;i<n;i++)for(var o=arguments[i],s=e(o),a=s.length,c=0;c<a;c++){var u=s[c];t&&void 0!==r[u]||(r[u]=o[u])}return r}},M=function(e){if(!_.isObject(e))return{};if(y)return y(e);b.prototype=e;var t=new b;return b.prototype=null,t},E=function(e){return function(t){return null==t?void 0:t[e]}},C=Math.pow(2,53)-1,T=E("length"),O=function(e){var t=T(e);return"number"==typeof t&&t>=0&&t<=C};_.each=_.forEach=function(e,t,r){t=x(t,r);var n,i;if(O(e))for(n=0,i=e.length;n<i;n++)t(e[n],n,e);else{var o=_.keys(e);for(n=0,i=o.length;n<i;n++)t(e[o[n]],o[n],e)}return e},_.map=_.collect=function(e,t,r){t=w(t,r);for(var n=!O(e)&&_.keys(e),i=(n||e).length,o=Array(i),s=0;s<i;s++){var a=n?n[s]:s;o[s]=t(e[a],a,e)}return o},_.reduce=_.foldl=_.inject=e(1),_.reduceRight=_.foldr=e(-1),_.find=_.detect=function(e,t,r){var n;if(void 0!==(n=O(e)?_.findIndex(e,t,r):_.findKey(e,t,r))&&-1!==n)return e[n]},_.filter=_.select=function(e,t,r){var n=[];return t=w(t,r),_.each(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n},_.reject=function(e,t,r){return _.filter(e,_.negate(w(t)),r)},_.every=_.all=function(e,t,r){t=w(t,r);for(var n=!O(e)&&_.keys(e),i=(n||e).length,o=0;o<i;o++){var s=n?n[o]:o;if(!t(e[s],s,e))return!1}return!0},_.some=_.any=function(e,t,r){t=w(t,r);for(var n=!O(e)&&_.keys(e),i=(n||e).length,o=0;o<i;o++){var s=n?n[o]:o;if(t(e[s],s,e))return!0}return!1},_.contains=_.includes=_.include=function(e,t,r,n){return O(e)||(e=_.values(e)),("number"!=typeof r||n)&&(r=0),_.indexOf(e,t,r)>=0},_.invoke=function(e,t){var r=p.call(arguments,2),n=_.isFunction(t);return _.map(e,function(e){var i=n?t:e[t];return null==i?i:i.apply(e,r)})},_.pluck=function(e,t){return _.map(e,_.property(t))},_.where=function(e,t){return _.filter(e,_.matcher(t))},_.findWhere=function(e,t){return _.find(e,_.matcher(t))},_.max=function(e,t,r){var n,i,o=-1/0,s=-1/0;if(null==t&&null!=e)for(var a=0,c=(e=O(e)?e:_.values(e)).length;a<c;a++)(n=e[a])>o&&(o=n);else t=w(t,r),_.each(e,function(e,r,n){((i=t(e,r,n))>s||i===-1/0&&o===-1/0)&&(o=e,s=i)});return o},_.min=function(e,t,r){var n,i,o=1/0,s=1/0;if(null==t&&null!=e)for(var a=0,c=(e=O(e)?e:_.values(e)).length;a<c;a++)(n=e[a])<o&&(o=n);else t=w(t,r),_.each(e,function(e,r,n){((i=t(e,r,n))<s||i===1/0&&o===1/0)&&(o=e,s=i)});return o},_.shuffle=function(e){for(var t,r=O(e)?e:_.values(e),n=r.length,i=Array(n),o=0;o<n;o++)(t=_.random(0,o))!==o&&(i[o]=i[t]),i[t]=r[o];return i},_.sample=function(e,t,r){return null==t||r?(O(e)||(e=_.values(e)),e[_.random(e.length-1)]):_.shuffle(e).slice(0,Math.max(0,t))},_.sortBy=function(e,t,r){return t=w(t,r),_.pluck(_.map(e,function(e,r,n){return{value:e,index:r,criteria:t(e,r,n)}}).sort(function(e,t){var r=e.criteria,n=t.criteria;if(r!==n){if(r>n||void 0===r)return 1;if(r<n||void 0===n)return-1}return e.index-t.index}),"value")};var P=function(e){return function(t,r,n){var i={};return r=w(r,n),_.each(t,function(n,o){var s=r(n,o,t);e(i,n,s)}),i}};_.groupBy=P(function(e,t,r){_.has(e,r)?e[r].push(t):e[r]=[t]}),_.indexBy=P(function(e,t,r){e[r]=t}),_.countBy=P(function(e,t,r){_.has(e,r)?e[r]++:e[r]=1}),_.toArray=function(e){return e?_.isArray(e)?p.call(e):O(e)?_.map(e,_.identity):_.values(e):[]},_.size=function(e){return null==e?0:O(e)?e.length:_.keys(e).length},_.partition=function(e,t,r){t=w(t,r);var n=[],i=[];return _.each(e,function(e,r,o){(t(e,r,o)?n:i).push(e)}),[n,i]},_.first=_.head=_.take=function(e,t,r){if(null!=e)return null==t||r?e[0]:_.initial(e,e.length-t)},_.initial=function(e,t,r){return p.call(e,0,Math.max(0,e.length-(null==t||r?1:t)))},_.last=function(e,t,r){if(null!=e)return null==t||r?e[e.length-1]:_.rest(e,Math.max(0,e.length-t))},_.rest=_.tail=_.drop=function(e,t,r){return p.call(e,null==t||r?1:t)},_.compact=function(e){return _.filter(e,_.identity)};var A=function(e,t,r,n){for(var i=[],o=0,s=n||0,a=T(e);s<a;s++){var c=e[s];if(O(c)&&(_.isArray(c)||_.isArguments(c))){t||(c=A(c,t,r));var u=0,h=c.length;for(i.length+=h;u<h;)i[o++]=c[u++]}else r||(i[o++]=c)}return i};_.flatten=function(e,t){return A(e,t,!1)},_.without=function(e){return _.difference(e,p.call(arguments,1))},_.uniq=_.unique=function(e,t,r,n){_.isBoolean(t)||(n=r,r=t,t=!1),null!=r&&(r=w(r,n));for(var i=[],o=[],s=0,a=T(e);s<a;s++){var c=e[s],u=r?r(c,s,e):c;t?(s&&o===u||i.push(c),o=u):r?_.contains(o,u)||(o.push(u),i.push(c)):_.contains(i,c)||i.push(c)}return i},_.union=function(){return _.uniq(A(arguments,!0,!0))},_.intersection=function(e){for(var t=[],r=arguments.length,n=0,i=T(e);n<i;n++){var o=e[n];if(!_.contains(t,o)){for(var s=1;s<r&&_.contains(arguments[s],o);s++);s===r&&t.push(o)}}return t},_.difference=function(e){var t=A(arguments,!0,!0,1);return _.filter(e,function(e){return!_.contains(t,e)})},_.zip=function(){return _.unzip(arguments)},_.unzip=function(e){for(var t=e&&_.max(e,T).length||0,r=Array(t),n=0;n<t;n++)r[n]=_.pluck(e,n);return r},_.object=function(e,t){for(var r={},n=0,i=T(e);n<i;n++)t?r[e[n]]=t[n]:r[e[n][0]]=e[n][1];return r},_.findIndex=n(1),_.findLastIndex=n(-1),_.sortedIndex=function(e,t,r,n){for(var i=(r=w(r,n,1))(t),o=0,s=T(e);o<s;){var a=Math.floor((o+s)/2);r(e[a])<i?o=a+1:s=a}return o},_.indexOf=i(1,_.findIndex,_.sortedIndex),_.lastIndexOf=i(-1,_.findLastIndex),_.range=function(e,t,r){null==t&&(t=e||0,e=0),r=r||1;for(var n=Math.max(Math.ceil((t-e)/r),0),i=Array(n),o=0;o<n;o++,e+=r)i[o]=e;return i};var R=function(e,t,r,n,i){if(!(n instanceof t))return e.apply(r,i);var o=M(e.prototype),s=e.apply(o,i);return _.isObject(s)?s:o};_.bind=function(e,t){if(g&&e.bind===g)return g.apply(e,p.call(arguments,1));if(!_.isFunction(e))throw new TypeError("Bind must be called on a function");var r=p.call(arguments,2),n=function(){return R(e,n,t,this,r.concat(p.call(arguments)))};return n},_.partial=function(e){var t=p.call(arguments,1),r=function(){for(var n=0,i=t.length,o=Array(i),s=0;s<i;s++)o[s]=t[s]===_?arguments[n++]:t[s];for(;n<arguments.length;)o.push(arguments[n++]);return R(e,r,this,this,o)};return r},_.bindAll=function(e){var t,r,n=arguments.length;if(n<=1)throw new Error("bindAll must be passed function names");for(t=1;t<n;t++)e[r=arguments[t]]=_.bind(e[r],e);return e},_.memoize=function(e,t){var r=function(n){var i=r.cache,o=""+(t?t.apply(this,arguments):n);return _.has(i,o)||(i[o]=e.apply(this,arguments)),i[o]};return r.cache={},r},_.delay=function(e,t){var r=p.call(arguments,2);return setTimeout(function(){return e.apply(null,r)},t)},_.defer=_.partial(_.delay,_,1),_.throttle=function(e,t,r){var n,i,o,s=null,a=0;r||(r={});var c=function(){a=!1===r.leading?0:_.now(),s=null,o=e.apply(n,i),s||(n=i=null)};return function(){var u=_.now();a||!1!==r.leading||(a=u);var h=t-(u-a);return n=this,i=arguments,h<=0||h>t?(s&&(clearTimeout(s),s=null),a=u,o=e.apply(n,i),s||(n=i=null)):s||!1===r.trailing||(s=setTimeout(c,h)),o}},_.debounce=function(e,t,r){var n,i,o,s,a,c=function(){var u=_.now()-s;u<t&&u>=0?n=setTimeout(c,t-u):(n=null,r||(a=e.apply(o,i),n||(o=i=null)))};return function(){o=this,i=arguments,s=_.now();var u=r&&!n;return n||(n=setTimeout(c,t)),u&&(a=e.apply(o,i),o=i=null),a}},_.wrap=function(e,t){return _.partial(t,e)},_.negate=function(e){return function(){return!e.apply(this,arguments)}},_.compose=function(){var e=arguments,t=e.length-1;return function(){for(var r=t,n=e[t].apply(this,arguments);r--;)n=e[r].call(this,n);return n}},_.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},_.before=function(e,t){var r;return function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=null),r}},_.once=_.partial(_.before,2);var j=!{toString:null}.propertyIsEnumerable("toString"),L=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];_.keys=function(e){if(!_.isObject(e))return[];if(v)return v(e);var t=[];for(var r in e)_.has(e,r)&&t.push(r);return j&&o(e,t),t},_.allKeys=function(e){if(!_.isObject(e))return[];var t=[];for(var r in e)t.push(r);return j&&o(e,t),t},_.values=function(e){for(var t=_.keys(e),r=t.length,n=Array(r),i=0;i<r;i++)n[i]=e[t[i]];return n},_.mapObject=function(e,t,r){t=w(t,r);for(var n,i=_.keys(e),o=i.length,s={},a=0;a<o;a++)s[n=i[a]]=t(e[n],n,e);return s},_.pairs=function(e){for(var t=_.keys(e),r=t.length,n=Array(r),i=0;i<r;i++)n[i]=[t[i],e[t[i]]];return n},_.invert=function(e){for(var t={},r=_.keys(e),n=0,i=r.length;n<i;n++)t[e[r[n]]]=r[n];return t},_.functions=_.methods=function(e){var t=[];for(var r in e)_.isFunction(e[r])&&t.push(r);return t.sort()},_.extend=S(_.allKeys),_.extendOwn=_.assign=S(_.keys),_.findKey=function(e,t,r){t=w(t,r);for(var n,i=_.keys(e),o=0,s=i.length;o<s;o++)if(n=i[o],t(e[n],n,e))return n},_.pick=function(e,t,r){var n,i,o={},s=e;if(null==s)return o;_.isFunction(t)?(i=_.allKeys(s),n=x(t,r)):(i=A(arguments,!1,!1,1),n=function(e,t,r){return t in r},s=Object(s));for(var a=0,c=i.length;a<c;a++){var u=i[a],h=s[u];n(h,u,s)&&(o[u]=h)}return o},_.omit=function(e,t,r){if(_.isFunction(t))t=_.negate(t);else{var n=_.map(A(arguments,!1,!1,1),String);t=function(e,t){return!_.contains(n,t)}}return _.pick(e,t,r)},_.defaults=S(_.allKeys,!0),_.create=function(e,t){var r=M(e);return t&&_.extendOwn(r,t),r},_.clone=function(e){return _.isObject(e)?_.isArray(e)?e.slice():_.extend({},e):e},_.tap=function(e,t){return t(e),e},_.isMatch=function(e,t){var r=_.keys(t),n=r.length;if(null==e)return!n;for(var i=Object(e),o=0;o<n;o++){var s=r[o];if(t[s]!==i[s]||!(s in i))return!1}return!0};var N=function(e,t,r,n){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return e===t;e instanceof _&&(e=e._wrapped),t instanceof _&&(t=t._wrapped);var i=f.call(e);if(i!==f.call(t))return!1;switch(i){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t}var o="[object Array]"===i;if(!o){if("object"!=typeof e||"object"!=typeof t)return!1;var s=e.constructor,a=t.constructor;if(s!==a&&!(_.isFunction(s)&&s instanceof s&&_.isFunction(a)&&a instanceof a)&&"constructor"in e&&"constructor"in t)return!1}r=r||[],n=n||[];for(var c=r.length;c--;)if(r[c]===e)return n[c]===t;if(r.push(e),n.push(t),o){if((c=e.length)!==t.length)return!1;for(;c--;)if(!N(e[c],t[c],r,n))return!1}else{var u,h=_.keys(e);if(c=h.length,_.keys(t).length!==c)return!1;for(;c--;)if(u=h[c],!_.has(t,u)||!N(e[u],t[u],r,n))return!1}return r.pop(),n.pop(),!0};_.isEqual=function(e,t){return N(e,t)},_.isEmpty=function(e){return null==e||(O(e)&&(_.isArray(e)||_.isString(e)||_.isArguments(e))?0===e.length:0===_.keys(e).length)},_.isElement=function(e){return!(!e||1!==e.nodeType)},_.isArray=m||function(e){return"[object Array]"===f.call(e)},_.isObject=function(e){var t=typeof e;return"function"===t||"object"===t&&!!e},_.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(e){_["is"+e]=function(t){return f.call(t)==="[object "+e+"]"}}),_.isArguments(arguments)||(_.isArguments=function(e){return _.has(e,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(_.isFunction=function(e){return"function"==typeof e||!1}),_.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},_.isNaN=function(e){return _.isNumber(e)&&e!==+e},_.isBoolean=function(e){return!0===e||!1===e||"[object Boolean]"===f.call(e)},_.isNull=function(e){return null===e},_.isUndefined=function(e){return void 0===e},_.has=function(e,t){return null!=e&&d.call(e,t)},_.noConflict=function(){return s._=a,this},_.identity=function(e){return e},_.constant=function(e){return function(){return e}},_.noop=function(){},_.property=E,_.propertyOf=function(e){return null==e?function(){}:function(t){return e[t]}},_.matcher=_.matches=function(e){return e=_.extendOwn({},e),function(t){return _.isMatch(t,e)}},_.times=function(e,t,r){var n=Array(Math.max(0,e));t=x(t,r,1);for(var i=0;i<e;i++)n[i]=t(i);return n},_.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},_.now=Date.now||function(){return(new Date).getTime()};var I={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},D=_.invert(I),k=function(e){var t=function(t){return e[t]},r="(?:"+_.keys(e).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(e){return e=null==e?"":""+e,n.test(e)?e.replace(i,t):e}};_.escape=k(I),_.unescape=k(D),_.result=function(e,t,r){var n=null==e?void 0:e[t];return void 0===n&&(n=r),_.isFunction(n)?n.call(e):n};var B=0;_.uniqueId=function(e){var t=++B+"";return e?e+t:t},_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var F=/(.)^/,U={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},$=/\\|'|\r|\n|\u2028|\u2029/g,z=function(e){return"\\"+U[e]};_.template=function(e,t,r){!t&&r&&(t=r),t=_.defaults({},t,_.templateSettings);var n=RegExp([(t.escape||F).source,(t.interpolate||F).source,(t.evaluate||F).source].join("|")+"|$","g"),i=0,o="__p+='";e.replace(n,function(t,r,n,s,a){return o+=e.slice(i,a).replace($,z),i=a+t.length,r?o+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?o+="'+\n((__t=("+n+"))==null?'':__t)+\n'":s&&(o+="';\n"+s+"\n__p+='"),t}),o+="';\n",t.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{var s=new Function(t.variable||"obj","_",o)}catch(e){throw e.source=o,e}var a=function(e){return s.call(this,e,_)},c=t.variable||"obj";return a.source="function("+c+"){\n"+o+"}",a},_.chain=function(e){var t=_(e);return t._chain=!0,t};var G=function(e,t){return e._chain?_(t).chain():t};_.mixin=function(e){_.each(_.functions(e),function(t){var r=_[t]=e[t];_.prototype[t]=function(){var e=[this._wrapped];return l.apply(e,arguments),G(this,r.apply(_,e))}})},_.mixin(_),_.each(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=c[e];_.prototype[e]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==e&&"splice"!==e||0!==r.length||delete r[0],G(this,r)}}),_.each(["concat","join","slice"],function(e){var t=c[e];_.prototype[e]=function(){return G(this,t.apply(this._wrapped,arguments))}}),_.prototype.value=function(){return this._wrapped},_.prototype.valueOf=_.prototype.toJSON=_.prototype.value,_.prototype.toString=function(){return""+this._wrapped}}).call(this)},{}],243:[function(e,t,r){var n=e("./vdom/create-element.js");t.exports=n},{"./vdom/create-element.js":249}],244:[function(e,t,r){var n=e("./vtree/diff.js");t.exports=n},{"./vtree/diff.js":269}],245:[function(e,t,r){var n=e("./virtual-hyperscript/index.js");t.exports=n},{"./virtual-hyperscript/index.js":256}],246:[function(e,t,r){var n=e("./diff.js"),i=e("./patch.js"),o=e("./h.js"),s=e("./create-element.js"),a=e("./vnode/vnode.js"),c=e("./vnode/vtext.js");t.exports={diff:n,patch:i,h:o,create:s,VNode:a,VText:c}},{"./create-element.js":243,"./diff.js":244,"./h.js":245,"./patch.js":247,"./vnode/vnode.js":265,"./vnode/vtext.js":267}],247:[function(e,t,r){var n=e("./vdom/patch.js");t.exports=n},{"./vdom/patch.js":252}],248:[function(e,t,r){function n(e,t,r){for(var n in t){var c=t[n];void 0===c?i(e,n,c,r):a(c)?(i(e,n,c,r),c.hook&&c.hook(e,n,r?r[n]:void 0)):s(c)?function(e,t,r,n,i){var a=r?r[n]:void 0;if("attributes"===n){for(var c in i){var u=i[c];void 0===u?e.removeAttribute(c):e.setAttribute(c,u)}return}if(a&&s(a)&&o(a)!==o(i))return void(e[n]=i);s(e[n])||(e[n]={});var h="style"===n?"":void 0;for(var l in i){var p=i[l];e[n][l]=void 0===p?h:p}}(e,0,r,n,c):e[n]=c}}function i(e,t,r,n){if(n){var i=n[t];if(a(i))i.unhook&&i.unhook(e,t,r);else if("attributes"===t)for(var o in i)e.removeAttribute(o);else if("style"===t)for(var s in i)e.style[s]="";else e[t]="string"==typeof i?"":null}}function o(e){return Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__?e.__proto__:e.constructor?e.constructor.prototype:void 0}var s=e("is-object"),a=e("../vnode/is-vhook.js");t.exports=n},{"../vnode/is-vhook.js":260,"is-object":20}],249:[function(e,t,r){function n(e,t){var r=t?t.document||i:i,h=t?t.warn:null;if(e=u(e).a,c(e))return e.init();if(a(e))return r.createTextNode(e.text);if(!s(e))return h&&h("Item is not a valid virtual dom node",e),null;var l=null===e.namespace?r.createElement(e.tagName):r.createElementNS(e.namespace,e.tagName),p=e.properties;o(l,p);for(var f=e.children,d=0;d<f.length;d++){var m=n(f[d],t);m&&l.appendChild(m)}return l}var i=e("global/document"),o=e("./apply-properties"),s=e("../vnode/is-vnode.js"),a=e("../vnode/is-vtext.js"),c=e("../vnode/is-widget.js"),u=e("../vnode/handle-thunk.js");t.exports=n},{"../vnode/handle-thunk.js":258,"../vnode/is-vnode.js":261,"../vnode/is-vtext.js":262,"../vnode/is-widget.js":263,"./apply-properties":248,"global/document":16}],250:[function(e,t,r){function n(e,t,r,o,a){if(o=o||{},e){i(r,a,a)&&(o[a]=e);var c=t.children;if(c)for(var u=e.childNodes,h=0;h<t.children.length;h++){a+=1;var l=c[h]||s,p=a+(l.count||0);i(r,a,p)&&n(u[h],l,r,o,a),a=p}}return o}function i(e,t,r){if(0===e.length)return!1;for(var n,i,o=0,s=e.length-1;o<=s;){if(n=(s+o)/2>>0,i=e[n],o===s)return i>=t&&i<=r;if(i<t)o=n+1;else{if(!(i>r))return!0;s=n-1}}return!1}function o(e,t){return e>t?1:-1}var s={};t.exports=function(e,t,r,i){return r&&0!==r.length?(r.sort(o),n(e,t,r,i,0)):{}}},{}],251:[function(e,t,r){function n(e,t,r){var n=e.type,s=e.vNode,u=e.patch;switch(n){case a.REMOVE:return function(e,t){var r=e.parentNode;r&&r.removeChild(e);return i(e,t),null}(t,s);case a.INSERT:return function(e,t,r){var n=r.render(t,r);e&&e.appendChild(n);return e}(t,u,r);case a.VTEXT:return function(e,t,r,n){var i;if(3===e.nodeType)e.replaceData(0,e.length,r.text),i=e;else{var o=e.parentNode;i=n.render(r,n),o&&i!==e&&o.replaceChild(i,e)}return i}(t,0,u,r);case a.WIDGET:return function(e,t,r,n){var o,s=c(t,r);o=s?r.update(t,e)||e:n.render(r,n);var a=e.parentNode;a&&o!==e&&a.replaceChild(o,e);s||i(e,t);return o}(t,s,u,r);case a.VNODE:return function(e,t,r,n){var i=e.parentNode,o=n.render(r,n);i&&o!==e&&i.replaceChild(o,e);return o}(t,0,u,r);case a.ORDER:return function(e,t){for(var r,n,i,o=e.childNodes,s={},a=0;a<t.removes.length;a++)n=t.removes[a],r=o[n.from],n.key&&(s[n.key]=r),e.removeChild(r);for(var c=o.length,u=0;u<t.inserts.length;u++)i=t.inserts[u],r=s[i.key],e.insertBefore(r,i.to>=c++?null:o[i.to])}(t,u),t;case a.PROPS:return o(t,u,s.properties),t;case a.THUNK:return function(e,t){e&&t&&e!==t&&e.parentNode&&e.parentNode.replaceChild(t,e);return t}(t,r.patch(t,u,r));default:return t}}function i(e,t){"function"==typeof t.destroy&&s(t)&&t.destroy(e)}var o=e("./apply-properties"),s=e("../vnode/is-widget.js"),a=e("../vnode/vpatch.js"),c=e("./update-widget");t.exports=n},{"../vnode/is-widget.js":263,"../vnode/vpatch.js":266,"./apply-properties":248,"./update-widget":253}],252:[function(e,t,r){function n(e,t,r){return r=r||{},r.patch=r.patch&&r.patch!==n?r.patch:function(e,t,r){var n=function(e){var t=[];for(var r in e)"a"!==r&&t.push(Number(r));return t}(t);if(0===n.length)return e;var s=a(e,t.a,n),u=e.ownerDocument;r.document||u===i||(r.document=u);for(var h=0;h<n.length;h++){var l=n[h];e=function(e,t,r,n){if(!t)return e;var i;if(o(r))for(var s=0;s<r.length;s++)i=c(r[s],t,n),t===e&&(e=i);else i=c(r,t,n),t===e&&(e=i);return e}(e,s[l],t[l],r)}return e},r.render=r.render||s,r.patch(e,t,r)}var i=e("global/document"),o=e("x-is-array"),s=e("./create-element"),a=e("./dom-index"),c=e("./patch-op");t.exports=n},{"./create-element":249,"./dom-index":250,"./patch-op":251,"global/document":16,"x-is-array":288}],253:[function(e,t,r){var n=e("../vnode/is-widget.js");t.exports=function(e,t){return!(!n(e)||!n(t))&&("name"in e&&"name"in t?e.id===t.id:e.init===t.init)}},{"../vnode/is-widget.js":263}],254:[function(e,t,r){"use strict";function n(e){if(!(this instanceof n))return new n(e);this.value=e}var i=e("ev-store");t.exports=n,n.prototype.hook=function(e,t){i(e)[t.substr(3)]=this.value},n.prototype.unhook=function(e,t){i(e)[t.substr(3)]=void 0}},{"ev-store":9}],255:[function(e,t,r){"use strict";function n(e){if(!(this instanceof n))return new n(e);this.value=e}t.exports=n,n.prototype.hook=function(e,t){e[t]!==this.value&&(e[t]=this.value)}},{}],256:[function(e,t,r){"use strict";function n(e,t,r){var n,s,u,h,l=[];return!r&&function(e){return"string"==typeof e||a(e)||o(e)}(t)&&(r=t,s={}),s=s||t||{},n=m(e,s),s.hasOwnProperty("key")&&(u=s.key,s.key=void 0),s.hasOwnProperty("namespace")&&(h=s.namespace,s.namespace=void 0),"INPUT"!==n||h||!s.hasOwnProperty("value")||void 0===s.value||f(s.value)||(s.value=v(s.value)),function(e){for(var t in e)if(e.hasOwnProperty(t)){var r=e[t];if(f(r))continue;"ev-"===t.substr(0,3)&&(e[t]=g(r))}}(s),void 0!==r&&null!==r&&i(r,l,n,s),new c(n,s,l,u,h)}function i(e,t,r,n){if("string"==typeof e)t.push(new u(e));else if("number"==typeof e)t.push(new u(String(e)));else if(o(e))t.push(e);else{if(!a(e)){if(null===e||void 0===e)return;throw function(e){var t=new Error;return t.type="virtual-hyperscript.unexpected.virtual-element",t.message="Unexpected virtual child passed to h().\nExpected a VNode / Vthunk / VWidget / string but:\ngot:\n"+s(e.foreignObject)+".\nThe parent vnode is:\n"+s(e.parentVnode),t.foreignObject=e.foreignObject,t.parentVnode=e.parentVnode,t}({foreignObject:e,parentVnode:{tagName:r,properties:n}})}for(var c=0;c<e.length;c++)i(e[c],t,r,n)}}function o(e){return h(e)||l(e)||p(e)||d(e)}function s(e){try{return JSON.stringify(e,null,"    ")}catch(t){return String(e)}}var a=e("x-is-array"),c=e("../vnode/vnode.js"),u=e("../vnode/vtext.js"),h=e("../vnode/is-vnode"),l=e("../vnode/is-vtext"),p=e("../vnode/is-widget"),f=e("../vnode/is-vhook"),d=e("../vnode/is-thunk"),m=e("./parse-tag.js"),v=e("./hooks/soft-set-hook.js"),g=e("./hooks/ev-hook.js");t.exports=n},{"../vnode/is-thunk":259,"../vnode/is-vhook":260,"../vnode/is-vnode":261,"../vnode/is-vtext":262,"../vnode/is-widget":263,"../vnode/vnode.js":265,"../vnode/vtext.js":267,"./hooks/ev-hook.js":254,"./hooks/soft-set-hook.js":255,"./parse-tag.js":257,"x-is-array":288}],257:[function(e,t,r){"use strict";var n=e("browser-split"),i=/([\.#]?[a-zA-Z0-9\u007F-\uFFFF_:-]+)/,o=/^\.|#/;t.exports=function(e,t){if(!e)return"DIV";var r=!t.hasOwnProperty("id"),s=n(e,i),a=null;o.test(s[1])&&(a="DIV");var c,u,h,l;for(l=0;l<s.length;l++)(u=s[l])&&(h=u.charAt(0),a?"."===h?(c=c||[]).push(u.substring(1,u.length)):"#"===h&&r&&(t.id=u.substring(1,u.length)):a=u);return c&&(t.className&&c.push(t.className),t.className=c.join(" ")),t.namespace?a:a.toUpperCase()}},{"browser-split":5}],258:[function(e,t,r){function n(e,t){var r=e.vnode;if(r||(r=e.vnode=e.render(t)),!(i(r)||o(r)||s(r)))throw new Error("thunk did not return a valid node");return r}var i=e("./is-vnode"),o=e("./is-vtext"),s=e("./is-widget"),a=e("./is-thunk");t.exports=function(e,t){var r=e,i=t;return a(t)&&(i=n(t,e)),a(e)&&(r=n(e,null)),{a:r,b:i}}},{"./is-thunk":259,"./is-vnode":261,"./is-vtext":262,"./is-widget":263}],259:[function(e,t,r){t.exports=function(e){return e&&"Thunk"===e.type}},{}],260:[function(e,t,r){t.exports=function(e){return e&&("function"==typeof e.hook&&!e.hasOwnProperty("hook")||"function"==typeof e.unhook&&!e.hasOwnProperty("unhook"))}},{}],261:[function(e,t,r){var n=e("./version");t.exports=function(e){return e&&"VirtualNode"===e.type&&e.version===n}},{"./version":264}],262:[function(e,t,r){var n=e("./version");t.exports=function(e){return e&&"VirtualText"===e.type&&e.version===n}},{"./version":264}],263:[function(e,t,r){t.exports=function(e){return e&&"Widget"===e.type}},{}],264:[function(e,t,r){t.exports="2"},{}],265:[function(e,t,r){function n(e,t,r,n,i){this.tagName=e,this.properties=t||u,this.children=r||h,this.key=null!=n?String(n):void 0,this.namespace="string"==typeof i?i:null;var l,p=r&&r.length||0,f=0,d=!1,m=!1,v=!1;for(var g in t)if(t.hasOwnProperty(g)){var y=t[g];c(y)&&y.unhook&&(l||(l={}),l[g]=y)}for(var b=0;b<p;b++){var _=r[b];o(_)?(f+=_.count||0,!d&&_.hasWidgets&&(d=!0),!m&&_.hasThunks&&(m=!0),v||!_.hooks&&!_.descendantHooks||(v=!0)):!d&&s(_)?"function"==typeof _.destroy&&(d=!0):!m&&a(_)&&(m=!0)}this.count=p+f,this.hasWidgets=d,this.hasThunks=m,this.hooks=l,this.descendantHooks=v}var i=e("./version"),o=e("./is-vnode"),s=e("./is-widget"),a=e("./is-thunk"),c=e("./is-vhook");t.exports=n;var u={},h=[];n.prototype.version=i,n.prototype.type="VirtualNode"},{"./is-thunk":259,"./is-vhook":260,"./is-vnode":261,"./is-widget":263,"./version":264}],266:[function(e,t,r){function n(e,t,r){this.type=Number(e),this.vNode=t,this.patch=r}var i=e("./version");n.NONE=0,n.VTEXT=1,n.VNODE=2,n.WIDGET=3,n.PROPS=4,n.ORDER=5,n.INSERT=6,n.REMOVE=7,n.THUNK=8,t.exports=n,n.prototype.version=i,n.prototype.type="VirtualPatch"},{"./version":264}],267:[function(e,t,r){function n(e){this.text=String(e)}var i=e("./version");t.exports=n,n.prototype.version=i,n.prototype.type="VirtualText"},{"./version":264}],268:[function(e,t,r){function n(e,t){var r;for(var a in e){a in t||((r=r||{})[a]=void 0);var c=e[a],u=t[a];if(c!==u)if(o(c)&&o(u))if(i(u)!==i(c))(r=r||{})[a]=u;else if(s(u))(r=r||{})[a]=u;else{var h=n(c,u);h&&((r=r||{})[a]=h)}else(r=r||{})[a]=u}for(var l in t)l in e||((r=r||{})[l]=t[l]);return r}function i(e){return Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__?e.__proto__:e.constructor?e.constructor.prototype:void 0}var o=e("is-object"),s=e("../vnode/is-vhook");t.exports=n},{"../vnode/is-vhook":260,"is-object":20}],269:[function(e,t,r){function n(e,t){var r={a:e};return i(e,t,r,0),r}function i(e,t,r,n){if(e!==t){var s=r[n],c=!1;if(g(e)||g(t))a(e,t,r,n);else if(null==t)v(e)||(o(e,r,n),s=r[n]),s=l(s,new f(f.REMOVE,e,t));else if(d(t))if(d(e))if(e.tagName===t.tagName&&e.namespace===t.namespace&&e.key===t.key){var p=b(e.properties,t.properties);p&&(s=l(s,new f(f.PROPS,e,p))),s=function(e,t,r,n,o){for(var s=e.children,a=function(e,t){var r=h(t),n=r.keys,i=r.free;if(i.length===t.length)return{children:t,moves:null};var o=h(e),s=o.keys;if(o.free.length===e.length)return{children:t,moves:null};for(var a=[],c=0,l=i.length,p=0,f=0;f<e.length;f++){var d,m=e[f];m.key?n.hasOwnProperty(m.key)?(d=n[m.key],a.push(t[d])):(d=f-p++,a.push(null)):c<l?(d=i[c++],a.push(t[d])):(d=f-p++,a.push(null))}for(var v=c>=i.length?t.length:i[c],g=0;g<t.length;g++){var y=t[g];y.key?s.hasOwnProperty(y.key)||a.push(y):g>=v&&a.push(y)}for(var b,_=a.slice(),x=0,w=[],S=[],M=0;M<t.length;){var E=t[M];for(b=_[x];null===b&&_.length;)w.push(u(_,x,null)),b=_[x];b&&b.key===E.key?(x++,M++):E.key?(b&&b.key&&n[b.key]!==M+1?(w.push(u(_,x,b.key)),(b=_[x])&&b.key===E.key?x++:S.push({key:E.key,to:M})):S.push({key:E.key,to:M}),M++):b&&b.key&&w.push(u(_,x,b.key))}for(;x<_.length;)b=_[x],w.push(u(_,x,b&&b.key));if(w.length===p&&!S.length)return{children:a,moves:null};return{children:a,moves:{removes:w,inserts:S}}}(s,t.children),c=a.children,p=s.length,m=c.length,v=p>m?p:m,g=0;g<v;g++){var y=s[g],b=c[g];o+=1,y?i(y,b,r,o):b&&(n=l(n,new f(f.INSERT,null,b))),d(y)&&y.count&&(o+=y.count)}a.moves&&(n=l(n,new f(f.ORDER,e,a.moves)));return n}(e,t,r,s,n)}else s=l(s,new f(f.VNODE,e,t)),c=!0;else s=l(s,new f(f.VNODE,e,t)),c=!0;else m(t)?m(e)?e.text!==t.text&&(s=l(s,new f(f.VTEXT,e,t))):(s=l(s,new f(f.VTEXT,e,t)),c=!0):v(t)&&(v(e)||(c=!0),s=l(s,new f(f.WIDGET,e,t)));s&&(r[n]=s),c&&o(e,r,n)}}function o(e,t,r){c(e,t,r),s(e,t,r)}function s(e,t,r){if(v(e))"function"==typeof e.destroy&&(t[r]=l(t[r],new f(f.REMOVE,e,null)));else if(d(e)&&(e.hasWidgets||e.hasThunks))for(var n=e.children,i=n.length,o=0;o<i;o++){var c=n[o];s(c,t,r+=1),d(c)&&c.count&&(r+=c.count)}else g(e)&&a(e,null,t,r)}function a(e,t,r,i){var o=y(e,t),s=n(o.a,o.b);(function(e){for(var t in e)if("a"!==t)return!0;return!1})(s)&&(r[i]=new f(f.THUNK,null,s))}function c(e,t,r){if(d(e)){if(e.hooks&&(t[r]=l(t[r],new f(f.PROPS,e,function(e){var t={};for(var r in e)t[r]=void 0;return t}(e.hooks)))),e.descendantHooks||e.hasThunks)for(var n=e.children,i=n.length,o=0;o<i;o++){var s=n[o];c(s,t,r+=1),d(s)&&s.count&&(r+=s.count)}}else g(e)&&a(e,null,t,r)}function u(e,t,r){return e.splice(t,1),{from:t,key:r}}function h(e){for(var t={},r=[],n=e.length,i=0;i<n;i++){var o=e[i];o.key?t[o.key]=i:r.push(i)}return{keys:t,free:r}}function l(e,t){return e?(p(e)?e.push(t):e=[e,t],e):t}var p=e("x-is-array"),f=e("../vnode/vpatch"),d=e("../vnode/is-vnode"),m=e("../vnode/is-vtext"),v=e("../vnode/is-widget"),g=e("../vnode/is-thunk"),y=e("../vnode/handle-thunk"),b=e("./diff-props");t.exports=n},{"../vnode/handle-thunk":258,"../vnode/is-thunk":259,"../vnode/is-vnode":261,"../vnode/is-vtext":262,"../vnode/is-widget":263,"../vnode/vpatch":266,"./diff-props":268,"x-is-array":288}],270:[function(e,t,r){!function(e){"use strict";e(function(e){return e("./makePromise")({scheduler:new(e("./Scheduler"))(e("./env").asap)})})}(function(r){t.exports=r(e)})},{"./Scheduler":271,"./env":283,"./makePromise":285}],271:[function(e,t,r){!function(e){"use strict";e(function(){function e(e){this._async=e,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var t=this;this.drain=function(){t._drain()}}return e.prototype.enqueue=function(e){this._queue[this._queueLen++]=e,this.run()},e.prototype.afterQueue=function(e){this._afterQueue[this._afterQueueLen++]=e,this.run()},e.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},e.prototype._drain=function(){for(var e=0;e<this._queueLen;++e)this._queue[e].run(),this._queue[e]=void 0;for(this._queueLen=0,this._running=!1,e=0;e<this._afterQueueLen;++e)this._afterQueue[e].run(),this._afterQueue[e]=void 0;this._afterQueueLen=0},e})}(function(e){t.exports=e()})},{}],272:[function(e,t,r){!function(e){"use strict";e(function(){function e(t){Error.call(this),this.message=t,this.name=e.name,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e})}(function(e){t.exports=e()})},{}],273:[function(e,t,r){!function(e){"use strict";e(function(){function e(e,r){function n(t,n){if(t.i<0)return r(t.f,t.thisArg,t.params,n);e._handler(t.args[t.i]).fold(i,t,void 0,n)}function i(e,t,r){e.params[e.i]=t,e.i-=1,n(e,r)}return arguments.length<2&&(r=t),function(t,i,o){var s=e._defer(),a=o.length;return n({f:t,thisArg:i,args:o,params:new Array(a),i:a-1,call:r},s._handler),s}}function t(e,t,r,n){try{n.resolve(e.apply(t,r))}catch(e){n.reject(e)}}return e.tryCatchResolve=t,e})}(function(e){t.exports=e()})},{}],274:[function(e,t,r){!function(e){"use strict";e(function(e){var t=e("../state"),r=e("../apply");return function(e){function n(t,r){var n=l.call(t);return e._traverse(r,n).then(function(t){return function(t,r){for(var n=r.length,i=new Array(n),o=0,s=0;o<n;++o)r[o]&&(i[s++]=e._handler(t[o]).value);return i.length=s,i}(n,t)})}function i(r){var n;return r instanceof e&&(n=r._handler.join()),n&&0===n.state()||!n?a(r).then(t.fulfilled,t.rejected):(n._unreport(),t.inspect(n))}function o(e){return function(t,r,n){return s(e,void 0,[t,r,n])}}var s=r(e),a=e.resolve,c=e.all,u=Array.prototype.reduce,h=Array.prototype.reduceRight,l=Array.prototype.slice;return e.any=function(t){for(var r,n,i=e._defer(),o=i._handler,s=t.length>>>0,a=s,c=[],u=0;u<s;++u)if(void 0!==(n=t[u])||u in t){if((r=e._handler(n)).state()>0){o.become(r),e._visitRemaining(t,u,r);break}r.visit(o,function(e){c=null,this.resolve(e)},function(e){this.resolved||(c.push(e),0==--a&&this.reject(c))})}else--a;return 0===a&&o.reject(new RangeError("any(): array must not be empty")),i},e.some=function(t,r){var n,i,o,s=e._defer(),a=s._handler,c=[],u=[],h=t.length>>>0,l=0;for(o=0;o<h;++o)(void 0!==(i=t[o])||o in t)&&++l;for(r=Math.max(r,0),n=l-r+1,r>(l=Math.min(r,l))?a.reject(new RangeError("some(): array must contain at least "+r+" item(s), but had "+l)):0===l&&a.resolve(c),o=0;o<h;++o)(void 0!==(i=t[o])||o in t)&&e._handler(i).visit(a,function(e){this.resolved||(c.push(e),0==--l&&(u=null,this.resolve(c)))},function(e){this.resolved||(u.push(e),0==--n&&(c=null,this.reject(u)))},a.notify);return s},e.settle=function(e){return c(e.map(i))},e.map=function(t,r){return e._traverse(r,t)},e.filter=n,e.reduce=function(e,t){return arguments.length>2?u.call(e,o(t),arguments[2]):u.call(e,o(t))},e.reduceRight=function(e,t){return arguments.length>2?h.call(e,o(t),arguments[2]):h.call(e,o(t))},e.prototype.spread=function(e){return this.then(c).then(function(t){return e.apply(this,t)})},e}})}(function(r){t.exports=r(e)})},{"../apply":273,"../state":286}],275:[function(e,t,r){!function(e){"use strict";e(function(){function e(){throw new TypeError("catch predicate must be a function")}function t(e,t){return function(e){return e===Error||null!=e&&e.prototype instanceof Error}(t)?e instanceof t:t(e)}function r(e){return e}return function(n){function i(e,t,r,n){var i=e.call(t);return function(e){return("object"==typeof e||"function"==typeof e)&&null!==e}(i)?function(e,t,r){return o(e).then(function(){return t(r)})}(i,r,n):r(n)}var o=n.resolve,s=n.reject,a=n.prototype.catch;return n.prototype.done=function(e,t){this._handler.visit(this._handler.receiver,e,t)},n.prototype.catch=n.prototype.otherwise=function(r){return arguments.length<2?a.call(this,r):"function"!=typeof r?this.ensure(e):a.call(this,function(e,r){return function(n){return t(n,r)?e.call(this,n):s(n)}}(arguments[1],r))},n.prototype.finally=n.prototype.ensure=function(e){return"function"!=typeof e?this:this.then(function(t){return i(e,this,r,t)},function(t){return i(e,this,s,t)})},n.prototype.else=n.prototype.orElse=function(e){return this.then(void 0,function(){return e})},n.prototype.yield=function(e){return this.then(function(){return e})},n.prototype.tap=function(e){return this.then(e).yield(this)},n}})}(function(e){t.exports=e()})},{}],276:[function(e,t,r){!function(e){"use strict";e(function(){return function(e){return e.prototype.fold=function(t,r){var n=this._beget();return this._handler.fold(function(r,n,i){e._handler(r).fold(function(e,r,n){n.resolve(t.call(this,r,e))},n,this,i)},r,n._handler.receiver,n._handler),n},e}})}(function(e){t.exports=e()})},{}],277:[function(e,t,r){!function(e){"use strict";e(function(e){var t=e("../state").inspect;return function(e){return e.prototype.inspect=function(){return t(e._handler(this))},e}})}(function(r){t.exports=r(e)})},{"../state":286}],278:[function(e,t,r){!function(e){"use strict";e(function(){return function(e){function t(e,n,i,o){function s(o,s){return r(i(o)).then(function(){return t(e,n,i,s)})}return r(o).then(function(t){return r(n(t)).then(function(n){return n?t:r(e(t)).spread(s)})})}var r=e.resolve;return e.iterate=function(e,r,n,i){return t(function(t){return[t,e(t)]},r,n,i)},e.unfold=t,e}})}(function(e){t.exports=e()})},{}],279:[function(e,t,r){!function(e){"use strict";e(function(){return function(e){return e.prototype.progress=function(e){return this.then(void 0,void 0,e)},e}})}(function(e){t.exports=e()})},{}],280:[function(e,t,r){!function(e){"use strict";e(function(e){function t(e,t,n,i){return r.setTimer(function(){e(n,i,t)},t)}var r=e("../env"),n=e("../TimeoutError");return function(e){function i(e,r,n){t(o,e,r,n)}function o(e,t){t.resolve(e)}function s(e,t,r){var i=void 0===e?new n("timed out after "+r+"ms"):e;t.reject(i)}return e.prototype.delay=function(e){var t=this._beget();return this._handler.fold(i,e,void 0,t._handler),t},e.prototype.timeout=function(e,n){var i=this._beget(),o=i._handler,a=t(s,e,n,i._handler);return this._handler.visit(o,function(e){r.clearTimer(a),this.resolve(e)},function(e){r.clearTimer(a),this.reject(e)},o.notify),i},e}})}(function(r){t.exports=r(e)})},{"../TimeoutError":272,"../env":283}],281:[function(e,t,r){!function(e){"use strict";e(function(e){function t(e){throw e}function r(){}var n=e("../env").setTimer,i=e("../format");return function(e){function o(e){e.handled||(f.push(e),h("Potentially unhandled rejection ["+e.id+"] "+i.formatError(e.value)))}function s(e){var t=f.indexOf(e);t>=0&&(f.splice(t,1),l("Handled previous rejection ["+e.id+"] "+i.formatObject(e.value)))}function a(e,t){p.push(e,t),null===d&&(d=n(c,0))}function c(){for(d=null;p.length>0;)p.shift()(p.shift())}var u,h=r,l=r;"undefined"!=typeof console&&(u=console,h=void 0!==u.error?function(e){u.error(e)}:function(e){u.log(e)},l=void 0!==u.info?function(e){u.info(e)}:function(e){u.log(e)}),e.onPotentiallyUnhandledRejection=function(e){a(o,e)},e.onPotentiallyUnhandledRejectionHandled=function(e){a(s,e)},e.onFatalRejection=function(e){a(t,e.value)};var p=[],f=[],d=null;return e}})}(function(r){t.exports=r(e)})},{"../env":283,"../format":284}],282:[function(e,t,r){!function(e){"use strict";e(function(){return function(e){return e.prototype.with=e.prototype.withThis=function(e){var t=this._beget(),r=t._handler;return r.receiver=e,this._handler.chain(r,e),t},e}})}(function(e){t.exports=e()})},{}],283:[function(e,t,r){(function(r){!function(e){"use strict";e(function(e){var t,n="undefined"!=typeof setTimeout&&setTimeout,i=function(e,t){return setTimeout(e,t)},o=function(e){return clearTimeout(e)},s=function(e){return n(e,0)};if(void 0!==r&&"[object process]"===Object.prototype.toString.call(r))s=function(e){return r.nextTick(e)};else if(t="undefined"!=typeof MutationObserver&&MutationObserver||"undefined"!=typeof WebKitMutationObserver&&WebKitMutationObserver)s=function(e){var t,r=document.createTextNode("");new e(function(){var e=t;t=void 0,e()}).observe(r,{characterData:!0});var n=0;return function(e){t=e,r.data=n^=1}}(t);else if(!n){var a=e("vertx");i=function(e,t){return a.setTimer(t,e)},o=a.cancelTimer,s=a.runOnLoop||a.runOnContext}return{setTimer:i,clearTimer:o,asap:s}})}(function(r){t.exports=r(e)})}).call(this,e("_process"))},{_process:6}],284:[function(e,t,r){!function(e){"use strict";e(function(){function e(e){var r=String(e);return"[object Object]"===r&&"undefined"!=typeof JSON&&(r=t(e,r)),r}function t(e,t){try{return JSON.stringify(e)}catch(e){return t}}return{formatError:function(t){var r="object"==typeof t&&null!==t&&(t.stack||t.message)?t.stack||t.message:e(t);return t instanceof Error?r:r+" (WARNING: non-Error used)"},formatObject:e,tryStringify:t}})}(function(e){t.exports=e()})},{}],285:[function(e,t,r){(function(e){!function(t){"use strict";t(function(){return function(t){function r(e,t){this._handler=e===p?t:function(e){function t(e){r.reject(e)}var r=new d;try{e(function(e){r.resolve(e)},t,function(e){r.notify(e)})}catch(e){t(e)}return r}(e)}function n(e){return E(e)?e:new r(p,new m(h(e)))}function i(e){return new r(p,new m(new y(e)))}function o(){return F}function s(e,t,n){function i(e,t,r){h[e]=t,0==--u&&r.become(new g(h))}for(var o,s="function"==typeof t?function(r,o,s){s.resolved||a(n,i,r,e(t,o,r),s)}:i,c=new d,u=n.length>>>0,h=new Array(u),l=0;l<n.length&&!c.resolved;++l)void 0!==(o=n[l])||l in n?a(n,s,l,o,c):--u;return 0===u&&c.become(new g(h)),new r(p,c)}function a(e,t,r,n,i){if(C(n)){var o=function(e){return E(e)?e._handler.join():l(e)}(n),s=o.state();0===s?o.fold(t,r,void 0,i):s>0?t(r,o.value,i):(i.become(o),c(e,r+1,o))}else t(r,n,i)}function c(e,t,r){for(var n=t;n<e.length;++n)!function(e,t){if(e===t)return;var r=e.state();0===r?e.visit(e,void 0,e._unreport):r<0&&e._unreport()}(h(e[n]),r)}function u(e){return"object"!=typeof e||null===e?i(new TypeError("non-iterable passed to race()")):0===e.length?o():1===e.length?n(e[0]):function(e){var t,n,i,o=new d;for(t=0;t<e.length;++t)if(void 0!==(n=e[t])||t in e){if(0!==(i=h(n)).state()){o.become(i),c(e,t+1,i);break}i.visit(o,o.resolve,o.reject)}return new r(p,o)}(e)}function h(e){return E(e)?e._handler.join():C(e)?l(e):new g(e)}function l(e){try{var t=e.then;return"function"==typeof t?new v(t,e):new g(e)}catch(e){return new y(e)}}function p(){}function f(){}function d(e,t){r.createContext(this,t),this.consumers=void 0,this.receiver=e,this.handler=void 0,this.resolved=!1}function m(e){this.handler=e}function v(e,t){d.call(this),N.enqueue(new S(e,t,this))}function g(e){r.createContext(this),this.value=e}function y(e){r.createContext(this),this.id=++B,this.value=e,this.handled=!1,this.reported=!1,this._report()}function b(e,t){this.rejection=e,this.context=t}function _(e){this.rejection=e}function x(e,t){this.continuation=e,this.handler=t}function w(e,t){this.handler=t,this.value=e}function S(e,t,r){this._then=e,this.thenable=t,this.resolver=r}function M(e,t,r,n){this.f=e,this.z=t,this.c=r,this.to=n,this.resolver=k,this.receiver=this}function E(e){return e instanceof r}function C(e){return("object"==typeof e||"function"==typeof e)&&null!==e}function T(e,t,n,i){if("function"!=typeof e)return i.become(t);r.enterContext(t),function(e,t,r,n){try{n.become(h(e.call(r,t)))}catch(e){n.become(new y(e))}}(e,t.value,n,i),r.exitContext()}function O(e,t,n,i,o){if("function"!=typeof e)return o.become(n);r.enterContext(n),function(e,t,r,n,i){try{e.call(n,t,r,i)}catch(e){i.become(new y(e))}}(e,t,n.value,i,o),r.exitContext()}function P(e,t,r){try{return e(t,r)}catch(e){return i(e)}}function A(e,t){t.prototype=D(e.prototype),t.prototype.constructor=t}function R(e,t){return t}function j(){}function L(){return void 0!==e&&null!==e&&"function"==typeof e.emit?function(t,r){return"unhandledRejection"===t?e.emit(t,r.value,r):e.emit(t,r)}:"undefined"!=typeof self&&function(){if("function"==typeof CustomEvent)try{return new CustomEvent("unhandledRejection")instanceof CustomEvent}catch(e){}return!1}()?function(e,t){return function(r,n){var i=new t(r,{detail:{reason:n.value,key:n},bubbles:!1,cancelable:!0});return!e.dispatchEvent(i)}}(self,CustomEvent):"undefined"!=typeof self&&function(){if("undefined"!=typeof document&&"function"==typeof document.createEvent)try{return document.createEvent("CustomEvent").initCustomEvent("eventType",!1,!0,{}),!0}catch(e){}return!1}()?function(e,t){return function(r,n){var i=t.createEvent("CustomEvent");return i.initCustomEvent(r,!1,!0,{reason:n.value,key:n}),!e.dispatchEvent(i)}}(self,document):j}var N=t.scheduler,I=L(),D=Object.create||function(e){function t(){}return t.prototype=e,new t};r.resolve=n,r.reject=i,r.never=o,r._defer=function(){return new r(p,new d)},r._handler=h,r.prototype.then=function(e,t,r){var n=this._handler,i=n.join().state();if("function"!=typeof e&&i>0||"function"!=typeof t&&i<0)return new this.constructor(p,n);var o=this._beget(),s=o._handler;return n.chain(s,n.receiver,e,t,r),o},r.prototype.catch=function(e){return this.then(void 0,e)},r.prototype._beget=function(){return function(e,t){return new t(p,new d(e.receiver,e.join().context))}(this._handler,this.constructor)},r.all=function(e){return s(R,null,e)},r.race=u,r._traverse=function(e,t){return s(P,e,t)},r._visitRemaining=c,p.prototype.when=p.prototype.become=p.prototype.notify=p.prototype.fail=p.prototype._unreport=p.prototype._report=j,p.prototype._state=0,p.prototype.state=function(){return this._state},p.prototype.join=function(){for(var e=this;void 0!==e.handler;)e=e.handler;return e},p.prototype.chain=function(e,t,r,n,i){this.when({resolver:e,receiver:t,fulfilled:r,rejected:n,progress:i})},p.prototype.visit=function(e,t,r,n){this.chain(k,e,t,r,n)},p.prototype.fold=function(e,t,r,n){this.when(new M(e,t,r,n))},A(p,f),f.prototype.become=function(e){e.fail()};var k=new f;A(p,d),d.prototype._state=0,d.prototype.resolve=function(e){this.become(h(e))},d.prototype.reject=function(e){this.resolved||this.become(new y(e))},d.prototype.join=function(){if(!this.resolved)return this;for(var e=this;void 0!==e.handler;)if((e=e.handler)===this)return this.handler=new y(new TypeError("Promise cycle"));return e},d.prototype.run=function(){var e=this.consumers,t=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var r=0;r<e.length;++r)t.when(e[r])},d.prototype.become=function(e){this.resolved||(this.resolved=!0,this.handler=e,void 0!==this.consumers&&N.enqueue(this),void 0!==this.context&&e._report(this.context))},d.prototype.when=function(e){this.resolved?N.enqueue(new x(e,this.handler)):void 0===this.consumers?this.consumers=[e]:this.consumers.push(e)},d.prototype.notify=function(e){this.resolved||N.enqueue(new w(e,this))},d.prototype.fail=function(e){var t=void 0===e?this.context:e;this.resolved&&this.handler.join().fail(t)},d.prototype._report=function(e){this.resolved&&this.handler.join()._report(e)},d.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},A(p,m),m.prototype.when=function(e){N.enqueue(new x(e,this))},m.prototype._report=function(e){this.join()._report(e)},m.prototype._unreport=function(){this.join()._unreport()},A(d,v),A(p,g),g.prototype._state=1,g.prototype.fold=function(e,t,r,n){O(e,t,this,r,n)},g.prototype.when=function(e){T(e.fulfilled,this,e.receiver,e.resolver)};var B=0;A(p,y),y.prototype._state=-1,y.prototype.fold=function(e,t,r,n){n.become(this)},y.prototype.when=function(e){"function"==typeof e.rejected&&this._unreport(),T(e.rejected,this,e.receiver,e.resolver)},y.prototype._report=function(e){N.afterQueue(new b(this,e))},y.prototype._unreport=function(){this.handled||(this.handled=!0,N.afterQueue(new _(this)))},y.prototype.fail=function(e){this.reported=!0,I("unhandledRejection",this),r.onFatalRejection(this,void 0===e?this.context:e)},b.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,I("unhandledRejection",this.rejection)||r.onPotentiallyUnhandledRejection(this.rejection,this.context))},_.prototype.run=function(){this.rejection.reported&&(I("rejectionHandled",this.rejection)||r.onPotentiallyUnhandledRejectionHandled(this.rejection))},r.createContext=r.enterContext=r.exitContext=r.onPotentiallyUnhandledRejection=r.onPotentiallyUnhandledRejectionHandled=r.onFatalRejection=j;var F=new r(p,new p);return x.prototype.run=function(){this.handler.join().when(this.continuation)},w.prototype.run=function(){var e=this.handler.consumers;if(void 0!==e)for(var t,n=0;n<e.length;++n)!function(e,t,n,i,o){if("function"!=typeof e)return o.notify(t);r.enterContext(n),function(e,t,r,n){try{n.notify(e.call(r,t))}catch(e){n.notify(e)}}(e,t,i,o),r.exitContext()}((t=e[n]).progress,this.value,this.handler,t.receiver,t.resolver)},S.prototype.run=function(){var e=this.resolver;!function(e,t,r,n,i){try{e.call(t,r,n,i)}catch(e){n(e)}}(this._then,this.thenable,function(t){e.resolve(t)},function(t){e.reject(t)},function(t){e.notify(t)})},M.prototype.fulfilled=function(e){this.f.call(this.c,this.z,e,this.to)},M.prototype.rejected=function(e){this.to.reject(e)},M.prototype.progress=function(e){this.to.notify(e)},r}})}(function(e){t.exports=e()})}).call(this,e("_process"))},{_process:6}],286:[function(e,t,r){!function(e){"use strict";e(function(){function e(){return{state:"pending"}}function t(e){return{state:"rejected",reason:e}}function r(e){return{state:"fulfilled",value:e}}return{pending:e,fulfilled:r,rejected:t,inspect:function(e){var n=e.state();return 0===n?{state:"pending"}:n>0?r(e.value):t(e.value)}}})}(function(e){t.exports=e()})},{}],287:[function(e,t,r){!function(e){"use strict";e(function(e){function t(e,t,r,n){var i=m.resolve(e);return arguments.length<2?i:i.then(t,r,n)}function r(e){return function(){for(var t=0,r=arguments.length,n=new Array(r);t<r;++t)n[t]=arguments[t];return v(e,this,n)}}function n(e){for(var t=0,r=arguments.length-1,n=new Array(r);t<r;++t)n[t]=arguments[t+1];return v(e,this,n)}function i(){return new function(){function e(e){n._handler.resolve(e)}function t(e){n._handler.reject(e)}function r(e){n._handler.notify(e)}var n=m._defer();this.promise=n,this.resolve=e,this.reject=t,this.notify=r,this.resolver={resolve:e,reject:t,notify:r}}}var o=e("./lib/decorators/timed"),s=e("./lib/decorators/array"),a=e("./lib/decorators/flow"),c=e("./lib/decorators/fold"),u=e("./lib/decorators/inspect"),h=e("./lib/decorators/iterate"),l=e("./lib/decorators/progress"),p=e("./lib/decorators/with"),f=e("./lib/decorators/unhandledRejection"),d=e("./lib/TimeoutError"),m=[s,a,c,h,l,u,p,o,f].reduce(function(e,t){return t(e)},e("./lib/Promise")),v=e("./lib/apply")(m);return t.promise=function(e){return new m(e)},t.resolve=m.resolve,t.reject=m.reject,t.lift=r,t.try=n,t.attempt=n,t.iterate=m.iterate,t.unfold=m.unfold,t.join=function(){return m.all(arguments)},t.all=function(e){return t(e,m.all)},t.settle=function(e){return t(e,m.settle)},t.any=r(m.any),t.some=r(m.some),t.race=r(m.race),t.map=function(e,r){return t(e,function(e){return m.map(e,r)})},t.filter=function(e,r){return t(e,function(e){return m.filter(e,r)})},t.reduce=r(m.reduce),t.reduceRight=r(m.reduceRight),t.isPromiseLike=function(e){return e&&"function"==typeof e.then},t.Promise=m,t.defer=i,t.TimeoutError=d,t})}(function(r){t.exports=r(e)})},{"./lib/Promise":270,"./lib/TimeoutError":272,"./lib/apply":273,"./lib/decorators/array":274,"./lib/decorators/flow":275,"./lib/decorators/fold":276,"./lib/decorators/inspect":277,"./lib/decorators/iterate":278,"./lib/decorators/progress":279,"./lib/decorators/timed":280,"./lib/decorators/unhandledRejection":281,"./lib/decorators/with":282}],288:[function(e,t,r){var n=Array.isArray,i=Object.prototype.toString;t.exports=n||function(e){return"[object Array]"===i.call(e)}},{}],289:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./api/APIv3");r.APIv3=n.APIv3;var i=e("./api/ModelCreator");r.ModelCreator=i.ModelCreator},{"./api/APIv3":302,"./api/ModelCreator":303}],290:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./component/Component");r.Component=n.Component;var i=e("./component/ComponentService");r.ComponentService=i.ComponentService;var o=e("./component/utils/HandlerBase");r.HandlerBase=o.HandlerBase;var s=e("./component/utils/MeshFactory");r.MeshFactory=s.MeshFactory;var a=e("./component/utils/MeshScene");r.MeshScene=a.MeshScene;var c=e("./component/AttributionComponent");r.AttributionComponent=c.AttributionComponent;var u=e("./component/BackgroundComponent");r.BackgroundComponent=u.BackgroundComponent;var h=e("./component/BearingComponent");r.BearingComponent=h.BearingComponent;var l=e("./component/CacheComponent");r.CacheComponent=l.CacheComponent;var p=e("./component/CoverComponent");r.CoverComponent=p.CoverComponent;var f=e("./component/DebugComponent");r.DebugComponent=f.DebugComponent;var d=e("./component/direction/DirectionComponent");r.DirectionComponent=d.DirectionComponent;var m=e("./component/direction/DirectionDOMCalculator");r.DirectionDOMCalculator=m.DirectionDOMCalculator;var v=e("./component/direction/DirectionDOMRenderer");r.DirectionDOMRenderer=v.DirectionDOMRenderer;var g=e("./component/ImageComponent");r.ImageComponent=g.ImageComponent;var y=e("./component/keyboard/KeyboardComponent");r.KeyboardComponent=y.KeyboardComponent;var b=e("./component/keyboard/KeyPlayHandler");r.KeyPlayHandler=b.KeyPlayHandler;var _=e("./component/keyboard/KeyZoomHandler");r.KeyZoomHandler=_.KeyZoomHandler;var x=e("./component/keyboard/KeySequenceNavigationHandler");r.KeySequenceNavigationHandler=x.KeySequenceNavigationHandler;var w=e("./component/keyboard/KeySpatialNavigationHandler");r.KeySpatialNavigationHandler=w.KeySpatialNavigationHandler;var S=e("./component/LoadingComponent");r.LoadingComponent=S.LoadingComponent;var M=e("./component/marker/marker/Marker");r.Marker=M.Marker;var E=e("./component/marker/MarkerComponent");r.MarkerComponent=E.MarkerComponent;var C=e("./component/marker/MarkerScene");r.MarkerScene=C.MarkerScene;var T=e("./component/marker/MarkerSet");r.MarkerSet=T.MarkerSet;var O=e("./component/mouse/MouseComponent");r.MouseComponent=O.MouseComponent;var P=e("./component/mouse/BounceHandler");r.BounceHandler=P.BounceHandler;var A=e("./component/mouse/DragPanHandler");r.DragPanHandler=A.DragPanHandler;var R=e("./component/mouse/DoubleClickZoomHandler");r.DoubleClickZoomHandler=R.DoubleClickZoomHandler;var j=e("./component/mouse/ScrollZoomHandler");r.ScrollZoomHandler=j.ScrollZoomHandler;var L=e("./component/mouse/TouchZoomHandler");r.TouchZoomHandler=L.TouchZoomHandler;var N=e("./component/popup/popup/Popup");r.Popup=N.Popup;var I=e("./component/popup/PopupComponent");r.PopupComponent=I.PopupComponent;var D=e("./component/NavigationComponent");r.NavigationComponent=D.NavigationComponent;var k=e("./component/RouteComponent");r.RouteComponent=k.RouteComponent;var B=e("./component/sequence/SequenceComponent");r.SequenceComponent=B.SequenceComponent;var F=e("./component/sequence/SequenceDOMRenderer");r.SequenceDOMRenderer=F.SequenceDOMRenderer;var U=e("./component/sequence/SequenceMode");r.SequenceMode=U.SequenceMode;var $=e("./component/imageplane/ImagePlaneComponent");r.ImagePlaneComponent=$.ImagePlaneComponent;var z=e("./component/imageplane/ImagePlaneGLRenderer");r.ImagePlaneGLRenderer=z.ImagePlaneGLRenderer;var G=e("./component/shaders/Shaders");r.Shaders=G.Shaders;var V=e("./component/marker/marker/SimpleMarker");r.SimpleMarker=V.SimpleMarker;var H=e("./component/marker/marker/CircleMarker");r.CircleMarker=H.CircleMarker;var q=e("./component/slider/SliderComponent");r.SliderComponent=q.SliderComponent;var W=e("./component/slider/SliderDOMRenderer");r.SliderDOMRenderer=W.SliderDOMRenderer;var X=e("./component/slider/SliderGLRenderer");r.SliderGLRenderer=X.SliderGLRenderer;var Y=e("./component/StatsComponent");r.StatsComponent=Y.StatsComponent;var K=e("./component/tag/handlers/TagHandlerBase");r.TagHandlerBase=K.TagHandlerBase;var Z=e("./component/tag/handlers/CreateHandlerBase");r.CreateHandlerBase=Z.CreateHandlerBase;var J=e("./component/tag/handlers/CreatePointHandler");r.CreatePointHandler=J.CreatePointHandler;var Q=e("./component/tag/handlers/CreateVertexHandler");r.CreateVertexHandler=Q.CreateVertexHandler;var ee=e("./component/tag/handlers/CreatePolygonHandler");r.CreatePolygonHandler=ee.CreatePolygonHandler;var te=e("./component/tag/handlers/CreateRectHandler");r.CreateRectHandler=te.CreateRectHandler;var re=e("./component/tag/handlers/CreateRectDragHandler");r.CreateRectDragHandler=re.CreateRectDragHandler;var ne=e("./component/tag/handlers/EditVertexHandler");r.EditVertexHandler=ne.EditVertexHandler;var ie=e("./component/tag/tag/Tag");r.Tag=ie.Tag;var oe=e("./component/tag/tag/OutlineTag");r.OutlineTag=oe.OutlineTag;var se=e("./component/tag/tag/RenderTag");r.RenderTag=se.RenderTag;var ae=e("./component/tag/tag/OutlineRenderTag");r.OutlineRenderTag=ae.OutlineRenderTag;var ce=e("./component/tag/tag/OutlineCreateTag");r.OutlineCreateTag=ce.OutlineCreateTag;var ue=e("./component/tag/tag/SpotTag");r.SpotTag=ue.SpotTag;var he=e("./component/tag/tag/SpotRenderTag");r.SpotRenderTag=he.SpotRenderTag;var le=e("./component/tag/TagComponent");r.TagComponent=le.TagComponent;var pe=e("./component/tag/TagCreator");r.TagCreator=pe.TagCreator;var fe=e("./component/tag/TagDOMRenderer");r.TagDOMRenderer=fe.TagDOMRenderer;var de=e("./component/tag/TagMode");r.TagMode=de.TagMode;var me=e("./component/tag/TagOperation");r.TagOperation=me.TagOperation;var ve=e("./component/tag/TagScene");r.TagScene=ve.TagScene;var ge=e("./component/tag/TagSet");r.TagSet=ge.TagSet;var ye=e("./component/tag/geometry/Geometry");r.Geometry=ye.Geometry;var be=e("./component/tag/geometry/VertexGeometry");r.VertexGeometry=be.VertexGeometry;var _e=e("./component/tag/geometry/RectGeometry");r.RectGeometry=_e.RectGeometry;var xe=e("./component/tag/geometry/PointGeometry");r.PointGeometry=xe.PointGeometry;var we=e("./component/tag/geometry/PolygonGeometry");r.PolygonGeometry=we.PolygonGeometry;var Se=e("./component/tag/error/GeometryTagError");r.GeometryTagError=Se.GeometryTagError;var Me=e("./component/zoom/ZoomComponent");r.ZoomComponent=Me.ZoomComponent,function(e){for(var t in e)r.hasOwnProperty(t)||(r[t]=e[t])}(e("./component/interfaces/interfaces"))},{"./component/AttributionComponent":304,"./component/BackgroundComponent":305,"./component/BearingComponent":306,"./component/CacheComponent":307,"./component/Component":308,"./component/ComponentService":309,"./component/CoverComponent":310,"./component/DebugComponent":311,"./component/ImageComponent":312,"./component/LoadingComponent":313,"./component/NavigationComponent":314,"./component/RouteComponent":315,"./component/StatsComponent":316,"./component/direction/DirectionComponent":317,"./component/direction/DirectionDOMCalculator":318,"./component/direction/DirectionDOMRenderer":319,"./component/imageplane/ImagePlaneComponent":320,"./component/imageplane/ImagePlaneGLRenderer":321,"./component/interfaces/interfaces":324,"./component/keyboard/KeyPlayHandler":325,"./component/keyboard/KeySequenceNavigationHandler":326,"./component/keyboard/KeySpatialNavigationHandler":327,"./component/keyboard/KeyZoomHandler":328,"./component/keyboard/KeyboardComponent":329,"./component/marker/MarkerComponent":331,"./component/marker/MarkerScene":332,"./component/marker/MarkerSet":333,"./component/marker/marker/CircleMarker":334,"./component/marker/marker/Marker":335,"./component/marker/marker/SimpleMarker":336,"./component/mouse/BounceHandler":337,"./component/mouse/DoubleClickZoomHandler":338,"./component/mouse/DragPanHandler":339,"./component/mouse/MouseComponent":340,"./component/mouse/ScrollZoomHandler":341,"./component/mouse/TouchZoomHandler":342,"./component/popup/PopupComponent":344,"./component/popup/popup/Popup":345,"./component/sequence/SequenceComponent":346,"./component/sequence/SequenceDOMRenderer":347,"./component/sequence/SequenceMode":348,"./component/shaders/Shaders":349,"./component/slider/SliderComponent":350,"./component/slider/SliderDOMRenderer":351,"./component/slider/SliderGLRenderer":352,"./component/tag/TagComponent":354,"./component/tag/TagCreator":355,"./component/tag/TagDOMRenderer":356,"./component/tag/TagMode":357,"./component/tag/TagOperation":358,"./component/tag/TagScene":359,"./component/tag/TagSet":360,"./component/tag/error/GeometryTagError":361,"./component/tag/geometry/Geometry":362,"./component/tag/geometry/PointGeometry":363,"./component/tag/geometry/PolygonGeometry":364,"./component/tag/geometry/RectGeometry":365,"./component/tag/geometry/VertexGeometry":366,"./component/tag/handlers/CreateHandlerBase":367,"./component/tag/handlers/CreatePointHandler":368,"./component/tag/handlers/CreatePolygonHandler":369,"./component/tag/handlers/CreateRectDragHandler":370,"./component/tag/handlers/CreateRectHandler":371,"./component/tag/handlers/CreateVertexHandler":372,"./component/tag/handlers/EditVertexHandler":373,"./component/tag/handlers/TagHandlerBase":374,"./component/tag/tag/OutlineCreateTag":375,"./component/tag/tag/OutlineRenderTag":376,"./component/tag/tag/OutlineTag":377,"./component/tag/tag/RenderTag":378,"./component/tag/tag/SpotRenderTag":379,"./component/tag/tag/SpotTag":380,"./component/tag/tag/Tag":381,"./component/utils/HandlerBase":382,"./component/utils/MeshFactory":383,"./component/utils/MeshScene":384,"./component/zoom/ZoomComponent":385}],291:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./graph/edge/EdgeDirection");r.EdgeDirection=n.EdgeDirection;var i=e("./graph/edge/EdgeCalculatorSettings");r.EdgeCalculatorSettings=i.EdgeCalculatorSettings;var o=e("./graph/edge/EdgeCalculatorDirections");r.EdgeCalculatorDirections=o.EdgeCalculatorDirections;var s=e("./graph/edge/EdgeCalculatorCoefficients");r.EdgeCalculatorCoefficients=s.EdgeCalculatorCoefficients;var a=e("./graph/edge/EdgeCalculator");r.EdgeCalculator=a.EdgeCalculator},{"./graph/edge/EdgeCalculator":405,"./graph/edge/EdgeCalculatorCoefficients":406,"./graph/edge/EdgeCalculatorDirections":407,"./graph/edge/EdgeCalculatorSettings":408,"./graph/edge/EdgeDirection":409}],292:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./error/AbortMapillaryError");r.AbortMapillaryError=n.AbortMapillaryError;var i=e("./error/ArgumentMapillaryError");r.ArgumentMapillaryError=i.ArgumentMapillaryError;var o=e("./error/GraphMapillaryError");r.GraphMapillaryError=o.GraphMapillaryError;var s=e("./error/MapillaryError");r.MapillaryError=s.MapillaryError},{"./error/AbortMapillaryError":386,"./error/ArgumentMapillaryError":387,"./error/GraphMapillaryError":388,"./error/MapillaryError":389}],293:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./geo/Camera");r.Camera=n.Camera;var i=e("./geo/GeoCoords");r.GeoCoords=i.GeoCoords;var o=e("./geo/ViewportCoords");r.ViewportCoords=o.ViewportCoords;var s=e("./geo/Spatial");r.Spatial=s.Spatial;var a=e("./geo/Transform");r.Transform=a.Transform},{"./geo/Camera":390,"./geo/GeoCoords":391,"./geo/Spatial":392,"./geo/Transform":393,"./geo/ViewportCoords":394}],294:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./graph/FilterCreator");r.FilterCreator=n.FilterCreator;var i=e("./graph/Graph");r.Graph=i.Graph;var o=e("./graph/GraphCalculator");r.GraphCalculator=o.GraphCalculator;var s=e("./graph/GraphMode");r.GraphMode=s.GraphMode;var a=e("./graph/GraphService");r.GraphService=a.GraphService;var c=e("./graph/ImageLoadingService");r.ImageLoadingService=c.ImageLoadingService;var u=e("./graph/MeshReader");r.MeshReader=u.MeshReader;var h=e("./graph/Node");r.Node=h.Node;var l=e("./graph/NodeCache");r.NodeCache=l.NodeCache;var p=e("./graph/Sequence");r.Sequence=p.Sequence},{"./graph/FilterCreator":395,"./graph/Graph":396,"./graph/GraphCalculator":397,"./graph/GraphMode":398,"./graph/GraphService":399,"./graph/ImageLoadingService":400,"./graph/MeshReader":401,"./graph/Node":402,"./graph/NodeCache":403,"./graph/Sequence":404}],295:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),function(e){for(var t in e)r.hasOwnProperty(t)||(r[t]=e[t])}(e("./Support"));var n=e("./Edge");r.EdgeDirection=n.EdgeDirection;var i=e("./Error");r.AbortMapillaryError=i.AbortMapillaryError;var o=e("./Render");r.RenderMode=o.RenderMode;var s=e("./State");r.TransitionMode=s.TransitionMode;var a=e("./Viewer");r.Alignment=a.Alignment,r.ImageSize=a.ImageSize,r.Viewer=a.Viewer;var c=e("./Component");r.SliderMode=c.SliderMode;var u=e("./component/tag/Tag");r.TagComponent=u;var h=e("./component/marker/Marker");r.MarkerComponent=h;var l=e("./component/popup/Popup");r.PopupComponent=l},{"./Component":290,"./Edge":291,"./Error":292,"./Render":296,"./State":297,"./Support":298,"./Viewer":301,"./component/marker/Marker":330,"./component/popup/Popup":343,"./component/tag/Tag":353}],296:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./render/DOMRenderer");r.DOMRenderer=n.DOMRenderer;var i=e("./render/GLRenderer");r.GLRenderer=i.GLRenderer;var o=e("./render/GLRenderStage");r.GLRenderStage=o.GLRenderStage;var s=e("./render/RenderCamera");r.RenderCamera=s.RenderCamera;var a=e("./render/RenderMode");r.RenderMode=a.RenderMode;var c=e("./render/RenderService");r.RenderService=c.RenderService},{"./render/DOMRenderer":410,"./render/GLRenderStage":411,"./render/GLRenderer":412,"./render/RenderCamera":413,"./render/RenderMode":414,"./render/RenderService":415}],297:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./state/RotationDelta");r.RotationDelta=n.RotationDelta;var i=e("./state/State");r.State=i.State;var o=e("./state/states/StateBase");r.StateBase=o.StateBase;var s=e("./state/StateContext");r.StateContext=s.StateContext;var a=e("./state/StateService");r.StateService=a.StateService;var c=e("./state/TransitionMode");r.TransitionMode=c.TransitionMode;var u=e("./state/states/InteractiveStateBase");r.InteractiveStateBase=u.InteractiveStateBase;var h=e("./state/states/InteractiveWaitingState");r.InteractiveWaitingState=h.InteractiveWaitingState;var l=e("./state/states/TraversingState");r.TraversingState=l.TraversingState;var p=e("./state/states/WaitingState");r.WaitingState=p.WaitingState},{"./state/RotationDelta":416,"./state/State":417,"./state/StateContext":418,"./state/StateService":419,"./state/TransitionMode":420,"./state/states/InteractiveStateBase":421,"./state/states/InteractiveWaitingState":422,"./state/states/StateBase":423,"./state/states/TraversingState":424,"./state/states/WaitingState":425}],298:[function(e,t,r){"use strict";function n(){return i.isBrowser()&&i.isBlobSupported()&&i.isArraySupported()&&i.isFunctionSupported()&&i.isJSONSupported()&&i.isObjectSupported()}Object.defineProperty(r,"__esModule",{value:!0});var i=e("./utils/Support");r.isSupported=function(){return n()&&i.isWebGLSupportedCached()},r.isFallbackSupported=n},{"./utils/Support":433}],299:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./tiles/ImageTileLoader");r.ImageTileLoader=n.ImageTileLoader;var i=e("./tiles/ImageTileStore");r.ImageTileStore=i.ImageTileStore;var o=e("./tiles/TextureProvider");r.TextureProvider=o.TextureProvider;var s=e("./tiles/RegionOfInterestCalculator");r.RegionOfInterestCalculator=s.RegionOfInterestCalculator},{"./tiles/ImageTileLoader":426,"./tiles/ImageTileStore":427,"./tiles/RegionOfInterestCalculator":428,"./tiles/TextureProvider":429}],300:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./utils/DOM");r.DOM=n.DOM;var i=e("./utils/EventEmitter");r.EventEmitter=i.EventEmitter;var o=e("./utils/Settings");r.Settings=o.Settings,function(e){for(var t in e)r.hasOwnProperty(t)||(r[t]=e[t])}(e("./utils/Support"));var s=e("./utils/Urls");r.Urls=s.Urls},{"./utils/DOM":430,"./utils/EventEmitter":431,"./utils/Settings":432,"./utils/Support":433,"./utils/Urls":434}],301:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./viewer/Alignment");r.Alignment=n.Alignment;var i=e("./viewer/CacheService");r.CacheService=i.CacheService;var o=e("./viewer/ComponentController");r.ComponentController=o.ComponentController;var s=e("./viewer/Container");r.Container=s.Container;var a=e("./viewer/Observer");r.Observer=a.Observer;var c=e("./viewer/ImageSize");r.ImageSize=c.ImageSize;var u=e("./viewer/KeyboardService");r.KeyboardService=u.KeyboardService;var h=e("./viewer/LoadingService");r.LoadingService=h.LoadingService;var l=e("./viewer/MouseService");r.MouseService=l.MouseService;var p=e("./viewer/Navigator");r.Navigator=p.Navigator;var f=e("./viewer/PlayService");r.PlayService=f.PlayService;var d=e("./viewer/Projection");r.Projection=d.Projection;var m=e("./viewer/SpriteService");r.SpriteService=m.SpriteService;var v=e("./viewer/TouchService");r.TouchService=v.TouchService;var g=e("./viewer/Viewer");r.Viewer=g.Viewer},{"./viewer/Alignment":435,"./viewer/CacheService":436,"./viewer/ComponentController":437,"./viewer/Container":438,"./viewer/ImageSize":439,"./viewer/KeyboardService":440,"./viewer/LoadingService":441,"./viewer/MouseService":442,"./viewer/Navigator":443,"./viewer/Observer":444,"./viewer/PlayService":445,"./viewer/Projection":446,"./viewer/SpriteService":447,"./viewer/TouchService":448,"./viewer/Viewer":449}],302:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=e("../API"),o=function(){function e(e,t,r){this._clientId=e,this._modelCreator=null!=r?r:new i.ModelCreator,this._model=this._modelCreator.createModel(e,t),this._pageCount=999,this._pathImageByKey="imageByKey",this._pathImageCloseTo="imageCloseTo",this._pathImagesByH="imagesByH",this._pathImageViewAdd="imageViewAdd",this._pathSequenceByKey="sequenceByKey",this._pathSequenceViewAdd="sequenceViewAdd",this._propertiesCore=["cl","l","sequence_key"],this._propertiesFill=["captured_at","captured_with_camera_uuid","user","organization_key","private","project"],this._propertiesKey=["key"],this._propertiesSequence=["keys"],this._propertiesSpatial=["atomic_scale","ca","calt","cca","cfocal","gpano","height","merge_cc","merge_version","c_rotation","orientation","width"],this._propertiesUser=["username"]}return e.prototype.imageByKeyFill$=function(e){return this._catchInvalidateGet$(this._wrapPromise$(this._model.get([this._pathImageByKey,e,this._propertiesKey.concat(this._propertiesFill).concat(this._propertiesSpatial),this._propertiesKey.concat(this._propertiesUser)])).map(function(t){if(!t)throw new Error("Images ("+e.join(", ")+") could not be found.");return t.json.imageByKey}),this._pathImageByKey,e)},e.prototype.imageByKeyFull$=function(e){return this._catchInvalidateGet$(this._wrapPromise$(this._model.get([this._pathImageByKey,e,this._propertiesKey.concat(this._propertiesCore).concat(this._propertiesFill).concat(this._propertiesSpatial),this._propertiesKey.concat(this._propertiesUser)])).map(function(t){if(!t)throw new Error("Images ("+e.join(", ")+") could not be found.");return t.json.imageByKey}),this._pathImageByKey,e)},e.prototype.imageCloseTo$=function(e,t){var r=t+":"+e;return this._catchInvalidateGet$(this._wrapPromise$(this._model.get([this._pathImageCloseTo,[r],this._propertiesKey.concat(this._propertiesCore).concat(this._propertiesFill).concat(this._propertiesSpatial),this._propertiesKey.concat(this._propertiesUser)])).map(function(e){return null!=e?e.json.imageCloseTo[r]:null}),this._pathImageCloseTo,[r])},e.prototype.imagesByH$=function(e){var t=this;return this._catchInvalidateGet$(this._wrapPromise$(this._model.get([this._pathImagesByH,e,{from:0,to:this._pageCount},this._propertiesKey.concat(this._propertiesCore)])).map(function(r){if(!r){r={json:{imagesByH:{}}};for(var n=0,i=e;n<i.length;n++){var o=i[n];r.json.imagesByH[o]={};for(var s=0;s<=t._pageCount;s++)r.json.imagesByH[o][s]=null}}return r.json.imagesByH}),this._pathImagesByH,e)},e.prototype.imageViewAdd$=function(e){return this._catchInvalidateCall$(this._wrapPromise$(this._model.call([this._pathImageViewAdd],[e])),this._pathImageViewAdd,e)},e.prototype.invalidateImageByKey=function(e){this._invalidateGet(this._pathImageByKey,e)},e.prototype.invalidateImagesByH=function(e){this._invalidateGet(this._pathImagesByH,e)},e.prototype.invalidateSequenceByKey=function(e){this._invalidateGet(this._pathSequenceByKey,e)},e.prototype.setToken=function(e){this._model.invalidate([]),this._model=null,this._model=this._modelCreator.createModel(this._clientId,e)},e.prototype.sequenceByKey$=function(e){return this._catchInvalidateGet$(this._wrapPromise$(this._model.get([this._pathSequenceByKey,e,this._propertiesKey.concat(this._propertiesSequence)])).map(function(t){t||(t={json:{sequenceByKey:{}}});for(var r=0,n=e;r<n.length;r++){var i=n[r];i in t.json.sequenceByKey||(console.warn("Sequence data missing ("+i+")"),t.json.sequenceByKey[i]={key:i,keys:[]})}return t.json.sequenceByKey}),this._pathSequenceByKey,e)},e.prototype.sequenceViewAdd$=function(e){return this._catchInvalidateCall$(this._wrapPromise$(this._model.call([this._pathSequenceViewAdd],[e])),this._pathSequenceViewAdd,e)},Object.defineProperty(e.prototype,"clientId",{get:function(){return this._clientId},enumerable:!0,configurable:!0}),e.prototype._catchInvalidateGet$=function(e,t,r){var n=this;return e.catch(function(e){throw n._invalidateGet(t,r),e})},e.prototype._catchInvalidateCall$=function(e,t,r){var n=this;return e.catch(function(e){throw n._invalidateCall(t,r),e})},e.prototype._invalidateGet=function(e,t){this._model.invalidate([e,t])},e.prototype._invalidateCall=function(e,t){this._model.invalidate([e],[t])},e.prototype._wrapPromise$=function(e){return n.Observable.defer(function(){return n.Observable.fromPromise(e)})},e}();r.APIv3=o,r.default=o},{"../API":289,"rxjs/Observable":29}],303:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("falcor"),i=e("falcor-http-datasource"),o=e("../Utils"),s=function(){function e(){}return e.prototype.createModel=function(e,t){var r={crossDomain:!0,withCredentials:!1};return null!=t&&(r.headers={Authorization:"Bearer "+t}),new n.Model({maxSize:16777216,source:new i(o.Urls.falcorModel(e),r)})},e}();r.ModelCreator=s,r.default=s},{"../Utils":300,falcor:15,"falcor-http-datasource":10}],304:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("rxjs/Observable"),s=e("../Component"),a=e("../Utils"),c=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){var e=this;this._disposable=o.Observable.combineLatest(this._navigator.stateService.currentNode$,this._container.renderService.size$).map(function(t){var r=t[0],n=t[1];return{name:e._name,vnode:e._getAttributionNode(r.username,r.key,r.capturedAt,n.width)}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._disposable.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._getAttributionNode=function(e,t,r,n){var o=n<=640,s=i.h("div.AttributionMapillaryLogo",[]),c=i.h("a.AttributionIconContainer",{href:a.Urls.explore,target:"_blank"},[s]),u=o?""+e:"image by "+e,h=i.h("div.AttributionUsername",{textContent:u},[]),l=new Date(r).toDateString().split(" "),p=(l.length>3?o?[l[3]]:[l[1],l[2]+",",l[3]]:l).join(" "),f=i.h("div.AttributionDate",{textContent:p},[]),d=i.h("a.AttributionImageContainer",{href:a.Urls.exporeImage(t),target:"_blank"},[h,f]),m=o?".AttributionCompact":"";return i.h("div.AttributionContainer"+m,{},[c,d])},t.componentName="attribution",t}(s.Component);r.AttributionComponent=c,s.ComponentService.register(c),r.default=c},{"../Component":290,"../Utils":300,"rxjs/Observable":29,"virtual-dom":246}],305:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("../Component"),s=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){this._container.domRenderer.render$.next({name:this._name,vnode:this._getBackgroundNode("The viewer can't display the given image.")})},t.prototype._deactivate=function(){},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._getBackgroundNode=function(e){return i.h("div.BackgroundWrapper",{},[i.h("p",{textContent:e},[])])},t.componentName="background",t}(o.Component);r.BackgroundComponent=s,o.ComponentService.register(s),r.default=s},{"../Component":290,"virtual-dom":246}],306:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("../Component"),s=e("../Geo"),a=function(e){function t(t,r,n){var i=e.call(this,t,r,n)||this;return i._spatial=new s.Spatial,i._svgNamespace="http://www.w3.org/2000/svg",i._distinctThreshold=Math.PI/360,i}return n(t,e),t.prototype._activate=function(){var e=this,t=this._container.renderService.renderCamera$.map(function(t){var r=e._spatial.degToRad(t.perspective.fov),n=t.perspective.aspect===Number.POSITIVE_INFINITY?Math.PI:2*Math.atan(t.perspective.aspect*Math.tan(.5*r));return[e._spatial.azimuthalToBearing(t.rotation.phi),n]}).distinctUntilChanged(function(t,r){return Math.abs(r[0]-t[0])<e._distinctThreshold&&Math.abs(r[1]-t[1])<e._distinctThreshold});this._renderSubscription=t.map(function(t){var r=t[0],n=t[1],o=i.h("div.BearingIndicatorBackground",{},[]),s=i.h("div.BearingIndicatorBackgroundCircle",{},[]),a=e._createNorth(r),c=e._createCircleSectorCompass(e._createCircleSector(Math.max(Math.PI/20,n),"#FFF"));return{name:e._name,vnode:i.h("div.BearingIndicatorContainer",{oncontextmenu:function(e){e.preventDefault()}},[o,s,a,c])}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._renderSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._createCircleSectorCompass=function(e){var t=i.h("g",{attributes:{transform:"translate(1,1)"},namespace:this._svgNamespace},[e]);return i.h("svg",{attributes:{viewBox:"0 0 2 2"},namespace:this._svgNamespace,style:{height:"30px",left:"4px",position:"absolute",top:"4px",width:"30px"}},[t])},t.prototype._createCircleSector=function(e,t){if(e>2*Math.PI-Math.PI/90)return i.h("circle",{attributes:{cx:"0",cy:"0",fill:t,r:"1"},namespace:this._svgNamespace},[]);var r=-Math.PI/2-e/2,n=r+e,o=Math.cos(r),s=Math.sin(r),a=Math.cos(n),c=Math.sin(n),u="M 0 0 "+o+" "+s+" A 1 1 0 "+(e>=Math.PI?1:0)+" 1 "+a+" "+c;return i.h("path",{attributes:{d:u,fill:t},namespace:this._svgNamespace},[])},t.prototype._createNorth=function(e){var t=i.h("div.BearingNorth",[]);return i.h("div.BearingNorthContainer",{style:{transform:"rotateZ("+180*-e/Math.PI+"deg)"}},[t])},t.componentName="bearing",t}(o.Component);r.BearingComponent=a,o.ComponentService.register(a),r.default=a},{"../Component":290,"../Geo":293,"virtual-dom":246}],307:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("../Edge"),s=e("../Component"),a=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype.setDepth=function(e){this.configure({depth:e})},t.prototype._activate=function(){var e=this;this._sequenceSubscription=i.Observable.combineLatest(this._navigator.stateService.currentNode$.switchMap(function(e){return e.sequenceEdges$}).filter(function(e){return e.cached}),this._configuration$).switchMap(function(t){var r=t[0],n=t[1],s=Math.max(0,Math.min(4,n.depth.sequence)),a=e._cache$(r.edges,o.EdgeDirection.Next,s),c=e._cache$(r.edges,o.EdgeDirection.Prev,s);return i.Observable.merge(a,c).catch(function(e,t){return console.error("Failed to cache sequence edges.",e),i.Observable.empty()})}).subscribe(function(){}),this._spatialSubscription=this._navigator.stateService.currentNode$.switchMap(function(e){return i.Observable.combineLatest(i.Observable.of(e),e.spatialEdges$.filter(function(e){return e.cached}))}).combineLatest(this._configuration$,function(e,t){return[e[0],e[1],t]}).switchMap(function(t){var r=t[0],n=t[1].edges,s=t[2].depth,a=Math.max(0,Math.min(2,s.pano)),c=r.pano?0:Math.max(0,Math.min(3,s.step)),u=r.pano?0:Math.max(0,Math.min(1,s.turn)),h=e._cache$(n,o.EdgeDirection.Pano,a),l=e._cache$(n,o.EdgeDirection.StepForward,c),p=e._cache$(n,o.EdgeDirection.StepBackward,c),f=e._cache$(n,o.EdgeDirection.StepLeft,c),d=e._cache$(n,o.EdgeDirection.StepRight,c),m=e._cache$(n,o.EdgeDirection.TurnLeft,u),v=e._cache$(n,o.EdgeDirection.TurnRight,u),g=e._cache$(n,o.EdgeDirection.TurnU,u);return i.Observable.merge(l,p,f,d,h,m,v,g).catch(function(e,t){return console.error("Failed to cache spatial edges.",e),i.Observable.empty()})}).subscribe(function(){})},t.prototype._deactivate=function(){this._sequenceSubscription.unsubscribe(),this._spatialSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{depth:{pano:1,sequence:2,step:1,turn:0}}},t.prototype._cache$=function(e,t,r){var n=this;return i.Observable.zip(i.Observable.of(e),i.Observable.of(r)).expand(function(e){var r=e[0],o=e[1],s=[];if(o>0)for(var a=0,c=r;a<c.length;a++){var u=c[a];u.data.direction===t&&s.push(i.Observable.zip(n._navigator.graphService.cacheNode$(u.to).mergeMap(function(e){return n._nodeToEdges$(e,t)}),i.Observable.of(o-1)))}return i.Observable.from(s).mergeAll()}).skip(1)},t.prototype._nodeToEdges$=function(e,t){return([o.EdgeDirection.Next,o.EdgeDirection.Prev].indexOf(t)>-1?e.sequenceEdges$:e.spatialEdges$).first(function(e){return e.cached}).map(function(e){return e.edges})},t.componentName="cache",t}(s.Component);r.CacheComponent=a,s.ComponentService.register(a),r.default=a},{"../Component":290,"../Edge":291,"rxjs/Observable":29}],308:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/BehaviorSubject"),o=e("rxjs/Subject"),s=function(e){function t(t,r,n){var s=e.call(this)||this;return s._activated$=new i.BehaviorSubject(!1),s._configurationSubject$=new o.Subject,s._activated=!1,s._container=r,s._name=t,s._navigator=n,s._configuration$=s._configurationSubject$.startWith(s.defaultConfiguration).scan(function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}).publishReplay(1).refCount(),s._configuration$.subscribe(function(){}),s}return n(t,e),Object.defineProperty(t.prototype,"activated",{get:function(){return this._activated},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activated$",{get:function(){return this._activated$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"defaultConfiguration",{get:function(){return this._getDefaultConfiguration()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"configuration$",{get:function(){return this._configuration$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),t.prototype.activate=function(e){this._activated||(void 0!==e&&this._configurationSubject$.next(e),this._activated=!0,this._activate(),this._activated$.next(!0))},t.prototype.configure=function(e){this._configurationSubject$.next(e)},t.prototype.deactivate=function(){this._activated&&(this._activated=!1,this._deactivate(),this._container.domRenderer.clear(this._name),this._container.glRenderer.clear(this._name),this._activated$.next(!1))},t.prototype.resize=function(){},t.componentName="not_worthy",t}(e("../Utils").EventEmitter);r.Component=s,r.default=s},{"../Utils":300,"rxjs/BehaviorSubject":26,"rxjs/Subject":34}],309:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("underscore"),i=e("../Error"),o=function(){function e(t,r){this._components={};for(var i=0,o=n.values(e.registeredComponents);i<o.length;i++){var s=o[i];this._components[s.componentName]={active:!1,component:new s(s.componentName,t,r)}}this._coverComponent=new e.registeredCoverComponent("cover",t,r),this._coverComponent.activate(),this._coverActivated=!0}return e.register=function(t){void 0===e.registeredComponents[t.componentName]&&(e.registeredComponents[t.componentName]=t)},e.registerCover=function(t){e.registeredCoverComponent=t},Object.defineProperty(e.prototype,"coverActivated",{get:function(){return this._coverActivated},enumerable:!0,configurable:!0}),e.prototype.activateCover=function(){if(!this._coverActivated){this._coverActivated=!0;for(var e=0,t=n.values(this._components);e<t.length;e++){var r=t[e];r.active&&r.component.deactivate()}}},e.prototype.deactivateCover=function(){if(this._coverActivated){this._coverActivated=!1;for(var e=0,t=n.values(this._components);e<t.length;e++){var r=t[e];r.active&&r.component.activate()}}},e.prototype.activate=function(e){this._checkName(e),this._components[e].active=!0,this._coverActivated||this.get(e).activate()},e.prototype.configure=function(e,t){this._checkName(e),this.get(e).configure(t)},e.prototype.deactivate=function(e){this._checkName(e),this._components[e].active=!1,this._coverActivated||this.get(e).deactivate()},e.prototype.resize=function(){for(var e=0,t=n.values(this._components);e<t.length;e++){t[e].component.resize()}},e.prototype.get=function(e){return this._components[e].component},e.prototype.getCover=function(){return this._coverComponent},e.prototype._checkName=function(e){if(!(e in this._components))throw new i.ArgumentMapillaryError("Component does not exist: "+e)},e.registeredComponents={},e}();r.ComponentService=o,r.default=o},{"../Error":292,underscore:242}],310:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("rxjs/Observable"),s=e("../Component"),a=e("../Utils"),c=e("../Viewer"),u=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){var e=this;this._configuration$.distinctUntilChanged(void 0,function(e){return e.state}).switchMap(function(t){return o.Observable.combineLatest(o.Observable.of(t.state),e._navigator.stateService.currentNode$)}).switchMap(function(e){var t=e[0],r=e[1],n=o.Observable.combineLatest(o.Observable.of(r.key),r.image$.map(function(e){return e.src}));return t===s.CoverState.Visible?n.first():n}).distinctUntilChanged(function(e,t){var r=e[0],n=e[1],i=t[0],o=t[1];return r===i&&n===o}).map(function(e){return{key:e[0],src:e[1]}}).subscribe(this._configurationSubject$),this._renderSubscription=o.Observable.combineLatest(this._configuration$,this._container.renderService.size$).map(function(t){var r=t[0],n=t[1];if(!r.key)return{name:e._name,vnode:i.h("div",[])};var o=n.width<=640||n.height<=480?".CoverCompact":"";if(r.state===s.CoverState.Hidden){var a=i.h("div.CoverContainer.CoverDone"+o,[e._getCoverBackgroundVNode(r)]);return{name:e._name,vnode:a}}var c=i.h("div.CoverContainer"+o,[e._getCoverButtonVNode(r)]);return{name:e._name,vnode:c}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._renderSubscription.unsubscribe(),this._keySubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{state:s.CoverState.Visible}},t.prototype._getCoverButtonVNode=function(e){var t=this,r=e.state===s.CoverState.Loading?"div.Cover.CoverLoading":"div.Cover",n=i.h("div.CoverButton",{onclick:function(){t.configure({state:s.CoverState.Loading})}},[i.h("div.CoverButtonIcon",[])]),o=i.h("a.CoverLogo",{href:a.Urls.explore,target:"_blank"},[]);return i.h(r,[this._getCoverBackgroundVNode(e),n,o])},t.prototype._getCoverBackgroundVNode=function(e){var t={style:{backgroundImage:"url("+(null!=e.src?e.src:a.Urls.thumbnail(e.key,c.ImageSize.Size640))+")"}},r=[];return e.state===s.CoverState.Loading&&r.push(i.h("div.Spinner",{},[])),i.h("div.CoverBackground",t,r)},t.componentName="cover",t}(s.Component);r.CoverComponent=u,s.ComponentService.registerCover(u),r.default=u},{"../Component":290,"../Utils":300,"../Viewer":301,"rxjs/Observable":29,"virtual-dom":246}],311:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("underscore"),o=e("virtual-dom"),s=e("rxjs/BehaviorSubject"),a=e("../Component"),c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._open$=new s.BehaviorSubject(!1),t}return n(t,e),t.prototype._activate=function(){var e=this;this._disposable=this._navigator.stateService.currentState$.combineLatest(this._open$,this._navigator.imageLoadingService.loadstatus$,function(t,r,n){return{name:e._name,vnode:e._getDebugVNode(r,e._getDebugInfo(t,n))}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._disposable.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._getDebugInfo=function(e,t){var r=[];r.push(o.h("h2","Node")),e.state.currentNode&&r.push(o.h("p","currentNode: "+e.state.currentNode.key)),e.state.previousNode&&r.push(o.h("p","previousNode: "+e.state.previousNode.key)),r.push(o.h("h2","Loading"));for(var n=0,s=0,a=0,c=0,u=i.values(t);c<u.length;c++){var h=u[c];n+=h.loaded,h.loaded!==h.total?a++:s++}return r.push(o.h("p","Loaded Images: "+s)),r.push(o.h("p","Loading Images: "+a)),r.push(o.h("p","Total bytes loaded: "+n)),r.push(o.h("h2","Camera")),r.push(o.h("p","camera.position.x: "+e.state.camera.position.x)),r.push(o.h("p","camera.position.y: "+e.state.camera.position.y)),r.push(o.h("p","camera.position.z: "+e.state.camera.position.z)),r.push(o.h("p","camera.lookat.x: "+e.state.camera.lookat.x)),r.push(o.h("p","camera.lookat.y: "+e.state.camera.lookat.y)),r.push(o.h("p","camera.lookat.z: "+e.state.camera.lookat.z)),r.push(o.h("p","camera.up.x: "+e.state.camera.up.x)),r.push(o.h("p","camera.up.y: "+e.state.camera.up.y)),r.push(o.h("p","camera.up.z: "+e.state.camera.up.z)),r},t.prototype._getDebugVNode=function(e,t){return e?o.h("div.Debug",{},[o.h("h2",{},["Debug"]),this._getDebugVNodeButton(e),o.h("pre",{},t)]):this._getDebugVNodeButton(e)},t.prototype._getDebugVNodeButton=function(e){var t=e?"Disable Debug":"D",r=e?"":".DebugButtonFixed";return e?o.h("button.DebugButton"+r,{onclick:this._closeDebugElement.bind(this)},[t]):o.h("button.DebugButton"+r,{onclick:this._openDebugElement.bind(this)},[t])},t.prototype._closeDebugElement=function(e){this._open$.next(!1)},t.prototype._openDebugElement=function(){this._open$.next(!0)},t.componentName="debug",t}(a.Component);r.DebugComponent=c,a.ComponentService.register(c),r.default=c},{"../Component":290,"rxjs/BehaviorSubject":26,underscore:242,"virtual-dom":246}],312:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("rxjs/Observable"),s=e("../Component"),a=e("../Utils"),c=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._canvasId=r.id+"-"+o._name,o._dom=i||new a.DOM,o}return n(t,e),t.prototype._activate=function(){var e=this,t=this._container.domRenderer.element$.map(function(t){return e._dom.document.getElementById(e._canvasId)}).filter(function(e){return!!e}).map(function(e){var t=e.parentElement,r=t.offsetWidth;return[e,{height:t.offsetHeight,width:r}]}).distinctUntilChanged(function(e,t){return e.height===t.height&&e.width===t.width},function(e){e[0];return e[1]});this.drawSubscription=o.Observable.combineLatest(t,this._navigator.stateService.currentNode$).subscribe(function(e){var t=e[0],r=t[0],n=t[1],i=e[1];r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(i.image,0,0,n.width,n.height)}),this._container.domRenderer.renderAdaptive$.next({name:this._name,vnode:i.h("canvas#"+this._canvasId,[])})},t.prototype._deactivate=function(){this.drawSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.componentName="image",t}(s.Component);r.ImageComponent=c,s.ComponentService.register(c),r.default=c},{"../Component":290,"../Utils":300,"rxjs/Observable":29,"virtual-dom":246}],313:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("underscore"),o=e("virtual-dom"),s=e("rxjs/Observable"),a=e("../Component"),c=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){var e=this;this._loadingSubscription=this._navigator.loadingService.loading$.switchMap(function(t){return t?e._navigator.imageLoadingService.loadstatus$:s.Observable.of({})}).map(function(t){for(var r=0,n=0,o=0,s=i.values(t);o<s.length;o++){var a=s[o];a.loaded!==a.total&&(n+=a.loaded,r+=a.total)}var c=100;return 0!==r&&(c=n/r*100),{name:e._name,vnode:e._getBarVNode(c)}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._loadingSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._getBarVNode=function(e){var t={};return 100!==e?(t.width=e.toFixed(0)+"%",t.opacity="1"):(t.width="100%",t.opacity="0"),o.h("div.Loading",{style:{}},[o.h("div.LoadingBar",{style:t},[])])},t.componentName="loading",t}(a.Component);r.LoadingComponent=c,a.ComponentService.register(c),r.default=c},{"../Component":290,"rxjs/Observable":29,underscore:242,"virtual-dom":246}],314:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("rxjs/Observable"),s=e("../Edge"),a=e("../Error"),c=e("../Component"),u=function(e){function t(t,r,n){var i=e.call(this,t,r,n)||this;return i._seqNames={},i._seqNames[s.EdgeDirection[s.EdgeDirection.Prev]]="Prev",i._seqNames[s.EdgeDirection[s.EdgeDirection.Next]]="Next",i._spaTopNames={},i._spaTopNames[s.EdgeDirection[s.EdgeDirection.TurnLeft]]="Turnleft",i._spaTopNames[s.EdgeDirection[s.EdgeDirection.StepLeft]]="Left",i._spaTopNames[s.EdgeDirection[s.EdgeDirection.StepForward]]="Forward",i._spaTopNames[s.EdgeDirection[s.EdgeDirection.StepRight]]="Right",i._spaTopNames[s.EdgeDirection[s.EdgeDirection.TurnRight]]="Turnright",i._spaBottomNames={},i._spaBottomNames[s.EdgeDirection[s.EdgeDirection.TurnU]]="Turnaround",i._spaBottomNames[s.EdgeDirection[s.EdgeDirection.StepBackward]]="Backward",i}return n(t,e),t.prototype._activate=function(){var e=this;this._renderSubscription=o.Observable.combineLatest(this._navigator.stateService.currentNode$,this._configuration$).switchMap(function(e){var t=e[0],r=e[1],n=r.sequence?t.sequenceEdges$.map(function(e){return e.edges.map(function(e){return e.data.direction})}):o.Observable.of([]),i=!t.pano&&r.spatial?t.spatialEdges$.map(function(e){return e.edges.map(function(e){return e.data.direction})}):o.Observable.of([]);return o.Observable.combineLatest(n,i).map(function(e){var t=e[0],r=e[1];return t.concat(r)})}).map(function(t){var r=e._createArrowRow(e._seqNames,t),n=e._createArrowRow(e._spaTopNames,t),o=e._createArrowRow(e._spaBottomNames,t),s=i.h("div.NavigationSequence",r),a=i.h("div.NavigationSpatialTop",n),c=i.h("div.NavigationSpatialBottom",o),u=i.h("div.NavigationSpatial",[a,c]);return{name:e._name,vnode:i.h("div.NavigationContainer",[s,u])}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._renderSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{sequence:!0,spatial:!0}},t.prototype._createArrowRow=function(e,t){var r=[];for(var n in e)if(e.hasOwnProperty(n)){var i=s.EdgeDirection[n];-1!==t.indexOf(i)?r.push(this._createVNode(i,e[n],"visible")):r.push(this._createVNode(i,e[n],"hidden"))}return r},t.prototype._createVNode=function(e,t,r){var n=this;return i.h("span.Direction.Direction"+t,{onclick:function(t){n._navigator.moveDir$(e).subscribe(void 0,function(e){e instanceof a.AbortMapillaryError||console.error(e)})},style:{visibility:r}},[])},t.componentName="navigation",t}(c.Component);r.NavigationComponent=u,c.ComponentService.register(u),r.default=u},{"../Component":290,"../Edge":291,"../Error":292,"rxjs/Observable":29,"virtual-dom":246}],315:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("underscore"),o=e("virtual-dom"),s=e("rxjs/Observable"),a=e("../Component"),c=function(){return function(){}}(),u=function(){return function(){}}(),h=function(){return function(){this.nodeInstructions=[],this.nodeInstructionsOrdered=[]}}(),l=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){var e,t=this;e=this._navigator.stateService.currentState$.filter(function(e){return e.id%2==0}).filter(function(e){return e.state.nodesAhead<15}).distinctUntilChanged(void 0,function(e){return e.state.lastNode.key});var r;r=this.configuration$.mergeMap(function(e){return s.Observable.from(e.paths)}).distinct(function(e){return e.sequenceKey}).mergeMap(function(e){return t._navigator.apiV3.sequenceByKey$([e.sequenceKey]).map(function(t){return t[e.sequenceKey]})}).combineLatest(this.configuration$,function(e,t){for(var r=0,n=[],i=0,o=t.paths;i<o.length;i++){var s=o[i];if(s.sequenceKey===e.key){for(var a=[],c=!1,u=0,h=e.keys;u<h.length;u++){var l=h[u];if(s.startKey===l&&(c=!0),c){for(var p=null,f=0,d=s.infoKeys;f<d.length;f++){var m=d[f];m.key===l&&(p=m.description)}a.push({description:p,key:l})}s.stopKey===l&&(c=!1)}n.push({nodeInstructions:a,place:r})}r++}return n}).scan(function(e,t){for(var r=0,n=t;r<n.length;r++){var o=n[r];e.nodeInstructionsOrdered[o.place]=o.nodeInstructions}return e.nodeInstructions=i.flatten(e.nodeInstructionsOrdered),e},new h),this._disposable=e.combineLatest(r,this.configuration$,function(e,t,r){return{conf:r,frame:e,routeTrack:t}}).scan(function(e,r){return void 0===r.conf.playing||r.conf.playing?(e.routeTrack=r.routeTrack,e.currentNode=r.frame.state.currentNode,e.lastNode=r.frame.state.lastNode,e.playing=!0):(t._navigator.stateService.cutNodes(),e.playing=!1),e},new u).filter(function(e){return e.playing}).filter(function(e){for(var t=0,r=e.routeTrack.nodeInstructions;t<r.length;t++){var n=r[t];if(n&&n.key===e.lastNode.key)return!0}return!1}).distinctUntilChanged(void 0,function(e){return e.lastNode.key}).mergeMap(function(e){for(var r=0,n=0,i=e.routeTrack.nodeInstructions;n<i.length;n++){if(i[n].key===e.lastNode.key)break;r++}var o=e.routeTrack.nodeInstructions[r+1];return o?t._navigator.graphService.cacheNode$(o.key):s.Observable.of(null)}).combineLatest(this.configuration$,function(e,t){return{conf:t,node:e}}).filter(function(e){return null!==e.node&&e.conf.playing}).pluck("node").subscribe(this._navigator.stateService.appendNode$),this._disposableDescription=this._navigator.stateService.currentNode$.combineLatest(r,this.configuration$,function(e,t,r){if(void 0!==r.playing&&!r.playing)return"quit";for(var n=null,i=0,o=t.nodeInstructions;i<o.length;i++){var s=o[i];if(s.key===e.key){n=s.description;break}}return n}).scan(function(e,t){return t!==e.description&&null!==t?(e.description=t,e.showsLeft=6):e.showsLeft--,"quit"===t&&(e.description=null),e},new c).map(function(e){return e.showsLeft>0&&e.description?{name:t._name,vnode:t._getRouteAnnotationNode(e.description)}:{name:t._name,vnode:o.h("div",[])}}).subscribe(this._container.domRenderer.render$)},t.prototype._deactivate=function(){this._disposable.unsubscribe(),this._disposableDescription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype.play=function(){this.configure({playing:!0})},t.prototype.stop=function(){this.configure({playing:!1})},t.prototype._getRouteAnnotationNode=function(e){return o.h("div.RouteFrame",{},[o.h("p",{textContent:e},[])])},t.componentName="route",t}(a.Component);r.RouteComponent=l,a.ComponentService.register(l),r.default=l},{"../Component":290,"rxjs/Observable":29,underscore:242,"virtual-dom":246}],316:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("../Component"),s=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return n(t,e),t.prototype._activate=function(){var e=this;this._sequenceSubscription=this._navigator.stateService.currentNode$.scan(function(e,t){var r=t.sequenceKey;return e.report=[],r in e.reported||(e.report=[r],e.reported[r]=!0),e},{report:[],reported:{}}).filter(function(e){return e.report.length>0}).mergeMap(function(t){return e._navigator.apiV3.sequenceViewAdd$(t.report).catch(function(e,r){return console.error("Failed to report sequence stats ("+t.report+")",e),i.Observable.empty()})}).subscribe(function(){}),this._imageSubscription=this._navigator.stateService.currentNode$.map(function(e){return e.key}).buffer(this._navigator.stateService.currentNode$.debounceTime(5e3)).scan(function(e,t){e.report=[];for(var r=0,n=t;r<n.length;r++){var i=n[r];i in e.reported||(e.report.push(i),e.reported[i]=!0)}return e},{report:[],reported:{}}).filter(function(e){return e.report.length>0}).mergeMap(function(t){return e._navigator.apiV3.imageViewAdd$(t.report).catch(function(e,r){return console.error("Failed to report image stats ("+t.report+")",e),i.Observable.empty()})}).subscribe(function(){})},t.prototype._deactivate=function(){this._sequenceSubscription.unsubscribe(),this._imageSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.componentName="stats",t}(o.Component);r.StatsComponent=s,o.ComponentService.register(s),r.default=s},{"../Component":290,"rxjs/Observable":29}],317:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("rxjs/Observable"),s=e("rxjs/Subject"),a=e("../../Component"),c=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._renderer=i||new a.DirectionDOMRenderer(o.defaultConfiguration,r.element),o._hoveredKeySubject$=new s.Subject,o._hoveredKey$=o._hoveredKeySubject$.share(),o}return n(t,e),Object.defineProperty(t.prototype,"hoveredKey$",{get:function(){return this._hoveredKey$},enumerable:!0,configurable:!0}),t.prototype.setHighlightKey=function(e){this.configure({highlightKey:e})},t.prototype.setMinWidth=function(e){this.configure({minWidth:e})},t.prototype.setMaxWidth=function(e){this.configure({maxWidth:e})},t.prototype.resize=function(){this._renderer.resize(this._container.element)},t.prototype._activate=function(){var e=this;this._configurationSubscription=this._configuration$.subscribe(function(t){e._renderer.setConfiguration(t)}),this._nodeSubscription=this._navigator.stateService.currentNode$.do(function(t){e._container.domRenderer.render$.next({name:e._name,vnode:i.h("div",{},[])}),e._renderer.setNode(t)}).withLatestFrom(this._configuration$).switchMap(function(t){var r=t[0],n=t[1];return o.Observable.combineLatest(r.spatialEdges$,n.distinguishSequence?e._navigator.graphService.cacheSequence$(r.sequenceKey).catch(function(e,t){return console.error("Failed to cache sequence ("+r.sequenceKey+")",e),o.Observable.of(null)}):o.Observable.of(null))}).subscribe(function(t){var r=t[0],n=t[1];e._renderer.setEdges(r,n)}),this._renderCameraSubscription=this._container.renderService.renderCameraFrame$.do(function(t){e._renderer.setRenderCamera(t)}).map(function(t){return e._renderer}).filter(function(e){return e.needsRender}).map(function(t){return{name:e._name,vnode:t.render(e._navigator)}}).subscribe(this._container.domRenderer.render$),this._hoveredKeySubscription=o.Observable.combineLatest([this._container.domRenderer.element$,this._container.renderService.renderCamera$,this._container.mouseService.mouseMove$.startWith(null),this._container.mouseService.mouseUp$.startWith(null)],function(e,t,r,n){return e}).map(function(e){for(var t=e.getElementsByClassName("DirectionsPerspective"),r=0;r<t.length;r++){var n=t.item(r).querySelector(":hover");if(null!=n&&n.hasAttribute("data-key"))return n.getAttribute("data-key")}return null}).distinctUntilChanged().subscribe(this._hoveredKeySubject$)},t.prototype._deactivate=function(){this._configurationSubscription.unsubscribe(),this._nodeSubscription.unsubscribe(),this._renderCameraSubscription.unsubscribe(),this._hoveredKeySubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{distinguishSequence:!1,maxWidth:460,minWidth:260}},t.componentName="direction",t}(a.Component);r.DirectionComponent=c,a.ComponentService.register(c),r.default=c},{"../../Component":290,"rxjs/Observable":29,"rxjs/Subject":34,"virtual-dom":246}],318:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../../Geo"),i=function(){function e(e,t){this._spatial=new n.Spatial,this._minThresholdWidth=320,this._maxThresholdWidth=1480,this._minThresholdHeight=240,this._maxThresholdHeight=820,this._configure(e),this._resize(t),this._reset()}return Object.defineProperty(e.prototype,"minWidth",{get:function(){return this._minWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxWidth",{get:function(){return this._maxWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerWidth",{get:function(){return this._containerWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerWidthCss",{get:function(){return this._containerWidthCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerMarginCss",{get:function(){return this._containerMarginCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerLeftCss",{get:function(){return this._containerLeftCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerHeight",{get:function(){return this._containerHeight},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerHeightCss",{get:function(){return this._containerHeightCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"containerBottomCss",{get:function(){return this._containerBottomCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stepCircleSize",{get:function(){return this._stepCircleSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stepCircleSizeCss",{get:function(){return this._stepCircleSizeCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stepCircleMarginCss",{get:function(){return this._stepCircleMarginCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"turnCircleSize",{get:function(){return this._turnCircleSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"turnCircleSizeCss",{get:function(){return this._turnCircleSizeCss},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outerRadius",{get:function(){return this._outerRadius},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this._innerRadius},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"shadowOffset",{get:function(){return this._shadowOffset},enumerable:!0,configurable:!0}),e.prototype.configure=function(e){this._configure(e),this._reset()},e.prototype.resize=function(e){this._resize(e),this._reset()},e.prototype.angleToCoordinates=function(e){return[Math.cos(e),Math.sin(e)]},e.prototype.relativeAngleToCoordiantes=function(e,t){var r=this._spatial.wrapAngle(e-t);return this.angleToCoordinates(r)},e.prototype._configure=function(e){this._minWidth=e.minWidth,this._maxWidth=this._getMaxWidth(e.minWidth,e.maxWidth)},e.prototype._resize=function(e){this._elementWidth=e.offsetWidth,this._elementHeight=e.offsetHeight},e.prototype._reset=function(){this._containerWidth=this._getContainerWidth(this._elementWidth,this._elementHeight),this._containerHeight=this._getContainerHeight(this.containerWidth),this._stepCircleSize=this._getStepCircleDiameter(this._containerHeight),this._turnCircleSize=this._getTurnCircleDiameter(this.containerHeight),this._outerRadius=this._getOuterRadius(this._containerHeight),this._innerRadius=this._getInnerRadius(this._containerHeight),this._shadowOffset=3,this._containerWidthCss=this._numberToCssPixels(this._containerWidth),this._containerMarginCss=this._numberToCssPixels(-.5*this._containerWidth),this._containerLeftCss=this._numberToCssPixels(Math.floor(.5*this._elementWidth)),this._containerHeightCss=this._numberToCssPixels(this._containerHeight),this._containerBottomCss=this._numberToCssPixels(Math.floor(-.08*this._containerHeight)),this._stepCircleSizeCss=this._numberToCssPixels(this._stepCircleSize),this._stepCircleMarginCss=this._numberToCssPixels(-.5*this._stepCircleSize),this._turnCircleSizeCss=this._numberToCssPixels(this._turnCircleSize)},e.prototype._getContainerWidth=function(e,t){var r=(e-this._minThresholdWidth)/(this._maxThresholdWidth-this._minThresholdWidth),n=(t-this._minThresholdHeight)/(this._maxThresholdHeight-this._minThresholdHeight),i=Math.max(0,Math.min(1,Math.min(r,n)));return i=.04*Math.round(25*i),this._minWidth+i*(this._maxWidth-this._minWidth)},e.prototype._getContainerHeight=function(e){return.77*e},e.prototype._getStepCircleDiameter=function(e){return.34*e},e.prototype._getTurnCircleDiameter=function(e){return.3*e},e.prototype._getOuterRadius=function(e){return.31*e},e.prototype._getInnerRadius=function(e){return.125*e},e.prototype._numberToCssPixels=function(e){return e+"px"},e.prototype._getMaxWidth=function(e,t){return e>t?e:t},e}();r.DirectionDOMCalculator=i,r.default=i},{"../../Geo":293}],319:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("virtual-dom"),i=e("../../Component"),o=e("../../Edge"),s=e("../../Error"),a=e("../../Geo"),c=function(){function e(e,t){this._isEdge=!1,this._spatial=new a.Spatial,this._calculator=new i.DirectionDOMCalculator(e,t),this._node=null,this._rotation={phi:0,theta:0},this._epsilon=.5*Math.PI/180,this._highlightKey=null,this._distinguishSequence=!1,this._needsRender=!1,this._stepEdges=[],this._turnEdges=[],this._panoEdges=[],this._sequenceEdgeKeys=[],this._stepDirections=[o.EdgeDirection.StepForward,o.EdgeDirection.StepBackward,o.EdgeDirection.StepLeft,o.EdgeDirection.StepRight],this._turnDirections=[o.EdgeDirection.TurnLeft,o.EdgeDirection.TurnRight,o.EdgeDirection.TurnU],this._turnNames={},this._turnNames[o.EdgeDirection.TurnLeft]="TurnLeft",this._turnNames[o.EdgeDirection.TurnRight]="TurnRight",this._turnNames[o.EdgeDirection.TurnU]="TurnAround";var r=!!document.documentMode;this._isEdge=!r&&!!window.StyleMedia}return Object.defineProperty(e.prototype,"needsRender",{get:function(){return this._needsRender},enumerable:!0,configurable:!0}),e.prototype.render=function(e){this._needsRender=!1;var t=this._rotation,r=[],n=[];return this._node.pano?r=r.concat(this._createPanoArrows(e,t)):(r=(r=r.concat(this._createPerspectiveToPanoArrows(e,t))).concat(this._createStepArrows(e,t)),n=n.concat(this._createTurnArrows(e))),this._getContainer(r,n,t)},e.prototype.setEdges=function(e,t){this._setEdges(e,t),this._setNeedsRender()},e.prototype.setNode=function(e){this._node=e,this._clearEdges(),this._setNeedsRender()},e.prototype.setRenderCamera=function(e){var t=e.rotation;Math.abs(t.phi-this._rotation.phi)<this._epsilon||(this._rotation=t,this._setNeedsRender())},e.prototype.setConfiguration=function(e){var t=!1;this._highlightKey===e.highlightKey&&this._distinguishSequence===e.distinguishSequence||(this._highlightKey=e.highlightKey,this._distinguishSequence=e.distinguishSequence,t=!0),this._calculator.minWidth===e.minWidth&&this._calculator.maxWidth===e.maxWidth||(this._calculator.configure(e),t=!0),t&&this._setNeedsRender()},e.prototype.resize=function(e){this._calculator.resize(e),this._setNeedsRender()},e.prototype._setNeedsRender=function(){null!=this._node&&(this._needsRender=!0)},e.prototype._clearEdges=function(){this._stepEdges=[],this._turnEdges=[],this._panoEdges=[],this._sequenceEdgeKeys=[]},e.prototype._setEdges=function(e,t){this._stepEdges=[],this._turnEdges=[],this._panoEdges=[],this._sequenceEdgeKeys=[];for(var r=0,n=e.edges;r<n.length;r++){var i=(c=n[r]).data.direction;this._stepDirections.indexOf(i)>-1?this._stepEdges.push(c):this._turnDirections.indexOf(i)>-1?this._turnEdges.push(c):c.data.direction===o.EdgeDirection.Pano&&this._panoEdges.push(c)}if(this._distinguishSequence&&null!=t)for(var s=0,a=this._panoEdges.concat(this._stepEdges).concat(this._turnEdges);s<a.length;s++)for(var c=a[s],u=c.to,h=0,l=t.keys;h<l.length;h++){if(l[h]===u){this._sequenceEdgeKeys.push(u);break}}},e.prototype._createPanoArrows=function(e,t){for(var r=[],n=0,i=this._panoEdges;n<i.length;n++){var o=i[n];r.push(this._createVNodeByKey(e,o.to,o.data.worldMotionAzimuth,t,this._calculator.outerRadius,"DirectionsArrowPano"))}for(var s=0,a=this._stepEdges;s<a.length;s++){var c=a[s];r.push(this._createPanoToPerspectiveArrow(e,c.to,c.data.worldMotionAzimuth,t,c.data.direction))}return r},e.prototype._createPanoToPerspectiveArrow=function(e,t,r,n,i){var s=Math.PI/8,a=n.phi;switch(i){case o.EdgeDirection.StepBackward:a=n.phi-Math.PI;break;case o.EdgeDirection.StepLeft:a=n.phi+Math.PI/2;break;case o.EdgeDirection.StepRight:a=n.phi-Math.PI/2}return Math.abs(this._spatial.wrapAngle(r-a))<s?this._createVNodeByKey(e,t,r,n,this._calculator.outerRadius,"DirectionsArrowStep"):this._createVNodeDisabled(t,r,n)},e.prototype._createPerspectiveToPanoArrows=function(e,t){for(var r=[],n=0,i=this._panoEdges;n<i.length;n++){var o=i[n];r.push(this._createVNodeByKey(e,o.to,o.data.worldMotionAzimuth,t,this._calculator.innerRadius,"DirectionsArrowPano",!0))}return r},e.prototype._createStepArrows=function(e,t){for(var r=[],n=0,i=this._stepEdges;n<i.length;n++){var o=i[n];r.push(this._createVNodeByDirection(e,o.to,o.data.worldMotionAzimuth,t,o.data.direction))}return r},e.prototype._createTurnArrows=function(e){for(var t=[],r=0,n=this._turnEdges;r<n.length;r++){var i=n[r],o=i.data.direction,s=this._turnNames[o];t.push(this._createVNodeByTurn(e,i.to,s,o))}return t},e.prototype._createVNodeByKey=function(e,t,r,n,i,o,a){return this._createVNode(t,r,n,i,o,"DirectionsCircle",function(r){e.moveToKey$(t).subscribe(void 0,function(e){e instanceof s.AbortMapillaryError||console.error(e)})},a)},e.prototype._createVNodeByDirection=function(e,t,r,n,i){return this._createVNode(t,r,n,this._calculator.outerRadius,"DirectionsArrowStep","DirectionsCircle",function(t){e.moveDir$(i).subscribe(void 0,function(e){e instanceof s.AbortMapillaryError||console.error(e)})})},e.prototype._createVNodeByTurn=function(e,t,r,i){var a={height:this._calculator.turnCircleSizeCss,transform:"rotate(0)",width:this._calculator.turnCircleSizeCss};switch(i){case o.EdgeDirection.TurnLeft:a.left="5px",a.top="5px";break;case o.EdgeDirection.TurnRight:a.right="5px",a.top="5px";break;case o.EdgeDirection.TurnU:a.left="5px",a.bottom="5px"}var c={attributes:{"data-key":t},onclick:function(t){e.moveDir$(i).subscribe(void 0,function(e){e instanceof s.AbortMapillaryError||console.error(e)})},style:a},u="TurnCircle";this._sequenceEdgeKeys.indexOf(t)>-1&&(u+="Sequence"),this._highlightKey===t&&(u+="Highlight");var h=n.h("div."+r,{},[]);return n.h("div."+u,c,[h])},e.prototype._createVNodeDisabled=function(e,t,r){return this._createVNode(e,t,r,this._calculator.outerRadius,"DirectionsArrowDisabled","DirectionsCircleDisabled")},e.prototype._createVNode=function(e,t,r,i,o,s,a,c){var u=this._calculator.angleToCoordinates(t-r.phi),h=Math.round(-i*u[1]+.5*this._calculator.containerWidth),l=Math.round(-i*u[0]+.5*this._calculator.containerHeight),p=this._calculator.relativeAngleToCoordiantes(t,r.phi),f=this._calculator.shadowOffset,d="drop-shadow("+-f*p[1]+"px "+f*p[0]+"px 1px rgba(0,0,0,0.8))",m={style:{"-webkit-filter":d,filter:d}},v=n.h("div."+o,m,[]),g=-this._spatial.radToDeg(t-r.phi),y=c?"translate("+h+"px, "+l+"px) rotate("+g+"deg) translateZ(-0.01px)":"translate("+h+"px, "+l+"px) rotate("+g+"deg)",b={attributes:{"data-key":e},onclick:a,style:{height:this._calculator.stepCircleSizeCss,marginLeft:this._calculator.stepCircleMarginCss,marginTop:this._calculator.stepCircleMarginCss,transform:y,width:this._calculator.stepCircleSizeCss}};return this._sequenceEdgeKeys.indexOf(e)>-1&&(s+="Sequence"),this._highlightKey===e&&(s+="Highlight"),n.h("div."+s,b,[v])},e.prototype._getContainer=function(e,t,r){var i=this._isEdge?"rotateX(60deg)":"perspective("+this._calculator.containerWidthCss+") rotateX(60deg)",o={oncontextmenu:function(e){e.preventDefault()},style:{bottom:this._calculator.containerBottomCss,height:this._calculator.containerHeightCss,left:this._calculator.containerLeftCss,marginLeft:this._calculator.containerMarginCss,transform:i,width:this._calculator.containerWidthCss}};return n.h("div.DirectionsPerspective",o,t.concat(e))},e}();r.DirectionDOMRenderer=c,r.default=c},{"../../Component":290,"../../Edge":291,"../../Error":292,"../../Geo":293,"virtual-dom":246}],320:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("rxjs/Subject"),s=e("../../Component"),a=e("../../Render"),c=e("../../Tiles"),u=e("../../Utils"),h=function(e){function t(t,r,n){var i=e.call(this,t,r,n)||this;return i._imageTileLoader=new c.ImageTileLoader(u.Urls.tileScheme,u.Urls.tileDomain,u.Urls.origin),i._roiCalculator=new c.RegionOfInterestCalculator,i._rendererOperation$=new o.Subject,i._rendererCreator$=new o.Subject,i._rendererDisposer$=new o.Subject,i._renderer$=i._rendererOperation$.scan(function(e,t){return t(e)},null).filter(function(e){return null!=e}).distinctUntilChanged(void 0,function(e){return e.frameId}),i._rendererCreator$.map(function(){return function(e){if(null!=e)throw new Error("Multiple image plane states can not be created at the same time");return new s.ImagePlaneGLRenderer}}).subscribe(i._rendererOperation$),i._rendererDisposer$.map(function(){return function(e){return e.dispose(),null}}).subscribe(i._rendererOperation$),i}return n(t,e),t.prototype._activate=function(){var e=this;this._rendererSubscription=this._renderer$.map(function(t){var r={name:e._name,render:{frameId:t.frameId,needsRender:t.needsRender,render:t.render.bind(t),stage:a.GLRenderStage.Background}};return t.clearNeedsRender(),r}).subscribe(this._container.glRenderer.render$),this._rendererCreator$.next(null),this._stateSubscription=this._navigator.stateService.currentState$.map(function(e){return function(t){return t.updateFrame(e),t}}).subscribe(this._rendererOperation$);var t=this._navigator.stateService.currentState$.distinctUntilChanged(void 0,function(e){return e.state.currentNode.key}).combineLatest(this._configuration$).filter(function(e){return!0===e[1].imageTiling}).map(function(e){return e[0]}).withLatestFrom(this._container.glRenderer.webGLRenderer$,this._container.renderService.size$).map(function(t){var r=t[0],n=t[1],i=t[2],o=r.state,s=Math.max(i.width,i.height),a=o.currentNode,u=o.currentTransform,h=s>2048?2048:s>1024?1024:512;return new c.TextureProvider(a.key,u.basicWidth,u.basicHeight,h,a.image,e._imageTileLoader,new c.ImageTileStore,n)}).publishReplay(1).refCount();this._textureProviderSubscription=t.subscribe(function(){}),this._setTextureProviderSubscription=t.map(function(e){return function(t){return t.setTextureProvider(e.key,e),t}}).subscribe(this._rendererOperation$),this._setTileSizeSubscription=this._container.renderService.size$.switchMap(function(e){return i.Observable.combineLatest(t,i.Observable.of(e)).first()}).subscribe(function(e){var t=e[0],r=e[1],n=Math.max(r.width,r.height),i=n>2048?2048:n>1024?1024:512;t.setTileSize(i)}),this._abortTextureProviderSubscription=t.pairwise().subscribe(function(e){e[0].abort()});var r=i.Observable.combineLatest(this._container.renderService.renderCameraFrame$,this._container.renderService.size$.debounceTime(250)).map(function(e){var t=e[0],r=e[1];return[t.camera.position.clone(),t.camera.lookat.clone(),t.zoom.valueOf(),r.height.valueOf(),r.width.valueOf()]}).pairwise().skipWhile(function(e){return e[1][2]-e[0][2]<0||0===e[1][2]}).map(function(e){var t=e[0][0].equals(e[1][0]),r=e[0][1].equals(e[1][1]),n=e[0][2]===e[1][2],i=e[0][3]===e[1][3],o=e[0][4]===e[1][4];return t&&r&&n&&i&&o}).distinctUntilChanged().filter(function(e){return e}).switchMap(function(t){return e._container.renderService.renderCameraFrame$.first()}).withLatestFrom(this._container.renderService.size$,this._navigator.stateService.currentTransform$);this._setRegionOfInterestSubscription=t.switchMap(function(t){return r.map(function(r){var n=r[0],i=r[1],o=r[2];return[e._roiCalculator.computeRegionOfInterest(n,i,o),t]})}).filter(function(e){return!e[1].disposed}).subscribe(function(e){var t=e[0];e[1].setRegionOfInterest(t)});var n=t.switchMap(function(e){return e.hasTexture$}).startWith(!1).publishReplay(1).refCount();this._hasTextureSubscription=n.subscribe(function(){});var o=this._navigator.stateService.currentState$.filter(function(e){return 0===e.state.nodesAhead}).map(function(e){return e.state.currentNode}).distinctUntilChanged(void 0,function(e){return e.key}).debounceTime(1e3).withLatestFrom(n).filter(function(e){return!e[1]}).map(function(e){return e[0]}).filter(function(e){return e.pano?u.Settings.maxImageSize>u.Settings.basePanoramaSize:u.Settings.maxImageSize>u.Settings.baseImageSize}).switchMap(function(e){var t=e.pano?u.Settings.basePanoramaSize:u.Settings.baseImageSize;if(Math.max(e.image.width,e.image.height)>t)return i.Observable.empty();return e.cacheImage$(u.Settings.maxImageSize).map(function(e){return[e.image,e]}).takeUntil(n.filter(function(e){return e})).catch(function(t,r){return console.error("Failed to fetch high res image ("+e.key+")",t),i.Observable.empty()})}).publish().refCount();this._updateBackgroundSubscription=o.withLatestFrom(t).subscribe(function(e){e[0][1].key!==e[1].key||e[1].disposed||e[1].updateBackground(e[0][0])}),this._updateTextureImageSubscription=o.map(function(e){return function(t){return t.updateTextureImage(e[0],e[1]),t}}).subscribe(this._rendererOperation$)},t.prototype._deactivate=function(){this._rendererDisposer$.next(null),this._abortTextureProviderSubscription.unsubscribe(),this._hasTextureSubscription.unsubscribe(),this._rendererSubscription.unsubscribe(),this._setRegionOfInterestSubscription.unsubscribe(),this._setTextureProviderSubscription.unsubscribe(),this._setTileSizeSubscription.unsubscribe(),this._stateSubscription.unsubscribe(),this._textureProviderSubscription.unsubscribe(),this._updateBackgroundSubscription.unsubscribe(),this._updateTextureImageSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{imageTiling:!1}},t.componentName="imagePlane",t}(s.Component);r.ImagePlaneComponent=h,s.ComponentService.register(h),r.default=h},{"../../Component":290,"../../Render":296,"../../Tiles":299,"../../Utils":300,"rxjs/Observable":29,"rxjs/Subject":34}],321:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../../Component"),i=function(){function e(){this._factory=new n.MeshFactory,this._scene=new n.MeshScene,this._alpha=0,this._alphaOld=0,this._fadeOutSpeed=.05,this._currentKey=null,this._previousKey=null,this._providerDisposers={},this._frameId=0,this._needsRender=!1}return Object.defineProperty(e.prototype,"frameId",{get:function(){return this._frameId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"needsRender",{get:function(){return this._needsRender},enumerable:!0,configurable:!0}),e.prototype.indicateNeedsRender=function(){this._needsRender=!0},e.prototype.updateFrame=function(e){this._updateFrameId(e.id),this._needsRender=this._updateAlpha(e.state.alpha)||this._needsRender,this._needsRender=this._updateAlphaOld(e.state.alpha)||this._needsRender,this._needsRender=this._updateImagePlanes(e.state)||this._needsRender},e.prototype.setTextureProvider=function(e,t){var r=this;if(e===this._currentKey){var n=t.textureCreated$.subscribe(function(e){r._updateTexture(e)}),i=t.textureUpdated$.subscribe(function(e){r._needsRender=!0});if(e in this._providerDisposers){(0,this._providerDisposers[e])(),delete this._providerDisposers[e]}this._providerDisposers[e]=function(){n.unsubscribe(),i.unsubscribe(),t.dispose()}}},e.prototype._updateTexture=function(e){this._needsRender=!0;for(var t=0,r=this._scene.imagePlanes;t<r.length;t++){var n=r[t].material,i=n.uniforms.projectorTex.value;n.uniforms.projectorTex.value=null,i.dispose(),n.uniforms.projectorTex.value=e}},e.prototype.updateTextureImage=function(e,t){if(this._currentKey===t.key){this._needsRender=!0;for(var r=0,n=this._scene.imagePlanes;r<n.length;r++){var i=n[r].material.uniforms.projectorTex.value;i.image=e,i.needsUpdate=!0}}},e.prototype.render=function(e,t){for(var r=this._scene.imagePlanesOld.length?1:this._alpha,n=0,i=this._scene.imagePlanes;n<i.length;n++){(u=i[n]).material.uniforms.opacity.value=r}for(var o=0,s=this._scene.imagePlanesOld;o<s.length;o++){(u=s[o]).material.uniforms.opacity.value=this._alphaOld}t.render(this._scene.scene,e),t.render(this._scene.sceneOld,e);for(var a=0,c=this._scene.imagePlanes;a<c.length;a++){var u=c[a];u.material.uniforms.opacity.value=this._alpha}t.render(this._scene.scene,e)},e.prototype.clearNeedsRender=function(){this._needsRender=!1},e.prototype.dispose=function(){this._scene.clear()},e.prototype._updateFrameId=function(e){this._frameId=e},e.prototype._updateAlpha=function(e){return e!==this._alpha&&(this._alpha=e,!0)},e.prototype._updateAlphaOld=function(e){return!(e<1||0===this._alphaOld)&&(this._alphaOld=Math.max(0,this._alphaOld-this._fadeOutSpeed),!0)},e.prototype._updateImagePlanes=function(e){if(null==e.currentNode||e.currentNode.key===this._currentKey)return!1;var t=null!=e.previousNode?e.previousNode.key:null,r=e.currentNode.key;if(this._previousKey!==t&&this._previousKey!==r&&this._previousKey in this._providerDisposers){(0,this._providerDisposers[this._previousKey])(),delete this._providerDisposers[this._previousKey]}if(null!=t){if(t!==this._currentKey&&t!==this._previousKey){var n=this._factory.createMesh(e.previousNode,e.previousTransform);this._scene.updateImagePlanes([n])}this._previousKey=t}this._currentKey=r;var i=this._factory.createMesh(e.currentNode,e.currentTransform);return this._scene.updateImagePlanes([i]),this._alphaOld=1,!0},e}();r.ImagePlaneGLRenderer=i,r.default=i},{"../../Component":290}],322:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});!function(e){e[e.Hidden=0]="Hidden",e[e.Loading=1]="Loading",e[e.Visible=2]="Visible"}(r.CoverState||(r.CoverState={}))},{}],323:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});!function(e){e[e.Motion=0]="Motion",e[e.Stationary=1]="Stationary"}(r.SliderMode||(r.SliderMode={}))},{}],324:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./ICoverConfiguration");r.CoverState=n.CoverState;var i=e("./ISliderConfiguration");r.SliderMode=i.SliderMode},{"./ICoverConfiguration":322,"./ISliderConfiguration":323}],325:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../Component"),o=e("../../Edge"),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._enable=function(){var e=this;this._keyDownSubscription=this._container.keyboardService.keyDown$.withLatestFrom(this._navigator.playService.playing$,this._navigator.playService.direction$,this._navigator.playService.speed$,this._navigator.stateService.currentNode$.switchMap(function(e){return e.sequenceEdges$})).subscribe(function(t){var r=t[0],n=t[1],i=t[2],s=t[3],a=t[4];if(!(r.altKey||r.ctrlKey||r.metaKey)){switch(r.key){case"D":if(!r.shiftKey)return;var c=n?null:i===o.EdgeDirection.Next?o.EdgeDirection.Prev:i===o.EdgeDirection.Prev?o.EdgeDirection.Next:null;null!=c&&e._navigator.playService.setDirection(c);break;case" ":if(r.shiftKey)return;if(n)e._navigator.playService.stop();else for(var u=0,h=a.edges;u<h.length;u++){h[u].data.direction===i&&e._navigator.playService.play()}break;case"<":e._navigator.playService.setSpeed(s-.05);break;case">":e._navigator.playService.setSpeed(s+.05);break;default:return}r.preventDefault()}})},t.prototype._disable=function(){this._keyDownSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{keyZoom:e}},t}(i.HandlerBase);r.KeyPlayHandler=s,r.default=s},{"../../Component":290,"../../Edge":291}],326:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../Component"),o=e("../../Edge"),s=e("../../Error"),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._enable=function(){var e=this,t=this._navigator.stateService.currentNode$.switchMap(function(e){return e.sequenceEdges$});this._keyDownSubscription=this._container.keyboardService.keyDown$.withLatestFrom(t).subscribe(function(t){var r=t[0],n=t[1],i=null;switch(r.keyCode){case 38:i=o.EdgeDirection.Next;break;case 40:i=o.EdgeDirection.Prev;break;default:return}if(r.preventDefault(),r.altKey&&!r.shiftKey&&n.cached)for(var a=0,c=n.edges;a<c.length;a++){var u=c[a];if(u.data.direction===i)return void e._navigator.moveToKey$(u.to).subscribe(void 0,function(e){e instanceof s.AbortMapillaryError||console.error(e)})}})},t.prototype._disable=function(){this._keyDownSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{keySequenceNavigation:e}},t}(i.HandlerBase);r.KeySequenceNavigationHandler=a,r.default=a},{"../../Component":290,"../../Edge":291,"../../Error":292}],327:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../Component"),o=e("../../Edge"),s=e("../../Error"),a=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._spatial=i,o}return n(t,e),t.prototype._enable=function(){var e=this,t=this._navigator.stateService.currentNode$.switchMap(function(e){return e.spatialEdges$});this._keyDownSubscription=this._container.keyboardService.keyDown$.withLatestFrom(t,this._navigator.stateService.currentState$).subscribe(function(t){var r=t[0],n=t[1],i=t[2],s=i.state.currentNode.pano,a=null;switch(r.keyCode){case 37:a=r.shiftKey&&!s?o.EdgeDirection.TurnLeft:o.EdgeDirection.StepLeft;break;case 38:a=r.shiftKey&&!s?o.EdgeDirection.Pano:o.EdgeDirection.StepForward;break;case 39:a=r.shiftKey&&!s?o.EdgeDirection.TurnRight:o.EdgeDirection.StepRight;break;case 40:a=r.shiftKey&&!s?o.EdgeDirection.TurnU:o.EdgeDirection.StepBackward;break;default:return}if(r.preventDefault(),!(r.altKey||!n.cached||r.shiftKey&&s))if(s){var c={};c[o.EdgeDirection.StepBackward]=Math.PI,c[o.EdgeDirection.StepForward]=0,c[o.EdgeDirection.StepLeft]=Math.PI/2,c[o.EdgeDirection.StepRight]=-Math.PI/2;for(var u=e._rotationFromCamera(i.state.camera).phi,h=e._spatial.wrapAngle(u+c[a]),l=Math.PI/4,p=n.edges.filter(function(e){return e.data.direction===o.EdgeDirection.Pano||e.data.direction===a}),f=Number.MAX_VALUE,d=null,m=0,v=p;m<v.length;m++){var g=v[m],y=Math.abs(e._spatial.wrapAngle(g.data.worldMotionAzimuth-h));y<Math.min(f,l)&&(f=y,d=g.to)}if(null==d)return;e._moveToKey(d)}else e._moveDir(a,n)})},t.prototype._disable=function(){this._keyDownSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{keySpatialNavigation:e}},t.prototype._moveDir=function(e,t){for(var r=0,n=t.edges;r<n.length;r++){var i=n[r];if(i.data.direction===e)return void this._moveToKey(i.to)}},t.prototype._moveToKey=function(e){this._navigator.moveToKey$(e).subscribe(void 0,function(e){e instanceof s.AbortMapillaryError||console.error(e)})},t.prototype._rotationFromCamera=function(e){var t=e.lookat.clone().sub(e.position),r=t.clone().dot(e.up),n=t.clone().sub(e.up.clone().multiplyScalar(r));return{phi:Math.atan2(n.y,n.x),theta:Math.PI/2-this._spatial.angleToPlane(t.toArray(),[0,0,1])}},t}(i.HandlerBase);r.KeySpatialNavigationHandler=a,r.default=a},{"../../Component":290,"../../Edge":291,"../../Error":292}],328:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._viewportCoords=i,o}return n(t,e),t.prototype._enable=function(){var e=this;this._keyDownSubscription=this._container.keyboardService.keyDown$.withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).subscribe(function(t){var r=t[0],n=t[1],i=t[2];if(!(r.altKey||r.shiftKey||r.ctrlKey||r.metaKey)){var o=0;switch(r.key){case"+":o=1;break;case"-":o=-1;break;default:return}r.preventDefault();var s=e._viewportCoords.unprojectFromViewport(0,0,n.perspective),a=i.projectBasic(s.toArray());e._navigator.stateService.zoomIn(o,a)}})},t.prototype._disable=function(){this._keyDownSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{keyZoom:e}},t}(e("../../Component").HandlerBase);r.KeyZoomHandler=i,r.default=i},{"../../Component":290}],329:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../Component"),o=e("../../Geo"),s=function(e){function t(t,r,n){var s=e.call(this,t,r,n)||this;return s._keyPlayHandler=new i.KeyPlayHandler(s,r,n),s._keySequenceNavigationHandler=new i.KeySequenceNavigationHandler(s,r,n),s._keySpatialNavigationHandler=new i.KeySpatialNavigationHandler(s,r,n,new o.Spatial),s._keyZoomHandler=new i.KeyZoomHandler(s,r,n,new o.ViewportCoords),s}return n(t,e),Object.defineProperty(t.prototype,"keyPlay",{get:function(){return this._keyPlayHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keySequenceNavigation",{get:function(){return this._keySequenceNavigationHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keySpatialNavigation",{get:function(){return this._keySpatialNavigationHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keyZoom",{get:function(){return this._keyZoomHandler},enumerable:!0,configurable:!0}),t.prototype._activate=function(){var e=this;this._configurationSubscription=this._configuration$.subscribe(function(t){t.keyPlay?e._keyPlayHandler.enable():e._keyPlayHandler.disable(),t.keySequenceNavigation?e._keySequenceNavigationHandler.enable():e._keySequenceNavigationHandler.disable(),t.keySpatialNavigation?e._keySpatialNavigationHandler.enable():e._keySpatialNavigationHandler.disable(),t.keyZoom?e._keyZoomHandler.enable():e._keyZoomHandler.disable()})},t.prototype._deactivate=function(){this._configurationSubscription.unsubscribe(),this._keyPlayHandler.disable(),this._keySequenceNavigationHandler.disable(),this._keySpatialNavigationHandler.disable(),this._keyZoomHandler.disable()},t.prototype._getDefaultConfiguration=function(){return{keyPlay:!0,keySequenceNavigation:!0,keySpatialNavigation:!0,keyZoom:!0}},t.componentName="keyboard",t}(i.Component);r.KeyboardComponent=s,i.ComponentService.register(s),r.default=s},{"../../Component":290,"../../Geo":293}],330:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./MarkerComponent");r.MarkerComponent=n.MarkerComponent;var i=e("./marker/SimpleMarker");r.SimpleMarker=i.SimpleMarker;var o=e("./marker/CircleMarker");r.CircleMarker=o.CircleMarker},{"./MarkerComponent":331,"./marker/CircleMarker":334,"./marker/SimpleMarker":336}],331:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=e("when"),s=e("rxjs/Observable"),a=e("../../Component"),c=e("../../Render"),u=e("../../Graph"),h=e("../../Geo"),l=function(e){function t(t,r,n){var i=e.call(this,t,r,n)||this;return i._relativeGroundAltitude=-2,i._geoCoords=new h.GeoCoords,i._graphCalculator=new u.GraphCalculator,i._markerScene=new a.MarkerScene,i._markerSet=new a.MarkerSet,i._viewportCoords=new h.ViewportCoords,i}return n(t,e),t.prototype.add=function(e){this._markerSet.add(e)},t.prototype.get=function(e){return this._markerSet.get(e)},t.prototype.getAll=function(){return this._markerSet.getAll()},t.prototype.getMarkerIdAt=function(e){var t=this;return o.promise(function(r,n){t._container.renderService.renderCamera$.first().map(function(r){var n=t._viewportCoords.canvasToViewport(e[0],e[1],t._container.element);return t._markerScene.intersectObjects(n,r.perspective)}).subscribe(function(e){r(e)},function(e){n(e)})})},t.prototype.has=function(e){return this._markerSet.has(e)},t.prototype.remove=function(e){this._markerSet.remove(e)},t.prototype.removeAll=function(){this._markerSet.removeAll()},t.prototype._activate=function(){var e=this,r=this._navigator.stateService.currentState$.map(function(t){return t.state.camera.position.z+e._relativeGroundAltitude}).distinctUntilChanged(function(e,t){return Math.abs(e-t)<.01}).publishReplay(1).refCount(),n=s.Observable.combineLatest(r,this._navigator.stateService.reference$).first().map(function(){}).publishReplay(1).refCount(),o=this._configuration$.map(function(e){return{visibleBBoxSize:Math.max(1,Math.min(200,e.visibleBBoxSize))}}),a=this._navigator.stateService.currentNode$.map(function(e){return e.latLon}).publishReplay(1).refCount(),u=s.Observable.combineLatest(o,a).map(function(t){var r=t[0],n=t[1];return e._graphCalculator.boundingBoxCorners(n,r.visibleBBoxSize/2)}).publishReplay(1).refCount(),h=s.Observable.combineLatest(s.Observable.of(this._markerSet).concat(this._markerSet.changed$),u).map(function(e){var t=e[0],r=e[1];return t.search(r)});this._setChangedSubscription=n.switchMap(function(){return h.withLatestFrom(e._navigator.stateService.reference$,r)}).subscribe(function(t){for(var r=t[0],n=t[1],i=t[2],o=e._geoCoords,s=e._markerScene,a=s.markers,c=Object.assign({},a),u=0,h=r;u<h.length;u++){var l=h[u];if(l.id in a)delete c[l.id];else{var p=o.geodeticToEnu(l.latLon.lat,l.latLon.lon,n.alt+i,n.lat,n.lon,n.alt);s.add(l,p)}}for(var f in c)c.hasOwnProperty(f)&&s.remove(f)}),this._markersUpdatedSubscription=n.switchMap(function(){return e._markerSet.updated$.withLatestFrom(u,e._navigator.stateService.reference$,r)}).subscribe(function(t){for(var r=t[0],n=t[1],i=n[0],o=n[1],s=t[2],a=t[3],c=e._geoCoords,u=e._markerScene,h=0,l=r;h<l.length;h++){var p=l[h],f=u.has(p.id),d=p.latLon.lat>i.lat&&p.latLon.lat<o.lat&&p.latLon.lon>i.lon&&p.latLon.lon<o.lon;if(d){var m=c.geodeticToEnu(p.latLon.lat,p.latLon.lon,s.alt+a,s.lat,s.lon,s.alt);u.add(p,m)}else!d&&f&&u.remove(p.id)}}),this._referenceSubscription=this._navigator.stateService.reference$.skip(1).withLatestFrom(r).subscribe(function(t){for(var r=t[0],n=t[1],i=e._geoCoords,o=e._markerScene,s=0,a=o.getAll();s<a.length;s++){var c=a[s],u=i.geodeticToEnu(c.latLon.lat,c.latLon.lon,r.alt+n,r.lat,r.lon,r.alt);o.update(c.id,u)}}),this._adjustHeightSubscription=r.skip(1).withLatestFrom(this._navigator.stateService.reference$,a).subscribe(function(t){for(var r=t[0],n=t[1],i=t[2],o=e._geoCoords,s=e._markerScene,a=o.geodeticToEnu(i.lat,i.lon,n.alt+r,n.lat,n.lon,n.alt),c=0,u=s.getAll();c<u.length;c++){var h=u[c],l=o.geodeticToEnu(h.latLon.lat,h.latLon.lon,n.alt+r,n.lat,n.lon,n.alt),p=l[0]-a[0],f=l[1]-a[1],d=Math.sqrt(p*p+f*f);d>50||s.lerpAltitude(h.id,r,Math.min(1,Math.max(0,1.2-1.2*d/50)))}}),this._renderSubscription=this._navigator.stateService.currentState$.map(function(t){var r=e._markerScene;return{name:e._name,render:{frameId:t.id,needsRender:r.needsRender,render:r.render.bind(r),stage:c.GLRenderStage.Foreground}}}).subscribe(this._container.glRenderer.render$);var l=s.Observable.combineLatest(this._container.renderService.renderCamera$,this._container.mouseService.mouseMove$).map(function(t){var r=t[0],n=t[1],i=e._container.element,o=e._viewportCoords.canvasPosition(n,i),s=o[0],a=o[1],c=e._viewportCoords.canvasToViewport(s,a,i);return e._markerScene.intersectObjects(c,r.perspective)}).publishReplay(1).refCount(),p=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragStart$).map(function(e){return!0}),f=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragEnd$).map(function(e){return!1}),d=s.Observable.merge(p,f).startWith(!1);this._dragEventSubscription=p.withLatestFrom(l).merge(s.Observable.combineLatest(f,s.Observable.of(null))).startWith([!1,null]).pairwise().subscribe(function(r){var n=r[0],i=r[1],o=i[0],s=o?t.dragstart:t.dragend,a=o?i[1]:n[1],c={marker:e._markerScene.get(a),target:e,type:s};e.fire(s,c)});var m=s.Observable.merge(this._container.mouseService.mouseDown$.map(function(e){return!0}),this._container.mouseService.documentMouseUp$.map(function(e){return!1})).startWith(!1);this._mouseClaimSubscription=s.Observable.combineLatest(this._container.mouseService.active$,l.distinctUntilChanged(),m,d).map(function(e){var t=e[0],r=e[1],n=e[2],i=e[3];return!t&&null!=r&&n||i}).distinctUntilChanged().subscribe(function(t){t?(e._container.mouseService.claimMouse(e._name,1),e._container.mouseService.claimWheel(e._name,1)):(e._container.mouseService.unclaimMouse(e._name),e._container.mouseService.unclaimWheel(e._name))});var v=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragStart$).withLatestFrom(l,this._container.renderService.renderCamera$).map(function(t){var r=t[0],n=t[1],i=t[2],o=e._markerScene.get(n),s=e._container.element,a=e._viewportCoords.projectToCanvas(o.geometry.position.toArray(),s,i.perspective),c=a[0],u=a[1],h=e._viewportCoords.canvasPosition(r,s);return[o,[h[0]-c,h[1]-u],i]}).publishReplay(1).refCount();this._updateMarkerSubscription=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDrag$).withLatestFrom(v,this._navigator.stateService.reference$,o).subscribe(function(r){var n=r[0],o=r[1],s=o[0],a=o[1],c=o[2],u=r[2],h=r[3];if(e._markerScene.has(s.id)){var l=e._container.element,p=e._viewportCoords.canvasPosition(n,l),f=p[0],d=p[1],m=f-a[0],v=d-a[1],g=e._viewportCoords.canvasToViewport(m,v,l),y=g[0],b=g[1],_=new i.Vector3(y,b,1).unproject(c.perspective).sub(c.perspective.position).normalize(),x=Math.min(e._relativeGroundAltitude/_.z,h.visibleBBoxSize/2-.1);if(!(x<0)){var w=_.clone().multiplyScalar(x).add(c.perspective.position);w.z=c.perspective.position.z+e._relativeGroundAltitude;var S=e._geoCoords.enuToGeodetic(w.x,w.y,w.z,u.lat,u.lon,u.alt),M=S[0],E=S[1];e._markerScene.update(s.id,w.toArray(),{lat:M,lon:E}),e._markerSet.update(s);var C={marker:s,target:e,type:t.changed};e.fire(t.changed,C)}}})},t.prototype._deactivate=function(){this._adjustHeightSubscription.unsubscribe(),this._dragEventSubscription.unsubscribe(),this._markersUpdatedSubscription.unsubscribe(),this._mouseClaimSubscription.unsubscribe(),this._referenceSubscription.unsubscribe(),this._renderSubscription.unsubscribe(),this._setChangedSubscription.unsubscribe(),this._updateMarkerSubscription.unsubscribe(),this._markerScene.clear()},t.prototype._getDefaultConfiguration=function(){return{visibleBBoxSize:100}},t.componentName="marker",t.changed="changed",t.dragstart="dragstart",t.dragend="dragend",t}(a.Component);r.MarkerComponent=l,a.ComponentService.register(l),r.default=l},{"../../Component":290,"../../Geo":293,"../../Graph":294,"../../Render":296,"rxjs/Observable":29,three:240,when:287}],332:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(e,t){this._needsRender=!1,this._interactiveObjects=[],this._markers={},this._objectMarkers={},this._raycaster=t||new n.Raycaster,this._scene=e||new n.Scene}return Object.defineProperty(e.prototype,"markers",{get:function(){return this._markers},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"needsRender",{get:function(){return this._needsRender},enumerable:!0,configurable:!0}),e.prototype.add=function(e,t){e.id in this._markers&&this._dispose(e.id),e.createGeometry(t),this._scene.add(e.geometry),this._markers[e.id]=e;for(var r=0,n=e.getInteractiveObjects();r<n.length;r++){var i=n[r];this._interactiveObjects.push(i),this._objectMarkers[i.uuid]=e.id}this._needsRender=!0},e.prototype.clear=function(){for(var e in this._markers)this._markers.hasOwnProperty&&this._dispose(e);this._needsRender=!0},e.prototype.get=function(e){return this._markers[e]},e.prototype.getAll=function(){var e=this;return Object.keys(this._markers).map(function(t){return e._markers[t]})},e.prototype.has=function(e){return e in this._markers},e.prototype.intersectObjects=function(e,t){var r=e[0],i=e[1];this._raycaster.setFromCamera(new n.Vector2(r,i),t);for(var o=0,s=this._raycaster.intersectObjects(this._interactiveObjects);o<s.length;o++){var a=s[o];if(a.object.uuid in this._objectMarkers)return this._objectMarkers[a.object.uuid]}return null},e.prototype.lerpAltitude=function(e,t,r){e in this._markers&&(this._markers[e].lerpAltitude(t,r),this._needsRender=!0)},e.prototype.remove=function(e){e in this._markers&&(this._dispose(e),this._needsRender=!0)},e.prototype.render=function(e,t){t.render(this._scene,e),this._needsRender=!1},e.prototype.update=function(e,t,r){if(e in this._markers){this._markers[e].updatePosition(t,r),this._needsRender=!0}},e.prototype._dispose=function(e){var t=this._markers[e];this._scene.remove(t.geometry);for(var r=0,n=t.getInteractiveObjects();r<n.length;r++){var i=n[r],o=this._interactiveObjects.indexOf(i);-1!==o?this._interactiveObjects.splice(o,1):console.warn("Object does not exist ("+i.id+") for "+e),delete this._objectMarkers[i.uuid]}t.disposeGeometry(),delete this._markers[e]},e}();r.MarkerScene=i,r.default=i},{three:240}],333:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rbush"),i=e("rxjs/Subject"),o=function(){function e(){this._hash={},this._index=n(16,[".lon",".lat",".lon",".lat"]),this._indexChanged$=new i.Subject,this._updated$=new i.Subject}return Object.defineProperty(e.prototype,"changed$",{get:function(){return this._indexChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"updated$",{get:function(){return this._updated$},enumerable:!0,configurable:!0}),e.prototype.add=function(e){for(var t=[],r=this._hash,n=this._index,i=0,o=e;i<o.length;i++){var s=o[i],a=s.id;a in r&&(n.remove(r[a]),t.push(s));var c={lat:s.latLon.lat,lon:s.latLon.lon,marker:s};r[a]=c,n.insert(c)}t.length>0&&this._updated$.next(t),e.length>t.length&&this._indexChanged$.next(this)},e.prototype.has=function(e){return e in this._hash},e.prototype.get=function(e){return this.has(e)?this._hash[e].marker:void 0},e.prototype.getAll=function(){return this._index.all().map(function(e){return e.marker})},e.prototype.remove=function(e){for(var t=this._hash,r=this._index,n=!1,i=0,o=e;i<o.length;i++){var s=o[i];if(s in t){var a=t[s];r.remove(a),delete t[s],n=!0}}n&&this._indexChanged$.next(this)},e.prototype.removeAll=function(){this._hash={},this._index.clear(),this._indexChanged$.next(this)},e.prototype.search=function(e){var t=e[0],r=e[1];return this._index.search({maxX:r.lon,maxY:r.lat,minX:t.lon,minY:t.lat}).map(function(e){return e.marker})},e.prototype.update=function(e){var t=this._hash,r=this._index,n=e.id;if(n in t){r.remove(t[n]);var i={lat:e.latLon.lat,lon:e.latLon.lon,marker:e};t[n]=i,r.insert(i)}},e}();r.MarkerSet=o,r.default=o},{rbush:25,"rxjs/Subject":34}],334:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=function(e){function t(t,r,n){var i=e.call(this,t,r)||this;return n=n||{},i._color=null!=n.color?n.color:16777215,i._opacity=null!=n.opacity?n.opacity:.4,i._radius=null!=n.radius?n.radius:1,i}return n(t,e),t.prototype._createGeometry=function(e){var t=new i.Mesh(new i.CircleGeometry(this._radius,16),new i.MeshBasicMaterial({color:this._color,opacity:this._opacity,transparent:!0}));t.up.fromArray([0,0,1]),t.renderOrder=-1;var r=new i.Object3D;r.add(t),r.position.fromArray(e),this._geometry=r},t.prototype._disposeGeometry=function(){for(var e=0,t=this._geometry.children;e<t.length;e++){var r=t[e];r.geometry.dispose(),r.material.dispose()}},t.prototype._getInteractiveObjects=function(){return[]},t}(e("../../../Component").Marker);r.CircleMarker=o,r.default=o},{"../../../Component":290,three:240}],335:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t){this._id=e,this._latLon=t}return Object.defineProperty(e.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"geometry",{get:function(){return this._geometry},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"latLon",{get:function(){return this._latLon},enumerable:!0,configurable:!0}),e.prototype.createGeometry=function(e){this._geometry||(this._createGeometry(e),this._geometry.updateMatrixWorld(!0))},e.prototype.disposeGeometry=function(){this._geometry&&(this._disposeGeometry(),this._geometry=void 0)},e.prototype.getInteractiveObjects=function(){return this._geometry?this._getInteractiveObjects():[]},e.prototype.lerpAltitude=function(e,t){this._geometry&&(this._geometry.position.z=(1-t)*this._geometry.position.z+t*e)},e.prototype.updatePosition=function(e,t){t&&(this._latLon.lat=t.lat,this._latLon.lon=t.lon),this._geometry&&(this._geometry.position.fromArray(e),this._geometry.updateMatrixWorld(!0))},e}();r.Marker=n,r.default=n},{}],336:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=function(e){function t(t,r,n){var i=e.call(this,t,r)||this;return n=n||{},i._ballColor=null!=n.ballColor?n.ballColor:16711680,i._ballOpacity=null!=n.ballOpacity?n.ballOpacity:.8,i._circleToRayAngle=2,i._color=null!=n.color?n.color:16711680,i._interactive=!!n.interactive,i._opacity=null!=n.opacity?n.opacity:.4,i._radius=null!=n.radius?n.radius:1,i}return n(t,e),t.prototype._createGeometry=function(e){var t=this._radius,r=new i.Mesh(this._markerGeometry(t,8,8),new i.MeshBasicMaterial({color:this._color,opacity:this._opacity,transparent:!0}));r.renderOrder=1;var n=new i.Mesh(new i.SphereGeometry(t/2,8,8),new i.MeshBasicMaterial({color:this._ballColor,opacity:this._ballOpacity,transparent:!0}));n.position.z=this._markerHeight(t);var o=new i.Object3D;o.add(n),o.add(r),o.position.fromArray(e),this._geometry=o},t.prototype._disposeGeometry=function(){for(var e=0,t=this._geometry.children;e<t.length;e++){var r=t[e];r.geometry.dispose(),r.material.dispose()}},t.prototype._getInteractiveObjects=function(){return this._interactive?[this._geometry.children[0]]:[]},t.prototype._markerHeight=function(e){var t=Math.tan(Math.PI-this._circleToRayAngle);return e*Math.sqrt(1+t*t)},t.prototype._markerGeometry=function(e,t,r){var n=new i.Geometry;t=Math.max(3,Math.floor(t)||8),r=Math.max(2,Math.floor(r)||6);for(var o=this._markerHeight(e),s=[],a=0;a<=r;++a){for(var c=[],u=0;u<=t;++u){var h=u/t*Math.PI*2,l=a/r*Math.PI,p=void 0;if(l<this._circleToRayAngle)p=e;else{var f=Math.tan(l-this._circleToRayAngle);p=e*Math.sqrt(1+f*f)}var d=new i.Vector3;d.x=p*Math.cos(h)*Math.sin(l),d.y=p*Math.sin(h)*Math.sin(l),d.z=p*Math.cos(l)+o,n.vertices.push(d),c.push(n.vertices.length-1)}s.push(c)}for(a=0;a<r;++a)for(u=0;u<t;++u){var m=s[a][u+1],v=s[a][u],g=s[a+1][u],y=s[a+1][u+1],b=n.vertices[m].clone().normalize(),_=n.vertices[v].clone().normalize(),x=n.vertices[g].clone().normalize(),w=n.vertices[y].clone().normalize();n.faces.push(new i.Face3(m,v,y,[b,_,w])),n.faces.push(new i.Face3(v,g,y,[_.clone(),x,w.clone()]))}return n.computeFaceNormals(),n.boundingSphere=new i.Sphere(new i.Vector3,e+o),n},t}(e("../../../Component").Marker);r.SimpleMarker=o,r.default=o},{"../../../Component":290,three:240}],337:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=function(e){function t(t,r,n,i,o){var s=e.call(this,t,r,n)||this;return s._spatial=o,s._viewportCoords=i,s._basicDistanceThreshold=.001,s._basicRotationThreshold=.05,s._bounceCoeff=.1,s}return n(t,e),t.prototype._enable=function(){var e=this,t=this._navigator.stateService.currentState$.map(function(e){return e.state.alpha<1});this._bounceSubscription=i.Observable.combineLatest(t,this._navigator.stateService.inTranslation$,this._container.mouseService.active$,this._container.touchService.active$).map(function(e){return e[0]||e[1]||e[2]||e[3]}).distinctUntilChanged().switchMap(function(t){return t?i.Observable.empty():i.Observable.combineLatest(e._container.renderService.renderCamera$,e._navigator.stateService.currentTransform$.first())}).subscribe(function(t){var r=t[0],n=r.perspective,i=t[1];if((i.hasValidScale||!(r.camera.focal<.1))&&0!==r.perspective.aspect&&r.perspective.aspect!==Number.POSITIVE_INFINITY){var o=e._basicDistanceThreshold/Math.pow(2,r.zoom),s=e._viewportCoords.viewportToBasic(0,0,i,n);if(!(Math.abs(s[0]-.5)<o&&Math.abs(s[1]-.5)<o)){var a=e._viewportCoords.getBasicDistances(i,n),c=0,u=0;if(!(a[0]<o&&a[1]<o&&a[2]<o&&a[3]<o||Math.abs(a[0]-a[2])<o&&Math.abs(a[1]-a[3])<o)){var h=e._bounceCoeff;a[1]>0&&0===a[3]?c=-h*a[1]:0===a[1]&&a[3]>0?c=h*a[3]:a[1]>0&&a[3]>0&&(c=h*(a[3]-a[1])/2),a[0]>0&&0===a[2]?u=h*a[0]:0===a[0]&&a[2]>0?u=-h*a[2]:a[0]>0&&a[2]>0&&(u=h*(a[0]-a[2])/2);var l=e._basicRotationThreshold;c=e._spatial.clamp(c,-l,l),u=e._spatial.clamp(u,-l,l),e._navigator.stateService.rotateBasicUnbounded([c,u])}}}})},t.prototype._disable=function(){this._bounceSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{}},t}(e("../../Component").HandlerBase);r.BounceHandler=o,r.default=o},{"../../Component":290,"rxjs/Observable":29}],338:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._viewportCoords=i,o}return n(t,e),t.prototype._enable=function(){var e=this;this._zoomSubscription=i.Observable.merge(this._container.mouseService.filtered$(this._component.name,this._container.mouseService.dblClick$),this._container.touchService.doubleTap$.map(function(e){var t=e.touches[0];return{clientX:t.clientX,clientY:t.clientY,shiftKey:e.shiftKey}})).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).subscribe(function(t){var r=t[0],n=t[1],i=t[2],o=e._container.element,s=e._viewportCoords.canvasPosition(r,o),a=s[0],c=s[1],u=e._viewportCoords.unprojectFromCanvas(a,c,o,n.perspective),h=i.projectBasic(u.toArray()),l=r.shiftKey?-1:1;e._navigator.stateService.zoomIn(l,h)})},t.prototype._disable=function(){this._zoomSubscription.unsubscribe()},t.prototype._getConfiguration=function(e){return{doubleClickZoom:e}},t}(e("../../Component").HandlerBase);r.DoubleClickZoomHandler=o,r.default=o},{"../../Component":290,"rxjs/Observable":29}],339:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=e("rxjs/Observable"),s=function(e){function t(t,r,n,i,o){var s=e.call(this,t,r,n)||this;return s._spatial=o,s._viewportCoords=i,s._basicRotationThreshold=.05,s._forceCoeff=.2,s}return n(t,e),t.prototype._enable=function(){var e=this,t=this._container.mouseService.filtered$(this._component.name,this._container.mouseService.mouseDragStart$).map(function(e){return!0}).share(),r=this._container.mouseService.filtered$(this._component.name,this._container.mouseService.mouseDragEnd$).map(function(e){return!1}).share();this._activeMouseSubscription=o.Observable.merge(t,r).subscribe(this._container.mouseService.activate$),this._preventDefaultSubscription=o.Observable.merge(t,r).switchMap(function(t){return t?e._container.mouseService.documentMouseMove$:o.Observable.empty()}).merge(this._container.touchService.touchMove$).subscribe(function(e){e.preventDefault()});var n=this._container.touchService.singleTouchDragStart$.map(function(e){return!0}),s=this._container.touchService.singleTouchDragEnd$.map(function(e){return!1});this._activeTouchSubscription=o.Observable.merge(n,s).subscribe(this._container.touchService.activate$);var a=this._navigator.stateService.currentState$.map(function(e){return e.state.currentNode.fullPano||e.state.nodesAhead<1}).distinctUntilChanged().switchMap(function(t){if(!t)return o.Observable.empty();var r=e._container.mouseService.filtered$(e._component.name,e._container.mouseService.mouseDragStart$).switchMap(function(t){return o.Observable.of(t).concat(e._container.mouseService.filtered$(e._component.name,e._container.mouseService.mouseDrag$)).merge(e._container.mouseService.filtered$(e._component.name,e._container.mouseService.mouseDragEnd$).map(function(e){return null})).takeWhile(function(e){return!!e}).startWith(null)}).pairwise().filter(function(e){return null!=e[0]&&null!=e[1]}),n=o.Observable.merge(e._container.touchService.singleTouchDragStart$,e._container.touchService.singleTouchDrag$,e._container.touchService.singleTouchDragEnd$.map(function(e){return null})).map(function(e){return null!=e&&e.touches.length>0?e.touches[0]:null}).pairwise().filter(function(e){return null!=e[0]&&null!=e[1]});return o.Observable.merge(r,n)}).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$,this._navigator.stateService.currentCamera$).map(function(t){var r=t[0],n=t[1],o=t[2],s=t[3].clone(),a=r[0],c=r[1],u=c.clientX-a.clientX,h=c.clientY-a.clientY,l=e._container.element,p=e._viewportCoords.canvasPosition(c,l),f=p[0],d=p[1],m=e._viewportCoords.unprojectFromCanvas(f,d,l,n.perspective).sub(n.perspective.position),v=e._viewportCoords.unprojectFromCanvas(f-u,d,l,n.perspective).sub(n.perspective.position),g=e._viewportCoords.unprojectFromCanvas(f,d-h,l,n.perspective).sub(n.perspective.position),y=(u>0?1:-1)*v.angleTo(m),b=(h>0?-1:1)*g.angleTo(m),_=(new i.Quaternion).setFromUnitVectors(s.up,new i.Vector3(0,0,1)),x=_.clone().inverse(),w=new i.Vector3;w.copy(s.lookat).sub(s.position),w.applyQuaternion(_);var S=w.length(),M=Math.atan2(w.y,w.x);M+=y;var E=Math.atan2(Math.sqrt(w.x*w.x+w.y*w.y),w.z);E+=b,E=Math.max(.01,Math.min(Math.PI-.01,E)),w.x=Math.sin(E)*Math.cos(M),w.y=Math.sin(E)*Math.sin(M),w.z=Math.cos(E),w.applyQuaternion(x);var C=(new i.Vector3).copy(s.position).add(w.multiplyScalar(S)),T=o.projectBasic(C.toArray()),O=o.projectBasic(s.lookat.toArray()),P=T[0]-O[0],A=T[1]-O[1];Math.abs(P)>1?P=0:P>.5?P-=1:P<-.5&&(P+=1);var R=e._basicRotationThreshold;if(P=e._spatial.clamp(P,-R,R),A=e._spatial.clamp(A,-R,R),o.fullPano)return[P,A];var j=e._viewportCoords.getPixelDistances(e._container.element,o,n.perspective),L=e._forceCoeff;return j[0]>0&&A<0&&T[1]<.5&&(A/=Math.max(1,L*j[0])),j[1]>0&&P>0&&T[0]>.5&&(P/=Math.max(1,L*j[1])),j[2]>0&&A>0&&T[1]>.5&&(A/=Math.max(1,L*j[2])),j[3]>0&&P<0&&T[0]<.5&&(P/=Math.max(1,L*j[3])),[P,A]}).share();this._rotateBasicWithoutInertiaSubscription=a.subscribe(function(t){e._navigator.stateService.rotateBasicWithoutInertia(t)}),this._rotateBasicSubscription=a.scan(function(t,r){return e._drainBuffer(t),t.push([Date.now(),r]),t},[]).sample(o.Observable.merge(this._container.mouseService.filtered$(this._component.name,this._container.mouseService.mouseDragEnd$),this._container.touchService.singleTouchDragEnd$)).map(function(t){for(var r=e._drainBuffer(t.slice()),n=[0,0],i=0,o=r;i<o.length;i++){var s=o[i];n[0]+=s[1][0],n[1]+=s[1][1]}var a=r.length;return a>0&&(n[0]/=a,n[1]/=a),n}).subscribe(function(t){e._navigator.stateService.rotateBasic(t)})},t.prototype._disable=function(){this._activeMouseSubscription.unsubscribe(),this._activeTouchSubscription.unsubscribe(),this._preventDefaultSubscription.unsubscribe(),this._rotateBasicSubscription.unsubscribe(),this._rotateBasicWithoutInertiaSubscription.unsubscribe(),this._activeMouseSubscription=null,this._activeTouchSubscription=null,this._preventDefaultSubscription=null,this._rotateBasicSubscription=null},t.prototype._getConfiguration=function(e){return{dragPan:e}},t.prototype._drainBuffer=function(e){for(var t=Date.now();e.length>0&&t-e[0][0]>50;)e.shift();return e},t}(e("../../Component").HandlerBase);r.DragPanHandler=s,r.default=s},{"../../Component":290,"rxjs/Observable":29,three:240}],340:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../Component"),o=e("../../Geo"),s=function(e){function t(t,r,n){var s=e.call(this,t,r,n)||this,a=new o.Spatial,c=new o.ViewportCoords;return s._bounceHandler=new i.BounceHandler(s,r,n,c,a),s._doubleClickZoomHandler=new i.DoubleClickZoomHandler(s,r,n,c),s._dragPanHandler=new i.DragPanHandler(s,r,n,c,a),s._scrollZoomHandler=new i.ScrollZoomHandler(s,r,n,c),s._touchZoomHandler=new i.TouchZoomHandler(s,r,n,c),s}return n(t,e),Object.defineProperty(t.prototype,"doubleClickZoom",{get:function(){return this._doubleClickZoomHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dragPan",{get:function(){return this._dragPanHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollZoom",{get:function(){return this._scrollZoomHandler},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touchZoom",{get:function(){return this._touchZoomHandler},enumerable:!0,configurable:!0}),t.prototype._activate=function(){var e=this;this._bounceHandler.enable(),this._configurationSubscription=this._configuration$.subscribe(function(t){t.doubleClickZoom?e._doubleClickZoomHandler.enable():e._doubleClickZoomHandler.disable(),t.dragPan?e._dragPanHandler.enable():e._dragPanHandler.disable(),t.scrollZoom?e._scrollZoomHandler.enable():e._scrollZoomHandler.disable(),t.touchZoom?e._touchZoomHandler.enable():e._touchZoomHandler.disable()}),this._container.mouseService.claimMouse(this._name,0)},t.prototype._deactivate=function(){this._container.mouseService.unclaimMouse(this._name),this._configurationSubscription.unsubscribe(),this._bounceHandler.disable(),this._doubleClickZoomHandler.disable(),this._dragPanHandler.disable(),this._scrollZoomHandler.disable(),this._touchZoomHandler.disable()},t.prototype._getDefaultConfiguration=function(){return{doubleClickZoom:!1,dragPan:!0,scrollZoom:!0,touchZoom:!0}},t.componentName="mouse",t}(i.Component);r.MouseComponent=s,i.ComponentService.register(s),r.default=s},{"../../Component":290,"../../Geo":293}],341:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._viewportCoords=i,o}return n(t,e),t.prototype._enable=function(){var e=this;this._container.mouseService.claimWheel(this._component.name,0),this._preventDefaultSubscription=this._container.mouseService.mouseWheel$.subscribe(function(e){e.preventDefault()}),this._zoomSubscription=this._container.mouseService.filteredWheel$(this._component.name,this._container.mouseService.mouseWheel$).withLatestFrom(this._navigator.stateService.currentState$,function(e,t){return[e,t]}).filter(function(e){var t=e[1].state;return t.currentNode.fullPano||t.nodesAhead<1}).map(function(e){return e[0]}).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$,function(e,t,r){return[e,t,r]}).subscribe(function(t){var r=t[0],n=t[1],i=t[2],o=e._container.element,s=e._viewportCoords.canvasPosition(r,o),a=s[0],c=s[1],u=e._viewportCoords.unprojectFromCanvas(a,c,o,n.perspective),h=i.projectBasic(u.toArray()),l=r.deltaY;1===r.deltaMode?l*=40:2===r.deltaMode&&(l*=800);var p=-3*l/e._viewportCoords.containerToCanvas(o)[1];e._navigator.stateService.zoomIn(p,h)})},t.prototype._disable=function(){this._container.mouseService.unclaimWheel(this._component.name),this._preventDefaultSubscription.unsubscribe(),this._zoomSubscription.unsubscribe(),this._preventDefaultSubscription=null,this._zoomSubscription=null},t.prototype._getConfiguration=function(e){return{scrollZoom:e}},t}(e("../../Component").HandlerBase);r.ScrollZoomHandler=i,r.default=i},{"../../Component":290}],342:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._viewportCoords=i,o}return n(t,e),t.prototype._enable=function(){var e=this;this._preventDefaultSubscription=this._container.touchService.pinch$.subscribe(function(e){e.originalEvent.preventDefault()});var t=this._container.touchService.pinchStart$.map(function(e){return!0}),r=this._container.touchService.pinchEnd$.map(function(e){return!1});this._activeSubscription=i.Observable.merge(t,r).subscribe(this._container.touchService.activate$),this._zoomSubscription=this._container.touchService.pinch$.withLatestFrom(this._navigator.stateService.currentState$).filter(function(e){var t=e[1].state;return t.currentNode.fullPano||t.nodesAhead<1}).map(function(e){return e[0]}).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).subscribe(function(t){var r=t[0],n=t[1],i=t[2],o=e._container.element,s=e._viewportCoords.canvasPosition(r,o),a=s[0],c=s[1],u=e._viewportCoords.unprojectFromCanvas(a,c,o,n.perspective),h=i.projectBasic(u.toArray()),l=e._viewportCoords.containerToCanvas(o),p=l[0],f=l[1],d=3*r.distanceChange/Math.min(p,f);e._navigator.stateService.zoomIn(d,h)})},t.prototype._disable=function(){this._activeSubscription.unsubscribe(),this._preventDefaultSubscription.unsubscribe(),this._zoomSubscription.unsubscribe(),this._preventDefaultSubscription=null,this._zoomSubscription=null},t.prototype._getConfiguration=function(e){return{touchZoom:e}},t}(e("../../Component").HandlerBase);r.TouchZoomHandler=o,r.default=o},{"../../Component":290,"rxjs/Observable":29}],343:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./popup/Popup");r.Popup=n.Popup;var i=e("./PopupComponent");r.PopupComponent=i.PopupComponent},{"./PopupComponent":344,"./popup/Popup":345}],344:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("rxjs/Subject"),s=e("../../Component"),a=e("../../Utils"),c=function(e){function t(t,r,n,i){var s=e.call(this,t,r,n)||this;return s._dom=i||new a.DOM,s._popups=[],s._added$=new o.Subject,s._popups$=new o.Subject,s}return n(t,e),t.prototype.add=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];-1===this._popups.indexOf(n)&&(this._popups.push(n),this._activated&&n.setParentContainer(this._popupContainer))}this._added$.next(e),this._popups$.next(this._popups)},t.prototype.getAll=function(){return this._popups.slice()},t.prototype.remove=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];this._remove(n)}this._popups$.next(this._popups)},t.prototype.removeAll=function(){for(var e=0,t=this._popups.slice();e<t.length;e++){var r=t[e];this._remove(r)}this._popups$.next(this._popups)},t.prototype._activate=function(){var e=this;this._popupContainer=this._dom.createElement("div","mapillary-js-popup-container",this._container.element);for(var t=0,r=this._popups;t<r.length;t++){r[t].setParentContainer(this._popupContainer)}this._updateAllSubscription=i.Observable.combineLatest(this._container.renderService.renderCamera$,this._container.renderService.size$,this._navigator.stateService.currentTransform$).subscribe(function(t){for(var r=t[0],n=t[1],i=t[2],o=0,s=e._popups;o<s.length;o++){s[o].update(r,n,i)}});var n=this._popups$.startWith(this._popups).switchMap(function(e){return i.Observable.from(e).mergeMap(function(e){return e.changed$})}).map(function(e){return[e]});this._updateAddedChangedSubscription=this._added$.merge(n).withLatestFrom(this._container.renderService.renderCamera$,this._container.renderService.size$,this._navigator.stateService.currentTransform$).subscribe(function(e){for(var t=e[0],r=e[1],n=e[2],i=e[3],o=0,s=t;o<s.length;o++){s[o].update(r,n,i)}})},t.prototype._deactivate=function(){this._updateAllSubscription.unsubscribe(),this._updateAddedChangedSubscription.unsubscribe();for(var e=0,t=this._popups;e<t.length;e++){t[e].remove()}this._container.element.removeChild(this._popupContainer),delete this._popupContainer},t.prototype._getDefaultConfiguration=function(){return{}},t.prototype._remove=function(e){var t=this._popups.indexOf(e);if(-1!==t){var r=this._popups.splice(t,1)[0];this._activated&&r.remove()}},t.componentName="popup",t}(s.Component);r.PopupComponent=c,s.ComponentService.register(c),r.default=c},{"../../Component":290,"../../Utils":300,"rxjs/Observable":29,"rxjs/Subject":34}],345:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=e("../../../Geo"),o=e("../../../Utils"),s=e("../../../Viewer"),a=function(){function e(e,t,r){this._options={},e&&(this._options.capturePointer=null==e.capturePointer||e.capturePointer,this._options.clean=e.clean,this._options.float=e.float,this._options.offset=e.offset,this._options.opacity=e.opacity,this._options.position=e.position),this._dom=r||new o.DOM,this._viewportCoords=t||new i.ViewportCoords,this._notifyChanged$=new n.Subject}return Object.defineProperty(e.prototype,"changed$",{get:function(){return this._notifyChanged$},enumerable:!0,configurable:!0}),e.prototype.remove=function(){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._container&&(this._container.parentNode.removeChild(this._container),delete this._container),this._parentContainer&&delete this._parentContainer},e.prototype.setBasicPoint=function(e){this._point=e.slice(),this._rect=null,this._notifyChanged$.next(this)},e.prototype.setBasicRect=function(e){this._rect=e.slice(),this._point=null,this._notifyChanged$.next(this)},e.prototype.setDOMContent=function(e){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content);var t="mapillaryjs-popup-content"+(!0===this._options.clean?"-clean":"")+(!0===this._options.capturePointer?" mapillaryjs-popup-capture-pointer":"");this._content=this._dom.createElement("div",t,this._container),this._content.appendChild(e),this._notifyChanged$.next(this)},e.prototype.setHTML=function(e){var t,r=this._dom.document.createDocumentFragment(),n=this._dom.createElement("body");for(n.innerHTML=e;;){if(!(t=n.firstChild))break;r.appendChild(t)}this.setDOMContent(r)},e.prototype.setText=function(e){this.setDOMContent(this._dom.document.createTextNode(e))},e.prototype.setParentContainer=function(e){this._parentContainer=e},e.prototype.update=function(e,t,r){if(this._parentContainer&&this._content&&(this._point||this._rect)){if(!this._container){this._container=this._dom.createElement("div","mapillaryjs-popup",this._parentContainer);if(!0!==this._options.clean&&this._options.float!==s.Alignment.Center){var n="mapillaryjs-popup-tip"+(!0===this._options.capturePointer?" mapillaryjs-popup-capture-pointer":"");this._tip=this._dom.createElement("div",n,this._container),this._dom.createElement("div","mapillaryjs-popup-tip-inner",this._tip)}this._container.appendChild(this._content),this._parentContainer.appendChild(this._container),null!=this._options.opacity&&(this._container.style.opacity=this._options.opacity.toString())}var i=null,o=this._alignmentToPopupAligment(this._options.position),a=this._alignmentToPopupAligment(this._options.float),c=this._container.classList;if(null!=this._point)i=this._viewportCoords.basicToCanvasSafe(this._point[0],this._point[1],{offsetHeight:t.height,offsetWidth:t.width},r,e.perspective);else{for(var u=null,h=0,l=["center","top","bottom","left","right","top-left","top-right","bottom-left","bottom-right"];h<l.length;h++){var p=l[h];if(c.contains("mapillaryjs-popup-float-"+p)){u=p;break}}i=(b=this._rectToPixel(this._rect,o,u,e,t,r))[0],o=b[1],a||(a=o)}if(null!=i){if(this._container.style.visibility="visible",!a){var f=this._container.offsetWidth,d=this._container.offsetHeight,m=this._pixelToFloats(i,t,f,d);a=0===m.length?"top":m.join("-")}var v=this._normalizeOffset(this._options.offset);i=[i[0]+v[a][0],i[1]+v[a][1]],i=[Math.round(i[0]),Math.round(i[1])];var g={bottom:"translate(-50%,0)","bottom-left":"translate(-100%,0)","bottom-right":"translate(0,0)",center:"translate(-50%,-50%)",left:"translate(-100%,-50%)",right:"translate(0,-50%)",top:"translate(-50%,-100%)","top-left":"translate(-100%,-100%)","top-right":"translate(0,-100%)"};for(var y in g)g.hasOwnProperty(y)&&c.remove("mapillaryjs-popup-float-"+y);c.add("mapillaryjs-popup-float-"+a),this._container.style.transform=g[a]+" translate("+i[0]+"px,"+i[1]+"px)";var b}else this._container.style.visibility="hidden"}},e.prototype._rectToPixel=function(e,t,r,n,i,o){if(!t){for(var s=this._container.offsetWidth,a=this._container.offsetHeight,c={bottom:[0,a/2],"bottom-left":[-s/2,a/2],"bottom-right":[s/2,a/2],left:[-s/2,0],right:[s/2,0],top:[0,-a/2],"top-left":[-s/2,-a/2],"top-right":[s/2,-a/2]},u=[0,null,null],h=0,l=["top","bottom","left","right"];h<l.length;h++){var p=l[h],f=this._pointFromRectPosition(e,p),d=this._viewportCoords.basicToCanvasSafe(f[0],f[1],{offsetHeight:i.height,offsetWidth:i.width},o,n.perspective);if(null!=d){var m=c[p],v=[d[0]+m[0],d[1]+m[1]],g=null!=r&&r===p?1:.7;if(0===this._pixelToFloats(v,i,s/g,a/(2*g)).length&&d[0]>0&&d[0]<i.width&&d[1]>0&&d[1]<i.height)return[d,p];var y=Math.max(v[0]-s/2,0),b=Math.min(v[0]+s/2,i.width),_=Math.max(v[1]-a/2,0),x=Math.min(v[1]+a/2,i.height),w=g*Math.max(0,b-y)*Math.max(0,x-_);w>u[0]&&(u[0]=w,u[1]=d,u[2]=p)}}if(u[0]>0)return[u[1],u[2]]}var S=this._pointFromRectPosition(e,t);return[this._viewportCoords.basicToCanvasSafe(S[0],S[1],{offsetHeight:i.height,offsetWidth:i.width},o,n.perspective),null!=t?t:"top"]},e.prototype._alignmentToPopupAligment=function(e){switch(e){case s.Alignment.Bottom:return"bottom";case s.Alignment.BottomLeft:return"bottom-left";case s.Alignment.BottomRight:return"bottom-right";case s.Alignment.Center:return"center";case s.Alignment.Left:return"left";case s.Alignment.Right:return"right";case s.Alignment.Top:return"top";case s.Alignment.TopLeft:return"top-left";case s.Alignment.TopRight:return"top-right";default:return null}},e.prototype._normalizeOffset=function(e){if(null==e)return this._normalizeOffset(0);if("number"==typeof e){var t=e,r=(t>=0?1:-1)*Math.round(Math.sqrt(.5*Math.pow(t,2)));return{bottom:[0,t],"bottom-left":[-r,r],"bottom-right":[r,r],center:[0,0],left:[-t,0],right:[t,0],top:[0,-t],"top-left":[-r,-r],"top-right":[r,-r]}}return{bottom:e.bottom||[0,0],"bottom-left":e.bottomLeft||[0,0],"bottom-right":e.bottomRight||[0,0],center:e.center||[0,0],left:e.left||[0,0],right:e.right||[0,0],top:e.top||[0,0],"top-left":e.topLeft||[0,0],"top-right":e.topRight||[0,0]}},e.prototype._pixelToFloats=function(e,t,r,n){var i=[];return e[1]<n?i.push("bottom"):e[1]>t.height-n&&i.push("top"),e[0]<r/2?i.push("right"):e[0]>t.width-r/2&&i.push("left"),i},e.prototype._pointFromRectPosition=function(e,t){var r=e[0],n=e[0]<e[2]?e[2]:e[2]+1,i=e[1],o=e[3];switch(t){case"bottom":return[(r+n)/2,o];case"bottom-left":return[r,o];case"bottom-right":return[n,o];case"center":return[(r+n)/2,(i+o)/2];case"left":return[r,(i+o)/2];case"right":return[n,(i+o)/2];case"top":return[(r+n)/2,i];case"top-left":return[r,i];case"top-right":return[n,i];default:return[(r+n)/2,o]}},e}();r.Popup=a,r.default=a},{"../../../Geo":293,"../../../Utils":300,"../../../Viewer":301,"rxjs/Subject":34}],346:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("rxjs/Subject"),s=e("../../Component"),a=e("../../Edge"),c=e("../../Graph"),u=function(e){function t(r,n,i,a,c){var u=e.call(this,r,n,i)||this;return u._sequenceDOMRenderer=a||new s.SequenceDOMRenderer(n),u._scheduler=c,u._containerWidth$=new o.Subject,u._hoveredKeySubject$=new o.Subject,u._hoveredKey$=u._hoveredKeySubject$.share(),u._navigator.playService.playing$.skip(1).withLatestFrom(u._configuration$).subscribe(function(e){var r=e[0],n=e[1];u.fire(t.playingchanged,r),r!==n.playing&&(r?u.play():u.stop())}),u._navigator.playService.direction$.skip(1).withLatestFrom(u._configuration$).subscribe(function(e){var t=e[0];t!==e[1].direction&&u.setDirection(t)}),u}return n(t,e),Object.defineProperty(t.prototype,"hoveredKey$",{get:function(){return this._hoveredKey$},enumerable:!0,configurable:!0}),t.prototype.play=function(){this.configure({playing:!0})},t.prototype.stop=function(){this.configure({playing:!1})},t.prototype.setDirection=function(e){this.configure({direction:e})},t.prototype.setHighlightKey=function(e){this.configure({highlightKey:e})},t.prototype.setMaxWidth=function(e){this.configure({maxWidth:e})},t.prototype.setMinWidth=function(e){this.configure({minWidth:e})},t.prototype.setVisible=function(e){this.configure({visible:e})},t.prototype.resize=function(){var e=this;this._configuration$.first().map(function(t){return e._sequenceDOMRenderer.getContainerWidth(e._container.element,t)}).subscribe(function(t){e._containerWidth$.next(t)})},t.prototype._activate=function(){var e=this;this._sequenceDOMRenderer.activate();var t=this._navigator.stateService.currentNode$.switchMap(function(e){return e.sequenceEdges$}).publishReplay(1).refCount(),r=this._navigator.stateService.currentNode$.distinctUntilChanged(void 0,function(e){return e.sequenceKey}).switchMap(function(t){return i.Observable.concat(i.Observable.of(null),e._navigator.graphService.cacheSequence$(t.sequenceKey).retry(3).catch(function(e){return console.error("Failed to cache sequence",e),i.Observable.of(null)}))}).startWith(null).publishReplay(1).refCount();this._sequenceSubscription=r.subscribe();var n=this._sequenceDOMRenderer.index$.withLatestFrom(r).map(function(e){var t=e[0],r=e[1];return null!=r?r.keys[t]:null}).filter(function(e){return!!e}).distinctUntilChanged().publish().refCount();this._moveSubscription=i.Observable.merge(n.debounceTime(100,this._scheduler),n.auditTime(400,this._scheduler)).distinctUntilChanged().switchMap(function(t){return e._navigator.moveToKey$(t).catch(function(e){return i.Observable.empty()})}).subscribe(),this._setSequenceGraphModeSubscription=this._sequenceDOMRenderer.changingPositionChanged$.filter(function(e){return e}).subscribe(function(){e._navigator.graphService.setGraphMode(c.GraphMode.Sequence)}),this._setSpatialGraphModeSubscription=this._sequenceDOMRenderer.changingPositionChanged$.filter(function(e){return!e}).subscribe(function(){e._navigator.graphService.setGraphMode(c.GraphMode.Spatial)}),this._navigator.graphService.graphMode$.switchMap(function(t){return t===c.GraphMode.Spatial?e._navigator.stateService.currentNode$.take(2):i.Observable.empty()}).filter(function(e){return!e.spatialEdges.cached}).switchMap(function(t){return e._navigator.graphService.cacheNode$(t.key).catch(function(e){return i.Observable.empty()})}).subscribe(),this._stopSubscription=this._sequenceDOMRenderer.changingPositionChanged$.filter(function(e){return e}).subscribe(function(){e._navigator.playService.stop()}),this._cacheSequenceNodesSubscription=i.Observable.combineLatest(this._navigator.graphService.graphMode$,this._sequenceDOMRenderer.changingPositionChanged$.startWith(!1).distinctUntilChanged()).withLatestFrom(this._navigator.stateService.currentNode$).switchMap(function(t){var r=t[0],n=r[0],o=r[1],s=t[1];return o&&n===c.GraphMode.Sequence?e._navigator.graphService.cacheSequenceNodes$(s.sequenceKey,s.key).retry(3).catch(function(e){return console.error("Failed to cache sequence nodes.",e),i.Observable.empty()}):i.Observable.empty()}).subscribe();var o=r.switchMap(function(t){if(!t)return i.Observable.of({index:null,max:null});var r=!0;return e._sequenceDOMRenderer.changingPositionChanged$.startWith(!1).distinctUntilChanged().switchMap(function(t){var i=!t&&r?0:1;return r=!1,t?n:e._navigator.stateService.currentNode$.map(function(e){return e.key}).distinctUntilChanged().skip(i)}).map(function(e){var r=t.keys.indexOf(e);return-1===r?{index:null,max:null}:{index:r,max:t.keys.length-1}})});this._renderSubscription=i.Observable.combineLatest(t,this._configuration$,this._containerWidth$,this._sequenceDOMRenderer.changed$.startWith(this._sequenceDOMRenderer),this._navigator.playService.speed$,o).map(function(t){var r=t[0],n=t[1],i=t[2],o=(t[3],t[4]),s=t[5],a=e._sequenceDOMRenderer.render(r,n,i,o,s.index,s.max,e,e._navigator);return{name:e._name,vnode:a}}).subscribe(this._container.domRenderer.render$),this._setSpeedSubscription=this._sequenceDOMRenderer.speed$.subscribe(function(t){e._navigator.playService.setSpeed(t)}),this._setDirectionSubscription=this._configuration$.map(function(e){return e.direction}).distinctUntilChanged().subscribe(function(t){e._navigator.playService.setDirection(t)}),this._containerWidthSubscription=this._configuration$.distinctUntilChanged(function(e,t){return e[0]===t[0]&&e[1]===t[1]},function(e){return[e.minWidth,e.maxWidth]}).map(function(t){return e._sequenceDOMRenderer.getContainerWidth(e._container.element,t)}).subscribe(this._containerWidth$),this._playingSubscription=this._configuration$.map(function(e){return e.playing}).distinctUntilChanged().subscribe(function(t){t?e._navigator.playService.play():e._navigator.playService.stop()}),this._hoveredKeySubscription=this._sequenceDOMRenderer.mouseEnterDirection$.switchMap(function(r){return t.map(function(e){for(var t=0,n=e.edges;t<n.length;t++){var i=n[t];if(i.data.direction===r)return i.to}return null}).takeUntil(e._sequenceDOMRenderer.mouseLeaveDirection$).concat(i.Observable.of(null))}).distinctUntilChanged().subscribe(this._hoveredKeySubject$)},t.prototype._deactivate=function(){this._renderSubscription.unsubscribe(),this._playingSubscription.unsubscribe(),this._containerWidthSubscription.unsubscribe(),this._hoveredKeySubscription.unsubscribe(),this._setSpeedSubscription.unsubscribe(),this._setDirectionSubscription.unsubscribe(),this._setSequenceGraphModeSubscription.unsubscribe(),this._setSpatialGraphModeSubscription.unsubscribe(),this._sequenceSubscription.unsubscribe(),this._moveSubscription.unsubscribe(),this._cacheSequenceNodesSubscription.unsubscribe(),this._stopSubscription.unsubscribe(),this._sequenceDOMRenderer.deactivate()},t.prototype._getDefaultConfiguration=function(){return{direction:a.EdgeDirection.Next,maxWidth:108,minWidth:70,playing:!1,visible:!0}},t.componentName="sequence",t.playingchanged="playingchanged",t}(s.Component);r.SequenceComponent=u,s.ComponentService.register(u),r.default=u},{"../../Component":290,"../../Edge":291,"../../Graph":294,"rxjs/Observable":29,"rxjs/Subject":34}],347:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("virtual-dom"),i=e("rxjs/Observable"),o=e("rxjs/Subject"),s=e("../../Component"),a=e("../../Edge"),c=e("../../Error"),u=function(){function e(e){this._container=e,this._minThresholdWidth=320,this._maxThresholdWidth=1480,this._minThresholdHeight=240,this._maxThresholdHeight=820,this._stepperDefaultWidth=108,this._controlsDefaultWidth=88,this._defaultHeight=30,this._expandControls=!1,this._mode=s.SequenceMode.Default,this._speed=.5,this._changingSpeed=!1,this._index=null,this._changingPosition=!1,this._mouseEnterDirection$=new o.Subject,this._mouseLeaveDirection$=new o.Subject,this._notifyChanged$=new o.Subject,this._notifyChangingPositionChanged$=new o.Subject,this._notifySpeedChanged$=new o.Subject,this._notifyIndexChanged$=new o.Subject}return Object.defineProperty(e.prototype,"changed$",{get:function(){return this._notifyChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"changingPositionChanged$",{get:function(){return this._notifyChangingPositionChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"speed$",{get:function(){return this._notifySpeedChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"index$",{get:function(){return this._notifyIndexChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseEnterDirection$",{get:function(){return this._mouseEnterDirection$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseLeaveDirection$",{get:function(){return this._mouseLeaveDirection$},enumerable:!0,configurable:!0}),e.prototype.activate=function(){var e=this;this._changingSubscription||(this._changingSubscription=i.Observable.merge(this._container.mouseService.documentMouseUp$,this._container.touchService.touchEnd$.filter(function(e){return 0===e.touches.length})).subscribe(function(t){e._changingSpeed&&(e._changingSpeed=!1),e._changingPosition&&e._setChangingPosition(!1)}))},e.prototype.deactivate=function(){this._changingSubscription&&(this._changingSpeed=!1,this._changingPosition=!1,this._expandControls=!1,this._mode=s.SequenceMode.Default,this._changingSubscription.unsubscribe(),this._changingSubscription=null)},e.prototype.render=function(e,t,r,i,o,s,a,c){if(!1===t.visible)return n.h("div.SequenceContainer",{},[]);var u=this._createStepper(e,t,r,a,c),h=this._createSequenceControls(r),l=this._createPlaybackControls(r,i,a,t),p=this._createTimelineControls(r,o,s);return n.h("div.SequenceContainer",[u,h,l,p])},e.prototype.getContainerWidth=function(e,t){var r=e.offsetWidth,n=e.offsetHeight,i=t.minWidth,o=t.maxWidth;o<i&&(o=i);var s=(r-this._minThresholdWidth)/(this._maxThresholdWidth-this._minThresholdWidth),a=(n-this._minThresholdHeight)/(this._maxThresholdHeight-this._minThresholdHeight);return i+Math.max(0,Math.min(1,Math.min(s,a)))*(o-i)},e.prototype._createPositionInput=function(e,t){var r=this;this._index=e;var i=function(e){r._index=Number(e.target.value),r._notifyIndexChanged$.next(r._index)},o=this._container.domContainer.getBoundingClientRect(),s=Math.max(276,Math.min(410,5+.8*o.width))-65,a=function(e){e.stopPropagation(),r._setChangingPosition(!0)},c=function(e){!0===r._changingPosition&&e.stopPropagation()},u={max:null!=t?t:1,min:0,onchange:i,oninput:i,onkeydown:function(e){"ArrowDown"!==e.key&&"ArrowLeft"!==e.key&&"ArrowRight"!==e.key&&"ArrowUp"!==e.key||e.preventDefault()},onmousedown:a,onmousemove:c,ontouchmove:c,ontouchstart:a,style:{width:s+"px"},type:"range",value:null!=e?e:0},h=null==e||null==t||t<=1;h&&(u.disabled="true");var l=n.h("input.SequencePosition",u,[]),p=h?".SequencePositionContainerDisabled":".SequencePositionContainer";return n.h("div"+p,[l])},e.prototype._createSpeedInput=function(e){var t=this;this._speed=e;var r=function(e){t._speed=Number(e.target.value)/1e3,t._notifySpeedChanged$.next(t._speed)},i=this._container.domContainer.getBoundingClientRect(),o=Math.max(276,Math.min(410,5+.8*i.width))-160,s=function(e){t._changingSpeed=!0,e.stopPropagation()},a=function(e){!0===t._changingSpeed&&e.stopPropagation()},c=n.h("input.SequenceSpeed",{max:1e3,min:0,onchange:r,oninput:r,onkeydown:function(e){"ArrowDown"!==e.key&&"ArrowLeft"!==e.key&&"ArrowRight"!==e.key&&"ArrowUp"!==e.key||e.preventDefault()},onmousedown:s,onmousemove:a,ontouchmove:a,ontouchstart:s,style:{width:o+"px"},type:"range",value:1e3*e},[]);return n.h("div.SequenceSpeedContainer",[c])},e.prototype._createPlaybackControls=function(e,t,r,i){var o=this;if(this._mode!==s.SequenceMode.Playback)return n.h("div.SequencePlayback",[]);var c=n.h("div.SequenceSwitchIcon.SequenceIconVisible",[]),u=i.direction===a.EdgeDirection.Next?a.EdgeDirection.Prev:a.EdgeDirection.Next,h=i.playing,l={onclick:function(){h||r.setDirection(u)}},p=i.playing?".SequenceSwitchButtonDisabled":".SequenceSwitchButton",f=n.h("div"+p,l,[c]),d=n.h("div.SequenceSlowIcon.SequenceIconVisible",[]),m=n.h("div.SequenceSlowContainer",[d]),v=n.h("div.SequenceFastIcon.SequenceIconVisible",[]),g=n.h("div.SequenceFastContainer",[v]),y=n.h("div.SequenceCloseIcon.SequenceIconVisible",[]),b={onclick:function(){o._mode=s.SequenceMode.Default,o._notifyChanged$.next(o)}},_=n.h("div.SequenceCloseButton",b,[y]),x=[f,m,this._createSpeedInput(t),g,_],w={style:{top:Math.round(e/this._stepperDefaultWidth*this._defaultHeight+10)+"px"}};return n.h("div.SequencePlayback",w,x)},e.prototype._createPlayingButton=function(e,t,r,i){var o=r.direction===a.EdgeDirection.Next&&null!=e||r.direction===a.EdgeDirection.Prev&&null!=t,s={onclick:r.playing?function(e){i.stop()}:o?function(e){i.play()}:null},c={className:r.playing?"Stop":o?"Play":"PlayDisabled"};r.direction===a.EdgeDirection.Prev&&(c.style={transform:"rotate(180deg) translate(50%, 50%)"});var u=n.h("div.SequenceComponentIcon",c,[]),h=o?"SequencePlay":"SequencePlayDisabled";return n.h("div."+h,s,[u])},e.prototype._createSequenceControls=function(e){var t=this,r=Math.round(8/this._stepperDefaultWidth*e),i={onclick:function(){t._expandControls=!t._expandControls,t._mode=s.SequenceMode.Default,t._notifyChanged$.next(t)},style:{"border-bottom-right-radius":r+"px","border-top-right-radius":r+"px"}},o=n.h("div.SequenceExpanderBar",[]),a=n.h("div.SequenceExpanderButton",i,[o]),c=this._mode===s.SequenceMode.Playback?".SequenceFastIconGrey.SequenceIconVisible":".SequenceFastIcon",u=n.h("div"+c,[]),h={onclick:function(){t._mode=t._mode===s.SequenceMode.Playback?s.SequenceMode.Default:s.SequenceMode.Playback,t._notifyChanged$.next(t)}},l=n.h("div.SequencePlaybackButton",h,[u]),p=this._mode===s.SequenceMode.Timeline?".SequenceTimelineIconGrey.SequenceIconVisible":".SequenceTimelineIcon",f=n.h("div"+p,[]),d={onclick:function(){t._mode=t._mode===s.SequenceMode.Timeline?s.SequenceMode.Default:s.SequenceMode.Timeline,t._notifyChanged$.next(t)}},m=n.h("div.SequenceTimelineButton",d,[f]),v={style:{height:this._defaultHeight/this._stepperDefaultWidth*e+"px",transform:"translate("+(e/2+2)+"px, 0)",width:this._controlsDefaultWidth/this._stepperDefaultWidth*e+"px"}},g=".SequenceControls"+(this._expandControls?".SequenceControlsExpanded":"");return n.h("div"+g,v,[l,m,a])},e.prototype._createSequenceArrows=function(e,t,r,i,o){var s=this,u={onclick:null!=e?function(e){o.moveDir$(a.EdgeDirection.Next).subscribe(void 0,function(e){e instanceof c.AbortMapillaryError||console.error(e)})}:null,onmouseenter:function(e){s._mouseEnterDirection$.next(a.EdgeDirection.Next)},onmouseleave:function(e){s._mouseLeaveDirection$.next(a.EdgeDirection.Next)}},h=Math.round(8/this._stepperDefaultWidth*r),l={onclick:null!=t?function(e){o.moveDir$(a.EdgeDirection.Prev).subscribe(void 0,function(e){e instanceof c.AbortMapillaryError||console.error(e)})}:null,onmouseenter:function(e){s._mouseEnterDirection$.next(a.EdgeDirection.Prev)},onmouseleave:function(e){s._mouseLeaveDirection$.next(a.EdgeDirection.Prev)},style:{"border-bottom-left-radius":h+"px","border-top-left-radius":h+"px"}},p=this._getStepClassName(a.EdgeDirection.Next,e,i.highlightKey),f=this._getStepClassName(a.EdgeDirection.Prev,t,i.highlightKey),d=n.h("div.SequenceComponentIcon",[]),m=n.h("div.SequenceComponentIcon",[]);return[n.h("div."+f,l,[m]),n.h("div."+p,u,[d])]},e.prototype._createStepper=function(e,t,r,i,o){for(var s=null,c=null,u=0,h=e.edges;u<h.length;u++){var l=h[u];l.data.direction===a.EdgeDirection.Next&&(s=l.to),l.data.direction===a.EdgeDirection.Prev&&(c=l.to)}var p=this._createPlayingButton(s,c,t,i),f=this._createSequenceArrows(s,c,r,t,o);f.splice(1,0,p);var d={oncontextmenu:function(e){e.preventDefault()},style:{height:this._defaultHeight/this._stepperDefaultWidth*r+"px",width:r+"px"}};return n.h("div.SequenceStepper",d,f)},e.prototype._createTimelineControls=function(e,t,r){var i=this;if(this._mode!==s.SequenceMode.Timeline)return n.h("div.SequenceTimeline",[]);var o=this._createPositionInput(t,r),a=n.h("div.SequenceCloseIcon.SequenceIconVisible",[]),c={onclick:function(){i._mode=s.SequenceMode.Default,i._notifyChanged$.next(i)}},u=n.h("div.SequenceCloseButton",c,[a]),h={style:{top:Math.round(e/this._stepperDefaultWidth*this._defaultHeight+10)+"px"}};return n.h("div.SequenceTimeline",h,[o,u])},e.prototype._getStepClassName=function(e,t,r){var n=e===a.EdgeDirection.Next?"SequenceStepNext":"SequenceStepPrev";return null==t?n+="Disabled":r===t&&(n+="Highlight"),n},e.prototype._setChangingPosition=function(e){this._changingPosition=e,this._notifyChangingPositionChanged$.next(e)},e}();r.SequenceDOMRenderer=u,r.default=u},{"../../Component":290,"../../Edge":291,"../../Error":292,"rxjs/Observable":29,"rxjs/Subject":34,"virtual-dom":246}],348:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Default=0]="Default",e[e.Playback=1]="Playback",e[e.Timeline=2]="Timeline"}(n=r.SequenceMode||(r.SequenceMode={})),r.default=n},{}],349:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});e("path");var n=function(){function e(){}return e.equirectangular={fragment:"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n\nuniform sampler2D projectorTex;\nuniform float opacity;\nuniform float phiLength;\nuniform float phiShift;\nuniform float thetaLength;\nuniform float thetaShift;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    vec3 b = normalize(vRstq.xyz);\n    float lat = -asin(b.y);\n    float lon = atan(b.x, b.z);\n    float x = (lon - phiShift) / phiLength + 0.5;\n    float y = (lat - thetaShift) / thetaLength + 0.5;\n    vec4 baseColor = texture2D(projectorTex, vec2(x, y));\n    baseColor.a = opacity;\n    gl_FragColor = baseColor;\n}",vertex:"#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform mat4 projectorMat;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    vRstq = projectorMat * vec4(position, 1.0);\n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}"},e.equirectangularCurtain={fragment:"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n\nuniform sampler2D projectorTex;\nuniform float curtain;\nuniform float opacity;\nuniform float phiLength;\nuniform float phiShift;\nuniform float thetaLength;\nuniform float thetaShift;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    vec3 b = normalize(vRstq.xyz);\n    float lat = -asin(b.y);\n    float lon = atan(b.x, b.z);\n    float x = (lon - phiShift) / phiLength + 0.5;\n    float y = (lat - thetaShift) / thetaLength + 0.5;\n\n    bool inverted = curtain < 0.5;\n\n    float curtainMin = inverted ? curtain + 0.5 : curtain - 0.5;\n    float curtainMax = curtain;\n\n    bool insideCurtain = inverted ?\n        x > curtainMin || x < curtainMax :\n        x > curtainMin && x < curtainMax;\n\n    vec4 baseColor;\n    if (insideCurtain) {\n        baseColor = texture2D(projectorTex, vec2(x, y));\n        baseColor.a = opacity;\n    } else {\n        baseColor = vec4(0.0, 0.0, 0.0, 0.0);\n    }\n\n    gl_FragColor = baseColor;\n}",vertex:"#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform mat4 projectorMat;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    vRstq = projectorMat * vec4(position, 1.0);\n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}"},e.perspective={fragment:"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n\nuniform sampler2D projectorTex;\nuniform float opacity;\nuniform vec4 bbox;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    float x = vRstq.x / vRstq.w;\n    float y = vRstq.y / vRstq.w;\n\n    vec4 baseColor = texture2D(projectorTex, vec2(x, y));\n    baseColor.a = opacity;\n\n    gl_FragColor = baseColor;\n}",vertex:"#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform mat4 projectorMat;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    vRstq = projectorMat * vec4(position, 1.0);\n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}"},e.perspectiveCurtain={fragment:"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n\nuniform sampler2D projectorTex;\nuniform float opacity;\nuniform float curtain;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    float x = vRstq.x / vRstq.w;\n    float y = vRstq.y / vRstq.w;\n\n    vec4 baseColor;\n    if (x < curtain || curtain >= 1.0) {\n        baseColor = texture2D(projectorTex, vec2(x, y));\n        baseColor.a = opacity;\n    } else {\n        baseColor = vec4(0.0, 0.0, 0.0, 0.0);\n    }\n\n    gl_FragColor = baseColor;\n}\n",vertex:"#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform mat4 projectorMat;\n\nvarying vec4 vRstq;\n\nvoid main()\n{\n    vRstq = projectorMat * vec4(position, 1.0);\n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}"},e}();r.Shaders=n},{path:22}],350:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("rxjs/Subject"),s=e("../../Component"),a=e("../../Geo"),c=e("../../State"),u=e("../../Render"),h=e("../../Tiles"),l=e("../../Utils"),p=function(e){function t(t,r,n,i){var c=e.call(this,t,r,n)||this;return c._viewportCoords=i||new a.ViewportCoords,c._domRenderer=new s.SliderDOMRenderer(r),c._imageTileLoader=new h.ImageTileLoader(l.Urls.tileScheme,l.Urls.tileDomain,l.Urls.origin),c._roiCalculator=new h.RegionOfInterestCalculator,c._spatial=new a.Spatial,c._glRendererOperation$=new o.Subject,c._glRendererCreator$=new o.Subject,c._glRendererDisposer$=new o.Subject,c._glRenderer$=c._glRendererOperation$.scan(function(e,t){return t(e)},null).filter(function(e){return null!=e}).distinctUntilChanged(void 0,function(e){return e.frameId}),c._glRendererCreator$.map(function(){return function(e){if(null!=e)throw new Error("Multiple slider states can not be created at the same time");return new s.SliderGLRenderer}}).subscribe(c._glRendererOperation$),c._glRendererDisposer$.map(function(){return function(e){return e.dispose(),null}}).subscribe(c._glRendererOperation$),c}return n(t,e),t.prototype.setInitialPosition=function(e){this.configure({initialPosition:e})},t.prototype.setKeys=function(e){this.configure({keys:e})},t.prototype.setSliderMode=function(e){this.configure({mode:e})},t.prototype.setSliderVisible=function(e){this.configure({sliderVisible:e})},t.prototype._activate=function(){var e=this;this._modeSubcription=this._domRenderer.mode$.subscribe(function(t){e.setSliderMode(t)}),this._glRenderSubscription=this._glRenderer$.map(function(t){return{name:e._name,render:{frameId:t.frameId,needsRender:t.needsRender,render:t.render.bind(t),stage:u.GLRenderStage.Background}}}).subscribe(this._container.glRenderer.render$);var t=this.configuration$.map(function(e){return null!=e.initialPosition?e.initialPosition:1}).first().concat(this._domRenderer.position$),r=this.configuration$.map(function(e){return e.mode}).distinctUntilChanged(),n=this._navigator.stateService.currentState$.map(function(e){return e.state.motionless}).distinctUntilChanged(),o=this._navigator.stateService.currentState$.map(function(e){return e.state.currentNode.fullPano}).distinctUntilChanged(),a=i.Observable.combineLatest(this._configuration$.map(function(e){return e.sliderVisible}),this._navigator.stateService.currentState$.map(function(e){return!(null==e.state.currentNode||null==e.state.previousNode||e.state.currentNode.pano&&!e.state.currentNode.fullPano||e.state.previousNode.pano&&!e.state.previousNode.fullPano||e.state.currentNode.fullPano&&!e.state.previousNode.fullPano)}).distinctUntilChanged()).map(function(e){var t=e[0],r=e[1];return t&&r}).distinctUntilChanged();this._waitSubscription=i.Observable.combineLatest(r,n,o,a).withLatestFrom(this._navigator.stateService.state$).subscribe(function(t){var r=t[0],n=r[0],i=r[1],o=r[2],a=r[3],u=t[1],h=a&&(i||n===s.SliderMode.Stationary||o);h&&u!==c.State.WaitingInteractively?e._navigator.stateService.waitInteractively():h||u===c.State.Waiting||e._navigator.stateService.wait()}),this._moveSubscription=i.Observable.combineLatest(t,r,n,o,a).subscribe(function(t){var r=t[0],n=t[1],i=t[2],o=t[3];t[4];i||n===s.SliderMode.Stationary||o?e._navigator.stateService.moveTo(1):e._navigator.stateService.moveTo(r)}),this._domRenderSubscription=i.Observable.combineLatest(t,r,n,o,a,this._container.renderService.size$).map(function(t){var r=t[0],n=t[1],i=t[2],o=t[3],s=t[4];t[5];return{name:e._name,vnode:e._domRenderer.render(r,n,i,o,s)}}).subscribe(this._container.domRenderer.render$),this._glRendererCreator$.next(null),this._updateCurtainSubscription=i.Observable.combineLatest(t,o,a,this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).map(function(t){var r=t[0],n=t[1],i=t[2],o=t[3],s=t[4];if(!n)return i?r:1;var a=e._viewportCoords.viewportToBasic(-1.15,0,s,o.perspective),c=e._viewportCoords.viewportToBasic(1.15,0,s,o.perspective),u=c[0]<a[0]?c[0]+1:c[0],h=a[0]+r*(u-a[0]);return h>1?h-1:h}).map(function(e){return function(t){return t.updateCurtain(e),t}}).subscribe(this._glRendererOperation$),this._stateSubscription=i.Observable.combineLatest(this._navigator.stateService.currentState$,r).map(function(e){var t=e[0],r=e[1];return function(e){return e.update(t,r),e}}).subscribe(this._glRendererOperation$),this._setKeysSubscription=this._configuration$.filter(function(e){return null!=e.keys}).switchMap(function(t){return i.Observable.zip(e._catchCacheNode$(t.keys.background),e._catchCacheNode$(t.keys.foreground)).map(function(e){return{background:e[0],foreground:e[1]}}).zip(e._navigator.stateService.currentState$.first()).map(function(e){return{nodes:e[0],state:e[1].state}})}).subscribe(function(t){null!=t.state.currentNode&&null!=t.state.previousNode&&t.state.currentNode.key===t.nodes.foreground.key&&t.state.previousNode.key===t.nodes.background.key||(t.state.currentNode.key!==t.nodes.background.key?t.state.currentNode.key!==t.nodes.foreground.key||1!==t.state.trajectory.length?(e._navigator.stateService.setNodes([t.nodes.background]),e._navigator.stateService.setNodes([t.nodes.foreground])):e._navigator.stateService.prependNodes([t.nodes.background]):e._navigator.stateService.setNodes([t.nodes.foreground]))},function(e){console.error(e)});this._navigator.stateService.currentState$.map(function(e){return e.state.previousNode}).filter(function(e){return null!=e}).distinctUntilChanged(void 0,function(e){return e.key});var p=this._navigator.stateService.currentState$.distinctUntilChanged(void 0,function(e){return e.state.currentNode.key}).withLatestFrom(this._container.glRenderer.webGLRenderer$,this._container.renderService.size$).map(function(t){var r=t[0],n=t[1],i=t[2],o=r.state,s=Math.max(i.width,i.height),a=o.currentNode,c=o.currentTransform,u=s>2048?2048:s>1024?1024:512;return new h.TextureProvider(a.key,c.basicWidth,c.basicHeight,u,a.image,e._imageTileLoader,new h.ImageTileStore,n)}).publishReplay(1).refCount();this._textureProviderSubscription=p.subscribe(function(){}),this._setTextureProviderSubscription=p.map(function(e){return function(t){return t.setTextureProvider(e.key,e),t}}).subscribe(this._glRendererOperation$),this._setTileSizeSubscription=this._container.renderService.size$.switchMap(function(e){return i.Observable.combineLatest(p,i.Observable.of(e)).first()}).subscribe(function(e){var t=e[0],r=e[1],n=Math.max(r.width,r.height),i=n>2048?2048:n>1024?1024:512;t.setTileSize(i)}),this._abortTextureProviderSubscription=p.pairwise().subscribe(function(e){e[0].abort()});var f=i.Observable.combineLatest(this._container.renderService.renderCameraFrame$,this._container.renderService.size$.debounceTime(250)).map(function(e){var t=e[0],r=e[1];return[t.camera.position.clone(),t.camera.lookat.clone(),t.zoom.valueOf(),r.height.valueOf(),r.width.valueOf()]}).pairwise().skipWhile(function(e){return e[1][2]-e[0][2]<0||0===e[1][2]}).map(function(e){var t=e[0][0].equals(e[1][0]),r=e[0][1].equals(e[1][1]),n=e[0][2]===e[1][2],i=e[0][3]===e[1][3],o=e[0][4]===e[1][4];return t&&r&&n&&i&&o}).distinctUntilChanged().filter(function(e){return e}).switchMap(function(t){return e._container.renderService.renderCameraFrame$.first()}).withLatestFrom(this._container.renderService.size$,this._navigator.stateService.currentTransform$);this._setRegionOfInterestSubscription=p.switchMap(function(t){return f.map(function(r){var n=r[0],i=r[1],o=r[2];return[e._roiCalculator.computeRegionOfInterest(n,i,o),t]})}).filter(function(e){return!e[1].disposed}).subscribe(function(e){var t=e[0];e[1].setRegionOfInterest(t)});var d=p.switchMap(function(e){return e.hasTexture$}).startWith(!1).publishReplay(1).refCount();this._hasTextureSubscription=d.subscribe(function(){});var m=this._navigator.stateService.currentState$.filter(function(e){return 0===e.state.nodesAhead}).map(function(e){return e.state.currentNode}).distinctUntilChanged(void 0,function(e){return e.key}).debounceTime(1e3).withLatestFrom(d).filter(function(e){return!e[1]}).map(function(e){return e[0]}).filter(function(e){return e.pano?l.Settings.maxImageSize>l.Settings.basePanoramaSize:l.Settings.maxImageSize>l.Settings.baseImageSize}).switchMap(function(e){var t=e.pano?l.Settings.basePanoramaSize:l.Settings.baseImageSize;if(Math.max(e.image.width,e.image.height)>t)return i.Observable.empty();return e.cacheImage$(l.Settings.maxImageSize).map(function(e){return[e.image,e]}).takeUntil(d.filter(function(e){return e})).catch(function(t,r){return console.error("Failed to fetch high res image ("+e.key+")",t),i.Observable.empty()})}).publish().refCount();this._updateBackgroundSubscription=m.withLatestFrom(p).subscribe(function(e){e[0][1].key!==e[1].key||e[1].disposed||e[1].updateBackground(e[0][0])}),this._updateTextureImageSubscription=m.map(function(e){return function(t){return t.updateTextureImage(e[0],e[1]),t}}).subscribe(this._glRendererOperation$);var v=this._navigator.stateService.currentState$.filter(function(e){return!!e.state.previousNode}).distinctUntilChanged(void 0,function(e){return e.state.previousNode.key}).withLatestFrom(this._container.glRenderer.webGLRenderer$,this._container.renderService.size$).map(function(t){var r=t[0],n=t[1],i=t[2],o=r.state,s=Math.max(i.width,i.height),a=o.previousNode,c=o.previousTransform,u=s>2048?2048:s>1024?1024:512;return new h.TextureProvider(a.key,c.basicWidth,c.basicHeight,u,a.image,e._imageTileLoader,new h.ImageTileStore,n)}).publishReplay(1).refCount();this._textureProviderSubscriptionPrev=v.subscribe(function(){}),this._setTextureProviderSubscriptionPrev=v.map(function(e){return function(t){return t.setTextureProviderPrev(e.key,e),t}}).subscribe(this._glRendererOperation$),this._setTileSizeSubscriptionPrev=this._container.renderService.size$.switchMap(function(e){return i.Observable.combineLatest(v,i.Observable.of(e)).first()}).subscribe(function(e){var t=e[0],r=e[1],n=Math.max(r.width,r.height),i=n>2048?2048:n>1024?1024:512;t.setTileSize(i)}),this._abortTextureProviderSubscriptionPrev=v.pairwise().subscribe(function(e){e[0].abort()});var g=i.Observable.combineLatest(this._container.renderService.renderCameraFrame$,this._container.renderService.size$.debounceTime(250)).map(function(e){var t=e[0],r=e[1];return[t.camera.position.clone(),t.camera.lookat.clone(),t.zoom.valueOf(),r.height.valueOf(),r.width.valueOf()]}).pairwise().skipWhile(function(e){return e[1][2]-e[0][2]<0||0===e[1][2]}).map(function(e){var t=e[0][0].equals(e[1][0]),r=e[0][1].equals(e[1][1]),n=e[0][2]===e[1][2],i=e[0][3]===e[1][3],o=e[0][4]===e[1][4];return t&&r&&n&&i&&o}).distinctUntilChanged().filter(function(e){return e}).switchMap(function(t){return e._container.renderService.renderCameraFrame$.first()}).withLatestFrom(this._container.renderService.size$,this._navigator.stateService.currentTransform$);this._setRegionOfInterestSubscriptionPrev=v.switchMap(function(t){return g.map(function(r){var n=r[0],i=r[1],o=r[2];return[e._roiCalculator.computeRegionOfInterest(n,i,o),t]})}).filter(function(e){return!e[1].disposed}).withLatestFrom(this._navigator.stateService.currentState$).subscribe(function(t){var r=t[0],n=r[0],i=r[1],o=t[1],s=null;if(o.state.previousNode.fullPano)if(o.state.currentNode.fullPano){var a=e._spatial.viewingDirection(o.state.currentNode.rotation),c=e._spatial.viewingDirection(o.state.previousNode.rotation),u=(h=e._spatial.angleBetweenVector2(a.x,a.y,c.x,c.y))/(2*Math.PI);s={bbox:k={maxX:e._spatial.wrap(n.bbox.maxX+u,0,1),maxY:n.bbox.maxY,minX:e._spatial.wrap(n.bbox.minX+u,0,1),minY:n.bbox.minY},pixelHeight:n.pixelHeight,pixelWidth:n.pixelWidth}}else{var a=e._spatial.viewingDirection(o.state.currentNode.rotation),c=e._spatial.viewingDirection(o.state.previousNode.rotation),h=e._spatial.angleBetweenVector2(a.x,a.y,c.x,c.y),l=h/(2*Math.PI),p=e._spatial.angleToPlane(a.toArray(),[0,0,1]),f=(e._spatial.angleToPlane(c.toArray(),[0,0,1])-p)/(2*Math.PI),d=o.state.currentTransform,m=Math.max(d.basicWidth,d.basicHeight),v=m>0?2*Math.atan(.5*d.basicWidth/(m*d.focal)):Math.PI/3,g=m>0?2*Math.atan(.5*d.basicHeight/(m*d.focal)):Math.PI/3,y=v/(2*Math.PI),b=g/Math.PI,_=(n.bbox.maxX-n.bbox.minX)*y,x=(n.bbox.maxY-n.bbox.minY)*b,w=n.pixelWidth*y,S=n.pixelHeight*b,M=(n.bbox.minX+n.bbox.maxX)/2-.5,E=(n.bbox.minY+n.bbox.maxY)/2-.5,C=.5+l+y*M-_/2,T=.5+l+y*M+_/2,O=.5+f+b*E-x/2,P=.5+f+b*E+x/2;s={bbox:k={maxX:e._spatial.wrap(T,0,1),maxY:P,minX:e._spatial.wrap(C,0,1),minY:O},pixelHeight:S,pixelWidth:w}}else{var A=o.state.currentTransform.basicAspect,R=o.state.previousTransform.basicAspect,j=e._getBasicCorners(A,R),L=j[0],N=L[0],I=L[1],D=j[1],_=D[0]-N,x=D[1]-I,w=n.pixelWidth/_,S=n.pixelHeight/x,C=(_-1)/(2*_)+n.bbox.minX/_,T=(_-1)/(2*_)+n.bbox.maxX/_,O=(x-1)/(2*x)+n.bbox.minY/x,k={maxX:T,maxY:P=(x-1)/(2*x)+n.bbox.maxY/x,minX:C,minY:O};e._clipBoundingBox(k),s={bbox:k,pixelHeight:S,pixelWidth:w}}i.setRegionOfInterest(s)});var y=v.switchMap(function(e){return e.hasTexture$}).startWith(!1).publishReplay(1).refCount();this._hasTextureSubscriptionPrev=y.subscribe(function(){});var b=this._navigator.stateService.currentState$.filter(function(e){return 0===e.state.nodesAhead&&!!e.state.previousNode}).map(function(e){return e.state.previousNode}).distinctUntilChanged(void 0,function(e){return e.key}).debounceTime(1e3).withLatestFrom(y).filter(function(e){return!e[1]}).map(function(e){return e[0]}).filter(function(e){return e.pano?l.Settings.maxImageSize>l.Settings.basePanoramaSize:l.Settings.maxImageSize>l.Settings.baseImageSize}).switchMap(function(e){var t=e.pano?l.Settings.basePanoramaSize:l.Settings.baseImageSize;if(Math.max(e.image.width,e.image.height)>t)return i.Observable.empty();return e.cacheImage$(l.Settings.maxImageSize).map(function(e){return[e.image,e]}).takeUntil(y.filter(function(e){return e})).catch(function(t,r){return console.error("Failed to fetch high res image ("+e.key+")",t),i.Observable.empty()})}).publish().refCount();this._updateBackgroundSubscriptionPrev=b.withLatestFrom(v).subscribe(function(e){e[0][1].key!==e[1].key||e[1].disposed||e[1].updateBackground(e[0][0])}),this._updateTextureImageSubscriptionPrev=b.map(function(e){return function(t){return t.updateTextureImage(e[0],e[1]),t}}).subscribe(this._glRendererOperation$)},t.prototype._deactivate=function(){var e=this;this._waitSubscription.unsubscribe(),this._navigator.stateService.state$.first().subscribe(function(t){t!==c.State.Traversing&&e._navigator.stateService.traverse()}),this._glRendererDisposer$.next(null),this._domRenderer.deactivate(),this._modeSubcription.unsubscribe(),this._setKeysSubscription.unsubscribe(),this._stateSubscription.unsubscribe(),this._glRenderSubscription.unsubscribe(),this._domRenderSubscription.unsubscribe(),this._moveSubscription.unsubscribe(),this.configure({keys:null})},t.prototype._getDefaultConfiguration=function(){return{initialPosition:1,mode:s.SliderMode.Motion,sliderVisible:!0}},t.prototype._catchCacheNode$=function(e){return this._navigator.graphService.cacheNode$(e).catch(function(t,r){return console.error("Failed to cache slider node ("+e+")",t),i.Observable.empty()})},t.prototype._getBasicCorners=function(e,t){var r,n;return e>t?(r=.5,n=.5*e/t):(r=.5*t/e,n=.5),[[.5-r,.5-n],[.5+r,.5+n]]},t.prototype._clipBoundingBox=function(e){e.minX=Math.max(0,Math.min(1,e.minX)),e.maxX=Math.max(0,Math.min(1,e.maxX)),e.minY=Math.max(0,Math.min(1,e.minY)),e.maxY=Math.max(0,Math.min(1,e.maxY))},t.componentName="slider",t}(s.Component);r.SliderComponent=p,s.ComponentService.register(p),r.default=p},{"../../Component":290,"../../Geo":293,"../../Render":296,"../../State":297,"../../Tiles":299,"../../Utils":300,"rxjs/Observable":29,"rxjs/Subject":34}],351:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("virtual-dom"),i=e("rxjs/Observable"),o=e("rxjs/Subject"),s=e("../../Component"),a=function(){function e(e){this._container=e,this._interacting=!1,this._notifyModeChanged$=new o.Subject,this._notifyPositionChanged$=new o.Subject,this._stopInteractionSubscription=null}return Object.defineProperty(e.prototype,"mode$",{get:function(){return this._notifyModeChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"position$",{get:function(){return this._notifyPositionChanged$},enumerable:!0,configurable:!0}),e.prototype.activate=function(){var e=this;this._stopInteractionSubscription||(this._stopInteractionSubscription=i.Observable.merge(this._container.mouseService.documentMouseUp$,this._container.touchService.touchEnd$.filter(function(e){return 0===e.touches.length})).subscribe(function(t){e._interacting&&(e._interacting=!1)}))},e.prototype.deactivate=function(){this._stopInteractionSubscription&&(this._interacting=!1,this._stopInteractionSubscription.unsubscribe(),this._stopInteractionSubscription=null)},e.prototype.render=function(e,t,r,i,o){var s=[];if(o){s.push(n.h("div.SliderBorder",[]));var a=!(r||i);a&&s.push(this._createModeButton(t)),s.push(this._createPositionInput(e,a))}var c=this._container.domContainer.getBoundingClientRect(),u=Math.max(215,Math.min(400,c.width-100));return n.h("div.SliderContainer",{style:{width:u+"px"}},s)},e.prototype._createModeButton=function(e){var t=this,r={onclick:function(){t._notifyModeChanged$.next(e===s.SliderMode.Motion?s.SliderMode.Stationary:s.SliderMode.Motion)}},i=e===s.SliderMode.Stationary?"SliderModeButtonPressed":"SliderModeButton";return n.h("div."+i,r,[n.h("div.SliderModeIcon",[])])},e.prototype._createPositionInput=function(e,t){var r=this,i=function(e){r._notifyPositionChanged$.next(Number(e.target.value)/1e3)},o=function(e){r._interacting=!0,e.stopPropagation()},s=function(e){r._interacting&&e.stopPropagation()},a=this._container.domContainer.getBoundingClientRect(),c=Math.max(215,Math.min(400,a.width-105))-68+(t?0:36),u=n.h("input.SliderPosition",{max:1e3,min:0,onchange:i,oninput:i,onkeydown:function(e){"ArrowDown"!==e.key&&"ArrowLeft"!==e.key&&"ArrowRight"!==e.key&&"ArrowUp"!==e.key||e.preventDefault()},onmousedown:o,onmousemove:s,ontouchmove:s,ontouchstart:o,style:{width:c+"px"},type:"range",value:1e3*e},[]);return n.h("div.SliderPositionContainer",[u])},e}();r.SliderDOMRenderer=a,r.default=a},{"../../Component":290,"rxjs/Observable":29,"rxjs/Subject":34,"virtual-dom":246}],352:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../../Component"),i=e("../../Geo"),o=function(){function e(){this._factory=new n.MeshFactory,this._scene=new n.MeshScene,this._spatial=new i.Spatial,this._currentKey=null,this._previousKey=null,this._disabled=!1,this._curtain=1,this._frameId=0,this._needsRender=!1,this._mode=null,this._currentProviderDisposers={},this._previousProviderDisposers={}}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"frameId",{get:function(){return this._frameId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"needsRender",{get:function(){return this._needsRender},enumerable:!0,configurable:!0}),e.prototype.setTextureProvider=function(e,t){this._setTextureProvider(e,this._currentKey,t,this._currentProviderDisposers,this._updateTexture.bind(this))},e.prototype.setTextureProviderPrev=function(e,t){this._setTextureProvider(e,this._previousKey,t,this._previousProviderDisposers,this._updateTexturePrev.bind(this))},e.prototype.update=function(e,t){this._updateFrameId(e.id),this._updateImagePlanes(e.state,t)},e.prototype.updateCurtain=function(e){this._curtain!==e&&(this._curtain=e,this._updateCurtain(),this._needsRender=!0)},e.prototype.updateTexture=function(e,t){var r=t.key===this._currentKey?this._scene.imagePlanes:t.key===this._previousKey?this._scene.imagePlanesOld:[];if(0!==r.length){this._needsRender=!0;for(var n=0,i=r;n<i.length;n++){var o=i[n].material.uniforms.projectorTex.value;o.image=e,o.needsUpdate=!0}}},e.prototype.updateTextureImage=function(e,t){if(this._currentKey===t.key){this._needsRender=!0;for(var r=0,n=this._scene.imagePlanes;r<n.length;r++){var i=n[r].material.uniforms.projectorTex.value;i.image=e,i.needsUpdate=!0}}},e.prototype.render=function(e,t){this.disabled||t.render(this._scene.sceneOld,e),t.render(this._scene.scene,e),this._needsRender=!1},e.prototype.dispose=function(){this._scene.clear();for(var e in this._currentProviderDisposers)this._currentProviderDisposers.hasOwnProperty(e)&&this._currentProviderDisposers[e]();for(var e in this._previousProviderDisposers)this._previousProviderDisposers.hasOwnProperty(e)&&this._previousProviderDisposers[e]();this._currentProviderDisposers={},this._previousProviderDisposers={}},e.prototype._getBasicCorners=function(e,t){var r,n;return e>t?(r=.5,n=.5*e/t):(r=.5*t/e,n=.5),[[.5-r,.5-n],[.5+r,.5+n]]},e.prototype._setDisabled=function(e){this._disabled=null==e.currentNode||null==e.previousNode||e.currentNode.pano&&!e.currentNode.fullPano||e.previousNode.pano&&!e.previousNode.fullPano||e.currentNode.fullPano&&!e.previousNode.fullPano},e.prototype._setTextureProvider=function(e,t,r,n,i){var o=this;if(e===t){var s=r.textureCreated$.subscribe(i),a=r.textureUpdated$.subscribe(function(e){o._needsRender=!0});if(e in n){(0,n[e])(),delete n[e]}n[e]=function(){s.unsubscribe(),a.unsubscribe(),r.dispose()}}},e.prototype._updateCurtain=function(){for(var e=0,t=this._scene.imagePlanes;e<t.length;e++){var r=t[e].material;r.uniforms.curtain&&(r.uniforms.curtain.value=this._curtain)}},e.prototype._updateFrameId=function(e){this._frameId=e},e.prototype._updateImagePlanes=function(e,t){var r=null!=e.currentNode&&this._currentKey!==e.currentNode.key,o=null!=e.previousNode&&this._previousKey!==e.previousNode.key,s=this._mode!==t;if(r||o||s){this._setDisabled(e),this._needsRender=!0,this._mode=t;var a=e.motionless||t===n.SliderMode.Stationary||e.currentNode.pano;if((this.disabled||o)&&this._previousKey in this._previousProviderDisposers&&(this._previousProviderDisposers[this._previousKey](),delete this._previousProviderDisposers[this._previousKey]),this.disabled)this._scene.setImagePlanesOld([]);else if(o||s){var c=e.previousNode;this._previousKey=c.key;var u=e.currentTransform.rt.elements,h=[u[12],u[13],u[14]],l=e.currentTransform.basicAspect,p=e.previousTransform.basicAspect,f=l>p?[1,p/l]:[l/p,1],d=e.currentNode.rotation,m=e.currentNode.width,v=e.currentNode.height;c.fullPano&&(d=e.previousNode.rotation,h=this._spatial.rotate(this._spatial.opticalCenter(e.currentNode.rotation,h).toArray(),d).multiplyScalar(-1).toArray(),m=e.previousNode.width,v=e.previousNode.height);var g=new i.Transform(e.currentNode.orientation,m,v,e.currentNode.focal,e.currentNode.scale,c.gpano,d,h,c.image,f),y=void 0;if(c.fullPano)y=this._factory.createMesh(c,a||e.currentNode.fullPano?g:e.previousTransform);else if(a){var b=this._getBasicCorners(l,p),_=b[0],x=_[0],w=_[1],S=b[1],M=S[0],E=S[1];y=this._factory.createFlatMesh(e.previousNode,g,x,M,w,E)}else y=this._factory.createMesh(e.previousNode,e.previousTransform);this._scene.setImagePlanesOld([y])}if(r){this._currentKey in this._currentProviderDisposers&&(this._currentProviderDisposers[this._currentKey](),delete this._currentProviderDisposers[this._currentKey]),this._currentKey=e.currentNode.key;var C=e.currentNode.pano&&!e.currentNode.fullPano?this._factory.createMesh(e.currentNode,e.currentTransform):this._factory.createCurtainMesh(e.currentNode,e.currentTransform);this._scene.setImagePlanes([C]),this._updateCurtain()}}},e.prototype._updateTexture=function(e){this._needsRender=!0;for(var t=0,r=this._scene.imagePlanes;t<r.length;t++){var n=r[t].material,i=n.uniforms.projectorTex.value;n.uniforms.projectorTex.value=null,i.dispose(),n.uniforms.projectorTex.value=e}},e.prototype._updateTexturePrev=function(e){this._needsRender=!0;for(var t=0,r=this._scene.imagePlanesOld;t<r.length;t++){var n=r[t].material,i=n.uniforms.projectorTex.value;n.uniforms.projectorTex.value=null,i.dispose(),n.uniforms.projectorTex.value=e}},e}();r.SliderGLRenderer=o,r.default=o},{"../../Component":290,"../../Geo":293}],353:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./error/GeometryTagError");r.GeometryTagError=n.GeometryTagError;var i=e("./geometry/PointGeometry");r.PointGeometry=i.PointGeometry;var o=e("./geometry/RectGeometry");r.RectGeometry=o.RectGeometry;var s=e("./geometry/PolygonGeometry");r.PolygonGeometry=s.PolygonGeometry;var a=e("./tag/OutlineTag");r.OutlineTag=a.OutlineTag;var c=e("./tag/SpotTag");r.SpotTag=c.SpotTag;var u=e("./TagComponent");r.TagComponent=u.TagComponent;var h=e("./TagMode");r.TagMode=h.TagMode},{"./TagComponent":354,"./TagMode":357,"./error/GeometryTagError":361,"./geometry/PointGeometry":363,"./geometry/PolygonGeometry":364,"./geometry/RectGeometry":365,"./tag/OutlineTag":377,"./tag/SpotTag":380}],354:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("when"),o=e("rxjs/Observable"),s=e("../../Component"),a=e("../../Geo"),c=e("../../Render"),u=function(e){function t(r,n,i){var c=e.call(this,r,n,i)||this;return c._tagDomRenderer=new s.TagDOMRenderer,c._tagScene=new s.TagScene,c._tagSet=new s.TagSet,c._tagCreator=new s.TagCreator(c,i),c._viewportCoords=new a.ViewportCoords,c._createHandlers={CreatePoint:new s.CreatePointHandler(c,n,i,c._viewportCoords,c._tagCreator),CreatePolygon:new s.CreatePolygonHandler(c,n,i,c._viewportCoords,c._tagCreator),CreateRect:new s.CreateRectHandler(c,n,i,c._viewportCoords,c._tagCreator),CreateRectDrag:new s.CreateRectDragHandler(c,n,i,c._viewportCoords,c._tagCreator),Default:void 0},c._editVertexHandler=new s.EditVertexHandler(c,n,i,c._viewportCoords,c._tagSet),c._renderTags$=c._tagSet.changed$.map(function(e){var t=e.getAll();return t.sort(function(e,t){var r=e.tag.id,n=t.tag.id;return r<n?-1:r>n?1:0}),t}).share(),c._tagChanged$=c._renderTags$.switchMap(function(e){return o.Observable.from(e).mergeMap(function(e){return o.Observable.merge(e.tag.changed$,e.tag.geometryChanged$)})}).share(),c._renderTagGLChanged$=c._renderTags$.switchMap(function(e){return o.Observable.from(e).mergeMap(function(e){return e.glObjectsChanged$})}).share(),c._createGeometryChanged$=c._tagCreator.tag$.switchMap(function(e){return null!=e?e.geometryChanged$:o.Observable.empty()}).share(),c._createGLObjectsChanged$=c._tagCreator.tag$.switchMap(function(e){return null!=e?e.glObjectsChanged$:o.Observable.empty()}).share(),c._creatingConfiguration$=c._configuration$.distinctUntilChanged(function(e,t){return e.mode===t.mode},function(e){return{createColor:e.createColor,mode:e.mode}}).publishReplay(1).refCount(),c._creatingConfiguration$.subscribe(function(e){c.fire(t.modechanged,e.mode)}),c}return n(t,e),t.prototype.add=function(e){var t=this;this._activated?this._navigator.stateService.currentTransform$.first().subscribe(function(r){t._tagSet.add(e,r);var n=e.map(function(e){return t._tagSet.get(e.id)});t._tagScene.add(n)}):this._tagSet.addDeactivated(e)},t.prototype.changeMode=function(e){this.configure({mode:e})},t.prototype.get=function(e){if(this._activated){var t=this._tagSet.get(e);return void 0!==t?t.tag:void 0}return this._tagSet.getDeactivated(e)},t.prototype.getAll=function(){return this.activated?this._tagSet.getAll().map(function(e){return e.tag}):this._tagSet.getAllDeactivated()},t.prototype.getTagIdsAt=function(e){var t=this;return i.promise(function(r,n){t._container.renderService.renderCamera$.first().map(function(r){var n=t._viewportCoords.canvasToViewport(e[0],e[1],t._container.element);return t._tagScene.intersectObjects(n,r.perspective)}).subscribe(function(e){r(e)},function(e){n(e)})})},t.prototype.has=function(e){return this._activated?this._tagSet.has(e):this._tagSet.hasDeactivated(e)},t.prototype.remove=function(e){this._activated?(this._tagSet.remove(e),this._tagScene.remove(e)):this._tagSet.removeDeactivated(e)},t.prototype.removeAll=function(){this._activated?(this._tagSet.removeAll(),this._tagScene.removeAll()):this._tagSet.removeAllDeactivated()},t.prototype._activate=function(){var e=this;this._editVertexHandler.enable();var r=o.Observable.from(Object.keys(this._createHandlers)).map(function(t){return e._createHandlers[t]}).filter(function(e){return!!e}).mergeMap(function(e){return e.geometryCreated$}).share();this._fireGeometryCreatedSubscription=r.subscribe(function(r){e.fire(t.geometrycreated,r)}),this._fireCreateGeometryEventSubscription=this._tagCreator.tag$.skipWhile(function(e){return null==e}).distinctUntilChanged().subscribe(function(r){var n=null!=r?t.creategeometrystart:t.creategeometryend;e.fire(n,e)}),this._handlerStopCreateSubscription=r.subscribe(function(){e.changeMode(s.TagMode.Default)}),this._handlerEnablerSubscription=this._creatingConfiguration$.subscribe(function(t){e._disableCreateHandlers();var r=s.TagMode[t.mode],n=e._createHandlers[r];n&&n.enable()}),this._fireTagsChangedSubscription=this._renderTags$.subscribe(function(r){e.fire(t.tagschanged,e)}),this._stopCreateSubscription=this._tagCreator.tag$.switchMap(function(e){return null!=e?e.aborted$.map(function(e){return null}):o.Observable.empty()}).subscribe(function(){e.changeMode(s.TagMode.Default)}),this._setGLCreateTagSubscription=this._tagCreator.tag$.subscribe(function(t){e._tagScene.hasCreateTag()&&e._tagScene.removeCreateTag(),null!=t&&e._tagScene.addCreateTag(t)}),this._createGLObjectsChangedSubscription=this._createGLObjectsChanged$.subscribe(function(t){e._tagScene.updateCreateTagObjects(t)}),this._updateGLObjectsSubscription=this._renderTagGLChanged$.subscribe(function(t){e._tagScene.updateObjects(t)}),this._updateTagSceneSubscription=this._tagChanged$.subscribe(function(t){e._tagScene.update()}),this._domSubscription=this._renderTags$.startWith([]).do(function(t){e._container.domRenderer.render$.next({name:e._name,vnode:e._tagDomRenderer.clear()})}).combineLatest(this._container.renderService.renderCamera$,this._container.spriteService.spriteAtlas$,this._container.renderService.size$,this._tagChanged$.startWith(null),this._tagCreator.tag$.merge(this._createGeometryChanged$).startWith(null),function(e,t,r,n,i,o){return[t,r,n,e,i,o]}).map(function(t){return{name:e._name,vnode:e._tagDomRenderer.render(t[3],t[5],t[1],t[0].perspective,t[2])}}).subscribe(this._container.domRenderer.render$),this._glSubscription=this._navigator.stateService.currentState$.map(function(t){var r=e._tagScene;return{name:e._name,render:{frameId:t.id,needsRender:r.needsRender,render:r.render.bind(r),stage:c.GLRenderStage.Foreground}}}).subscribe(this._container.glRenderer.render$),this._navigator.stateService.currentTransform$.first().subscribe(function(t){e._tagSet.activate(t),e._tagScene.add(e._tagSet.getAll())})},t.prototype._deactivate=function(){this._editVertexHandler.disable(),this._disableCreateHandlers(),this._tagScene.clear(),this._tagSet.deactivate(),this._tagCreator.delete$.next(null),this._updateGLObjectsSubscription.unsubscribe(),this._updateTagSceneSubscription.unsubscribe(),this._stopCreateSubscription.unsubscribe(),this._setGLCreateTagSubscription.unsubscribe(),this._createGLObjectsChangedSubscription.unsubscribe(),this._domSubscription.unsubscribe(),this._glSubscription.unsubscribe(),this._fireCreateGeometryEventSubscription.unsubscribe(),this._fireGeometryCreatedSubscription.unsubscribe(),this._fireTagsChangedSubscription.unsubscribe(),this._handlerStopCreateSubscription.unsubscribe(),this._handlerEnablerSubscription.unsubscribe(),this._container.element.classList.remove("component-tag-create")},t.prototype._getDefaultConfiguration=function(){return{createColor:16777215,mode:s.TagMode.Default}},t.prototype._disableCreateHandlers=function(){var e=this._createHandlers;for(var t in e)if(e.hasOwnProperty(t)){var r=e[t];r&&r.disable()}},t.componentName="tag",t.creategeometryend="creategeometryend",t.creategeometrystart="creategeometrystart",t.modechanged="modechanged",t.geometrycreated="geometrycreated",t.tagschanged="tagschanged",t}(s.Component);r.TagComponent=u,s.ComponentService.register(u),r.default=u},{"../../Component":290,"../../Geo":293,"../../Render":296,"rxjs/Observable":29,when:287}],355:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=e("../../Component"),o=function(){function e(e,t){this._component=e,this._navigator=t,this._tagOperation$=new n.Subject,this._createPolygon$=new n.Subject,this._createRect$=new n.Subject,this._delete$=new n.Subject,this._tag$=this._tagOperation$.scan(function(e,t){return t(e)},null).share(),this._createRect$.withLatestFrom(this._component.configuration$,this._navigator.stateService.currentTransform$).map(function(e){var t=e[0],r=e[1],n=e[2];return function(e){var o=new i.RectGeometry([t[0],t[1],t[0],t[1]]);return new i.OutlineCreateTag(o,{color:r.createColor},n)}}).subscribe(this._tagOperation$),this._createPolygon$.withLatestFrom(this._component.configuration$,this._navigator.stateService.currentTransform$).map(function(e){var t=e[0],r=e[1],n=e[2];return function(e){var o=new i.PolygonGeometry([[t[0],t[1]],[t[0],t[1]],[t[0],t[1]]]);return new i.OutlineCreateTag(o,{color:r.createColor},n)}}).subscribe(this._tagOperation$),this._delete$.map(function(){return function(e){return null}}).subscribe(this._tagOperation$)}return Object.defineProperty(e.prototype,"createRect$",{get:function(){return this._createRect$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"createPolygon$",{get:function(){return this._createPolygon$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"delete$",{get:function(){return this._delete$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tag$",{get:function(){return this._tag$},enumerable:!0,configurable:!0}),e}();r.TagCreator=o,r.default=o},{"../../Component":290,"rxjs/Subject":34}],356:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("virtual-dom"),i=function(){function e(){}return e.prototype.render=function(e,t,r,i,o){for(var s=[],a=0,c=e;a<c.length;a++){var u=c[a];s=s.concat(u.getDOMObjects(r,i,o))}return null!=t&&(s=s.concat(t.getDOMObjects(i,o))),n.h("div.TagContainer",{},s)},e.prototype.clear=function(){return n.h("div",{},[])},e}();r.TagDOMRenderer=i},{"virtual-dom":246}],357:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Default=0]="Default",e[e.CreatePoint=1]="CreatePoint",e[e.CreatePolygon=2]="CreatePolygon",e[e.CreateRect=3]="CreateRect",e[e.CreateRectDrag=4]="CreateRectDrag"}(n=r.TagMode||(r.TagMode={})),r.default=n},{}],358:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.None=0]="None",e[e.Centroid=1]="Centroid",e[e.Vertex=2]="Vertex"}(n=r.TagOperation||(r.TagOperation={})),r.default=n},{}],359:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(e,t){this._createTag=null,this._needsRender=!1,this._raycaster=t||new n.Raycaster,this._scene=e||new n.Scene,this._objectTags={},this._retrievableObjects=[],this._tags={}}return Object.defineProperty(e.prototype,"needsRender",{get:function(){return this._needsRender},enumerable:!0,configurable:!0}),e.prototype.add=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];n.tag.id in this._tags&&this._remove(n.tag.id),this._add(n)}this._needsRender=!0},e.prototype.addCreateTag=function(e){for(var t=0,r=e.glObjects;t<r.length;t++){var n=r[t];this._scene.add(n)}this._createTag={tag:e,objects:e.glObjects},this._needsRender=!0},e.prototype.clear=function(){for(var e=0,t=Object.keys(this._tags);e<t.length;e++){var r=t[e];this._remove(r)}this._needsRender=!1},e.prototype.get=function(e){return this.has(e)?this._tags[e].tag:void 0},e.prototype.has=function(e){return e in this._tags},e.prototype.hasCreateTag=function(){return null!=this._createTag},e.prototype.intersectObjects=function(e,t){var r=e[0],i=e[1];this._raycaster.setFromCamera(new n.Vector2(r,i),t);for(var o=[],s=0,a=this._raycaster.intersectObjects(this._retrievableObjects);s<a.length;s++){var c=a[s];c.object.uuid in this._objectTags&&o.push(this._objectTags[c.object.uuid])}return o},e.prototype.remove=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];this._remove(n)}this._needsRender=!0},e.prototype.removeAll=function(){for(var e=0,t=Object.keys(this._tags);e<t.length;e++){var r=t[e];this._remove(r)}this._needsRender=!0},e.prototype.removeCreateTag=function(){if(null!=this._createTag){for(var e=0,t=this._createTag.objects;e<t.length;e++){var r=t[e];this._scene.remove(r)}this._createTag.tag.dispose(),this._createTag=null,this._needsRender=!0}},e.prototype.render=function(e,t){t.render(this._scene,e),this._needsRender=!1},e.prototype.update=function(){this._needsRender=!0},e.prototype.updateCreateTagObjects=function(e){if(this._createTag.tag!==e)throw new Error("Create tags do not have the same reference.");for(var t=0,r=this._createTag.objects;t<r.length;t++){o=r[t];this._scene.remove(o)}for(var n=0,i=e.glObjects;n<i.length;n++){var o=i[n];this._scene.add(o)}this._createTag.objects=e.glObjects,this._needsRender=!0},e.prototype.updateObjects=function(e){var t=e.tag.id;if(this._tags[t].tag!==e)throw new Error("Tags do not have the same reference.");var r=this._tags[t];this._removeObjects(r),delete this._tags[t],this._add(e),this._needsRender=!0},e.prototype._add=function(e){var t=e.tag.id,r={tag:e,objects:[],retrievableObjects:[]};this._tags[t]=r;for(var n=0,i=e.getGLObjects();n<i.length;n++){var o=i[n];r.objects.push(o),this._scene.add(o)}for(var s=0,a=e.getRetrievableObjects();s<a.length;s++){var c=a[s];r.retrievableObjects.push(c),this._retrievableObjects.push(c),this._objectTags[c.uuid]=e.tag.id}},e.prototype._remove=function(e){var t=this._tags[e];this._removeObjects(t),t.tag.dispose(),delete this._tags[e]},e.prototype._removeObjects=function(e){for(var t=0,r=e.objects;t<r.length;t++){var n=r[t];this._scene.remove(n)}for(var i=0,o=e.retrievableObjects;i<o.length;i++){var s=o[i],a=this._retrievableObjects.indexOf(s);-1!==a&&this._retrievableObjects.splice(a,1)}},e}();r.TagScene=i,r.default=i},{three:240}],360:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=e("../../Component"),o=function(){function e(){this._active=!1,this._hash={},this._hashDeactivated={},this._notifyChanged$=new n.Subject}return Object.defineProperty(e.prototype,"active",{get:function(){return this._active},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"changed$",{get:function(){return this._notifyChanged$},enumerable:!0,configurable:!0}),e.prototype.activate=function(e){if(!this._active){for(var t in this._hashDeactivated)if(this._hashDeactivated.hasOwnProperty(t)){var r=this._hashDeactivated[t];this._add(r,e)}this._hashDeactivated={},this._active=!0,this._notifyChanged$.next(this)}},e.prototype.deactivate=function(){if(this._active){for(var e in this._hash)this._hash.hasOwnProperty(e)&&(this._hashDeactivated[e]=this._hash[e].tag);this._hash={},this._active=!1}},e.prototype.add=function(e,t){this._assertActivationState(!0);for(var r=0,n=e;r<n.length;r++){var i=n[r];this._add(i,t)}this._notifyChanged$.next(this)},e.prototype.addDeactivated=function(e){this._assertActivationState(!1);for(var t=0,r=e;t<r.length;t++){var n=r[t];if(!(n instanceof i.OutlineTag||n instanceof i.SpotTag))throw new Error("Tag type not supported");this._hashDeactivated[n.id]=n}},e.prototype.get=function(e){return this.has(e)?this._hash[e]:void 0},e.prototype.getAll=function(){var e=this._hash;return Object.keys(e).map(function(t){return e[t]})},e.prototype.getAllDeactivated=function(){var e=this._hashDeactivated;return Object.keys(e).map(function(t){return e[t]})},e.prototype.getDeactivated=function(e){return this.hasDeactivated(e)?this._hashDeactivated[e]:void 0},e.prototype.has=function(e){return e in this._hash},e.prototype.hasDeactivated=function(e){return e in this._hashDeactivated},e.prototype.remove=function(e){this._assertActivationState(!0);for(var t=this._hash,r=0,n=e;r<n.length;r++){var i=n[r];i in t&&delete t[i]}this._notifyChanged$.next(this)},e.prototype.removeAll=function(){this._assertActivationState(!0),this._hash={},this._notifyChanged$.next(this)},e.prototype.removeAllDeactivated=function(){this._assertActivationState(!1),this._hashDeactivated={}},e.prototype.removeDeactivated=function(e){this._assertActivationState(!1);for(var t=this._hashDeactivated,r=0,n=e;r<n.length;r++){var i=n[r];i in t&&delete t[i]}},e.prototype._add=function(e,t){if(e instanceof i.OutlineTag)this._hash[e.id]=new i.OutlineRenderTag(e,t);else{if(!(e instanceof i.SpotTag))throw new Error("Tag type not supported");this._hash[e.id]=new i.SpotRenderTag(e,t)}},e.prototype._assertActivationState=function(e){if(e!==this._active)throw new Error("Tag set not in correct state for operation.")},e}();r.TagSet=o,r.default=o},{"../../Component":290,"rxjs/Subject":34}],361:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../../Error"),o=function(e){function t(t){var r=e.call(this,null!=t?t:"The provided geometry value is incorrect")||this;return r.name="GeometryTagError",r}return n(t,e),t}(i.MapillaryError);r.GeometryTagError=o,r.default=i.MapillaryError},{"../../../Error":292}],362:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=function(){function e(){this._notifyChanged$=new n.Subject}return Object.defineProperty(e.prototype,"changed$",{get:function(){return this._notifyChanged$},enumerable:!0,configurable:!0}),e}();r.Geometry=i,r.default=i},{"rxjs/Subject":34}],363:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../../Component"),o=function(e){function t(t){var r=e.call(this)||this,n=t[0],o=t[1];if(n<0||n>1||o<0||o>1)throw new i.GeometryTagError("Basic coordinates must be on the interval [0, 1].");return r._point=t.slice(),r}return n(t,e),Object.defineProperty(t.prototype,"point",{get:function(){return this._point},enumerable:!0,configurable:!0}),t.prototype.getCentroid2d=function(){return this._point.slice()},t.prototype.getCentroid3d=function(e){return e.unprojectBasic(this._point,200)},t.prototype.setCentroid2d=function(e,t){var r=[Math.max(0,Math.min(1,e[0])),Math.max(0,Math.min(1,e[1]))];this._point[0]=r[0],this._point[1]=r[1],this._notifyChanged$.next(this)},t}(i.Geometry);r.PointGeometry=o},{"../../../Component":290}],364:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../../Component"),o=function(e){function t(t,r){var n=e.call(this)||this,o=t.length;if(o<3)throw new i.GeometryTagError("A polygon must have three or more positions.");if(t[0][0]!==t[o-1][0]||t[0][1]!==t[o-1][1])throw new i.GeometryTagError("First and last positions must be equivalent.");n._polygon=[];for(var s=0,a=t;s<a.length;s++){if((f=a[s])[0]<0||f[0]>1||f[1]<0||f[1]>1)throw new i.GeometryTagError("Basic coordinates of polygon must be on the interval [0, 1].");n._polygon.push(f.slice())}if(n._holes=[],null==r)return n;for(var c=0;c<r.length;c++){var u=r[c],h=u.length;if(h<3)throw new i.GeometryTagError("A polygon hole must have three or more positions.");if(u[0][0]!==u[h-1][0]||u[0][1]!==u[h-1][1])throw new i.GeometryTagError("First and last positions of hole must be equivalent.");n._holes.push([]);for(var l=0,p=u;l<p.length;l++){var f=p[l];if(f[0]<0||f[0]>1||f[1]<0||f[1]>1)throw new i.GeometryTagError("Basic coordinates of hole must be on the interval [0, 1].");n._holes[c].push(f.slice())}}return n}return n(t,e),Object.defineProperty(t.prototype,"polygon",{get:function(){return this._polygon},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"holes",{get:function(){return this._holes},enumerable:!0,configurable:!0}),t.prototype.addVertex2d=function(e){var t=[Math.max(0,Math.min(1,e[0])),Math.max(0,Math.min(1,e[1]))];this._polygon.splice(this._polygon.length-1,0,t),this._notifyChanged$.next(this)},t.prototype.getVertex2d=function(e){return this._polygon[e].slice()},t.prototype.removeVertex2d=function(e){if(e<0||e>=this._polygon.length||this._polygon.length<4)throw new i.GeometryTagError("Index for removed vertex must be valid.");if(e>0&&e<this._polygon.length-1)this._polygon.splice(e,1);else{this._polygon.splice(0,1),this._polygon.pop();var t=this._polygon[0].slice();this._polygon.push(t)}this._notifyChanged$.next(this)},t.prototype.setVertex2d=function(e,t,r){var n=[Math.max(0,Math.min(1,t[0])),Math.max(0,Math.min(1,t[1]))];0===e||e===this._polygon.length-1?(this._polygon[0]=n.slice(),this._polygon[this._polygon.length-1]=n.slice()):this._polygon[e]=n.slice(),this._notifyChanged$.next(this)},t.prototype.setCentroid2d=function(e,t){for(var r=this._polygon.map(function(e){return e[0]}),n=this._polygon.map(function(e){return e[1]}),i=Math.min.apply(Math,r),o=Math.max.apply(Math,r),s=Math.min.apply(Math,n),a=Math.max.apply(Math,n),c=this.getCentroid2d(),u=-i,h=1-o,l=-s,p=1-a,f=Math.max(u,Math.min(h,e[0]-c[0])),d=Math.max(l,Math.min(p,e[1]-c[1])),m=0,v=this._polygon;m<v.length;m++){var g=v[m];g[0]+=f,g[1]+=d}this._notifyChanged$.next(this)},t.prototype.getPoints3d=function(e){return this.getVertices3d(e)},t.prototype.getVertex3d=function(e,t){return t.unprojectBasic(this._polygon[e],200)},t.prototype.getVertices2d=function(){return this._polygon.slice()},t.prototype.getVertices3d=function(e){return this._polygon.map(function(t){return e.unprojectBasic(t,200)})},t.prototype.getHoleVertices3d=function(e){for(var t=[],r=0,n=this._holes;r<n.length;r++){var i=n[r].map(function(t){return e.unprojectBasic(t,200)});t.push(i)}return t},t.prototype.getCentroid2d=function(){for(var e=this._polygon,t=0,r=0,n=0,i=0;i<e.length-1;i++){var o=e[i][0],s=e[i][1],a=e[i+1][0],c=e[i+1][1],u=o*c-a*s;t+=u,r+=(o+a)*u,n+=(s+c)*u}return t/=2,r/=6*t,n/=6*t,[r,n]},t.prototype.getCentroid3d=function(e){var t=this.getCentroid2d();return e.unprojectBasic(t,200)},t.prototype.getTriangles3d=function(e){return this._triangulate(this._polygon,this.getPoints3d(e),this._holes,this.getHoleVertices3d(e))},t.prototype.getPoleOfAccessibility2d=function(){return this._getPoleOfInaccessibility2d(this._polygon.slice())},t.prototype.getPoleOfAccessibility3d=function(e){var t=this._getPoleOfInaccessibility2d(this._polygon.slice());return e.unprojectBasic(t,200)},t}(i.VertexGeometry);r.PolygonGeometry=o,r.default=o},{"../../../Component":290}],365:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../../Component"),o=function(e){function t(t){var r=e.call(this)||this;if(t[1]>t[3])throw new i.GeometryTagError("Basic Y coordinates values can not be inverted.");for(var n=0,o=t;n<o.length;n++){var s=o[n];if(s<0||s>1)throw new i.GeometryTagError("Basic coordinates must be on the interval [0, 1].")}return r._anchorIndex=void 0,r._rect=t.slice(0,4),r._inverted=r._rect[0]>r._rect[2],r}return n(t,e),Object.defineProperty(t.prototype,"anchorIndex",{get:function(){return this._anchorIndex},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inverted",{get:function(){return this._inverted},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rect",{get:function(){return this._rect},enumerable:!0,configurable:!0}),t.prototype.initializeAnchorIndexing=function(e){if(void 0!==this._anchorIndex)throw new Error("Anchor indexing is already initialized.");if(e<0||e>3)throw new Error("Invalid anchor index: "+e+".");this._anchorIndex=void 0===e?0:e},t.prototype.terminateAnchorIndexing=function(){this._anchorIndex=void 0},t.prototype.setOppositeVertex2d=function(e,t){if(void 0===this._anchorIndex)throw new Error("Anchor indexing needs to be initialized.");var r=[Math.max(0,Math.min(1,e[0])),Math.max(0,Math.min(1,e[1]))],n=this._rect.slice(),i=0===this._anchorIndex?[n[0],n[3]]:1===this._anchorIndex?[n[0],n[1]]:2===this._anchorIndex?[n[2],n[1]]:[n[2],n[3]];if(t.fullPano){var o=this._anchorIndex<2?r[0]-n[2]:r[0]-n[0];!this._inverted&&this._anchorIndex<2&&r[0]<.25&&n[2]>.75&&o<-.5?(this._inverted=!0,this._anchorIndex=i[1]>r[1]?0:1):!this._inverted&&this._anchorIndex>=2&&r[0]<.25&&n[2]>.75&&o<-.5?(this._inverted=!0,this._anchorIndex=i[1]>r[1]?0:1):this._inverted&&this._anchorIndex>=2&&r[0]<.25&&n[0]>.75&&o<-.5?(this._inverted=!1,this._anchorIndex=i[0]>r[0]?i[1]>r[1]?3:2:i[1]>r[1]?0:1):!this._inverted&&this._anchorIndex>=2&&r[0]>.75&&n[0]<.25&&o>.5?(this._inverted=!0,this._anchorIndex=i[1]>r[1]?3:2):!this._inverted&&this._anchorIndex<2&&r[0]>.75&&n[0]<.25&&o>.5?(this._inverted=!0,this._anchorIndex=i[1]>r[1]?3:2):this._inverted&&this._anchorIndex<2&&r[0]>.75&&n[2]<.25&&o>.5?(this._inverted=!1,this._anchorIndex=i[0]>r[0]?i[1]>r[1]?3:2:i[1]>r[1]?0:1):this._inverted&&this._anchorIndex<2&&r[0]>n[0]?(this._inverted=!1,this._anchorIndex=i[1]>r[1]?0:1):this._inverted&&this._anchorIndex>=2&&r[0]<n[2]?(this._inverted=!1,this._anchorIndex=i[1]>r[1]?3:2):this._inverted?this._anchorIndex<2?this._anchorIndex=i[1]>r[1]?0:1:this._anchorIndex=i[1]>r[1]?3:2:this._anchorIndex=i[0]<=r[0]&&i[1]>r[1]?0:i[0]<=r[0]&&i[1]<=r[1]?1:i[0]>r[0]&&i[1]<=r[1]?2:3;s=[];0===this._anchorIndex?(s[0]=i[0],s[1]=r[1],s[2]=r[0],s[3]=i[1]):1===this._anchorIndex?(s[0]=i[0],s[1]=i[1],s[2]=r[0],s[3]=r[1]):2===this._anchorIndex?(s[0]=r[0],s[1]=i[1],s[2]=i[0],s[3]=r[1]):(s[0]=r[0],s[1]=r[1],s[2]=i[0],s[3]=i[1]),(!this._inverted&&s[0]>s[2]||this._inverted&&s[0]<s[2])&&(s[0]=n[0],s[2]=n[2]),s[1]>s[3]&&(s[1]=n[1],s[3]=n[3]),this._rect[0]=s[0],this._rect[1]=s[1],this._rect[2]=s[2],this._rect[3]=s[3]}else{this._anchorIndex=i[0]<=r[0]&&i[1]>r[1]?0:i[0]<=r[0]&&i[1]<=r[1]?1:i[0]>r[0]&&i[1]<=r[1]?2:3;var s=[];0===this._anchorIndex?(s[0]=i[0],s[1]=r[1],s[2]=r[0],s[3]=i[1]):1===this._anchorIndex?(s[0]=i[0],s[1]=i[1],s[2]=r[0],s[3]=r[1]):2===this._anchorIndex?(s[0]=r[0],s[1]=i[1],s[2]=i[0],s[3]=r[1]):(s[0]=r[0],s[1]=r[1],s[2]=i[0],s[3]=i[1]),s[0]>s[2]&&(s[0]=n[0],s[2]=n[2]),s[1]>s[3]&&(s[1]=n[1],s[3]=n[3]),this._rect[0]=s[0],this._rect[1]=s[1],this._rect[2]=s[2],this._rect[3]=s[3]}this._notifyChanged$.next(this)},t.prototype.setVertex2d=function(e,t,r){var n=this._rect.slice(),i=[Math.max(0,Math.min(1,t[0])),Math.max(0,Math.min(1,t[1]))],o=[];if(0===e?(o[0]=i[0],o[1]=n[1],o[2]=n[2],o[3]=i[1]):1===e?(o[0]=i[0],o[1]=i[1],o[2]=n[2],o[3]=n[3]):2===e?(o[0]=n[0],o[1]=i[1],o[2]=i[0],o[3]=n[3]):3===e&&(o[0]=n[0],o[1]=n[1],o[2]=i[0],o[3]=i[1]),r.fullPano){var s=e<2&&i[0]>.75&&n[0]<.25||e>=2&&this._inverted&&i[0]>.75&&n[2]<.25,a=e<2&&this._inverted&&i[0]<.25&&n[0]>.75||e>=2&&i[0]<.25&&n[2]>.75;s||a?this._inverted=!this._inverted:(o[0]-n[0]<-.25&&(o[0]=n[0]),o[2]-n[2]>.25&&(o[2]=n[2])),(!this._inverted&&o[0]>o[2]||this._inverted&&o[0]<o[2])&&(o[0]=n[0],o[2]=n[2])}else o[0]>o[2]&&(o[0]=n[0],o[2]=n[2]);o[1]>o[3]&&(o[1]=n[1],o[3]=n[3]),this._rect[0]=o[0],this._rect[1]=o[1],this._rect[2]=o[2],this._rect[3]=o[3],this._notifyChanged$.next(this)},t.prototype.setCentroid2d=function(e,t){var r=this._rect.slice(),n=r[0],i=this._inverted?r[2]+1:r[2],o=r[1],s=r[3],a=n+(i-n)/2,c=o+(s-o)/2,u=0;if(null!=t.gpano&&t.gpano.CroppedAreaImageWidthPixels===t.gpano.FullPanoWidthPixels)u=this._inverted?e[0]+1-a:e[0]-a;else{var h=-n,l=1-i;u=Math.max(h,Math.min(l,e[0]-a))}var p=-o,f=1-s,d=Math.max(p,Math.min(f,e[1]-c));this._rect[0]=r[0]+u,this._rect[1]=r[1]+d,this._rect[2]=r[2]+u,this._rect[3]=r[3]+d,this._rect[0]<0?(this._rect[0]+=1,this._inverted=!this._inverted):this._rect[0]>1&&(this._rect[0]-=1,this._inverted=!this._inverted),this._rect[2]<0?(this._rect[2]+=1,this._inverted=!this._inverted):this._rect[2]>1&&(this._rect[2]-=1,this._inverted=!this._inverted),this._notifyChanged$.next(this)},t.prototype.getPoints3d=function(e){return this._getPoints2d(e).map(function(t){return e.unprojectBasic(t,200)})},t.prototype.getVertex2d=function(e){return this._rectToVertices2d(this._rect)[e]},t.prototype.getNonAdjustedVertex2d=function(e){return this._rectToNonAdjustedVertices2d(this._rect)[e]},t.prototype.getVertex3d=function(e,t){return t.unprojectBasic(this._rectToVertices2d(this._rect)[e],200)},t.prototype.getVertices2d=function(){return this._rectToVertices2d(this._rect)},t.prototype.getVertices3d=function(e){return this._rectToVertices2d(this._rect).map(function(t){return e.unprojectBasic(t,200)})},t.prototype.getCentroid2d=function(){var e=this._rect;return[(e[0]+(this._inverted?e[2]+1:e[2]))/2,(e[1]+e[3])/2]},t.prototype.getCentroid3d=function(e){var t=this.getCentroid2d();return e.unprojectBasic(t,200)},t.prototype.getPoleOfAccessibility2d=function(){return this._getPoleOfInaccessibility2d(this._rectToVertices2d(this._rect))},t.prototype.getPoleOfAccessibility3d=function(e){var t=this._getPoleOfInaccessibility2d(this._rectToVertices2d(this._rect));return e.unprojectBasic(t,200)},t.prototype.getTriangles3d=function(e){return this._triangulate(this._rectToVertices2d(this._rect),this.getVertices3d(e))},t.prototype.validate=function(e){var t=this._rect;return!(!this._inverted&&e[0]<t[0]||e[0]-t[2]>.25||e[1]<t[1])},t.prototype._getPoints2d=function(e){for(var t=this._rectToVertices2d(this._rect),r=t.length-1,n=[],i=0;i<r;++i)for(var o=t[i][0],s=t[i][1],a=(t[i+1][0]-o)/9,c=(t[i+1][1]-s)/9,u=0;u<10;++u){var h=[o+u*a,s+u*c];n.push(h)}return n},t.prototype._rectToVertices2d=function(e){return[[e[0],e[3]],[e[0],e[1]],[this._inverted?e[2]+1:e[2],e[1]],[this._inverted?e[2]+1:e[2],e[3]],[e[0],e[3]]]},t.prototype._rectToNonAdjustedVertices2d=function(e){return[[e[0],e[3]],[e[0],e[1]],[e[2],e[1]],[e[2],e[3]],[e[0],e[3]]]},t}(i.VertexGeometry);r.RectGeometry=o,r.default=o},{"../../../Component":290}],366:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("earcut"),o=e("@mapbox/polylabel"),s=function(e){function t(){return e.call(this)||this}return n(t,e),t.prototype._getPoleOfInaccessibility2d=function(e){return o([e],.03)},t.prototype._triangulate=function(e,t,r,n){for(var o=[e.slice(0,-1)],s=0,a=null!=r?r:[];s<a.length;s++){var c=a[s];o.push(c.slice(0,-1))}for(var u=t.slice(0,-1),h=0,l=null!=n?n:[];h<l.length;h++){var p=l[h];u=u.concat(p.slice(0,-1))}for(var f=i.flatten(o),d=i(f.vertices,f.holes,f.dimensions),m=[],v=0;v<d.length;++v){var g=u[d[v]];m.push(g[0]),m.push(g[1]),m.push(g[2])}return m},t}(e("../../../Component").Geometry);r.VertexGeometry=s,r.default=s},{"../../../Component":290,"@mapbox/polylabel":1,earcut:8}],367:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Subject"),o=function(e){function t(t,r,n,o,s){var a=e.call(this,t,r,n,o)||this;return a._tagCreator=s,a._geometryCreated$=new i.Subject,a}return n(t,e),Object.defineProperty(t.prototype,"geometryCreated$",{get:function(){return this._geometryCreated$},enumerable:!0,configurable:!0}),t.prototype._enable=function(){this._enableCreate(),this._container.element.classList.add("component-tag-create")},t.prototype._disable=function(){this._container.element.classList.remove("component-tag-create"),this._disableCreate()},t.prototype._validateBasic=function(e){var t=e[0],r=e[1];return 0<=t&&t<=1&&0<=r&&r<=1},t.prototype._mouseEventToBasic$=function(e){var t=this;return e.withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).map(function(e){var r=e[0],n=e[1],i=e[2];return t._mouseEventToBasic(r,t._container.element,n,i)})},t}(e("../../../Component").TagHandlerBase);r.CreateHandlerBase=o,r.default=o},{"../../../Component":290,"rxjs/Subject":34}],368:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../../Component"),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._enableCreate=function(){this._container.mouseService.deferPixels(this._name,4),this._geometryCreatedSubscription=this._mouseEventToBasic$(this._container.mouseService.proximateClick$).filter(this._validateBasic).map(function(e){return new i.PointGeometry(e)}).subscribe(this._geometryCreated$)},t.prototype._disableCreate=function(){this._container.mouseService.undeferPixels(this._name),this._geometryCreatedSubscription.unsubscribe()},t.prototype._getNameExtension=function(){return"create-point"},t}(i.CreateHandlerBase);r.CreatePointHandler=o,r.default=o},{"../../../Component":290}],369:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._addPoint=function(e,t){e.addPoint(t)},Object.defineProperty(t.prototype,"_create$",{get:function(){return this._tagCreator.createPolygon$},enumerable:!0,configurable:!0}),t.prototype._getNameExtension=function(){return"create-polygon"},t.prototype._setVertex2d=function(e,t,r){e.geometry.setVertex2d(e.geometry.polygon.length-2,t,r)},t}(e("../../../Component").CreateVertexHandler);r.CreatePolygonHandler=i,r.default=i},{"../../../Component":290}],370:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._enableCreate=function(){var e=this;this._container.mouseService.claimMouse(this._name,2),this._deleteSubscription=this._navigator.stateService.currentTransform$.map(function(e){return null}).skip(1).subscribe(this._tagCreator.delete$),this._createSubscription=this._mouseEventToBasic$(this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragStart$)).filter(this._validateBasic).subscribe(this._tagCreator.createRect$),this._initializeAnchorIndexingSubscription=this._tagCreator.tag$.filter(function(e){return!!e}).subscribe(function(e){e.geometry.initializeAnchorIndexing()});var t=i.Observable.merge(this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseMove$),this._container.mouseService.filtered$(this._name,this._container.mouseService.domMouseMove$)).combineLatest(this._container.renderService.renderCamera$).withLatestFrom(this._navigator.stateService.currentTransform$).map(function(t){var r=t[0],n=r[0],i=r[1],o=t[1];return e._mouseEventToBasic(n,e._container.element,i,o)});this._setVertexSubscription=this._tagCreator.tag$.switchMap(function(r){return r?i.Observable.combineLatest(i.Observable.of(r),t,e._navigator.stateService.currentTransform$):i.Observable.empty()}).subscribe(function(e){var t=e[0],r=e[1],n=e[2];t.geometry.setOppositeVertex2d(r,n)});var r=this._container.mouseService.mouseDragEnd$.withLatestFrom(this._mouseEventToBasic$(this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDrag$)).filter(this._validateBasic),function(e,t){return t}).share();this._addPointSubscription=this._tagCreator.tag$.switchMap(function(e){return e?i.Observable.combineLatest(i.Observable.of(e),r):i.Observable.empty()}).subscribe(function(e){var t=e[0],r=e[1],n=t.geometry;n.validate(r)||(r=n.getNonAdjustedVertex2d(3)),t.addPoint(r)}),this._geometryCreatedSubscription=this._tagCreator.tag$.switchMap(function(e){return e?e.created$.map(function(e){return e.geometry}):i.Observable.empty()}).subscribe(this._geometryCreated$)},t.prototype._disableCreate=function(){this._container.mouseService.unclaimMouse(this._name),this._tagCreator.delete$.next(null),this._addPointSubscription.unsubscribe(),this._createSubscription.unsubscribe(),this._deleteSubscription.unsubscribe(),this._geometryCreatedSubscription.unsubscribe(),this._initializeAnchorIndexingSubscription.unsubscribe(),this._setVertexSubscription.unsubscribe()},t.prototype._getNameExtension=function(){return"create-rect-drag"},t}(e("../../../Component").CreateHandlerBase);r.CreateRectDragHandler=o,r.default=o},{"../../../Component":290,"rxjs/Observable":29}],371:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),Object.defineProperty(t.prototype,"_create$",{get:function(){return this._tagCreator.createRect$},enumerable:!0,configurable:!0}),t.prototype._addPoint=function(e,t){var r=e.geometry;r.validate(t)||(t=r.getNonAdjustedVertex2d(3)),e.addPoint(t)},t.prototype._enable=function(){e.prototype._enable.call(this),this._initializeAnchorIndexingSubscription=this._tagCreator.tag$.filter(function(e){return!!e}).subscribe(function(e){e.geometry.initializeAnchorIndexing()})},t.prototype._disable=function(){e.prototype._disable.call(this),this._initializeAnchorIndexingSubscription.unsubscribe()},t.prototype._getNameExtension=function(){return"create-rect"},t.prototype._setVertex2d=function(e,t,r){e.geometry.setOppositeVertex2d(t,r)},t}(e("../../../Component").CreateVertexHandler);r.CreateRectHandler=i,r.default=i},{"../../../Component":290}],372:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype._enableCreate=function(){var e=this;this._container.mouseService.deferPixels(this._name,4);var t=this._navigator.stateService.currentTransform$.map(function(e){}).publishReplay(1).refCount();this._deleteSubscription=t.skip(1).subscribe(this._tagCreator.delete$);var r=this._mouseEventToBasic$(this._container.mouseService.proximateClick$).share();this._createSubscription=t.switchMap(function(){return r.filter(e._validateBasic).take(1)}).subscribe(this._create$),this._setVertexSubscription=this._tagCreator.tag$.switchMap(function(t){return t?i.Observable.combineLatest(i.Observable.of(t),i.Observable.merge(e._container.mouseService.mouseMove$,e._container.mouseService.domMouseMove$),e._container.renderService.renderCamera$,e._navigator.stateService.currentTransform$):i.Observable.empty()}).subscribe(function(t){var r=t[0],n=t[1],i=t[2],o=t[3],s=e._mouseEventToBasic(n,e._container.element,i,o);e._setVertex2d(r,s,o)}),this._addPointSubscription=this._tagCreator.tag$.switchMap(function(e){return e?i.Observable.combineLatest(i.Observable.of(e),r):i.Observable.empty()}).subscribe(function(t){var r=t[0],n=t[1];e._addPoint(r,n)}),this._geometryCreateSubscription=this._tagCreator.tag$.switchMap(function(e){return e?e.created$.map(function(e){return e.geometry}):i.Observable.empty()}).subscribe(this._geometryCreated$)},t.prototype._disableCreate=function(){this._container.mouseService.undeferPixels(this._name),this._tagCreator.delete$.next(null),this._addPointSubscription.unsubscribe(),this._createSubscription.unsubscribe(),this._deleteSubscription.unsubscribe(),this._geometryCreateSubscription.unsubscribe(),this._setVertexSubscription.unsubscribe()},t}(e("../../../Component").CreateHandlerBase);r.CreateVertexHandler=o,r.default=o},{"../../../Component":290,"rxjs/Observable":29}],373:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Observable"),o=e("../../../Component"),s=function(e){function t(t,r,n,i,o){var s=e.call(this,t,r,n,i)||this;return s._tagSet=o,s}return n(t,e),t.prototype._enable=function(){var e=this,t=this._tagSet.changed$.map(function(e){return e.getAll()}).switchMap(function(e){return i.Observable.from(e).mergeMap(function(e){return e.interact$})}).switchMap(function(t){return i.Observable.of(t).concat(e._container.mouseService.documentMouseUp$.map(function(){return{offsetX:0,offsetY:0,operation:o.TagOperation.None,tag:null}}).first())}).share(),r=i.Observable.merge(this._container.mouseService.mouseMove$,this._container.mouseService.domMouseMove$).share();this._claimMouseSubscription=t.switchMap(function(t){return t.tag?e._container.mouseService.domMouseDragStart$:i.Observable.empty()}).subscribe(function(){e._container.mouseService.claimMouse(e._name,3)}),this._cursorSubscription=t.map(function(e){return e.cursor}).distinctUntilChanged().subscribe(function(t){for(var r=0,n=["crosshair","move","nesw-resize","nwse-resize"];r<n.length;r++){var i=n[r];e._container.element.classList.remove("component-tag-edit-"+i)}t&&e._container.element.classList.add("component-tag-edit-"+t)}),this._unclaimMouseSubscription=this._container.mouseService.filtered$(this._name,this._container.mouseService.domMouseDragEnd$).subscribe(function(t){e._container.mouseService.unclaimMouse(e._name)}),this._preventDefaultSubscription=t.switchMap(function(t){return t.tag?e._container.mouseService.documentMouseMove$:i.Observable.empty()}).subscribe(function(e){e.preventDefault()}),this._updateGeometrySubscription=t.withLatestFrom(r).switchMap(function(t){var r=t[0],n=t[1];if(r.operation===o.TagOperation.None||!r.tag)return i.Observable.empty();var s=i.Observable.of(n).concat(e._container.mouseService.filtered$(e._name,e._container.mouseService.domMouseDrag$).filter(function(t){return e._viewportCoords.insideElement(t,e._container.element)}));return i.Observable.combineLatest(s,e._container.renderService.renderCamera$).withLatestFrom(i.Observable.of(r),e._navigator.stateService.currentTransform$,function(e,t,r){return[e[0],e[1],t,r]})}).subscribe(function(t){var r=t[0],n=t[1],i=t[2],s=t[3],a=e._mouseEventToBasic(r,e._container.element,n,s,i.offsetX,i.offsetY),c=i.tag.geometry;i.operation===o.TagOperation.Centroid?c.setCentroid2d(a,s):i.operation===o.TagOperation.Vertex&&c.setVertex2d(i.vertexIndex,a,s)})},t.prototype._disable=function(){this._claimMouseSubscription.unsubscribe(),this._cursorSubscription.unsubscribe(),this._preventDefaultSubscription.unsubscribe(),this._unclaimMouseSubscription.unsubscribe(),this._updateGeometrySubscription.unsubscribe()},t.prototype._getNameExtension=function(){return"edit-vertex"},t}(o.TagHandlerBase);r.EditVertexHandler=s,r.default=s},{"../../../Component":290,"rxjs/Observable":29}],374:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n)||this;return o._name=o._component.name+"-"+o._getNameExtension(),o._viewportCoords=i,o}return n(t,e),t.prototype._getConfiguration=function(e){return{}},t.prototype._mouseEventToBasic=function(e,t,r,n,i,o){i=null!=i?i:0,o=null!=o?o:0;var s=this._viewportCoords.canvasPosition(e,t),a=s[0],c=s[1];return this._viewportCoords.canvasToBasic(a-i,c-o,t,n,r.perspective)},t}(e("../../../Component").HandlerBase);r.TagHandlerBase=i,r.default=i},{"../../../Component":290}],375:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("virtual-dom"),o=e("rxjs/Subject"),s=e("../../../Component"),a=e("../../../Geo"),c=function(){function e(e,t,r,n){var i=this;this._geometry=e,this._options={color:null==t.color?16777215:t.color},this._transform=r,this._viewportCoords=n||new a.ViewportCoords,this._outline=this._createOutine(),this._glObjects=[this._outline],this._aborted$=new o.Subject,this._created$=new o.Subject,this._glObjectsChanged$=new o.Subject,this._geometryChangedSubscription=this._geometry.changed$.subscribe(function(e){i._disposeOutline(),i._outline=i._createOutine(),i._glObjects=[i._outline],i._glObjectsChanged$.next(i)})}return Object.defineProperty(e.prototype,"geometry",{get:function(){return this._geometry},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"glObjects",{get:function(){return this._glObjects},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"aborted$",{get:function(){return this._aborted$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"created$",{get:function(){return this._created$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"glObjectsChanged$",{get:function(){return this._glObjectsChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"geometryChanged$",{get:function(){var e=this;return this._geometry.changed$.map(function(t){return e})},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._disposeOutline(),this._geometryChangedSubscription.unsubscribe()},e.prototype.getDOMObjects=function(e,t){var r=this,n=[],o={offsetHeight:t.height,offsetWidth:t.width},a=function(e){e.stopPropagation(),r._aborted$.next(r)};if(this._geometry instanceof s.RectGeometry){var c=this._geometry.anchorIndex,u=void 0===c?1:c,h=this._geometry.getVertex2d(u),l=h[0],p=h[1],f=this._viewportCoords.basicToCanvasSafe(l,p,o,this._transform,e);if(null!=f){var d={style:{background:R=this._colorToBackground(this._options.color),transform:j=this._canvasToTransform(f)}},m={onclick:a,style:{transform:j}};n.push(i.h("div.TagInteractor",m,[])),n.push(i.h("div.TagVertex",d,[]))}}else if(this._geometry instanceof s.PolygonGeometry){var v=this._geometry,g=v.getVertex2d(0),y=g[0],b=g[1],_=this._viewportCoords.basicToCanvasSafe(y,b,o,this._transform,e);if(null!=_){var m={onclick:v.polygon.length>4?function(e){e.stopPropagation(),v.removeVertex2d(v.polygon.length-2),r._created$.next(r)}:a,style:{transform:j=this._canvasToTransform(_)}},x=v.polygon.length>4?"TagCompleter":"TagInteractor";n.push(i.h("div."+x,m,[]))}if(v.polygon.length>3){var w=v.getVertex2d(v.polygon.length-3),S=w[0],M=w[1],E=this._viewportCoords.basicToCanvasSafe(S,M,o,this._transform,e);if(null!=E){m={onclick:function(e){e.stopPropagation(),v.removeVertex2d(v.polygon.length-3)},style:{transform:j=this._canvasToTransform(E)}};n.push(i.h("div.TagInteractor",m,[]))}}var C=v.polygon.slice();C.splice(-2,2);for(var T=0,O=C;T<O.length;T++){var P=O[T],A=this._viewportCoords.basicToCanvasSafe(P[0],P[1],o,this._transform,e);if(null!=A){var R=this._colorToBackground(this._options.color),j=this._canvasToTransform(A),d={style:{background:R,transform:j}};n.push(i.h("div.TagVertex",d,[]))}}}return n},e.prototype.addPoint=function(e){if(this._geometry instanceof s.RectGeometry){if(!this._geometry.validate(e))return;this._created$.next(this)}else if(this._geometry instanceof s.PolygonGeometry){this._geometry.addVertex2d(e)}},e.prototype._canvasToTransform=function(e){return"translate(-50%,-50%) translate("+Math.round(e[0])+"px,"+Math.round(e[1])+"px)"},e.prototype._colorToBackground=function(e){return"#"+("000000"+e.toString(16)).substr(-6)},e.prototype._createOutine=function(){var e=this._geometry.getPoints3d(this._transform),t=this._getLinePositions(e),r=new n.BufferGeometry;r.addAttribute("position",new n.BufferAttribute(t,3));var i=new n.LineBasicMaterial({color:this._options.color,linewidth:1});return new n.Line(r,i)},e.prototype._disposeOutline=function(){if(null!=this._outline){var e=this._outline;e.geometry.dispose(),e.material.dispose(),this._outline=null,this._glObjects=[]}},e.prototype._getLinePositions=function(e){for(var t=e.length,r=new Float32Array(3*t),n=0;n<t;++n){var i=3*n,o=e[n];r[i]=o[0],r[i+1]=o[1],r[i+2]=o[2]}return r},e}();r.OutlineCreateTag=c,r.default=c},{"../../../Component":290,"../../../Geo":293,"rxjs/Subject":34,three:240,"virtual-dom":246}],376:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=e("virtual-dom"),s=e("../../../Component"),a=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n._fill=r.gpano?null:n._createFill(),n._holes=n._tag.lineWidth>=1?n._createHoles():[],n._outline=n._tag.lineWidth>=1?n._createOutline():null,n._geometryChangedSubscription=n._tag.geometry.changed$.subscribe(function(e){null!=n._fill&&n._updateFillGeometry(),n._holes.length>0&&n._updateHoleGeometries(),null!=n._outline&&n._updateOulineGeometry()}),n._changedSubscription=n._tag.changed$.subscribe(function(e){var t=!1;null!=n._fill&&n._updateFillMaterial(n._fill.material),null==n._outline?n._tag.lineWidth>=1&&(n._holes=n._createHoles(),n._outline=n._createOutline(),t=!0):(n._updateHoleMaterials(),n._updateOutlineMaterial()),t&&n._glObjectsChanged$.next(n)}),n}return n(t,e),t.prototype.dispose=function(){this._disposeFill(),this._disposeHoles(),this._disposeOutline(),this._changedSubscription.unsubscribe(),this._geometryChangedSubscription.unsubscribe()},t.prototype.getDOMObjects=function(e,t,r){var n=this,i=[],a=this._tag.geometry instanceof s.RectGeometry,c=!this._transform.gpano,u={offsetHeight:r.height,offsetWidth:r.width};if(null!=this._tag.icon&&(a||c)){var h=this._tag.geometry instanceof s.RectGeometry?this._tag.geometry.getVertex2d(this._tag.iconIndex):this._tag.geometry.getPoleOfAccessibility2d(),l=h[0],p=h[1],f=this._viewportCoords.basicToCanvasSafe(l,p,u,this._transform,t);if(null!=f){N=function(e){n._interact$.next({offsetX:0,offsetY:0,operation:s.TagOperation.None,tag:n._tag})};if(e.loaded){var d=e.getDOMSprite(this._tag.icon,this._tag.iconFloat),m={onclick:function(e){e.stopPropagation(),n._tag.click$.next(n._tag)},onmousedown:N,style:{transform:w="translate("+Math.round(f[0])+"px,"+Math.round(f[1])+"px)"}};i.push(o.h("div.TagSymbol",m,[d]))}}}else if(null!=this._tag.text&&(a||c)){var v=this._tag.geometry instanceof s.RectGeometry?this._tag.geometry.getVertex2d(3):this._tag.geometry.getPoleOfAccessibility2d(),g=v[0],y=v[1],b=this._viewportCoords.basicToCanvasSafe(g,y,u,this._transform,t);if(null!=b){var _=Math.round(b[0]),x=Math.round(b[1]),w=this._tag.geometry instanceof s.RectGeometry?"translate("+_+"px,"+x+"px)":"translate(-50%, -50%) translate("+_+"px,"+x+"px)",m={onmousedown:N=function(e){n._interact$.next({offsetX:0,offsetY:0,operation:s.TagOperation.None,tag:n._tag})},style:{color:this._colorToCss(this._tag.textColor),transform:w},textContent:this._tag.text};i.push(o.h("span.TagSymbol",m,[]))}}if(!this._tag.editable)return i;var S=this._colorToCss(this._tag.lineColor);if(this._tag.geometry instanceof s.RectGeometry){var M=this._tag.geometry.getCentroid2d(),E=M[0],C=M[1],T=this._viewportCoords.basicToCanvasSafe(E,C,u,this._transform,t);if(null!=T){m={onmousedown:N=this._interact(s.TagOperation.Centroid,"move"),style:{background:S,transform:w="translate(-50%, -50%) translate("+Math.round(T[0])+"px,"+Math.round(T[1])+"px)"}};i.push(o.h("div.TagMover",m,[]))}}for(var O=this._tag.geometry.getVertices2d(),P=0;P<O.length-1;P++)if(!a||!(null!=this._tag.icon&&P===this._tag.iconIndex||null==this._tag.icon&&null!=this._tag.text&&3===P)){var A=O[P],R=A[0],j=A[1],L=this._viewportCoords.basicToCanvasSafe(R,j,u,this._transform,t);if(null!=L){var N,I=a?P%2==0?"nesw-resize":"nwse-resize":"crosshair",m={onmousedown:N=this._interact(s.TagOperation.Vertex,I,P),style:{background:S,transform:w="translate(-50%, -50%) translate("+Math.round(L[0])+"px,"+Math.round(L[1])+"px)",cursor:I}};if(i.push(o.h("div.TagResizer",m,[])),this._tag.indicateVertices){var D={style:{background:S,transform:w}};i.push(o.h("div.TagVertex",D,[]))}}}return i},t.prototype.getGLObjects=function(){var e=[];null!=this._fill&&e.push(this._fill);for(var t=0,r=this._holes;t<r.length;t++){var n=r[t];e.push(n)}return null!=this._outline&&e.push(this._outline),e},t.prototype.getRetrievableObjects=function(){return null!=this._fill?[this._fill]:[]},t.prototype._colorToCss=function(e){return"#"+("000000"+e.toString(16)).substr(-6)},t.prototype._createFill=function(){var e=this._tag.geometry.getTriangles3d(this._transform),t=new Float32Array(e),r=new i.BufferGeometry;r.addAttribute("position",new i.BufferAttribute(t,3)),r.computeBoundingSphere();var n=new i.MeshBasicMaterial({side:i.DoubleSide,transparent:!0});return this._updateFillMaterial(n),new i.Mesh(r,n)},t.prototype._createHoles=function(){var e=[];if(this._tag.geometry instanceof s.PolygonGeometry)for(var t=0,r=this._tag.geometry.getHoleVertices3d(this._transform);t<r.length;t++){var n=r[t],i=this._createLine(n);e.push(i)}return e},t.prototype._createLine=function(e){var t=this._getLinePositions(e),r=new i.BufferGeometry;r.addAttribute("position",new i.BufferAttribute(t,3)),r.computeBoundingSphere();var n=new i.LineBasicMaterial;this._updateLineBasicMaterial(n);var o=new i.Line(r,n);return o.renderOrder=1,o},t.prototype._createOutline=function(){var e=this._tag.geometry.getPoints3d(this._transform);return this._createLine(e)},t.prototype._disposeFill=function(){null!=this._fill&&(this._fill.geometry.dispose(),this._fill.material.dispose(),this._fill=null)},t.prototype._disposeHoles=function(){for(var e=0,t=this._holes;e<t.length;e++){var r=t[e];r.geometry.dispose(),r.material.dispose()}this._holes=[]},t.prototype._disposeOutline=function(){null!=this._outline&&(this._outline.geometry.dispose(),this._outline.material.dispose(),this._outline=null)},t.prototype._getLinePositions=function(e){for(var t=e.length,r=new Float32Array(3*t),n=0;n<t;++n){var i=3*n,o=e[n];r[i+0]=o[0],r[i+1]=o[1],r[i+2]=o[2]}return r},t.prototype._interact=function(e,t,r){var n=this;return function(i){var o=i.offsetX-i.target.offsetWidth/2,s=i.offsetY-i.target.offsetHeight/2;n._interact$.next({cursor:t,offsetX:o,offsetY:s,operation:e,tag:n._tag,vertexIndex:r})}},t.prototype._updateFillGeometry=function(){var e=this._tag.geometry.getTriangles3d(this._transform),t=new Float32Array(e),r=this._fill.geometry,n=r.getAttribute("position");n.array.length===t.length?(n.set(t),n.needsUpdate=!0):(r.removeAttribute("position"),r.addAttribute("position",new i.BufferAttribute(t,3))),r.computeBoundingSphere()},t.prototype._updateFillMaterial=function(e){e.color=new i.Color(this._tag.fillColor),e.opacity=this._tag.fillOpacity,e.needsUpdate=!0},t.prototype._updateHoleGeometries=function(){var e=this._tag.geometry.getHoleVertices3d(this._transform);if(e.length!==this._holes.length)throw new Error("Changing the number of holes is not supported.");for(var t=0;t<this._holes.length;t++){var r=e[t],n=this._holes[t];this._updateLine(n,r)}},t.prototype._updateHoleMaterials=function(){for(var e=0,t=this._holes;e<t.length;e++){var r=t[e].material;this._updateLineBasicMaterial(r)}},t.prototype._updateLine=function(e,t){var r=this._getLinePositions(t),n=e.geometry,i=n.getAttribute("position");i.set(r),i.needsUpdate=!0,n.computeBoundingSphere()},t.prototype._updateOulineGeometry=function(){var e=this._tag.geometry.getPoints3d(this._transform);this._updateLine(this._outline,e)},t.prototype._updateOutlineMaterial=function(){var e=this._outline.material;this._updateLineBasicMaterial(e)},t.prototype._updateLineBasicMaterial=function(e){e.color=new i.Color(this._tag.lineColor),e.linewidth=Math.max(this._tag.lineWidth,1),e.visible=this._tag.lineWidth>=1&&this._tag.lineOpacity>0,e.opacity=this._tag.lineOpacity,e.transparent=this._tag.lineOpacity<1,e.needsUpdate=!0},t}(s.RenderTag);r.OutlineRenderTag=a},{"../../../Component":290,three:240,"virtual-dom":246}],377:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Subject"),o=e("../../../Component"),s=e("../../../Viewer"),a=function(e){function t(r,n,o){var a=e.call(this,r,n)||this;return o=o||{},a._editable=null!=o.editable&&o.editable,a._fillColor=null==o.fillColor?16777215:o.fillColor,a._fillOpacity=null==o.fillOpacity?0:o.fillOpacity,a._icon=void 0===o.icon?null:o.icon,a._iconFloat=null==o.iconFloat?s.Alignment.Center:o.iconFloat,a._iconIndex=null==o.iconIndex?3:o.iconIndex,a._indicateVertices=null==o.indicateVertices||o.indicateVertices,a._lineColor=null==o.lineColor?16777215:o.lineColor,a._lineOpacity=null==o.lineOpacity?1:o.lineOpacity,a._lineWidth=null==o.lineWidth?1:o.lineWidth,a._text=void 0===o.text?null:o.text,a._textColor=null==o.textColor?16777215:o.textColor,a._click$=new i.Subject,a._click$.subscribe(function(e){a.fire(t.click,a)}),a}return n(t,e),Object.defineProperty(t.prototype,"click$",{get:function(){return this._click$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"editable",{get:function(){return this._editable},set:function(e){this._editable=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"fillColor",{get:function(){return this._fillColor},set:function(e){this._fillColor=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"fillOpacity",{get:function(){return this._fillOpacity},set:function(e){this._fillOpacity=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"geometry",{get:function(){return this._geometry},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"icon",{get:function(){return this._icon},set:function(e){this._icon=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"iconFloat",{get:function(){return this._iconFloat},set:function(e){this._iconFloat=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"iconIndex",{get:function(){return this._iconIndex},set:function(e){this._iconIndex=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"indicateVertices",{get:function(){return this._indicateVertices},set:function(e){this._indicateVertices=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lineColor",{get:function(){return this._lineColor},set:function(e){this._lineColor=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lineOpacity",{get:function(){return this._lineOpacity},set:function(e){this._lineOpacity=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lineWidth",{get:function(){return this._lineWidth},set:function(e){this._lineWidth=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"text",{get:function(){return this._text},set:function(e){this._text=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"textColor",{get:function(){return this._textColor},set:function(e){this._textColor=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),t.prototype.setOptions=function(e){this._editable=null==e.editable?this._editable:e.editable,this._icon=void 0===e.icon?this._icon:e.icon,this._iconFloat=null==e.iconFloat?this._iconFloat:e.iconFloat,this._iconIndex=null==e.iconIndex?this._iconIndex:e.iconIndex,this._indicateVertices=null==e.indicateVertices?this._indicateVertices:e.indicateVertices,this._lineColor=null==e.lineColor?this._lineColor:e.lineColor,this._lineWidth=null==e.lineWidth?this._lineWidth:e.lineWidth,this._fillColor=null==e.fillColor?this._fillColor:e.fillColor,this._fillOpacity=null==e.fillOpacity?this._fillOpacity:e.fillOpacity,this._text=void 0===e.text?this._text:e.text,this._textColor=null==e.textColor?this._textColor:e.textColor,this._notifyChanged$.next(this)},t.click="click",t}(o.Tag);r.OutlineTag=a,r.default=a},{"../../../Component":290,"../../../Viewer":301,"rxjs/Subject":34}],378:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=e("../../../Geo"),o=function(){function e(e,t,r){this._tag=e,this._transform=t,this._viewportCoords=r||new i.ViewportCoords,this._glObjectsChanged$=new n.Subject,this._interact$=new n.Subject}return Object.defineProperty(e.prototype,"glObjectsChanged$",{get:function(){return this._glObjectsChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"interact$",{get:function(){return this._interact$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tag",{get:function(){return this._tag},enumerable:!0,configurable:!0}),e}();r.RenderTag=o,r.default=o},{"../../../Geo":293,"rxjs/Subject":34}],379:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("../../../Component"),s=e("../../../Viewer"),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.dispose=function(){},t.prototype.getDOMObjects=function(e,t,r){var n=this,a=this._tag,c={offsetHeight:r.height,offsetWidth:r.width},u=[],h=a.geometry.getCentroid2d(),l=h[0],p=h[1],f=this._viewportCoords.basicToCanvasSafe(l,p,c,this._transform,t);if(null!=f){var d=function(e){n._interact$.next({offsetX:0,offsetY:0,operation:o.TagOperation.None,tag:a})},m=Math.round(f[0]),v=Math.round(f[1]);if(null!=a.icon){if(e.loaded){var g=e.getDOMSprite(a.icon,s.Alignment.Bottom),y={onmousedown:d,style:{pointerEvents:"all",transform:"translate("+m+"px,"+(v+8)+"px)"}};u.push(i.h("div",y,[g]))}}else if(null!=a.text){var b="translate(-50%,0%) translate("+m+"px,"+(v+8)+"px)",y={onmousedown:d,style:{color:this._colorToCss(a.textColor),transform:b},textContent:a.text};u.push(i.h("span.TagSymbol",y,[]))}var _=this._interact(o.TagOperation.Centroid,a,"move"),x=this._colorToCss(a.color),w="translate(-50%,-50%) translate("+m+"px,"+v+"px)";if(a.editable){var S={onmousedown:_,style:{background:x,transform:w}};u.push(i.h("div.TagSpotInteractor",S,[]))}var M={style:{background:x,transform:w}};u.push(i.h("div.TagVertex",M,[]))}return u},t.prototype.getGLObjects=function(){return[]},t.prototype.getRetrievableObjects=function(){return[]},t.prototype._colorToCss=function(e){return"#"+("000000"+e.toString(16)).substr(-6)},t.prototype._interact=function(e,t,r,n){var i=this;return function(o){var s=o.offsetX-o.target.offsetWidth/2,a=o.offsetY-o.target.offsetHeight/2;i._interact$.next({cursor:r,offsetX:s,offsetY:a,operation:e,tag:t,vertexIndex:n})}},t}(o.RenderTag);r.SpotRenderTag=a},{"../../../Component":290,"../../../Viewer":301,"virtual-dom":246}],380:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(t,r,n){var i=e.call(this,t,r)||this;return n=n||{},i._color=null==n.color?16777215:n.color,i._editable=null!=n.editable&&n.editable,i._icon=void 0===n.icon?null:n.icon,i._text=void 0===n.text?null:n.text,i._textColor=null==n.textColor?16777215:n.textColor,i}return n(t,e),Object.defineProperty(t.prototype,"color",{get:function(){return this._color},set:function(e){this._color=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"editable",{get:function(){return this._editable},set:function(e){this._editable=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"icon",{get:function(){return this._icon},set:function(e){this._icon=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"text",{get:function(){return this._text},set:function(e){this._text=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"textColor",{get:function(){return this._textColor},set:function(e){this._textColor=e,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),t.prototype.setOptions=function(e){this._color=null==e.color?this._color:e.color,this._editable=null==e.editable?this._editable:e.editable,this._icon=void 0===e.icon?this._icon:e.icon,this._text=void 0===e.text?this._text:e.text,this._textColor=null==e.textColor?this._textColor:e.textColor,this._notifyChanged$.next(this)},t}(e("../../../Component").Tag);r.SpotTag=i,r.default=i},{"../../../Component":290}],381:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("rxjs/Subject"),o=function(e){function t(r,n){var o=e.call(this)||this;return o._id=r,o._geometry=n,o._notifyChanged$=new i.Subject,o._notifyChanged$.subscribe(function(e){o.fire(t.changed,o)}),o._geometry.changed$.subscribe(function(e){o.fire(t.geometrychanged,o)}),o}return n(t,e),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"geometry",{get:function(){return this._geometry},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"changed$",{get:function(){return this._notifyChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"geometryChanged$",{get:function(){var e=this;return this._geometry.changed$.map(function(t){return e}).share()},enumerable:!0,configurable:!0}),t.changed="changed",t.geometrychanged="geometrychanged",t}(e("../../../Utils").EventEmitter);r.Tag=o,r.default=o},{"../../../Utils":300,"rxjs/Subject":34}],382:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t,r){this._component=e,this._container=t,this._navigator=r,this._enabled=!1}return Object.defineProperty(e.prototype,"isEnabled",{get:function(){return this._enabled},enumerable:!0,configurable:!0}),e.prototype.enable=function(){!this._enabled&&this._component.activated&&(this._enable(),this._enabled=!0,this._component.configure(this._getConfiguration(!0)))},e.prototype.disable=function(){this._enabled&&(this._disable(),this._enabled=!1,this._component.activated&&this._component.configure(this._getConfiguration(!1)))},e}();r.HandlerBase=n,r.default=n},{}],383:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("../../Component"),o=function(){function e(e,t){this._imagePlaneDepth=null!=e?e:200,this._imageSphereRadius=null!=t?t:200}return e.prototype.createMesh=function(e,t){return e.pano?this._createImageSphere(e,t):this._createImagePlane(e,t)},e.prototype.createScaledFlatMesh=function(e,t,r,i){var o=this._createTexture(e.image),s=this._createPlaneMaterialParameters(t,o),a=new n.ShaderMaterial(s),c=this._getFlatImagePlaneGeo(t,r,i);return new n.Mesh(c,a)},e.prototype.createFlatMesh=function(e,t,r,i,o,s){var a=this._createTexture(e.image),c=this._createPlaneMaterialParameters(t,a),u=new n.ShaderMaterial(c),h=this._getFlatImagePlaneGeoFromBasic(t,r,i,o,s);return new n.Mesh(h,u)},e.prototype.createCurtainMesh=function(e,t){if(e.pano&&!e.fullPano)throw new Error("Cropped panoramas cannot have curtain.");return e.pano?this._createSphereCurtainMesh(e,t):this._createCurtainMesh(e,t)},e.prototype._createCurtainMesh=function(e,t){var r=this._createTexture(e.image),i=this._createCurtainPlaneMaterialParameters(t,r),o=new n.ShaderMaterial(i),s=this._useMesh(t,e)?this._getImagePlaneGeo(t,e):this._getRegularFlatImagePlaneGeo(t);return new n.Mesh(s,o)},e.prototype._createSphereCurtainMesh=function(e,t){var r=this._createTexture(e.image),i=this._createCurtainSphereMaterialParameters(t,r),o=new n.ShaderMaterial(i);return this._useMesh(t,e)?new n.Mesh(this._getImageSphereGeo(t,e),o):new n.Mesh(this._getFlatImageSphereGeo(t),o)},e.prototype._createImageSphere=function(e,t){var r=this._createTexture(e.image),i=this._createSphereMaterialParameters(t,r),o=new n.ShaderMaterial(i);return this._useMesh(t,e)?new n.Mesh(this._getImageSphereGeo(t,e),o):new n.Mesh(this._getFlatImageSphereGeo(t),o)},e.prototype._createImagePlane=function(e,t){var r=this._createTexture(e.image),i=this._createPlaneMaterialParameters(t,r),o=new n.ShaderMaterial(i),s=this._useMesh(t,e)?this._getImagePlaneGeo(t,e):this._getRegularFlatImagePlaneGeo(t);return new n.Mesh(s,o)},e.prototype._createSphereMaterialParameters=function(e,t){var r=e.gpano,o=(r.FullPanoWidthPixels-r.CroppedAreaImageWidthPixels)/2,s=2*Math.PI*(r.CroppedAreaLeftPixels-o)/r.FullPanoWidthPixels,a=2*Math.PI*r.CroppedAreaImageWidthPixels/r.FullPanoWidthPixels,c=(r.FullPanoHeightPixels-r.CroppedAreaImageHeightPixels)/2,u=Math.PI*(c-r.CroppedAreaTopPixels)/r.FullPanoHeightPixels,h=Math.PI*r.CroppedAreaImageHeightPixels/r.FullPanoHeightPixels;return{depthWrite:!1,fragmentShader:i.Shaders.equirectangular.fragment,side:n.DoubleSide,transparent:!0,uniforms:{opacity:{type:"f",value:1},phiLength:{type:"f",value:a},phiShift:{type:"f",value:s},projectorMat:{type:"m4",value:e.rt},projectorTex:{type:"t",value:t},thetaLength:{type:"f",value:h},thetaShift:{type:"f",value:u}},vertexShader:i.Shaders.equirectangular.vertex}},e.prototype._createCurtainSphereMaterialParameters=function(e,t){var r=e.gpano,o=(r.FullPanoWidthPixels-r.CroppedAreaImageWidthPixels)/2,s=2*Math.PI*(r.CroppedAreaLeftPixels-o)/r.FullPanoWidthPixels,a=2*Math.PI*r.CroppedAreaImageWidthPixels/r.FullPanoWidthPixels,c=(r.FullPanoHeightPixels-r.CroppedAreaImageHeightPixels)/2,u=Math.PI*(c-r.CroppedAreaTopPixels)/r.FullPanoHeightPixels,h=Math.PI*r.CroppedAreaImageHeightPixels/r.FullPanoHeightPixels;return{depthWrite:!1,fragmentShader:i.Shaders.equirectangularCurtain.fragment,side:n.DoubleSide,transparent:!0,uniforms:{curtain:{type:"f",value:1},opacity:{type:"f",value:1},phiLength:{type:"f",value:a},phiShift:{type:"f",value:s},projectorMat:{type:"m4",value:e.rt},projectorTex:{type:"t",value:t},thetaLength:{type:"f",value:h},thetaShift:{type:"f",value:u}},vertexShader:i.Shaders.equirectangularCurtain.vertex}},e.prototype._createPlaneMaterialParameters=function(e,t){return{depthWrite:!1,fragmentShader:i.Shaders.perspective.fragment,side:n.DoubleSide,transparent:!0,uniforms:{opacity:{type:"f",value:1},projectorMat:{type:"m4",value:e.projectorMatrix()},projectorTex:{type:"t",value:t}},vertexShader:i.Shaders.perspective.vertex}},e.prototype._createCurtainPlaneMaterialParameters=function(e,t){return{depthWrite:!1,fragmentShader:i.Shaders.perspectiveCurtain.fragment,side:n.DoubleSide,transparent:!0,uniforms:{curtain:{type:"f",value:1},opacity:{type:"f",value:1},projectorMat:{type:"m4",value:e.projectorMatrix()},projectorTex:{type:"t",value:t}},vertexShader:i.Shaders.perspective.vertex}},e.prototype._createTexture=function(e){var t=new n.Texture(e);return t.minFilter=n.LinearFilter,t.needsUpdate=!0,t},e.prototype._useMesh=function(e,t){return t.mesh.vertices.length&&e.hasValidScale},e.prototype._getImageSphereGeo=function(e,t){for(var r=(new n.Matrix4).getInverse(e.srt),i=5*e.scale,o=this._imageSphereRadius*e.scale,s=t.mesh.vertices,a=s.length/3,c=new Float32Array(s.length),u=0;u<a;++u){var h=3*u,l=s[h+0],p=s[h+1],f=s[h+2],d=Math.sqrt(l*l+p*p+f*f),m=Math.max(i,Math.min(d,o))/d,v=new n.Vector3(l*m,p*m,f*m);v.applyMatrix4(r),c[h+0]=v.x,c[h+1]=v.y,c[h+2]=v.z}for(var g=t.mesh.faces,y=new Uint16Array(g.length),u=0;u<g.length;++u)y[u]=g[u];var b=new n.BufferGeometry;return b.addAttribute("position",new n.BufferAttribute(c,3)),b.setIndex(new n.BufferAttribute(y,1)),b},e.prototype._getImagePlaneGeo=function(e,t){for(var r=(new n.Matrix4).getInverse(e.srt),i=5*e.scale,o=this._imagePlaneDepth*e.scale,s=t.mesh.vertices,a=s.length/3,c=new Float32Array(s.length),u=0;u<a;++u){var h=3*u,l=s[h+0],p=s[h+1],f=s[h+2],d=Math.max(i,Math.min(f,o)),m=d/f,v=new n.Vector3(l*m,p*m,d);v.applyMatrix4(r),c[h+0]=v.x,c[h+1]=v.y,c[h+2]=v.z}for(var g=t.mesh.faces,y=new Uint16Array(g.length),u=0;u<g.length;++u)y[u]=g[u];var b=new n.BufferGeometry;return b.addAttribute("position",new n.BufferAttribute(c,3)),b.setIndex(new n.BufferAttribute(y,1)),b},e.prototype._getFlatImageSphereGeo=function(e){var t=e.gpano,r=2*Math.PI*t.CroppedAreaLeftPixels/t.FullPanoWidthPixels,i=2*Math.PI*t.CroppedAreaImageWidthPixels/t.FullPanoWidthPixels,o=Math.PI*(t.FullPanoHeightPixels-t.CroppedAreaImageHeightPixels-t.CroppedAreaTopPixels)/t.FullPanoHeightPixels,s=Math.PI*t.CroppedAreaImageHeightPixels/t.FullPanoHeightPixels,a=new n.SphereGeometry(this._imageSphereRadius,20,40,r-Math.PI/2,i,o,s);return a.applyMatrix((new n.Matrix4).getInverse(e.rt)),a},e.prototype._getRegularFlatImagePlaneGeo=function(e){var t=e.width,r=e.height,n=Math.max(t,r),i=t/2/n,o=r/2/n;return this._getFlatImagePlaneGeo(e,i,o)},e.prototype._getFlatImagePlaneGeo=function(e,t,r){var n=[];return n.push(e.unprojectSfM([-t,-r],this._imagePlaneDepth)),n.push(e.unprojectSfM([t,-r],this._imagePlaneDepth)),n.push(e.unprojectSfM([t,r],this._imagePlaneDepth)),n.push(e.unprojectSfM([-t,r],this._imagePlaneDepth)),this._createFlatGeometry(n)},e.prototype._getFlatImagePlaneGeoFromBasic=function(e,t,r,n,i){var o=[];return o.push(e.unprojectBasic([t,n],this._imagePlaneDepth)),o.push(e.unprojectBasic([r,n],this._imagePlaneDepth)),o.push(e.unprojectBasic([r,i],this._imagePlaneDepth)),o.push(e.unprojectBasic([t,i],this._imagePlaneDepth)),this._createFlatGeometry(o)},e.prototype._createFlatGeometry=function(e){for(var t=new Float32Array(12),r=0;r<e.length;r++){var i=3*r;t[i+0]=e[r][0],t[i+1]=e[r][1],t[i+2]=e[r][2]}var o=new Uint16Array(6);o[0]=0,o[1]=1,o[2]=3,o[3]=1,o[4]=2,o[5]=3;var s=new n.BufferGeometry;return s.addAttribute("position",new n.BufferAttribute(t,3)),s.setIndex(new n.BufferAttribute(o,1)),s},e}();r.MeshFactory=o,r.default=o},{"../../Component":290,three:240}],384:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(){this.scene=new n.Scene,this.sceneOld=new n.Scene,this.imagePlanes=[],this.imagePlanesOld=[]}return e.prototype.updateImagePlanes=function(e){this._dispose(this.imagePlanesOld,this.sceneOld);for(var t=0,r=this.imagePlanes;t<r.length;t++){o=r[t];this.scene.remove(o),this.sceneOld.add(o)}for(var n=0,i=e;n<i.length;n++){var o=i[n];this.scene.add(o)}this.imagePlanesOld=this.imagePlanes,this.imagePlanes=e},e.prototype.addImagePlanes=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];this.scene.add(n),this.imagePlanes.push(n)}},e.prototype.addImagePlanesOld=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];this.sceneOld.add(n),this.imagePlanesOld.push(n)}},e.prototype.setImagePlanes=function(e){this._clear(),this.addImagePlanes(e)},e.prototype.setImagePlanesOld=function(e){this._clearOld(),this.addImagePlanesOld(e)},e.prototype.clear=function(){this._clear(),this._clearOld()},e.prototype._clear=function(){this._dispose(this.imagePlanes,this.scene),this.imagePlanes.length=0},e.prototype._clearOld=function(){this._dispose(this.imagePlanesOld,this.sceneOld),this.imagePlanesOld.length=0},e.prototype._dispose=function(e,t){for(var r=0,n=e;r<n.length;r++){var i=n[r];t.remove(i),i.geometry.dispose(),i.material.dispose();var o=i.material.uniforms.projectorTex.value;null!=o&&o.dispose()}},e}();r.MeshScene=i,r.default=i},{three:240}],385:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("virtual-dom"),o=e("rxjs/Observable"),s=e("rxjs/Subject"),a=e("../../Component"),c=e("../../Geo"),u=e("../../State"),h=function(e){function t(t,r,n){var i=e.call(this,t,r,n)||this;return i._viewportCoords=new c.ViewportCoords,i._zoomDelta$=new s.Subject,i}return n(t,e),t.prototype._activate=function(){var e=this;this._renderSubscription=o.Observable.combineLatest(this._navigator.stateService.currentState$,this._navigator.stateService.state$).map(function(e){var t=e[0],r=e[1];return[t.state.zoom,r]}).map(function(t){var r=t[0],n=t[1],o=i.h("div.ZoomInIcon",[]),s=r>=3||n===u.State.Waiting?i.h("div.ZoomInButtonDisabled",[o]):i.h("div.ZoomInButton",{onclick:function(){e._zoomDelta$.next(1)}},[o]),a=i.h("div.ZoomOutIcon",[]),c=r<=0||n===u.State.Waiting?i.h("div.ZoomOutButtonDisabled",[a]):i.h("div.ZoomOutButton",{onclick:function(){e._zoomDelta$.next(-1)}},[a]);return{name:e._name,vnode:i.h("div.ZoomContainer",{oncontextmenu:function(e){e.preventDefault()}},[s,c])}}).subscribe(this._container.domRenderer.render$),this._zoomSubscription=this._zoomDelta$.withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).subscribe(function(t){var r=t[0],n=t[1],i=t[2],o=e._viewportCoords.unprojectFromViewport(0,0,n.perspective),s=i.projectBasic(o.toArray());e._navigator.stateService.zoomIn(r,s)})},t.prototype._deactivate=function(){this._renderSubscription.unsubscribe(),this._zoomSubscription.unsubscribe()},t.prototype._getDefaultConfiguration=function(){return{}},t.componentName="zoom",t}(a.Component);r.ZoomComponent=h,a.ComponentService.register(h),r.default=h},{"../../Component":290,"../../Geo":293,"../../State":297,"rxjs/Observable":29,"rxjs/Subject":34,"virtual-dom":246}],386:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(r){var n=e.call(this,null!=r?r:"The request was aborted.")||this;return Object.setPrototypeOf(n,t.prototype),n.name="AbortMapillaryError",n}return n(t,e),t}(e("./MapillaryError").MapillaryError);r.AbortMapillaryError=i,r.default=i},{"./MapillaryError":389}],387:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(r){var n=e.call(this,null!=r?r:"The argument is not valid.")||this;return Object.setPrototypeOf(n,t.prototype),n.name="ArgumentMapillaryError",n}return n(t,e),t}(e("./MapillaryError").MapillaryError);r.ArgumentMapillaryError=i,r.default=i},{"./MapillaryError":389}],388:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(r){var n=e.call(this,r)||this;return Object.setPrototypeOf(n,t.prototype),n.name="GraphMapillaryError",n}return n(t,e),t}(e("./MapillaryError").MapillaryError);r.GraphMapillaryError=i,r.default=i},{"./MapillaryError":389}],389:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=function(e){function t(r){var n=e.call(this,r)||this;return Object.setPrototypeOf(n,t.prototype),n.name="MapillaryError",n}return n(t,e),t}(Error);r.MapillaryError=i,r.default=i},{}],390:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(e){null!=e?(this._position=(new n.Vector3).fromArray(e.unprojectSfM([0,0],0)),this._lookat=(new n.Vector3).fromArray(e.unprojectSfM([0,0],10)),this._up=e.upVector(),this._focal=this._getFocal(e)):(this._position=new n.Vector3(0,0,0),this._lookat=new n.Vector3(0,0,1),this._up=new n.Vector3(0,-1,0),this._focal=1)}return Object.defineProperty(e.prototype,"position",{get:function(){return this._position},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lookat",{get:function(){return this._lookat},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"up",{get:function(){return this._up},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"focal",{get:function(){return this._focal},set:function(e){this._focal=e},enumerable:!0,configurable:!0}),e.prototype.lerpCameras=function(e,t,r){this._position.subVectors(t.position,e.position).multiplyScalar(r).add(e.position),this._lookat.subVectors(t.lookat,e.lookat).multiplyScalar(r).add(e.lookat),this._up.subVectors(t.up,e.up).multiplyScalar(r).add(e.up),this._focal=(1-r)*e.focal+r*t.focal},e.prototype.copy=function(e){this._position.copy(e.position),this._lookat.copy(e.lookat),this._up.copy(e.up),this._focal=e.focal},e.prototype.clone=function(){var t=new e;return t.position.copy(this._position),t.lookat.copy(this._lookat),t.up.copy(this._up),t.focal=this._focal,t},e.prototype.diff=function(e){var t=this._position.distanceToSquared(e.position),r=this._lookat.distanceToSquared(e.lookat),n=this._up.distanceToSquared(e.up),i=100*Math.abs(this._focal-e.focal);return Math.max(t,r,n,i)},e.prototype._getFocal=function(e){if(null==e.gpano)return e.focal;var t=Math.PI*e.gpano.CroppedAreaImageHeightPixels/e.gpano.FullPanoHeightPixels,r=.5/Math.tan(t/2);return Math.min(1/(2*(Math.sqrt(2)-1)),Math.max(.5,r))},e}();r.Camera=i},{three:240}],391:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){this._wgs84a=6378137,this._wgs84b=6356752.31424518}return e.prototype.geodeticToEnu=function(e,t,r,n,i,o){var s=this.geodeticToEcef(e,t,r);return this.ecefToEnu(s[0],s[1],s[2],n,i,o)},e.prototype.enuToGeodetic=function(e,t,r,n,i,o){var s=this.enuToEcef(e,t,r,n,i,o);return this.ecefToGeodetic(s[0],s[1],s[2])},e.prototype.ecefToEnu=function(e,t,r,n,i,o){var s=this.geodeticToEcef(n,i,o),a=[e-s[0],t-s[1],r-s[2]];n=n*Math.PI/180,i=i*Math.PI/180;var c=Math.cos(n),u=Math.sin(n),h=Math.cos(i),l=Math.sin(i);return[-l*a[0]+h*a[1],-u*h*a[0]-u*l*a[1]+c*a[2],c*h*a[0]+c*l*a[1]+u*a[2]]},e.prototype.enuToEcef=function(e,t,r,n,i,o){var s=this.geodeticToEcef(n,i,o);n=n*Math.PI/180,i=i*Math.PI/180;var a=Math.cos(n),c=Math.sin(n),u=Math.cos(i),h=Math.sin(i);return[-h*e-c*u*t+a*u*r+s[0],u*e-c*h*t+a*h*r+s[1],a*t+c*r+s[2]]},e.prototype.geodeticToEcef=function(e,t,r){var n=this._wgs84a,i=this._wgs84b;e=e*Math.PI/180,t=t*Math.PI/180;var o=Math.cos(e),s=Math.sin(e),a=Math.cos(t),c=Math.sin(t),u=n*n,h=i*i,l=1/Math.sqrt(u*o*o+h*s*s),p=(u*l+r)*o;return[p*a,p*c,(h*l+r)*s]},e.prototype.ecefToGeodetic=function(e,t,r){var n=this._wgs84a,i=this._wgs84b,o=n*n,s=i*i,a=o-s,c=Math.sqrt(a/o),u=Math.sqrt(a/s),h=Math.sqrt(e*e+t*t),l=Math.atan2(r*n,h*i),p=Math.sin(l),f=Math.cos(l),d=Math.atan2(t,e),m=Math.atan2(r+u*u*i*p*p*p,h-c*c*n*f*f*f),v=Math.sin(m),g=h/Math.cos(m)-n/Math.sqrt(1-c*c*v*v);return[180*m/Math.PI,180*d/Math.PI,g]},e}();r.GeoCoords=n,r.default=n},{}],392:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(){this._epsilon=1e-9}return e.prototype.azimuthalToBearing=function(e){return-e+Math.PI/2},e.prototype.degToRad=function(e){return Math.PI*e/180},e.prototype.radToDeg=function(e){return 180*e/Math.PI},e.prototype.rotationMatrix=function(e){var t=new n.Vector3(e[0],e[1],e[2]),r=t.length();return r>0&&t.normalize(),(new n.Matrix4).makeRotationAxis(t,r)},e.prototype.rotate=function(e,t){var r=new n.Vector3(e[0],e[1],e[2]),i=this.rotationMatrix(t);return r.applyMatrix4(i),r},e.prototype.opticalCenter=function(e,t){var r=[-e[0],-e[1],-e[2]],n=[-t[0],-t[1],-t[2]];return this.rotate(n,r)},e.prototype.viewingDirection=function(e){var t=[-e[0],-e[1],-e[2]];return this.rotate([0,0,1],t)},e.prototype.wrap=function(e,t,r){if(r<t)throw new Error("Invalid arguments: max must be larger than min.");for(var n=r-t;e>r||e<t;)e>r?e-=n:e<t&&(e+=n);return e},e.prototype.wrapAngle=function(e){return this.wrap(e,-Math.PI,Math.PI)},e.prototype.clamp=function(e,t,r){return e<t?t:e>r?r:e},e.prototype.angleBetweenVector2=function(e,t,r,n){var i=Math.atan2(n,r)-Math.atan2(t,e);return this.wrapAngle(i)},e.prototype.angleDifference=function(e,t){var r=t-e;return this.wrapAngle(r)},e.prototype.relativeRotationAngle=function(e,t){var r=this.rotationMatrix([-e[0],-e[1],-e[2]]),n=this.rotationMatrix(t),i=r.multiply(n).elements,o=i[0]+i[5]+i[10];return Math.acos(Math.max(Math.min((o-1)/2,1),-1))},e.prototype.angleToPlane=function(e,t){var r=(new n.Vector3).fromArray(e),i=r.length();if(i<this._epsilon)return 0;var o=r.dot((new n.Vector3).fromArray(t));return Math.asin(o/i)},e.prototype.distanceFromLatLon=function(e,t,r,n){var i=this.degToRad(r-e),o=this.degToRad(n-t),s=Math.sin(i/2)*Math.sin(i/2)+Math.cos(this.degToRad(e))*Math.cos(this.degToRad(r))*Math.sin(o/2)*Math.sin(o/2);return 12742e3*Math.atan2(Math.sqrt(s),Math.sqrt(1-s))},e}();r.Spatial=i,r.default=i},{three:240}],393:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(e,t,r,n,i,o,s,a,c,u){this._orientation=this._getValue(e,1);var h=null!=c?c.width:4,l=null!=c?c.height:3,p=this._orientation<5;this._width=this._getValue(t,p?h:l),this._height=this._getValue(r,p?l:h),this._basicAspect=p?this._width/this._height:this._height/this._width,this._basicWidth=p?t:r,this._basicHeight=p?r:t,this._focal=this._getValue(n,1),this._scale=this._getValue(i,0),this._gpano=null!=o?o:null,this._rt=this._getRt(s,a),this._srt=this._getSrt(this._rt,this._scale),this._textureScale=u||[1,1]}return Object.defineProperty(e.prototype,"basicAspect",{get:function(){return this._basicAspect},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"basicHeight",{get:function(){return this._basicHeight},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"basicWidth",{get:function(){return this._basicWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"focal",{get:function(){return this._focal},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullPano",{get:function(){return null!=this._gpano&&0===this._gpano.CroppedAreaLeftPixels&&0===this._gpano.CroppedAreaTopPixels&&this._gpano.CroppedAreaImageWidthPixels===this._gpano.FullPanoWidthPixels&&this._gpano.CroppedAreaImageHeightPixels===this._gpano.FullPanoHeightPixels},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gpano",{get:function(){return this._gpano},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this._height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orientation",{get:function(){return this._orientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rt",{get:function(){return this._rt},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"srt",{get:function(){return this._srt},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scale",{get:function(){return this._scale},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasValidScale",{get:function(){return this._scale>.01&&this._scale<50},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this._width},enumerable:!0,configurable:!0}),e.prototype.upVector=function(){var e=this._rt.elements;switch(this._orientation){case 1:return new n.Vector3(-e[1],-e[5],-e[9]);case 3:return new n.Vector3(e[1],e[5],e[9]);case 6:return new n.Vector3(-e[0],-e[4],-e[8]);case 8:return new n.Vector3(e[0],e[4],e[8]);default:return new n.Vector3(-e[1],-e[5],-e[9])}},e.prototype.projectorMatrix=function(){var e=this._normalizedToTextureMatrix(),t=this._focal,r=(new n.Matrix4).set(t,0,0,0,0,t,0,0,0,0,0,0,0,0,1,0);return e.multiply(r),e.multiply(this._rt),e},e.prototype.projectBasic=function(e){var t=this.projectSfM(e);return this._sfmToBasic(t)},e.prototype.unprojectBasic=function(e,t){var r=this._basicToSfm(e);return this.unprojectSfM(r,t)},e.prototype.projectSfM=function(e){var t=new n.Vector4(e[0],e[1],e[2],1);return t.applyMatrix4(this._rt),this._bearingToSfm([t.x,t.y,t.z])},e.prototype.unprojectSfM=function(e,t){var r=this._sfmToBearing(e),i=new n.Vector4(t*r[0],t*r[1],t*r[2],1);return i.applyMatrix4((new n.Matrix4).getInverse(this._rt)),[i.x/i.w,i.y/i.w,i.z/i.w]},e.prototype._sfmToBearing=function(e){if(this._fullPano()){var t=2*e[0]*Math.PI,r=2*-e[1]*Math.PI;return[s=Math.cos(r)*Math.sin(t),a=-Math.sin(r),c=Math.cos(r)*Math.cos(t)]}if(this._gpano){var i=Math.max(this.gpano.CroppedAreaImageWidthPixels,this.gpano.CroppedAreaImageHeightPixels),o=[e[0]*i+this.gpano.CroppedAreaImageWidthPixels/2+this.gpano.CroppedAreaLeftPixels,e[1]*i+this.gpano.CroppedAreaImageHeightPixels/2+this.gpano.CroppedAreaTopPixels],t=2*Math.PI*(o[0]/this.gpano.FullPanoWidthPixels-.5),r=-Math.PI*(o[1]/this.gpano.FullPanoHeightPixels-.5),s=Math.cos(r)*Math.sin(t),a=-Math.sin(r),c=Math.cos(r)*Math.cos(t);return[s,a,c]}var u=new n.Vector3(e[0],e[1],this._focal);return u.normalize(),[u.x,u.y,u.z]},e.prototype._bearingToSfm=function(e){if(this._fullPano()){var t=e[0],r=e[1],n=e[2],i=Math.atan2(t,n),o=Math.atan2(-r,Math.sqrt(t*t+n*n));return[i/(2*Math.PI),-o/(2*Math.PI)]}if(this._gpano){var t=e[0],r=e[1],n=e[2],i=Math.atan2(t,n),o=Math.atan2(-r,Math.sqrt(t*t+n*n)),s=[(i/(2*Math.PI)+.5)*this.gpano.FullPanoWidthPixels,(-o/Math.PI+.5)*this.gpano.FullPanoHeightPixels],a=Math.max(this.gpano.CroppedAreaImageWidthPixels,this.gpano.CroppedAreaImageHeightPixels);return[(s[0]-this.gpano.CroppedAreaLeftPixels-this.gpano.CroppedAreaImageWidthPixels/2)/a,(s[1]-this.gpano.CroppedAreaTopPixels-this.gpano.CroppedAreaImageHeightPixels/2)/a]}return e[2]>0?[e[0]*this._focal/e[2],e[1]*this._focal/e[2]]:[e[0]<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,e[1]<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY]},e.prototype._basicToSfm=function(e){var t,r;switch(this._orientation){case 1:t=e[0],r=e[1];break;case 3:t=1-e[0],r=1-e[1];break;case 6:t=e[1],r=1-e[0];break;case 8:t=1-e[1],r=e[0];break;default:t=e[0],r=e[1]}var n=this._width,i=this._height,o=Math.max(n,i);return[t*n/o-n/o/2,r*i/o-i/o/2]},e.prototype._sfmToBasic=function(e){var t,r,n=this._width,i=this._height,o=Math.max(n,i),s=(e[0]+n/o/2)/n*o,a=(e[1]+i/o/2)/i*o;switch(this._orientation){case 1:t=s,r=a;break;case 3:t=1-s,r=1-a;break;case 6:t=1-a,r=s;break;case 8:t=a,r=1-s;break;default:t=s,r=a}return[t,r]},e.prototype._fullPano=function(){return null!=this.gpano&&0===this.gpano.CroppedAreaLeftPixels&&0===this.gpano.CroppedAreaTopPixels&&this.gpano.CroppedAreaImageWidthPixels===this.gpano.FullPanoWidthPixels&&this.gpano.CroppedAreaImageHeightPixels===this.gpano.FullPanoHeightPixels},e.prototype._getValue=function(e,t){return null!=e&&e>0?e:t},e.prototype._getRt=function(e,t){var r=new n.Vector3(e[0],e[1],e[2]),i=r.length();i>0&&r.normalize();var o=new n.Matrix4;return o.makeRotationAxis(r,i),o.setPosition(new n.Vector3(t[0],t[1],t[2])),o},e.prototype._getSrt=function(e,t){var r=e.clone(),i=r.elements;return i[12]=t*i[12],i[13]=t*i[13],i[14]=t*i[14],r.scale(new n.Vector3(t,t,t)),r},e.prototype._normalizedToTextureMatrix=function(){var e=Math.max(this._width,this._height),t=this._orientation<5?this._textureScale[0]:this._textureScale[1],r=this._orientation<5?this._textureScale[1]:this._textureScale[0],i=e/this._width*t,o=e/this._height*r;switch(this._orientation){case 1:return(new n.Matrix4).set(i,0,0,.5,0,-o,0,.5,0,0,1,0,0,0,0,1);case 3:return(new n.Matrix4).set(-i,0,0,.5,0,o,0,.5,0,0,1,0,0,0,0,1);case 6:return(new n.Matrix4).set(0,-o,0,.5,-i,0,0,.5,0,0,1,0,0,0,0,1);case 8:return(new n.Matrix4).set(0,o,0,.5,i,0,0,.5,0,0,1,0,0,0,0,1);default:return(new n.Matrix4).set(i,0,0,.5,0,-o,0,.5,0,0,1,0,0,0,0,1)}},e}();r.Transform=i},{three:240}],394:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=function(){function e(){this._unprojectDepth=200}return e.prototype.basicToCanvas=function(e,t,r,n,i){var o=n.unprojectBasic([e,t],this._unprojectDepth);return this.projectToCanvas(o,r,i)},e.prototype.basicToCanvasSafe=function(e,t,r,n,i){var o=n.unprojectBasic([e,t],this._unprojectDepth),s=this.worldToCamera(o,i);if(s[2]>0)return null;var a=this.cameraToViewport(s,i),c=a[0],u=a[1];return this.viewportToCanvas(c,u,r)},e.prototype.basicToViewport=function(e,t,r,n){var i=r.unprojectBasic([e,t],this._unprojectDepth);return this.projectToViewport(i,n)},e.prototype.cameraToViewport=function(e,t){var r=(new n.Vector3).fromArray(e).applyMatrix4(t.projectionMatrix);return[r.x,r.y]},e.prototype.canvasPosition=function(e,t){var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]},e.prototype.canvasToBasic=function(e,t,r,n,i){var o=this.unprojectFromCanvas(e,t,r,i).toArray();return n.projectBasic(o)},e.prototype.canvasToViewport=function(e,t,r){var n=this.containerToCanvas(r);return[2*e/n[0]-1,1-2*t/n[1]]},e.prototype.containerToCanvas=function(e){return[e.offsetWidth,e.offsetHeight]},e.prototype.getBasicDistances=function(e,t){var r=this.viewportToBasic(-1,1,e,t),n=this.viewportToBasic(1,1,e,t),i=this.viewportToBasic(1,-1,e,t),o=this.viewportToBasic(-1,-1,e,t),s=0,a=0,c=0,u=0;return r[1]<0&&n[1]<0&&(s=r[1]>n[1]?-r[1]:-n[1]),n[0]>1&&i[0]>1&&(a=n[0]<i[0]?n[0]-1:i[0]-1),i[1]>1&&o[1]>1&&(c=i[1]<o[1]?i[1]-1:o[1]-1),o[0]<0&&r[0]<0&&(u=o[0]>r[0]?-o[0]:-r[0]),[s,a,c,u]},e.prototype.getPixelDistances=function(e,t,r){var n=this.viewportToBasic(-1,1,t,r),i=this.viewportToBasic(1,1,t,r),o=this.viewportToBasic(1,-1,t,r),s=this.viewportToBasic(-1,-1,t,r),a=0,c=0,u=0,h=0,l=this.containerToCanvas(e),p=l[0],f=l[1];if(n[1]<0&&i[1]<0){d=n[1]>i[1]?n[0]:i[0];a=(v=this.basicToCanvas(d,0,e,t,r))[1]>0?v[1]:0}if(i[0]>1&&o[0]>1){m=i[0]<o[0]?i[1]:o[1];c=(v=this.basicToCanvas(1,m,e,t,r))[0]<p?p-v[0]:0}if(o[1]>1&&s[1]>1){var d=o[1]<s[1]?o[0]:s[0];u=(v=this.basicToCanvas(d,1,e,t,r))[1]<f?f-v[1]:0}if(s[0]<0&&n[0]<0){var m=s[0]>n[0]?s[1]:n[1],v=this.basicToCanvas(0,m,e,t,r);h=v[0]>0?v[0]:0}return[a,c,u,h]},e.prototype.insideElement=function(e,t){var r=t.getBoundingClientRect(),n=r.left+t.clientLeft,i=n+t.clientWidth,o=r.top+t.clientTop,s=o+t.clientHeight;return e.clientX>n&&e.clientX<i&&e.clientY>o&&e.clientY<s},e.prototype.projectToCanvas=function(e,t,r){var n=this.projectToViewport(e,r);return this.viewportToCanvas(n[0],n[1],t)},e.prototype.projectToViewport=function(e,t){var r=new n.Vector3(e[0],e[1],e[2]).project(t);return[r.x,r.y]},e.prototype.unprojectFromCanvas=function(e,t,r,n){var i=this.canvasToViewport(e,t,r);return this.unprojectFromViewport(i[0],i[1],n)},e.prototype.unprojectFromViewport=function(e,t,r){return new n.Vector3(e,t,1).unproject(r)},e.prototype.viewportToBasic=function(e,t,r,i){var o=new n.Vector3(e,t,1).unproject(i).toArray();return r.projectBasic(o)},e.prototype.viewportToCanvas=function(e,t,r){var n=this.containerToCanvas(r);return[n[0]*(e+1)/2,-n[1]*(t-1)/2]},e.prototype.worldToCamera=function(e,t){return new n.Vector3(e[0],e[1],e[2]).applyMatrix4(t.matrixWorldInverse).toArray()},e}();r.ViewportCoords=i,r.default=i},{three:240}],395:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){}return e.prototype.createFilter=function(e){return new Function("node","return "+this._compile(e)+";")},e.prototype._compile=function(e){if(null==e||e.length<=1)return"true";var t=e[0];return"("+("=="===t?this._compileComparisonOp("===",e[1],e[2],!1):"!="===t?this._compileComparisonOp("!==",e[1],e[2],!1):">"===t||">="===t||"<"===t||"<="===t?this._compileComparisonOp(t,e[1],e[2],!0):"in"===t?this._compileInOp(e[1],e.slice(2)):"!in"===t?this._compileNegation(this._compileInOp(e[1],e.slice(2))):"all"===t?this._compileLogicalOp(e.slice(1),"&&"):"true")+")"},e.prototype._compare=function(e,t){return e<t?-1:e>t?1:0},e.prototype._compileComparisonOp=function(e,t,r,n){var i=this._compilePropertyReference(t),o=JSON.stringify(r);return(n?"typeof "+i+"===typeof "+o+"&&":"")+i+e+o},e.prototype._compileInOp=function(e,t){var r=this._compare;return JSON.stringify(t.sort(r))+".indexOf("+this._compilePropertyReference(e)+")!==-1"},e.prototype._compileLogicalOp=function(e,t){var r=this._compile.bind(this);return e.map(r).join(t)},e.prototype._compileNegation=function(e){return"!("+e+")"},e.prototype._compilePropertyReference=function(e){return"node["+JSON.stringify(e)+"]"},e}();r.FilterCreator=n,r.default=n},{}],396:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rbush"),i=e("rxjs/Observable"),o=e("rxjs/Subject"),s=e("../Edge"),a=e("../Error"),c=e("../Graph"),u=function(){function e(e,t,r,i,a,u){this._apiV3=e,this._cachedNodes={},this._cachedNodeTiles={},this._cachedSequenceNodes={},this._cachedSpatialEdges={},this._cachedTiles={},this._cachingFill$={},this._cachingFull$={},this._cachingSequenceNodes$={},this._cachingSequences$={},this._cachingSpatialArea$={},this._cachingTiles$={},this._changed$=new o.Subject,this._defaultAlt=2,this._edgeCalculator=null!=i?i:new s.EdgeCalculator,this._filterCreator=null!=a?a:new c.FilterCreator,this._filter=this._filterCreator.createFilter(void 0),this._graphCalculator=null!=r?r:new c.GraphCalculator,this._configuration=null!=u?u:{maxSequences:50,maxUnusedNodes:100,maxUnusedPreStoredNodes:30,maxUnusedTiles:20},this._nodes={},this._nodeIndex=null!=t?t:n(16,[".lat",".lon",".lat",".lon"]),this._nodeIndexTiles={},this._nodeToTile={},this._preStored={},this._requiredNodeTiles={},this._requiredSpatialArea={},this._sequences={},this._tilePrecision=7,this._tileThreshold=20}return Object.defineProperty(e.prototype,"changed$",{get:function(){return this._changed$},enumerable:!0,configurable:!0}),e.prototype.cacheBoundingBox$=function(e,t){var r=this,n=this._graphCalculator.encodeHsFromBoundingBox(e,t).filter(function(e){return!(e in r._cachedTiles)}).map(function(e){return e in r._cachingTiles$?r._cachingTiles$[e]:r._cacheTile$(e)});return 0===n.length&&n.push(i.Observable.of(this)),i.Observable.from(n).mergeAll().last().mergeMap(function(n){for(var o=[],s=[],a=0,c=r._nodeIndex.search({maxX:t.lat,maxY:t.lon,minX:e.lat,minY:e.lon}).map(function(e){return e.node});a<c.length;a++){var u=c[a];u.full?o.push(u):s.push(u.key)}for(var h=[];s.length>0;)h.push(s.splice(0,200));var l=i.Observable.of(o),p=h.map(function(e){return r._apiV3.imageByKeyFill$(e).map(function(e){var t=[];for(var n in e)if(e.hasOwnProperty(n)&&r.hasNode(n)){var i=r.getNode(n);i.full||r._makeFull(i,e[n]),t.push(i)}return t})});return i.Observable.merge(l,i.Observable.from(p).mergeAll())}).reduce(function(e,t){return e.concat(t)})},e.prototype.cacheFill$=function(e){var t=this;if(e in this._cachingFull$)throw new a.GraphMapillaryError("Cannot fill node while caching full ("+e+").");if(!this.hasNode(e))throw new a.GraphMapillaryError("Cannot fill node that does not exist in graph ("+e+").");if(e in this._cachingFill$)return this._cachingFill$[e];var r=this.getNode(e);if(r.full)throw new a.GraphMapillaryError("Cannot fill node that is already full ("+e+").");return this._cachingFill$[e]=this._apiV3.imageByKeyFill$([e]).do(function(n){r.full||t._makeFull(r,n[e]),delete t._cachingFill$[e]}).map(function(e){return t}).finally(function(){e in t._cachingFill$&&delete t._cachingFill$[e],t._changed$.next(t)}).publish().refCount(),this._cachingFill$[e]},e.prototype.cacheFull$=function(e){var t=this;if(e in this._cachingFull$)return this._cachingFull$[e];if(this.hasNode(e))throw new a.GraphMapillaryError("Cannot cache full node that already exist in graph ("+e+").");return this._cachingFull$[e]=this._apiV3.imageByKeyFull$([e]).do(function(r){var n=r[e];if(t.hasNode(e)){(i=t.getNode(e)).full||t._makeFull(i,n)}else{if(null==n.sequence_key)throw new a.GraphMapillaryError("Node has no sequence key ("+e+").");var i=new c.Node(n);t._makeFull(i,n);var o=t._graphCalculator.encodeH(i.originalLatLon,t._tilePrecision);t._preStore(o,i),t._setNode(i),delete t._cachingFull$[e]}}).map(function(e){return t}).finally(function(){e in t._cachingFull$&&delete t._cachingFull$[e],t._changed$.next(t)}).publish().refCount(),this._cachingFull$[e]},e.prototype.cacheNodeSequence$=function(e){if(!this.hasNode(e))throw new a.GraphMapillaryError("Cannot cache sequence edges of node that does not exist in graph ("+e+").");var t=this.getNode(e);if(t.sequenceKey in this._sequences)throw new a.GraphMapillaryError("Sequence already cached ("+e+"), ("+t.sequenceKey+").");return this._cacheSequence$(t.sequenceKey)},e.prototype.cacheSequence$=function(e){if(e in this._sequences)throw new a.GraphMapillaryError("Sequence already cached ("+e+")");return this._cacheSequence$(e)},e.prototype.cacheSequenceEdges=function(e){var t=this.getNode(e);if(!(t.sequenceKey in this._sequences))throw new a.GraphMapillaryError("Sequence is not cached ("+e+"), ("+t.sequenceKey+")");var r=this._sequences[t.sequenceKey].sequence,n=this._edgeCalculator.computeSequenceEdges(t,r);t.cacheSequenceEdges(n)},e.prototype.cacheSequenceNodes$=function(e,t){var r=this;if(!this.hasSequence(e))throw new a.GraphMapillaryError("Cannot cache sequence nodes of sequence that does not exist in graph ("+e+").");if(this.hasSequenceNodes(e))throw new a.GraphMapillaryError("Sequence nodes already cached ("+e+").");var n=this.getSequence(e);if(n.key in this._cachingSequenceNodes$)return this._cachingSequenceNodes$[n.key];var o=[],s=n.keys.slice();if(t&&s.length>50){var u=s.indexOf(t),h=Math.max(0,Math.min(u-25,s.length-50));o.push(s.splice(h,50))}for(;s.length>0;)o.push(s.splice(0,200));var l=o.length,p=i.Observable.from(o).mergeMap(function(e){return r._apiV3.imageByKeyFull$(e).do(function(e){for(var t in e)if(e.hasOwnProperty(t)){var n=e[t];if(r.hasNode(t)){(i=r.getNode(n.key)).full||r._makeFull(i,n)}else{null==n.sequence_key&&console.warn("Sequence missing, discarding node ("+n.key+")");var i=new c.Node(n);r._makeFull(i,n);var o=r._graphCalculator.encodeH(i.originalLatLon,r._tilePrecision);r._preStore(o,i),r._setNode(i)}}l--}).map(function(e){return r})},6).last().finally(function(){delete r._cachingSequenceNodes$[n.key],0===l&&(r._cachedSequenceNodes[n.key]=!0)}).publish().refCount();return this._cachingSequenceNodes$[n.key]=p,p},e.prototype.cacheSpatialArea$=function(e){var t=this;if(!this.hasNode(e))throw new a.GraphMapillaryError("Cannot cache spatial area of node that does not exist in graph ("+e+").");if(e in this._cachedSpatialEdges)throw new a.GraphMapillaryError("Node already spatially cached ("+e+").");if(!(e in this._requiredSpatialArea))throw new a.GraphMapillaryError("Spatial area not determined ("+e+").");var r=this._requiredSpatialArea[e];if(0===Object.keys(r.cacheNodes).length)throw new a.GraphMapillaryError("Spatial nodes already cached ("+e+").");if(e in this._cachingSpatialArea$)return this._cachingSpatialArea$[e];for(var n=[];r.cacheKeys.length>0;)n.push(r.cacheKeys.splice(0,200));for(var i=n.length,o=[],s=function(n){var s=c._apiV3.imageByKeyFill$(n).do(function(n){for(var o in n)if(n.hasOwnProperty(o)){var s=r.cacheNodes[o];if(s.full)delete r.cacheNodes[o];else{var a=n[o];t._makeFull(s,a),delete r.cacheNodes[o]}}0==--i&&delete t._cachingSpatialArea$[e]}).map(function(e){return t}).catch(function(o){for(var s=0,a=n;s<a.length;s++){var c=a[s];c in r.all&&delete r.all[c],c in r.cacheNodes&&delete r.cacheNodes[c]}throw 0==--i&&delete t._cachingSpatialArea$[e],o}).finally(function(){0===Object.keys(r.cacheNodes).length&&t._changed$.next(t)}).publish().refCount();o.push(s)},c=this,u=0,h=n;u<h.length;u++){s(h[u])}return this._cachingSpatialArea$[e]=o,o},e.prototype.cacheSpatialEdges=function(e){if(e in this._cachedSpatialEdges)throw new a.GraphMapillaryError("Spatial edges already cached ("+e+").");var t=this.getNode(e),r=this._sequences[t.sequenceKey].sequence,n=[],i=r.findPrevKey(t.key);null!=i&&n.push(i);var o=r.findNextKey(t.key);null!=o&&n.push(o);var s=this._requiredSpatialArea[e].all,c=[],u=this._filter;for(var h in s)if(s.hasOwnProperty(h)){var l=s[h];u(l)&&c.push(l)}var p=this._edgeCalculator.getPotentialEdges(t,c,n),f=this._edgeCalculator.computeStepEdges(t,p,i,o);f=(f=(f=(f=f.concat(this._edgeCalculator.computeTurnEdges(t,p))).concat(this._edgeCalculator.computePanoEdges(t,p))).concat(this._edgeCalculator.computePerspectiveToPanoEdges(t,p))).concat(this._edgeCalculator.computeSimilarEdges(t,p)),t.cacheSpatialEdges(f),this._cachedSpatialEdges[e]=t,delete this._requiredSpatialArea[e],delete this._cachedNodeTiles[e]},e.prototype.cacheTiles$=function(e){var t=this;if(e in this._cachedNodeTiles)throw new a.GraphMapillaryError("Tiles already cached ("+e+").");if(e in this._cachedSpatialEdges)throw new a.GraphMapillaryError("Spatial edges already cached so tiles considered cached ("+e+").");if(!(e in this._requiredNodeTiles))throw new a.GraphMapillaryError("Tiles have not been determined ("+e+").");var r=this._requiredNodeTiles[e];if(0===r.cache.length&&0===r.caching.length)throw new a.GraphMapillaryError("Tiles already cached ("+e+").");if(!this.hasNode(e))throw new a.GraphMapillaryError("Cannot cache tiles of node that does not exist in graph ("+e+").");var n=r.cache.slice();r.caching=this._requiredNodeTiles[e].caching.concat(n),r.cache=[];for(var i=[],o=function(n){var o=n in s._cachingTiles$?s._cachingTiles$[n]:s._cacheTile$(n);i.push(o.do(function(i){var o=r.caching.indexOf(n);o>-1&&r.caching.splice(o,1),0===r.caching.length&&0===r.cache.length&&(delete t._requiredNodeTiles[e],t._cachedNodeTiles[e]=!0)}).catch(function(i){var o=r.caching.indexOf(n);throw o>-1&&r.caching.splice(o,1),0===r.caching.length&&0===r.cache.length&&(delete t._requiredNodeTiles[e],t._cachedNodeTiles[e]=!0),i}).finally(function(){t._changed$.next(t)}).publish().refCount())},s=this,c=0,u=r.caching;c<u.length;c++){o(u[c])}return i},e.prototype.initializeCache=function(e){if(e in this._cachedNodes)throw new a.GraphMapillaryError("Node already in cache ("+e+").");var t=this.getNode(e);t.initializeCache(new c.NodeCache);var r=(new Date).getTime();this._cachedNodes[e]={accessed:r,node:t},this._updateCachedTileAccess(e,r)},e.prototype.isCachingFill=function(e){return e in this._cachingFill$},e.prototype.isCachingFull=function(e){return e in this._cachingFull$},e.prototype.isCachingNodeSequence=function(e){return this.getNode(e).sequenceKey in this._cachingSequences$},e.prototype.isCachingSequence=function(e){return e in this._cachingSequences$},e.prototype.isCachingSequenceNodes=function(e){return e in this._cachingSequenceNodes$},e.prototype.isCachingTiles=function(e){return e in this._requiredNodeTiles&&0===this._requiredNodeTiles[e].cache.length&&this._requiredNodeTiles[e].caching.length>0},e.prototype.hasInitializedCache=function(e){return e in this._cachedNodes},e.prototype.hasNode=function(e){var t=(new Date).getTime();return this._updateCachedNodeAccess(e,t),this._updateCachedTileAccess(e,t),e in this._nodes},e.prototype.hasNodeSequence=function(e){var t=this.getNode(e).sequenceKey,r=t in this._sequences;return r&&(this._sequences[t].accessed=(new Date).getTime()),r},e.prototype.hasSequence=function(e){var t=e in this._sequences;return t&&(this._sequences[e].accessed=(new Date).getTime()),t},e.prototype.hasSequenceNodes=function(e){return e in this._cachedSequenceNodes},e.prototype.hasSpatialArea=function(e){if(!this.hasNode(e))throw new a.GraphMapillaryError("Spatial area nodes cannot be determined if node not in graph ("+e+").");if(e in this._cachedSpatialEdges)return!0;if(e in this._requiredSpatialArea)return 0===Object.keys(this._requiredSpatialArea[e].cacheNodes).length;for(var t=this.getNode(e),r=this._graphCalculator.boundingBoxCorners(t.latLon,this._tileThreshold),n={all:{},cacheKeys:[],cacheNodes:{}},i=0,o=this._nodeIndex.search({maxX:r[1].lat,maxY:r[1].lon,minX:r[0].lat,minY:r[0].lon});i<o.length;i++){var s=o[i];n.all[s.node.key]=s.node,s.node.full||(n.cacheKeys.push(s.node.key),n.cacheNodes[s.node.key]=s.node)}return this._requiredSpatialArea[e]=n,0===n.cacheKeys.length},e.prototype.hasTiles=function(e){var t=this;if(e in this._cachedNodeTiles)return!0;if(e in this._cachedSpatialEdges)return!0;if(!this.hasNode(e))throw new a.GraphMapillaryError("Node does not exist in graph ("+e+").");var r={cache:[],caching:[]};if(e in this._requiredNodeTiles)r=this._requiredNodeTiles[e];else{var n=this.getNode(e);r.cache=this._graphCalculator.encodeHs(n.latLon,this._tilePrecision,this._tileThreshold).filter(function(e){return!(e in t._cachedTiles)}),r.cache.length>0&&(this._requiredNodeTiles[e]=r)}return 0===r.cache.length&&0===r.caching.length},e.prototype.getNode=function(e){var t=(new Date).getTime();return this._updateCachedNodeAccess(e,t),this._updateCachedTileAccess(e,t),this._nodes[e]},e.prototype.getSequence=function(e){var t=this._sequences[e];return t.accessed=(new Date).getTime(),t.sequence},e.prototype.resetSpatialEdges=function(){for(var e=0,t=Object.keys(this._cachedSpatialEdges);e<t.length;e++){var r=t[e];this._cachedSpatialEdges[r].resetSpatialEdges(),delete this._cachedSpatialEdges[r]}},e.prototype.reset=function(e){for(var t=[],r=0,n=e;r<n.length;r++){var i=n[r];if(!this.hasNode(i))throw new Error("Node does not exist "+i);(h=this.getNode(i)).resetSequenceEdges(),h.resetSpatialEdges(),t.push(h)}for(var o=0,s=Object.keys(this._cachedNodes);o<s.length;o++){var a=s[o];-1===e.indexOf(a)&&(this._cachedNodes[a].node.dispose(),delete this._cachedNodes[a])}this._cachedNodeTiles={},this._cachedSpatialEdges={},this._cachedTiles={},this._cachingFill$={},this._cachingFull$={},this._cachingSequences$={},this._cachingSpatialArea$={},this._cachingTiles$={},this._nodes={},this._nodeToTile={},this._preStored={};for(var c=0,u=t;c<u.length;c++){var h=u[c];this._nodes[h.key]=h;var l=this._graphCalculator.encodeH(h.originalLatLon,this._tilePrecision);this._preStore(l,h)}this._requiredNodeTiles={},this._requiredSpatialArea={},this._sequences={},this._nodeIndexTiles={},this._nodeIndex.clear()},e.prototype.setFilter=function(e){this._filter=this._filterCreator.createFilter(e)},e.prototype.uncache=function(e,t){var r={};this._addNewKeys(r,this._cachingFull$),this._addNewKeys(r,this._cachingFill$),this._addNewKeys(r,this._cachingSpatialArea$),this._addNewKeys(r,this._requiredNodeTiles),this._addNewKeys(r,this._requiredSpatialArea);for(var n=0,i=e;n<i.length;n++){(s=i[n])in r||(r[s]=!0)}var o={};for(var s in r)if(r.hasOwnProperty(s))for(var a=this._nodes[s],c=0,u=this._graphCalculator.encodeHs(a.latLon);c<u.length;c++){var h=u[c];h in o||(o[h]=!0)}var l=[];for(var p in this._cachedTiles)!this._cachedTiles.hasOwnProperty(p)||p in o||l.push([p,this._cachedTiles[p]]);for(var f=0,d=l.sort(function(e,t){return t[1].accessed-e[1].accessed}).slice(this._configuration.maxUnusedTiles).map(function(e){return e[0]});f<d.length;f++){var m=d[f];this._uncacheTile(m,t)}var v=[],g=[];for(var p in this._preStored)if(this._preStored.hasOwnProperty(p)&&!(p in this._cachingTiles$)){var y=this._preStored[p];for(var s in y)!y.hasOwnProperty(s)||s in r||y[s].sequenceKey!==t&&(s in this._cachedNodes?v.push([this._cachedNodes[s],p]):g.push([s,p]))}var b=v.sort(function(e,t){var r=e[0],n=(e[1],t[0]);t[1];return n.accessed-r.accessed}).slice(this._configuration.maxUnusedPreStoredNodes).map(function(e){var t=e[0],r=e[1];return[t.node.key,r]});this._uncachePreStored(g),this._uncachePreStored(b);var _=[];for(var s in this._cachedNodes)!this._cachedNodes.hasOwnProperty(s)||s in r||_.push(this._cachedNodes[s]);for(var x=0,w=_.sort(function(e,t){return t.accessed-e.accessed}).slice(this._configuration.maxUnusedNodes);x<w.length;x++){var S=w[x];S.node.uncache();s=S.node.key;delete this._cachedNodes[s],s in this._cachedNodeTiles&&delete this._cachedNodeTiles[s],s in this._cachedSpatialEdges&&delete this._cachedSpatialEdges[s]}var M=[];for(var E in this._sequences)!this._sequences.hasOwnProperty(E)||E in this._cachingSequences$||E===t||M.push(this._sequences[E]);for(var C=0,T=M.sort(function(e,t){return t.accessed-e.accessed}).slice(this._configuration.maxSequences);C<T.length;C++){var O=T[C],E=O.sequence.key;delete this._sequences[E],E in this._cachedSequenceNodes&&delete this._cachedSequenceNodes[E],O.sequence.dispose()}},e.prototype._addNewKeys=function(e,t){for(var r in t)t.hasOwnProperty(r)&&this.hasNode(r)&&(r in e||(e[r]=!0))},e.prototype._cacheSequence$=function(e){var t=this;return e in this._cachingSequences$?this._cachingSequences$[e]:(this._cachingSequences$[e]=this._apiV3.sequenceByKey$([e]).do(function(r){e in t._sequences||(t._sequences[e]={accessed:(new Date).getTime(),sequence:new c.Sequence(r[e])}),delete t._cachingSequences$[e]}).map(function(e){return t}).finally(function(){e in t._cachingSequences$&&delete t._cachingSequences$[e],t._changed$.next(t)}).publish().refCount(),this._cachingSequences$[e])},e.prototype._cacheTile$=function(e){var t=this;return this._cachingTiles$[e]=this._apiV3.imagesByH$([e]).do(function(r){var n=r[e];if(!(e in t._cachedTiles)){t._nodeIndexTiles[e]=[],t._cachedTiles[e]={accessed:(new Date).getTime(),nodes:[]};var i=t._cachedTiles[e].nodes,o=t._removeFromPreStore(e);for(var s in n)if(n.hasOwnProperty(s)){var a=n[s];if(null==a)break;if(null!=a.sequence_key)if(null!=o&&a.key in o){var u=o[a.key];delete o[a.key],i.push(u);var h={lat:u.latLon.lat,lon:u.latLon.lon,node:u};t._nodeIndex.insert(h),t._nodeIndexTiles[e].push(h),t._nodeToTile[u.key]=e}else{var l=new c.Node(a);i.push(l);var p={lat:l.latLon.lat,lon:l.latLon.lon,node:l};t._nodeIndex.insert(p),t._nodeIndexTiles[e].push(p),t._nodeToTile[l.key]=e,t._setNode(l)}else console.warn("Sequence missing, discarding node ("+a.key+")")}delete t._cachingTiles$[e]}}).map(function(e){return t}).catch(function(r){throw delete t._cachingTiles$[e],r}).publish().refCount(),this._cachingTiles$[e]},e.prototype._makeFull=function(e,t){null==t.calt&&(t.calt=this._defaultAlt),null==t.c_rotation&&(t.c_rotation=this._graphCalculator.rotationFromCompass(t.ca,t.orientation)),e.makeFull(t)},e.prototype._preStore=function(e,t){e in this._preStored||(this._preStored[e]={}),this._preStored[e][t.key]=t},e.prototype._removeFromPreStore=function(e){var t=null;return e in this._preStored&&(t=this._preStored[e],delete this._preStored[e]),t},e.prototype._setNode=function(e){var t=e.key;if(this.hasNode(t))throw new a.GraphMapillaryError("Node already exist ("+t+").");this._nodes[t]=e},e.prototype._uncacheTile=function(e,t){for(var r=0,n=this._cachedTiles[e].nodes;r<n.length;r++){var i=n[r],o=i.key;delete this._nodeToTile[o],o in this._cachedNodes&&delete this._cachedNodes[o],o in this._cachedNodeTiles&&delete this._cachedNodeTiles[o],o in this._cachedSpatialEdges&&delete this._cachedSpatialEdges[o],i.sequenceKey===t?(this._preStore(e,i),i.uncache()):(delete this._nodes[o],i.sequenceKey in this._cachedSequenceNodes&&delete this._cachedSequenceNodes[i.sequenceKey],i.dispose())}for(var s=0,a=this._nodeIndexTiles[e];s<a.length;s++){var c=a[s];this._nodeIndex.remove(c)}delete this._nodeIndexTiles[e],delete this._cachedTiles[e]},e.prototype._uncachePreStored=function(e){for(var t={},r=0,n=e;r<n.length;r++){var i=n[r],o=i[0],s=i[1];o in this._nodes&&delete this._nodes[o],o in this._cachedNodes&&delete this._cachedNodes[o];var a=this._preStored[s][o];a.sequenceKey in this._cachedSequenceNodes&&delete this._cachedSequenceNodes[a.sequenceKey],delete this._preStored[s][o],a.dispose(),t[s]=!0}for(var s in t)t.hasOwnProperty(s)&&0===Object.keys(this._preStored[s]).length&&delete this._preStored[s]},e.prototype._updateCachedTileAccess=function(e,t){e in this._nodeToTile&&(this._cachedTiles[this._nodeToTile[e]].accessed=t)},e.prototype._updateCachedNodeAccess=function(e,t){e in this._cachedNodes&&(this._cachedNodes[e].accessed=t)},e}();r.Graph=u,r.default=u},{"../Edge":291,"../Error":292,"../Graph":294,rbush:25,"rxjs/Observable":29,"rxjs/Subject":34}],397:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("latlon-geohash"),i=e("three"),o=e("../Error"),s=e("../Geo"),a=function(){function e(){}return e.n="n",e.nw="nw",e.w="w",e.sw="sw",e.s="s",e.se="se",e.e="e",e.ne="ne",e}(),c=function(){function e(e){this._geoCoords=null!=e?e:new s.GeoCoords}return e.prototype.encodeH=function(e,t){return void 0===t&&(t=7),n.encode(e.lat,e.lon,t)},e.prototype.encodeHs=function(e,t,r){void 0===t&&(t=7),void 0===r&&(r=20);var i=n.encode(e.lat,e.lon,t),o=n.bounds(i),s=o.ne,c=o.sw,u=n.neighbours(i),h=[0,0,0],l=this._geoCoords.geodeticToEnu(s.lat,s.lon,0,c.lat,c.lon,0),p=this._geoCoords.geodeticToEnu(e.lat,e.lon,0,c.lat,c.lon,0),f=p[0]-h[0]<r,d=l[0]-p[0]<r,m=p[1]-h[1]<r,v=l[1]-p[1]<r,g=[i];return v&&g.push(u[a.n]),v&&f&&g.push(u[a.nw]),f&&g.push(u[a.w]),f&&m&&g.push(u[a.sw]),m&&g.push(u[a.s]),m&&d&&g.push(u[a.se]),d&&g.push(u[a.e]),d&&v&&g.push(u[a.ne]),g},e.prototype.encodeHsFromBoundingBox=function(e,t,r){if(void 0===r&&(r=7),t.lat<=e.lat||t.lon<=e.lon)throw new o.GraphMapillaryError("North east needs to be top right of south west");var n=(e.lat+t.lat)/2,i=(e.lon+t.lon)/2,s=this._geoCoords.geodeticToEnu(t.lat,t.lon,0,n,i,0),a=Math.max(s[0],s[1]);return this.encodeHs({lat:n,lon:i},r,a)},e.prototype.boundingBoxCorners=function(e,t){var r=this._geoCoords.enuToGeodetic(-t,-t,0,e.lat,e.lon,0),n=this._geoCoords.enuToGeodetic(t,t,0,e.lat,e.lon,0);return[{lat:r[0],lon:r[1]},{lat:n[0],lon:n[1]}]},e.prototype.rotationFromCompass=function(e,t){var r=0,n=0,o=0;switch(t){case 1:r=Math.PI/2;break;case 3:r=-Math.PI/2,o=Math.PI;break;case 6:n=-Math.PI/2,o=-Math.PI/2;break;case 8:n=Math.PI/2,o=Math.PI/2}var s=(new i.Matrix4).makeRotationZ(o),a=new i.Euler(r,n,e*Math.PI/180,"XYZ"),c=(new i.Matrix4).makeRotationFromEuler(a),u=(new i.Vector4).setAxisAngleFromRotationMatrix(c.multiply(s));return u.multiplyScalar(u.w).toArray().slice(0,3)},e}();r.GraphCalculator=c,r.default=c},{"../Error":292,"../Geo":293,"latlon-geohash":21,three:240}],398:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Sequence=0]="Sequence",e[e.Spatial=1]="Spatial"}(n=r.GraphMode||(r.GraphMode={})),r.default=n},{}],399:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=e("rxjs/Subject"),o=e("../Graph"),s=function(){function e(e,t){this._graph$=n.Observable.of(e).concat(e.changed$).publishReplay(1).refCount(),this._graph$.subscribe(function(){}),this._graphMode=o.GraphMode.Spatial,this._graphModeSubject$=new i.Subject,this._graphMode$=this._graphModeSubject$.startWith(this._graphMode).publishReplay(1).refCount(),this._graphMode$.subscribe(function(){}),this._imageLoadingService=t,this._firstGraphSubjects$=[],this._initializeCacheSubscriptions=[],this._sequenceSubscriptions=[],this._spatialSubscriptions=[]}return Object.defineProperty(e.prototype,"graphMode$",{get:function(){return this._graphMode$},enumerable:!0,configurable:!0}),e.prototype.cacheBoundingBox$=function(e,t){return this._graph$.first().mergeMap(function(r){return r.cacheBoundingBox$(e,t)})},e.prototype.cacheNode$=function(e){var t=this,r=new i.Subject;this._firstGraphSubjects$.push(r);var s=r.publishReplay(1).refCount(),a=s.map(function(t){return t.getNode(e)}).mergeMap(function(e){return e.assetsCached?n.Observable.of(e):e.cacheAssets$()}).publishReplay(1).refCount();a.subscribe(function(e){t._imageLoadingService.loadnode$.next(e)},function(t){console.error("Failed to cache node ("+e+")",t)});var c=this._graph$.first().mergeMap(function(t){return t.isCachingFull(e)||!t.hasNode(e)?t.cacheFull$(e):t.isCachingFill(e)||!t.getNode(e).full?t.cacheFill$(e):n.Observable.of(t)}).do(function(t){t.hasInitializedCache(e)||t.initializeCache(e)}).finally(function(){null!=c&&(t._removeFromArray(c,t._initializeCacheSubscriptions),t._removeFromArray(r,t._firstGraphSubjects$))}).subscribe(function(e){r.next(e),r.complete()},function(e){r.error(e)});c.closed||this._initializeCacheSubscriptions.push(c);var u=s.mergeMap(function(t){return t.isCachingNodeSequence(e)||!t.hasNodeSequence(e)?t.cacheNodeSequence$(e):n.Observable.of(t)}).publishReplay(1).refCount().do(function(t){t.getNode(e).sequenceEdges.cached||t.cacheSequenceEdges(e)}).finally(function(){null!=u&&t._removeFromArray(u,t._sequenceSubscriptions)}).subscribe(function(e){},function(t){console.error("Failed to cache sequence edges ("+e+").",t)});if(u.closed||this._sequenceSubscriptions.push(u),this._graphMode===o.GraphMode.Spatial){var h=s.expand(function(t){return t.hasTiles(e)?n.Observable.empty():n.Observable.from(t.cacheTiles$(e)).mergeMap(function(t){return t.mergeMap(function(t){return t.isCachingTiles(e)?n.Observable.empty():n.Observable.of(t)}).catch(function(t,r){return console.error("Failed to cache tile data ("+e+").",t),n.Observable.empty()})})}).last().mergeMap(function(t){return t.hasSpatialArea(e)?n.Observable.of(t):n.Observable.from(t.cacheSpatialArea$(e)).mergeMap(function(t){return t.catch(function(t,r){return console.error("Failed to cache spatial nodes ("+e+").",t),n.Observable.empty()})})}).last().mergeMap(function(t){return t.hasNodeSequence(e)?n.Observable.of(t):t.cacheNodeSequence$(e)}).do(function(t){t.getNode(e).spatialEdges.cached||t.cacheSpatialEdges(e)}).finally(function(){null!=h&&t._removeFromArray(h,t._spatialSubscriptions)}).subscribe(function(e){},function(t){console.error("Failed to cache spatial edges ("+e+").",t)});h.closed||this._spatialSubscriptions.push(h)}return a.first(function(e){return e.assetsCached})},e.prototype.cacheSequence$=function(e){return this._graph$.first().mergeMap(function(t){return t.isCachingSequence(e)||!t.hasSequence(e)?t.cacheSequence$(e):n.Observable.of(t)}).map(function(t){return t.getSequence(e)})},e.prototype.cacheSequenceNodes$=function(e,t){return this._graph$.first().mergeMap(function(t){return t.isCachingSequence(e)||!t.hasSequence(e)?t.cacheSequence$(e):n.Observable.of(t)}).mergeMap(function(r){return r.isCachingSequenceNodes(e)||!r.hasSequenceNodes(e)?r.cacheSequenceNodes$(e,t):n.Observable.of(r)}).map(function(t){return t.getSequence(e)})},e.prototype.setFilter$=function(e){return this._resetSubscriptions(this._spatialSubscriptions),this._graph$.first().do(function(t){t.resetSpatialEdges(),t.setFilter(e)}).map(function(e){})},e.prototype.setGraphMode=function(e){this._graphMode!==e&&(e===o.GraphMode.Sequence&&this._resetSubscriptions(this._spatialSubscriptions),this._graphMode=e,this._graphModeSubject$.next(this._graphMode))},e.prototype.reset$=function(e){return this._abortSubjects(this._firstGraphSubjects$),this._resetSubscriptions(this._initializeCacheSubscriptions),this._resetSubscriptions(this._sequenceSubscriptions),this._resetSubscriptions(this._spatialSubscriptions),this._graph$.first().do(function(t){t.reset(e)}).map(function(e){})},e.prototype.uncache$=function(e,t){return this._graph$.first().do(function(r){r.uncache(e,t)}).map(function(e){})},e.prototype._abortSubjects=function(e){for(var t=0,r=e.slice();t<r.length;t++){var n=r[t];this._removeFromArray(n,e),n.error(new Error("Cache node request was aborted."))}},e.prototype._removeFromArray=function(e,t){var r=t.indexOf(e);-1!==r&&t.splice(r,1)},e.prototype._resetSubscriptions=function(e){for(var t=0,r=e.slice();t<r.length;t++){var n=r[t];this._removeFromArray(n,e),n.closed||n.unsubscribe()}},e}();r.GraphService=s,r.default=s},{"../Graph":294,"rxjs/Observable":29,"rxjs/Subject":34}],400:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=function(){function e(){this._loadnode$=new n.Subject,this._loadstatus$=this._loadnode$.scan(function(e,t){var r=e[0],n=!1;return 0===t.loadStatus.total||t.loadStatus.loaded===t.loadStatus.total?t.key in r&&(delete r[t.key],n=!0):(r[t.key]=t.loadStatus,n=!0),[r,n]},[{},!1]).filter(function(e){e[0];return e[1]}).map(function(e){return e[0]}).publishReplay(1).refCount(),this._loadstatus$.subscribe(function(){})}return Object.defineProperty(e.prototype,"loadnode$",{get:function(){return this._loadnode$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loadstatus$",{get:function(){return this._loadstatus$},enumerable:!0,configurable:!0}),e}();r.ImageLoadingService=i},{"rxjs/Subject":34}],401:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("pbf"),i=function(){function e(){}return e.read=function(t){return new n(t).readFields(e._readMeshField,{faces:[],vertices:[]})},e._readMeshField=function(e,t,r){1===e?t.vertices.push(r.readFloat()):2===e&&t.faces.push(r.readVarint())},e}();r.MeshReader=i},{pbf:23}],402:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e){this._cache=null,this._core=e,this._fill=null}return Object.defineProperty(e.prototype,"assetsCached",{get:function(){return null!=this._core&&null!=this._fill&&null!=this._cache&&null!=this._cache.image&&null!=this._cache.mesh},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"alt",{get:function(){return this._fill.calt},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ca",{get:function(){return null!=this._fill.cca?this._fill.cca:this._fill.ca},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"capturedAt",{get:function(){return this._fill.captured_at},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cameraUuid",{get:function(){return this._fill.captured_with_camera_uuid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"computedCA",{get:function(){return this._fill.cca},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"computedLatLon",{get:function(){return this._core.cl},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"focal",{get:function(){return this._fill.cfocal},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"full",{get:function(){return null!=this._fill},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullPano",{get:function(){return null!=this._fill.gpano&&0===this._fill.gpano.CroppedAreaLeftPixels&&0===this._fill.gpano.CroppedAreaTopPixels&&this._fill.gpano.CroppedAreaImageWidthPixels===this._fill.gpano.FullPanoWidthPixels&&this._fill.gpano.CroppedAreaImageHeightPixels===this._fill.gpano.FullPanoHeightPixels},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gpano",{get:function(){return this._fill.gpano},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this._fill.height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"image",{get:function(){return this._cache.image},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"image$",{get:function(){return this._cache.image$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"key",{get:function(){return this._core.key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"latLon",{get:function(){return null!=this._core.cl?this._core.cl:this._core.l},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loadStatus",{get:function(){return this._cache.loadStatus},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"merged",{get:function(){return null!=this._fill&&null!=this._fill.merge_version&&this._fill.merge_version>0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mergeCC",{get:function(){return this._fill.merge_cc},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mergeVersion",{get:function(){return this._fill.merge_version},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mesh",{get:function(){return this._cache.mesh},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"organizationKey",{get:function(){return this._fill.organization_key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orientation",{get:function(){return this._fill.orientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"originalCA",{get:function(){return this._fill.ca},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"originalLatLon",{get:function(){return this._core.l},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pano",{get:function(){return null!=this._fill.gpano&&null!=this._fill.gpano.FullPanoWidthPixels},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"private",{get:function(){return this._fill.private},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"projectKey",{get:function(){return null!=this._fill.project?this._fill.project.key:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rotation",{get:function(){return this._fill.c_rotation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scale",{get:function(){return this._fill.atomic_scale},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sequenceKey",{get:function(){return this._core.sequence_key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sequenceEdges",{get:function(){return this._cache.sequenceEdges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sequenceEdges$",{get:function(){return this._cache.sequenceEdges$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"spatialEdges",{get:function(){return this._cache.spatialEdges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"spatialEdges$",{get:function(){return this._cache.spatialEdges$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"userKey",{get:function(){return this._fill.user.key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"username",{get:function(){return this._fill.user.username},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this._fill.width},enumerable:!0,configurable:!0}),e.prototype.cacheAssets$=function(){var e=this;return this._cache.cacheAssets$(this.key,this.pano,this.merged).map(function(t){return e})},e.prototype.cacheImage$=function(e){var t=this;return this._cache.cacheImage$(this.key,e).map(function(e){return t})},e.prototype.cacheSequenceEdges=function(e){this._cache.cacheSequenceEdges(e)},e.prototype.cacheSpatialEdges=function(e){this._cache.cacheSpatialEdges(e)},e.prototype.dispose=function(){null!=this._cache&&(this._cache.dispose(),this._cache=null),this._core=null,this._fill=null},e.prototype.initializeCache=function(e){if(null!=this._cache)throw new Error("Node cache already initialized ("+this.key+").");this._cache=e},e.prototype.makeFull=function(e){if(null==e)throw new Error("Fill can not be null.");this._fill=e},e.prototype.resetSequenceEdges=function(){this._cache.resetSequenceEdges()},e.prototype.resetSpatialEdges=function(){this._cache.resetSpatialEdges()},e.prototype.uncache=function(){null!=this._cache&&(this._cache.dispose(),this._cache=null)},e}();r.Node=n,r.default=n},{}],403:[function(e,t,r){(function(t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=e("rxjs/Observable"),o=e("../Graph"),s=e("../Utils"),a=function(){function e(){this._disposed=!1,this._image=null,this._loadStatus={loaded:0,total:0},this._mesh=null,this._sequenceEdges={cached:!1,edges:[]},this._spatialEdges={cached:!1,edges:[]},this._imageChanged$=new n.Subject,this._image$=this._imageChanged$.startWith(null).publishReplay(1).refCount(),this._iamgeSubscription=this._image$.subscribe(),this._sequenceEdgesChanged$=new n.Subject,this._sequenceEdges$=this._sequenceEdgesChanged$.startWith(this._sequenceEdges).publishReplay(1).refCount(),this._sequenceEdgesSubscription=this._sequenceEdges$.subscribe(function(){}),this._spatialEdgesChanged$=new n.Subject,this._spatialEdges$=this._spatialEdgesChanged$.startWith(this._spatialEdges).publishReplay(1).refCount(),this._spatialEdgesSubscription=this._spatialEdges$.subscribe(function(){}),this._cachingAssets$=null}return Object.defineProperty(e.prototype,"image",{get:function(){return this._image},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"image$",{get:function(){return this._image$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loadStatus",{get:function(){return this._loadStatus},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mesh",{get:function(){return this._mesh},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sequenceEdges",{get:function(){return this._sequenceEdges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sequenceEdges$",{get:function(){return this._sequenceEdges$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"spatialEdges",{get:function(){return this._spatialEdges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"spatialEdges$",{get:function(){return this._spatialEdges$},enumerable:!0,configurable:!0}),e.prototype.cacheAssets$=function(e,t,r){var n=this;if(null!=this._cachingAssets$)return this._cachingAssets$;var o=t?s.Settings.basePanoramaSize:s.Settings.baseImageSize;return this._cachingAssets$=i.Observable.combineLatest(this._cacheImage$(e,o),this._cacheMesh$(e,r),function(e,t){return n._loadStatus.loaded=0,n._loadStatus.total=0,t&&(n._mesh=t.object,n._loadStatus.loaded+=t.loaded.loaded,n._loadStatus.total+=t.loaded.total),e&&(n._image=e.object,n._loadStatus.loaded+=e.loaded.loaded,n._loadStatus.total+=e.loaded.total),n}).finally(function(){n._cachingAssets$=null}).publishReplay(1).refCount(),this._cachingAssets$.first(function(e){return!!e._image}).subscribe(function(e){n._imageChanged$.next(n._image)},function(e){}),this._cachingAssets$},e.prototype.cacheImage$=function(e,t){var r=this;if(null!=this._image&&t<=Math.max(this._image.width,this._image.height))return i.Observable.of(this);var n=this._cacheImage$(e,t).first(function(e){return null!=e.object}).do(function(e){r._disposeImage(),r._image=e.object}).map(function(e){return r}).publishReplay(1).refCount();return n.subscribe(function(e){r._imageChanged$.next(r._image)},function(e){}),n},e.prototype.cacheSequenceEdges=function(e){this._sequenceEdges={cached:!0,edges:e},this._sequenceEdgesChanged$.next(this._sequenceEdges)},e.prototype.cacheSpatialEdges=function(e){this._spatialEdges={cached:!0,edges:e},this._spatialEdgesChanged$.next(this._spatialEdges)},e.prototype.dispose=function(){this._iamgeSubscription.unsubscribe(),this._sequenceEdgesSubscription.unsubscribe(),this._spatialEdgesSubscription.unsubscribe(),this._disposeImage(),this._mesh=null,this._loadStatus.loaded=0,this._loadStatus.total=0,this._sequenceEdges={cached:!1,edges:[]},this._spatialEdges={cached:!1,edges:[]},this._imageChanged$.next(null),this._sequenceEdgesChanged$.next(this._sequenceEdges),this._spatialEdgesChanged$.next(this._spatialEdges),this._disposed=!0,null!=this._imageRequest&&this._imageRequest.abort(),null!=this._meshRequest&&this._meshRequest.abort()},e.prototype.resetSequenceEdges=function(){this._sequenceEdges={cached:!1,edges:[]},this._sequenceEdgesChanged$.next(this._sequenceEdges)},e.prototype.resetSpatialEdges=function(){this._spatialEdges={cached:!1,edges:[]},this._spatialEdgesChanged$.next(this._spatialEdges)},e.prototype._cacheImage$=function(e,t){var r=this;return i.Observable.create(function(n){var i=new XMLHttpRequest;i.open("GET",s.Urls.thumbnail(e,t,s.Urls.origin),!0),i.responseType="arraybuffer",i.timeout=15e3,i.onload=function(t){if(200!==i.status)return r._imageRequest=null,void n.error(new Error("Failed to fetch image ("+e+"). Status: "+i.status+", "+i.statusText));var o=new Image;o.crossOrigin="Anonymous",o.onload=function(i){if(r._imageRequest=null,r._disposed)return window.URL.revokeObjectURL(o.src),void n.error(new Error("Image load was aborted ("+e+")"));n.next({loaded:{loaded:t.loaded,total:t.total},object:o}),n.complete()},o.onerror=function(t){r._imageRequest=null,n.error(new Error("Failed to load image ("+e+")"))};var s=new Blob([i.response]);o.src=window.URL.createObjectURL(s)},i.onprogress=function(e){r._disposed||n.next({loaded:{loaded:e.loaded,total:e.total},object:null})},i.onerror=function(t){r._imageRequest=null,n.error(new Error("Failed to fetch image ("+e+")"))},i.ontimeout=function(t){r._imageRequest=null,n.error(new Error("Image request timed out ("+e+")"))},i.onabort=function(t){r._imageRequest=null,n.error(new Error("Image request was aborted ("+e+")"))},r._imageRequest=i,i.send(null)})},e.prototype._cacheMesh$=function(e,r){var n=this;return i.Observable.create(function(i){if(!r)return i.next(n._createEmptyMeshLoadStatus()),void i.complete();var a=new XMLHttpRequest;a.open("GET",s.Urls.protoMesh(e),!0),a.responseType="arraybuffer",a.timeout=15e3,a.onload=function(e){if(n._meshRequest=null,!n._disposed){var r=200===a.status?o.MeshReader.read(new t(a.response)):{faces:[],vertices:[]};i.next({loaded:{loaded:e.loaded,total:e.total},object:r}),i.complete()}},a.onprogress=function(e){n._disposed||i.next({loaded:{loaded:e.loaded,total:e.total},object:null})},a.onerror=function(t){n._meshRequest=null,console.error("Failed to cache mesh ("+e+")"),i.next(n._createEmptyMeshLoadStatus()),i.complete()},a.ontimeout=function(t){n._meshRequest=null,console.error("Mesh request timed out ("+e+")"),i.next(n._createEmptyMeshLoadStatus()),i.complete()},a.onabort=function(t){n._meshRequest=null,i.error(new Error("Mesh request was aborted ("+e+")"))},n._meshRequest=a,a.send(null)})},e.prototype._createEmptyMeshLoadStatus=function(){return{loaded:{loaded:0,total:0},object:{faces:[],vertices:[]}}},e.prototype._disposeImage=function(){null!=this._image&&window.URL.revokeObjectURL(this._image.src),this._image=null},e}();r.NodeCache=a,r.default=a}).call(this,e("buffer").Buffer)},{"../Graph":294,"../Utils":300,buffer:7,"rxjs/Observable":29,"rxjs/Subject":34}],404:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("underscore"),i=function(){function e(e){this._key=e.key,this._keys=e.keys}return Object.defineProperty(e.prototype,"key",{get:function(){return this._key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"keys",{get:function(){return this._keys},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._key=null,this._keys=null},e.prototype.findNextKey=function(e){var t=n.indexOf(this._keys,e);return t+1>=this._keys.length||-1===t?null:this._keys[t+1]},e.prototype.findPrevKey=function(e){var t=n.indexOf(this._keys,e);return 0===t||-1===t?null:this._keys[t-1]},e}();r.Sequence=i,r.default=i},{underscore:242}],405:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("../../Edge"),o=e("../../Error"),s=e("../../Geo"),a=function(){function e(e,t,r){this._spatial=new s.Spatial,this._geoCoords=new s.GeoCoords,this._settings=null!=e?e:new i.EdgeCalculatorSettings,this._directions=null!=t?t:new i.EdgeCalculatorDirections,this._coefficients=null!=r?r:new i.EdgeCalculatorCoefficients}return e.prototype.getPotentialEdges=function(e,t,r){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");if(!e.merged)return[];for(var i=this._spatial.viewingDirection(e.rotation),s=this._spatial.angleToPlane(i.toArray(),[0,0,1]),a=[],c=0,u=t;c<u.length;c++){var h=u[c];if(h.merged&&h.key!==e.key){var l=this._geoCoords.geodeticToEnu(h.latLon.lat,h.latLon.lon,h.alt,e.latLon.lat,e.latLon.lon,e.alt),p=new n.Vector3(l[0],l[1],l[2]),f=p.length();if(!(f>this._settings.maxDistance&&r.indexOf(h.key)<0)){var d=this._spatial.angleBetweenVector2(i.x,i.y,p.x,p.y),m=this._spatial.angleToPlane(p.toArray(),[0,0,1]),v=this._spatial.viewingDirection(h.rotation),g=this._spatial.angleBetweenVector2(i.x,i.y,v.x,v.y),y=this._spatial.angleToPlane(v.toArray(),[0,0,1])-s,b=this._spatial.relativeRotationAngle(e.rotation,h.rotation),_=this._spatial.angleBetweenVector2(1,0,p.x,p.y),x=null!=h.sequenceKey&&null!=e.sequenceKey&&h.sequenceKey===e.sequenceKey,w=null==h.mergeCC&&null==e.mergeCC||h.mergeCC===e.mergeCC,S=h.userKey===e.userKey,M={capturedAt:h.capturedAt,croppedPano:h.pano&&!h.fullPano,directionChange:g,distance:f,fullPano:h.fullPano,key:h.key,motionChange:d,rotation:b,sameMergeCC:w,sameSequence:x,sameUser:S,sequenceKey:h.sequenceKey,verticalDirectionChange:y,verticalMotion:m,worldMotionAzimuth:_};a.push(M)}}}return a},e.prototype.computeSequenceEdges=function(e,t){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");if(e.sequenceKey!==t.key)throw new o.ArgumentMapillaryError("Node and sequence does not correspond.");var r=[],n=t.findNextKey(e.key);null!=n&&r.push({data:{direction:i.EdgeDirection.Next,worldMotionAzimuth:Number.NaN},from:e.key,to:n});var s=t.findPrevKey(e.key);return null!=s&&r.push({data:{direction:i.EdgeDirection.Prev,worldMotionAzimuth:Number.NaN},from:e.key,to:s}),r},e.prototype.computeSimilarEdges=function(e,t){var r=this;if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");for(var n=e.fullPano,s={},a=0,c=t;a<c.length;a++){if(null!=(v=c[a]).sequenceKey&&!v.sameSequence){if(n){if(!v.fullPano)continue}else if(!v.fullPano&&Math.abs(v.directionChange)>this._settings.similarMaxDirectionChange)continue;v.distance>this._settings.similarMaxDistance||v.sameUser&&Math.abs(v.capturedAt-e.capturedAt)<this._settings.similarMinTimeDifference||(null==s[v.sequenceKey]&&(s[v.sequenceKey]=[]),s[v.sequenceKey].push(v))}}var u=[],h=e.fullPano?function(e){return e.distance}:function(e){return r._coefficients.similarDistance*e.distance+r._coefficients.similarRotation*e.rotation};for(var l in s)if(s.hasOwnProperty(l)){for(var p=Number.MAX_VALUE,f=null,d=0,m=s[l];d<m.length;d++){var v=m[d],g=h(v);g<p&&(p=g,f=v)}null!=f&&u.push(f)}return u.map(function(t){return{data:{direction:i.EdgeDirection.Similar,worldMotionAzimuth:t.worldMotionAzimuth},from:e.key,to:t.key}})},e.prototype.computeStepEdges=function(e,t,r,n){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");var i=[];if(e.pano)return i;for(var s in this._directions.steps)if(this._directions.steps.hasOwnProperty(s)){for(var a=this._directions.steps[s],c=Number.MAX_VALUE,u=null,h=null,l=0,p=t;l<p.length;l++){var f=p[l];if(!f.croppedPano&&!f.fullPano&&!(Math.abs(f.directionChange)>this._settings.stepMaxDirectionChange)){var d=this._spatial.angleDifference(a.motionChange,f.motionChange),m=this._spatial.angleDifference(f.directionChange,d),v=Math.max(Math.abs(d),Math.abs(m));if(!(Math.abs(v)>this._settings.stepMaxDrift)){var g=f.key;if(!a.useFallback||g!==r&&g!==n||(h=f),!(f.distance>this._settings.stepMaxDistance)){d=Math.sqrt(d*d+f.verticalMotion*f.verticalMotion);var y=this._coefficients.stepPreferredDistance*Math.abs(f.distance-this._settings.stepPreferredDistance)/this._settings.stepMaxDistance+this._coefficients.stepMotion*d/this._settings.stepMaxDrift+this._coefficients.stepRotation*f.rotation/this._settings.stepMaxDirectionChange+this._coefficients.stepSequencePenalty*(f.sameSequence?0:1)+this._coefficients.stepMergeCCPenalty*(f.sameMergeCC?0:1);y<c&&(c=y,u=f)}}}}null!=(u=null==u?h:u)&&i.push({data:{direction:a.direction,worldMotionAzimuth:u.worldMotionAzimuth},from:e.key,to:u.key})}return i},e.prototype.computeTurnEdges=function(e,t){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");var r=[];if(e.pano)return r;for(var n in this._directions.turns)if(this._directions.turns.hasOwnProperty(n)){for(var s=this._directions.turns[n],a=Number.MAX_VALUE,c=null,u=0,h=t;u<h.length;u++){var l=h[u];if(!l.croppedPano&&!l.fullPano&&!(l.distance>this._settings.turnMaxDistance)){var p=s.direction!==i.EdgeDirection.TurnU&&l.distance<this._settings.turnMaxRigDistance&&Math.abs(l.directionChange)>this._settings.turnMinRigDirectionChange,f=this._spatial.angleDifference(s.directionChange,l.directionChange),d=void 0;if(p&&l.directionChange*s.directionChange>0&&Math.abs(l.directionChange)<Math.abs(s.directionChange))d=-Math.PI/2+Math.abs(l.directionChange);else{if(Math.abs(f)>this._settings.turnMaxDirectionChange)continue;var m=s.motionChange?this._spatial.angleDifference(s.motionChange,l.motionChange):0;m=Math.sqrt(m*m+l.verticalMotion*l.verticalMotion),d=this._coefficients.turnDistance*l.distance/this._settings.turnMaxDistance+this._coefficients.turnMotion*m/Math.PI+this._coefficients.turnSequencePenalty*(l.sameSequence?0:1)+this._coefficients.turnMergeCCPenalty*(l.sameMergeCC?0:1)}d<a&&(a=d,c=l)}}null!=c&&r.push({data:{direction:s.direction,worldMotionAzimuth:c.worldMotionAzimuth},from:e.key,to:c.key})}return r},e.prototype.computePerspectiveToPanoEdges=function(e,t){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");if(e.pano)return[];for(var r=Number.MAX_VALUE,n=null,s=0,a=t;s<a.length;s++){var c=a[s];if(c.fullPano){var u=this._coefficients.panoPreferredDistance*Math.abs(c.distance-this._settings.panoPreferredDistance)/this._settings.panoMaxDistance+this._coefficients.panoMotion*Math.abs(c.motionChange)/Math.PI+this._coefficients.panoMergeCCPenalty*(c.sameMergeCC?0:1);u<r&&(r=u,n=c)}}return null==n?[]:[{data:{direction:i.EdgeDirection.Pano,worldMotionAzimuth:n.worldMotionAzimuth},from:e.key,to:n.key}]},e.prototype.computePanoEdges=function(e,t){if(!e.full)throw new o.ArgumentMapillaryError("Node has to be full.");if(!e.fullPano)return[];for(var r=[],n=[],s=[],a=0,c=t;a<c.length;a++){if(!((w=c[a]).distance>this._settings.panoMaxDistance))if(w.fullPano){if(w.distance<this._settings.panoMinDistance)continue;n.push(w)}else{if(w.croppedPano)continue;for(var u in this._directions.panos)if(this._directions.panos.hasOwnProperty(u)){var h=this._directions.panos[u],l=this._spatial.angleDifference(w.directionChange,w.motionChange),p=this._spatial.angleDifference(h.directionChange,l);if(!(Math.abs(p)>this._settings.panoMaxStepTurnChange)){s.push([h.direction,w]);break}}}}for(var f=Math.PI/this._settings.panoMaxItems,d=[],m=[],v=0;v<this._settings.panoMaxItems;v++){for(var g=v/this._settings.panoMaxItems*2*Math.PI,y=Number.MAX_VALUE,b=null,_=0,x=n;_<x.length;_++){var w=x[_],S=this._spatial.angleDifference(g,w.motionChange);if(!(Math.abs(S)>f)){for(var M=Number.MAX_VALUE,E=0,C=d;E<C.length;E++){var T=C[E],O=Math.abs(this._spatial.angleDifference(T,w.motionChange));O<M&&(M=O)}if(!(M<=f)){($=this._coefficients.panoPreferredDistance*Math.abs(w.distance-this._settings.panoPreferredDistance)/this._settings.panoMaxDistance+this._coefficients.panoMotion*Math.abs(S)/f+this._coefficients.panoSequencePenalty*(w.sameSequence?0:1)+this._coefficients.panoMergeCCPenalty*(w.sameMergeCC?0:1))<y&&(y=$,b=w)}}}null!=b?(d.push(b.motionChange),r.push({data:{direction:i.EdgeDirection.Pano,worldMotionAzimuth:b.worldMotionAzimuth},from:e.key,to:b.key})):m.push(g)}var P={};P[i.EdgeDirection.Pano]=d,P[i.EdgeDirection.StepForward]=[],P[i.EdgeDirection.StepLeft]=[],P[i.EdgeDirection.StepBackward]=[],P[i.EdgeDirection.StepRight]=[];for(var A=0,R=m;A<R.length;A++){var j=R[A],L=[];for(var u in this._directions.panos)if(this._directions.panos.hasOwnProperty(u)){for(var h=this._directions.panos[u],N=P[i.EdgeDirection.Pano].concat(P[h.direction]).concat(P[h.prev]).concat(P[h.next]),y=Number.MAX_VALUE,b=null,I=0,D=s;I<D.length;I++){if((w=D[I])[0]===h.direction){var k=this._spatial.angleDifference(j,w[1].motionChange);if(!(Math.abs(k)>f)){for(var B=Number.MAX_VALUE,F=0,U=N;F<U.length;F++){T=U[F];(M=Math.abs(this._spatial.angleDifference(T,w[1].motionChange)))<B&&(B=M)}if(!(B<=f)){var $=this._coefficients.panoPreferredDistance*Math.abs(w[1].distance-this._settings.panoPreferredDistance)/this._settings.panoMaxDistance+this._coefficients.panoMotion*Math.abs(k)/f+this._coefficients.panoMergeCCPenalty*(w[1].sameMergeCC?0:1);$<y&&(y=$,b=w)}}}}null!=b&&(L.push(b),r.push({data:{direction:b[0],worldMotionAzimuth:b[1].worldMotionAzimuth},from:e.key,to:b[1].key}))}for(var z=0,G=L;z<G.length;z++){var V=G[z];P[V[0]].push(V[1].motionChange)}}return r},e}();r.EdgeCalculator=a,r.default=a},{"../../Edge":291,"../../Error":292,"../../Geo":293,three:240}],406:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){return function(){this.panoPreferredDistance=2,this.panoMotion=2,this.panoSequencePenalty=1,this.panoMergeCCPenalty=4,this.stepPreferredDistance=4,this.stepMotion=3,this.stepRotation=4,this.stepSequencePenalty=2,this.stepMergeCCPenalty=6,this.similarDistance=2,this.similarRotation=3,this.turnDistance=4,this.turnMotion=2,this.turnSequencePenalty=1,this.turnMergeCCPenalty=4}}();r.EdgeCalculatorCoefficients=n,r.default=n},{}],407:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../../Edge"),i=function(){return function(){this.steps={},this.turns={},this.panos={},this.steps[n.EdgeDirection.StepForward]={direction:n.EdgeDirection.StepForward,motionChange:0,useFallback:!0},this.steps[n.EdgeDirection.StepBackward]={direction:n.EdgeDirection.StepBackward,motionChange:Math.PI,useFallback:!0},this.steps[n.EdgeDirection.StepLeft]={direction:n.EdgeDirection.StepLeft,motionChange:Math.PI/2,useFallback:!1},this.steps[n.EdgeDirection.StepRight]={direction:n.EdgeDirection.StepRight,motionChange:-Math.PI/2,useFallback:!1},this.turns[n.EdgeDirection.TurnLeft]={direction:n.EdgeDirection.TurnLeft,directionChange:Math.PI/2,motionChange:Math.PI/4},this.turns[n.EdgeDirection.TurnRight]={direction:n.EdgeDirection.TurnRight,directionChange:-Math.PI/2,motionChange:-Math.PI/4},this.turns[n.EdgeDirection.TurnU]={direction:n.EdgeDirection.TurnU,directionChange:Math.PI,motionChange:null},this.panos[n.EdgeDirection.StepForward]={direction:n.EdgeDirection.StepForward,directionChange:0,next:n.EdgeDirection.StepLeft,prev:n.EdgeDirection.StepRight},this.panos[n.EdgeDirection.StepBackward]={direction:n.EdgeDirection.StepBackward,directionChange:Math.PI,next:n.EdgeDirection.StepRight,prev:n.EdgeDirection.StepLeft},this.panos[n.EdgeDirection.StepLeft]={direction:n.EdgeDirection.StepLeft,directionChange:Math.PI/2,next:n.EdgeDirection.StepBackward,prev:n.EdgeDirection.StepForward},this.panos[n.EdgeDirection.StepRight]={direction:n.EdgeDirection.StepRight,directionChange:-Math.PI/2,next:n.EdgeDirection.StepForward,prev:n.EdgeDirection.StepBackward}}}();r.EdgeCalculatorDirections=i},{"../../Edge":291}],408:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){this.panoMinDistance=.1,this.panoMaxDistance=20,this.panoPreferredDistance=5,this.panoMaxItems=4,this.panoMaxStepTurnChange=Math.PI/8,this.rotationMaxDistance=this.turnMaxRigDistance,this.rotationMaxDirectionChange=Math.PI/6,this.rotationMaxVerticalDirectionChange=Math.PI/8,this.similarMaxDirectionChange=Math.PI/8,this.similarMaxDistance=12,this.similarMinTimeDifference=432e5,this.stepMaxDistance=20,this.stepMaxDirectionChange=Math.PI/6,this.stepMaxDrift=Math.PI/6,this.stepPreferredDistance=4,this.turnMaxDistance=15,this.turnMaxDirectionChange=2*Math.PI/9,this.turnMaxRigDistance=.65,this.turnMinRigDirectionChange=Math.PI/6}return Object.defineProperty(e.prototype,"maxDistance",{get:function(){return Math.max(this.panoMaxDistance,this.similarMaxDistance,this.stepMaxDistance,this.turnMaxDistance)},enumerable:!0,configurable:!0}),e}();r.EdgeCalculatorSettings=n,r.default=n},{}],409:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});!function(e){e[e.Next=0]="Next",e[e.Prev=1]="Prev",e[e.StepLeft=2]="StepLeft",e[e.StepRight=3]="StepRight",e[e.StepForward=4]="StepForward",e[e.StepBackward=5]="StepBackward",e[e.TurnLeft=6]="TurnLeft",e[e.TurnRight=7]="TurnRight",e[e.TurnU=8]="TurnU",e[e.Pano=9]="Pano",e[e.Similar=10]="Similar"}(r.EdgeDirection||(r.EdgeDirection={}))},{}],410:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("underscore"),i=e("virtual-dom"),o=e("rxjs/Subject"),s=e("../Render"),a=function(){function e(e,t,r){this._adaptiveOperation$=new o.Subject,this._render$=new o.Subject,this._renderAdaptive$=new o.Subject,this._renderService=t,this._currentFrame$=r;var a=i.create(i.h("div.domRenderer",[]));e.appendChild(a),this._offset$=this._adaptiveOperation$.scan(function(e,t){return t(e)},{elementHeight:e.offsetHeight,elementWidth:e.offsetWidth,imageAspect:0,renderMode:s.RenderMode.Fill}).filter(function(e){return e.imageAspect>0&&e.elementWidth>0&&e.elementHeight>0}).map(function(e){var t=e.elementWidth/e.elementHeight,r=e.imageAspect/t,n=0,i=0;return e.renderMode===s.RenderMode.Letterbox?e.imageAspect>t?n=e.elementHeight*(1-1/r)/2:i=e.elementWidth*(1-r)/2:e.imageAspect>t?i=-e.elementWidth*(r-1)/2:n=-e.elementHeight*(1/r-1)/2,{bottom:n,left:i,right:i,top:n}}),this._currentFrame$.filter(function(e){return null!=e.state.currentNode}).distinctUntilChanged(function(e,t){return e===t},function(e){return e.state.currentNode.key}).map(function(e){return e.state.currentTransform.basicAspect}).map(function(e){return function(t){return t.imageAspect=e,t}}).subscribe(this._adaptiveOperation$),this._renderAdaptive$.scan(function(e,t){return null==t.vnode?delete e[t.name]:e[t.name]=t.vnode,e},{}).combineLatest(this._offset$).map(function(e){var t=n.values(e[0]),r=e[1],o={style:{bottom:r.bottom+"px",left:r.left+"px","pointer-events":"none",position:"absolute",right:r.right+"px",top:r.top+"px"}};return{name:"adaptiveDomRenderer",vnode:i.h("div.adaptiveDomRenderer",o,t)}}).subscribe(this._render$),this._vNode$=this._render$.scan(function(e,t){return null==t.vnode?delete e[t.name]:e[t.name]=t.vnode,e},{}).map(function(e){var t=n.values(e);return i.h("div.domRenderer",t)}),this._vPatch$=this._vNode$.scan(function(e,t){return e.vpatch=i.diff(e.vnode,t),e.vnode=t,e},{vnode:i.h("div.domRenderer",[]),vpatch:null}).pluck("vpatch"),this._element$=this._vPatch$.scan(function(e,t){return i.patch(e,t)},a).publishReplay(1).refCount(),this._element$.subscribe(function(){}),this._renderService.size$.map(function(e){return function(t){return t.elementWidth=e.width,t.elementHeight=e.height,t}}).subscribe(this._adaptiveOperation$),this._renderService.renderMode$.map(function(e){return function(t){return t.renderMode=e,t}}).subscribe(this._adaptiveOperation$)}return Object.defineProperty(e.prototype,"element$",{get:function(){return this._element$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"render$",{get:function(){return this._render$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderAdaptive$",{get:function(){return this._renderAdaptive$},enumerable:!0,configurable:!0}),e.prototype.clear=function(e){this._renderAdaptive$.next({name:e,vnode:null}),this._render$.next({name:e,vnode:null})},e}();r.DOMRenderer=a,r.default=a},{"../Render":296,"rxjs/Subject":34,underscore:242,"virtual-dom":246}],411:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Background=0]="Background",e[e.Foreground=1]="Foreground"}(n=r.GLRenderStage||(r.GLRenderStage={})),r.default=n},{}],412:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("rxjs/Observable"),o=e("rxjs/Subject"),s=e("../Render"),a=e("../Utils"),c=function(){function e(e,t,r){var c=this;this._renderFrame$=new o.Subject,this._renderCameraOperation$=new o.Subject,this._render$=new o.Subject,this._clear$=new o.Subject,this._renderOperation$=new o.Subject,this._rendererOperation$=new o.Subject,this._eraserOperation$=new o.Subject,this._renderService=t,this._dom=r||new a.DOM,this._renderer$=this._rendererOperation$.scan(function(e,t){return t(e)},{needsRender:!1,renderer:null}).filter(function(e){return!!e.renderer}),this._renderCollection$=this._renderOperation$.scan(function(e,t){return t(e)},{}).share(),this._renderCamera$=this._renderCameraOperation$.scan(function(e,t){return t(e)},{frameId:-1,needsRender:!1,perspective:null}),this._eraser$=this._eraserOperation$.startWith(function(e){return e}).scan(function(e,t){return t(e)},{needsRender:!1}),i.Observable.combineLatest([this._renderer$,this._renderCollection$,this._renderCamera$,this._eraser$],function(e,t,r,n){return{camera:r,eraser:n,renderer:e,renders:Object.keys(t).map(function(e){return t[e]})}}).filter(function(e){for(var t=e.renderer.needsRender||e.camera.needsRender||e.eraser.needsRender,r=e.camera.frameId,n=0,i=e.renders;n<i.length;n++){var o=i[n];if(o.frameId!==r)return!1;t=t||o.needsRender}return t}).distinctUntilChanged(function(e,t){return e===t},function(e){return e.eraser.needsRender?-1:e.camera.frameId}).subscribe(function(e){e.renderer.needsRender=!1,e.camera.needsRender=!1,e.eraser.needsRender=!1;for(var t=e.camera.perspective,r=[],n=[],i=0,o=e.renders;i<o.length;i++){(p=o[i]).stage===s.GLRenderStage.Background?r.push(p.render):p.stage===s.GLRenderStage.Foreground&&n.push(p.render)}var a=e.renderer.renderer;a.clear();for(var c=0,u=r;c<u.length;c++){(p=u[c])(t,a)}a.clearDepth();for(var h=0,l=n;h<l.length;h++){var p=l[h];p(t,a)}}),this._renderFrame$.map(function(e){return function(t){return t.frameId=e.frameId,t.perspective=e.perspective,!0===e.changed&&(t.needsRender=!0),t}}).subscribe(this._renderCameraOperation$),this._renderFrameSubscribe();var u=this._render$.map(function(e){return function(t){return t[e.name]=e.render,t}}),h=this._clear$.map(function(e){return function(t){return delete t[e],t}});i.Observable.merge(u,h).subscribe(this._renderOperation$),this._webGLRenderer$=this._render$.first().map(function(r){var i=c._dom.createElement("canvas","mapillary-js-canvas");i.style.position="absolute",i.setAttribute("tabindex","0"),e.appendChild(i);var o=t.element,s=new n.WebGLRenderer({canvas:i});return s.setPixelRatio(window.devicePixelRatio),s.setSize(o.offsetWidth,o.offsetHeight),s.setClearColor(new n.Color(2105376),1),s.autoClear=!1,s}).publishReplay(1).refCount(),this._webGLRenderer$.subscribe(function(){});var l=this._webGLRenderer$.first().map(function(e){return function(t){return t.needsRender=!0,t.renderer=e,t}}),p=this._renderService.size$.map(function(e){return function(t){return null==t.renderer?t:(t.renderer.setSize(e.width,e.height),t.needsRender=!0,t)}}),f=this._clear$.map(function(e){return function(e){return null==e.renderer?e:(e.needsRender=!0,e)}});i.Observable.merge(l,p,f).subscribe(this._rendererOperation$);var d=this._renderCollection$.filter(function(e){return 0===Object.keys(e).length}).share();d.subscribe(function(e){null!=c._renderFrameSubscription&&(c._renderFrameSubscription.unsubscribe(),c._renderFrameSubscription=null,c._renderFrameSubscribe())}),d.map(function(e){return function(e){return e.needsRender=!0,e}}).subscribe(this._eraserOperation$)}return Object.defineProperty(e.prototype,"render$",{get:function(){return this._render$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"webGLRenderer$",{get:function(){return this._webGLRenderer$},enumerable:!0,configurable:!0}),e.prototype.clear=function(e){this._clear$.next(e)},e.prototype._renderFrameSubscribe=function(){var e=this;this._render$.first().map(function(e){return function(e){return e.needsRender=!0,e}}).subscribe(function(t){e._renderCameraOperation$.next(t)}),this._renderFrameSubscription=this._render$.first().mergeMap(function(t){return e._renderService.renderCameraFrame$}).subscribe(this._renderFrame$)},e}();r.GLRenderer=c,r.default=c},{"../Render":296,"../Utils":300,"rxjs/Observable":29,"rxjs/Subject":34,three:240}],413:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("../Geo"),o=e("../Render"),s=function(){function e(e,t,r){this.alpha=-1,this.zoom=0,this._frameId=-1,this._changed=!1,this._changedForFrame=-1,this.currentAspect=1,this.currentPano=!1,this.previousAspect=1,this.previousPano=!1,this.renderMode=r,this._spatial=new i.Spatial,this._camera=new i.Camera;var o=this._getPerspectiveCameraAspect(e,t);this._perspective=new n.PerspectiveCamera(50,o,.4,1e4),this._perspective.matrixAutoUpdate=!1,this._rotation={phi:0,theta:0}}return Object.defineProperty(e.prototype,"camera",{get:function(){return this._camera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"changed",{get:function(){return this.frameId===this._changedForFrame},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"frameId",{get:function(){return this._frameId},set:function(e){this._frameId=e,this._changed&&(this._changed=!1,this._changedForFrame=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"perspective",{get:function(){return this._perspective},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rotation",{get:function(){return this._rotation},enumerable:!0,configurable:!0}),e.prototype.updateAspect=function(e,t){var r=this._getPerspectiveCameraAspect(e,t);this._perspective.aspect=r,this._changed=!0},e.prototype.updateProjection=function(){var e=this._getAspect(this.currentAspect,this.currentPano,this.perspective.aspect),t=this._getAspect(this.previousAspect,this.previousPano,this.perspective.aspect),r=(1-this.alpha)*t+this.alpha*e,n=this._getVerticalFov(r,this._camera.focal,this.zoom);this._perspective.fov=n,this._perspective.updateProjectionMatrix(),this._changed=!0},e.prototype.updatePerspective=function(e){this._perspective.up.copy(e.up),this._perspective.position.copy(e.position),this._perspective.lookAt(e.lookat),this._perspective.updateMatrix(),this._perspective.updateMatrixWorld(!1),this._changed=!0},e.prototype.updateRotation=function(e){this._rotation=this._getRotation(e)},e.prototype._getVerticalFov=function(e,t,r){return 2*Math.atan(.5/(Math.pow(2,r)*e*t))*180/Math.PI},e.prototype._getAspect=function(e,t,r){if(t)return 1;var n=Math.max(1,1/e);return(this.renderMode===o.RenderMode.Letterbox?e>r:e<r)?n*r:n*e},e.prototype._getPerspectiveCameraAspect=function(e,t){return 0===e?0:e/t},e.prototype._getRotation=function(e){var t=e.lookat.clone().sub(e.position),r=e.up.clone(),n=t.clone().dot(r),i=t.clone().sub(r.clone().multiplyScalar(n));return{phi:Math.atan2(i.y,i.x),theta:Math.PI/2-this._spatial.angleToPlane(t.toArray(),[0,0,1])}},e}();r.RenderCamera=s,r.default=s},{"../Geo":293,"../Render":296,three:240}],414:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Letterbox=0]="Letterbox",e[e.Fill=1]="Fill"}(n=r.RenderMode||(r.RenderMode={})),r.default=n},{}],415:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Subject"),i=e("rxjs/BehaviorSubject"),o=e("../Geo"),s=e("../Render"),a=function(){function e(e,t,r){var a=this;this._element=e,this._currentFrame$=t,this._spatial=new o.Spatial,r=null!=r?r:s.RenderMode.Fill,this._resize$=new n.Subject,this._renderCameraOperation$=new n.Subject,this._size$=new i.BehaviorSubject({height:this._element.offsetHeight,width:this._element.offsetWidth}),this._resize$.map(function(){return{height:a._element.offsetHeight,width:a._element.offsetWidth}}).subscribe(this._size$),this._renderMode$=new i.BehaviorSubject(r),this._renderCameraHolder$=this._renderCameraOperation$.startWith(function(e){return e}).scan(function(e,t){return t(e)},new s.RenderCamera(this._element.offsetWidth,this._element.offsetHeight,r)).publishReplay(1).refCount(),this._renderCameraFrame$=this._currentFrame$.withLatestFrom(this._renderCameraHolder$,function(e,t){return[e,t]}).do(function(e){var t=e[0],r=e[1],n=t.state.camera;if(r.alpha!==t.state.alpha||r.zoom!==t.state.zoom||r.camera.diff(n)>1e-9){var i=t.state.currentTransform,o=null!=t.state.previousTransform?t.state.previousTransform:t.state.currentTransform,s=null!=t.state.previousNode?t.state.previousNode:t.state.currentNode;r.currentAspect=i.basicAspect,r.currentPano=t.state.currentNode.pano,r.previousAspect=o.basicAspect,r.previousPano=s.pano,r.alpha=t.state.alpha,r.zoom=t.state.zoom,r.camera.copy(n),r.updatePerspective(n),r.updateRotation(n),r.updateProjection()}r.frameId=t.id}).map(function(e){return e[1]}).publishReplay(1).refCount(),this._renderCamera$=this._renderCameraFrame$.filter(function(e){return e.changed}).publishReplay(1).refCount(),this._bearing$=this._renderCamera$.map(function(e){var t=a._spatial.radToDeg(a._spatial.azimuthalToBearing(e.rotation.phi));return a._spatial.wrap(t,0,360)}).publishReplay(1).refCount(),this._size$.skip(1).map(function(e){return function(t){return t.updateAspect(e.width,e.height),t.updateProjection(),t}}).subscribe(this._renderCameraOperation$),this._renderMode$.skip(1).map(function(e){return function(t){return t.renderMode=e,t.updateProjection(),t}}).subscribe(this._renderCameraOperation$),this._bearing$.subscribe(function(){}),this._renderCameraHolder$.subscribe(function(){}),this._size$.subscribe(function(){}),this._renderMode$.subscribe(function(){}),this._renderCamera$.subscribe(function(){}),this._renderCameraFrame$.subscribe(function(){})}return Object.defineProperty(e.prototype,"bearing$",{get:function(){return this._bearing$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"element",{get:function(){return this._element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"resize$",{get:function(){return this._resize$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"size$",{get:function(){return this._size$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderMode$",{get:function(){return this._renderMode$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderCameraFrame$",{get:function(){return this._renderCameraFrame$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderCamera$",{get:function(){return this._renderCamera$},enumerable:!0,configurable:!0}),e}();r.RenderService=a,r.default=a},{"../Geo":293,"../Render":296,"rxjs/BehaviorSubject":26,"rxjs/Subject":34}],416:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t){this._phi=e,this._theta=t}return Object.defineProperty(e.prototype,"phi",{get:function(){return this._phi},set:function(e){this._phi=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"theta",{get:function(){return this._theta},set:function(e){this._theta=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isZero",{get:function(){return 0===this._phi&&0===this._theta},enumerable:!0,configurable:!0}),e.prototype.copy=function(e){this._phi=e.phi,this._theta=e.theta},e.prototype.lerp=function(e,t){this._phi=(1-t)*this._phi+t*e.phi,this._theta=(1-t)*this._theta+t*e.theta},e.prototype.multiply=function(e){this._phi*=e,this._theta*=e},e.prototype.threshold=function(e){this._phi=Math.abs(this._phi)>e?this._phi:0,this._theta=Math.abs(this._theta)>e?this._theta:0},e.prototype.lengthSquared=function(){return this._phi*this._phi+this._theta*this._theta},e.prototype.reset=function(){this._phi=0,this._theta=0},e}();r.RotationDelta=n,r.default=n},{}],417:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Traversing=0]="Traversing",e[e.Waiting=1]="Waiting",e[e.WaitingInteractively=2]="WaitingInteractively"}(n=r.State||(r.State={})),r.default=n},{}],418:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../State"),i=e("../Geo"),o=function(){function e(e){this._state=new n.TraversingState({alpha:1,camera:new i.Camera,currentIndex:-1,reference:{alt:0,lat:0,lon:0},trajectory:[],transitionMode:null==e?n.TransitionMode.Default:e,zoom:0})}return e.prototype.traverse=function(){this._state=this._state.traverse()},e.prototype.wait=function(){this._state=this._state.wait()},e.prototype.waitInteractively=function(){this._state=this._state.waitInteractively()},Object.defineProperty(e.prototype,"state",{get:function(){if(this._state instanceof n.TraversingState)return n.State.Traversing;if(this._state instanceof n.WaitingState)return n.State.Waiting;if(this._state instanceof n.InteractiveWaitingState)return n.State.WaitingInteractively;throw new Error("Invalid state")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"reference",{get:function(){return this._state.reference},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"alpha",{get:function(){return this._state.alpha},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"camera",{get:function(){return this._state.camera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"zoom",{get:function(){return this._state.zoom},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentNode",{get:function(){return this._state.currentNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"previousNode",{get:function(){return this._state.previousNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentCamera",{get:function(){return this._state.currentCamera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentTransform",{get:function(){return this._state.currentTransform},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"previousTransform",{get:function(){return this._state.previousTransform},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trajectory",{get:function(){return this._state.trajectory},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentIndex",{get:function(){return this._state.currentIndex},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lastNode",{get:function(){return this._state.trajectory[this._state.trajectory.length-1]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nodesAhead",{get:function(){return this._state.trajectory.length-1-this._state.currentIndex},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"motionless",{get:function(){return this._state.motionless},enumerable:!0,configurable:!0}),e.prototype.getCenter=function(){return this._state.getCenter()},e.prototype.setCenter=function(e){this._state.setCenter(e)},e.prototype.setZoom=function(e){this._state.setZoom(e)},e.prototype.update=function(e){this._state.update(e)},e.prototype.append=function(e){this._state.append(e)},e.prototype.prepend=function(e){this._state.prepend(e)},e.prototype.remove=function(e){this._state.remove(e)},e.prototype.clear=function(){this._state.clear()},e.prototype.clearPrior=function(){this._state.clearPrior()},e.prototype.cut=function(){this._state.cut()},e.prototype.set=function(e){this._state.set(e)},e.prototype.rotate=function(e){this._state.rotate(e)},e.prototype.rotateBasic=function(e){this._state.rotateBasic(e)},e.prototype.rotateBasicUnbounded=function(e){this._state.rotateBasicUnbounded(e)},e.prototype.rotateBasicWithoutInertia=function(e){this._state.rotateBasicWithoutInertia(e)},e.prototype.rotateToBasic=function(e){this._state.rotateToBasic(e)},e.prototype.move=function(e){this._state.move(e)},e.prototype.moveTo=function(e){this._state.moveTo(e)},e.prototype.zoomIn=function(e,t){this._state.zoomIn(e,t)},e.prototype.setSpeed=function(e){this._state.setSpeed(e)},e.prototype.setTransitionMode=function(e){this._state.setTransitionMode(e)},e}();r.StateContext=o},{"../Geo":293,"../State":297}],419:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/BehaviorSubject"),i=e("rxjs/Subject"),o=e("rxjs/util/AnimationFrame"),s=e("../State"),a=function(){function e(e){var t=this;this._appendNode$=new i.Subject,this._start$=new i.Subject,this._frame$=new i.Subject,this._fpsSampleRate=30,this._contextOperation$=new n.BehaviorSubject(function(e){return e}),this._context$=this._contextOperation$.scan(function(e,t){return t(e)},new s.StateContext(e)).publishReplay(1).refCount(),this._state$=this._context$.map(function(e){return e.state}).distinctUntilChanged().publishReplay(1).refCount(),this._fps$=this._start$.switchMap(function(){return t._frame$.bufferCount(1,t._fpsSampleRate).map(function(e){return(new Date).getTime()}).pairwise().map(function(e){return Math.max(20,1e3*t._fpsSampleRate/(e[1]-e[0]))}).startWith(60)}).share(),this._currentState$=this._frame$.withLatestFrom(this._fps$,this._context$,function(e,t,r){return[e,t,r]}).filter(function(e){return null!=e[2].currentNode}).do(function(e){e[2].update(e[1])}).map(function(e){return{fps:e[1],id:e[0],state:e[2]}}).share(),this._lastState$=this._currentState$.publishReplay(1).refCount();var r=this._currentState$.distinctUntilChanged(void 0,function(e){return e.state.currentNode.key}).publishReplay(1).refCount(),a=new i.Subject;r.subscribe(a),this._currentKey$=new n.BehaviorSubject(null),a.map(function(e){return e.state.currentNode.key}).subscribe(this._currentKey$),this._currentNode$=a.map(function(e){return e.state.currentNode}).publishReplay(1).refCount(),this._currentCamera$=a.map(function(e){return e.state.currentCamera}).publishReplay(1).refCount(),this._currentTransform$=a.map(function(e){return e.state.currentTransform}).publishReplay(1).refCount(),this._reference$=a.map(function(e){return e.state.reference}).distinctUntilChanged(function(e,t){return e.lat===t.lat&&e.lon===t.lon},function(e){return{lat:e.lat,lon:e.lon}}).publishReplay(1).refCount(),this._currentNodeExternal$=r.map(function(e){return e.state.currentNode}).publishReplay(1).refCount(),this._appendNode$.map(function(e){return function(t){return t.append([e]),t}}).subscribe(this._contextOperation$),this._inMotionOperation$=new i.Subject,r.map(function(e){return!0}).subscribe(this._inMotionOperation$),this._inMotionOperation$.distinctUntilChanged().filter(function(e){return e}).switchMap(function(e){return t._currentState$.filter(function(e){return 0===e.state.nodesAhead}).map(function(e){return[e.state.camera.clone(),e.state.zoom]}).pairwise().map(function(e){var t=e[0][0],r=e[1][0],n=e[0][1],i=e[1][1];return t.diff(r)>1e-5||Math.abs(n-i)>1e-5}).first(function(e){return!e})}).subscribe(this._inMotionOperation$),this._inMotion$=this._inMotionOperation$.distinctUntilChanged().publishReplay(1).refCount(),this._inTranslationOperation$=new i.Subject,r.map(function(e){return!0}).subscribe(this._inTranslationOperation$),this._inTranslationOperation$.distinctUntilChanged().filter(function(e){return e}).switchMap(function(e){return t._currentState$.filter(function(e){return 0===e.state.nodesAhead}).map(function(e){return e.state.camera.position.clone()}).pairwise().map(function(e){return 0!==e[0].distanceToSquared(e[1])}).first(function(e){return!e})}).subscribe(this._inTranslationOperation$),this._inTranslation$=this._inTranslationOperation$.distinctUntilChanged().publishReplay(1).refCount(),this._state$.subscribe(function(){}),this._currentNode$.subscribe(function(){}),this._currentCamera$.subscribe(function(){}),this._currentTransform$.subscribe(function(){}),this._reference$.subscribe(function(){}),this._currentNodeExternal$.subscribe(function(){}),this._lastState$.subscribe(function(){}),this._inMotion$.subscribe(function(){}),this._inTranslation$.subscribe(function(){}),this._frameId=null,this._frameGenerator=new o.RequestAnimationFrameDefinition(window)}return Object.defineProperty(e.prototype,"currentState$",{get:function(){return this._currentState$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentNode$",{get:function(){return this._currentNode$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentKey$",{get:function(){return this._currentKey$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentNodeExternal$",{get:function(){return this._currentNodeExternal$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentCamera$",{get:function(){return this._currentCamera$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentTransform$",{get:function(){return this._currentTransform$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"state$",{get:function(){return this._state$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"reference$",{get:function(){return this._reference$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inMotion$",{get:function(){return this._inMotion$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inTranslation$",{get:function(){return this._inTranslation$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"appendNode$",{get:function(){return this._appendNode$},enumerable:!0,configurable:!0}),e.prototype.traverse=function(){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(e){e.traverse()})},e.prototype.wait=function(){this._invokeContextOperation(function(e){e.wait()})},e.prototype.waitInteractively=function(){this._invokeContextOperation(function(e){e.waitInteractively()})},e.prototype.appendNodes=function(e){this._invokeContextOperation(function(t){t.append(e)})},e.prototype.prependNodes=function(e){this._invokeContextOperation(function(t){t.prepend(e)})},e.prototype.removeNodes=function(e){this._invokeContextOperation(function(t){t.remove(e)})},e.prototype.clearNodes=function(){this._invokeContextOperation(function(e){e.clear()})},e.prototype.clearPriorNodes=function(){this._invokeContextOperation(function(e){e.clearPrior()})},e.prototype.cutNodes=function(){this._invokeContextOperation(function(e){e.cut()})},e.prototype.setNodes=function(e){this._invokeContextOperation(function(t){t.set(e)})},e.prototype.rotate=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.rotate(e)})},e.prototype.rotateBasic=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.rotateBasic(e)})},e.prototype.rotateBasicUnbounded=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.rotateBasicUnbounded(e)})},e.prototype.rotateBasicWithoutInertia=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.rotateBasicWithoutInertia(e)})},e.prototype.rotateToBasic=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.rotateToBasic(e)})},e.prototype.move=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.move(e)})},e.prototype.moveTo=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.moveTo(e)})},e.prototype.zoomIn=function(e,t){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(r){r.zoomIn(e,t)})},e.prototype.getCenter=function(){return this._lastState$.first().map(function(e){return e.state.getCenter()})},e.prototype.getZoom=function(){return this._lastState$.first().map(function(e){return e.state.zoom})},e.prototype.setCenter=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.setCenter(e)})},e.prototype.setSpeed=function(e){this._invokeContextOperation(function(t){t.setSpeed(e)})},e.prototype.setTransitionMode=function(e){this._invokeContextOperation(function(t){t.setTransitionMode(e)})},e.prototype.setZoom=function(e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.setZoom(e)})},e.prototype.start=function(){null==this._frameId&&(this._start$.next(null),this._frameId=this._frameGenerator.requestAnimationFrame(this._frame.bind(this)),this._frame$.next(this._frameId))},e.prototype.stop=function(){null!=this._frameId&&(this._frameGenerator.cancelAnimationFrame(this._frameId),this._frameId=null)},e.prototype._invokeContextOperation=function(e){this._contextOperation$.next(function(t){return e(t),t})},e.prototype._frame=function(e){this._frameId=this._frameGenerator.requestAnimationFrame(this._frame.bind(this)),this._frame$.next(this._frameId)},e}();r.StateService=a},{"../State":297,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/util/AnimationFrame":217}],420:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Default=0]="Default",e[e.Instantaneous=1]="Instantaneous"}(n=r.TransitionMode||(r.TransitionMode={})),r.default=n},{}],421:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("three"),o=e("../../State"),s=function(e){function t(t){var r=e.call(this,t)||this;return r._animationSpeed=.025,r._rotationDelta=new o.RotationDelta(0,0),r._requestedRotationDelta=null,r._basicRotation=[0,0],r._requestedBasicRotation=null,r._requestedBasicRotationUnbounded=null,r._rotationAcceleration=.86,r._rotationIncreaseAlpha=.97,r._rotationDecreaseAlpha=.9,r._rotationThreshold=.001,r._unboundedRotationAlpha=.8,r._desiredZoom=t.zoom,r._minZoom=0,r._maxZoom=3,r._lookatDepth=10,r._desiredLookat=null,r._desiredCenter=null,r}return n(t,e),t.prototype.rotate=function(e){null!=this._currentNode&&(this._desiredZoom=this._zoom,this._desiredLookat=null,this._requestedBasicRotation=null,null!=this._requestedRotationDelta?(this._requestedRotationDelta.phi=this._requestedRotationDelta.phi+e.phi,this._requestedRotationDelta.theta=this._requestedRotationDelta.theta+e.theta):this._requestedRotationDelta=new o.RotationDelta(e.phi,e.theta))},t.prototype.rotateBasic=function(e){if(null!=this._currentNode)if(this._desiredZoom=this._zoom,this._desiredLookat=null,this._requestedRotationDelta=null,null!=this._requestedBasicRotation){this._requestedBasicRotation[0]+=e[0],this._requestedBasicRotation[1]+=e[1];var t=.05/Math.pow(2,this._zoom);this._requestedBasicRotation[0]=this._spatial.clamp(this._requestedBasicRotation[0],-t,t),this._requestedBasicRotation[1]=this._spatial.clamp(this._requestedBasicRotation[1],-t,t)}else this._requestedBasicRotation=e.slice()},t.prototype.rotateBasicUnbounded=function(e){null!=this._currentNode&&(null!=this._requestedBasicRotationUnbounded?(this._requestedBasicRotationUnbounded[0]+=e[0],this._requestedBasicRotationUnbounded[1]+=e[1]):this._requestedBasicRotationUnbounded=e.slice())},t.prototype.rotateBasicWithoutInertia=function(e){if(null!=this._currentNode){this._desiredZoom=this._zoom,this._desiredLookat=null,this._requestedRotationDelta=null,this._requestedBasicRotation=null;var t=.05/Math.pow(2,this._zoom),r=e.slice();r[0]=this._spatial.clamp(r[0],-t,t),r[1]=this._spatial.clamp(r[1],-t,t),this._applyRotationBasic(r)}},t.prototype.rotateToBasic=function(e){if(null!=this._currentNode){this._desiredZoom=this._zoom,this._desiredLookat=null,e[0]=this._spatial.clamp(e[0],0,1),e[1]=this._spatial.clamp(e[1],0,1);var t=this.currentTransform.unprojectBasic(e,this._lookatDepth);this._currentCamera.lookat.fromArray(t)}},t.prototype.zoomIn=function(e,t){if(null!=this._currentNode){this._desiredZoom=Math.max(this._minZoom,Math.min(this._maxZoom,this._desiredZoom+e));var r=this.currentTransform.projectBasic(this._currentCamera.lookat.toArray()),n=r[0],o=r[1],s=Math.pow(2,this._zoom),a=Math.pow(2,this._desiredZoom),c=t[0],u=t[1];null!=this.currentTransform.gpano&&this.currentTransform.gpano.CroppedAreaImageWidthPixels===this.currentTransform.gpano.FullPanoWidthPixels&&(c-n>.5?c-=1:n-c>.5&&(c=1+c));var h=c-s/a*(c-n),l=u-s/a*(u-o),p=this.currentTransform.gpano;this._currentNode.fullPano?(h=this._spatial.wrap(h+this._basicRotation[0],0,1),l=this._spatial.clamp(l+this._basicRotation[1],.05,.95)):null!=p&&this.currentTransform.gpano.CroppedAreaImageWidthPixels===this.currentTransform.gpano.FullPanoWidthPixels?(h=this._spatial.wrap(h+this._basicRotation[0],0,1),l=this._spatial.clamp(l+this._basicRotation[1],0,1)):(h=this._spatial.clamp(h,0,1),l=this._spatial.clamp(l,0,1)),this._desiredLookat=(new i.Vector3).fromArray(this.currentTransform.unprojectBasic([h,l],this._lookatDepth))}},t.prototype.setCenter=function(e){this._desiredLookat=null,this._requestedRotationDelta=null,this._requestedBasicRotation=null,this._desiredZoom=this._zoom;var t=[this._spatial.clamp(e[0],0,1),this._spatial.clamp(e[1],0,1)];if(null!=this._currentNode){this._desiredCenter=null;var r=(new i.Vector3).fromArray(this.currentTransform.unprojectBasic(t,this._lookatDepth)),n=null!=this.previousTransform?this.previousTransform:this.currentTransform,o=(new i.Vector3).fromArray(n.unprojectBasic(t,this._lookatDepth));this._currentCamera.lookat.copy(r),this._previousCamera.lookat.copy(o)}else this._desiredCenter=t},t.prototype.setZoom=function(e){this._desiredLookat=null,this._requestedRotationDelta=null,this._requestedBasicRotation=null,this._zoom=this._spatial.clamp(e,this._minZoom,this._maxZoom),this._desiredZoom=this._zoom},t.prototype._applyRotation=function(e){if(null!=e){var t=(new i.Quaternion).setFromUnitVectors(e.up,new i.Vector3(0,0,1)),r=t.clone().inverse(),n=new i.Vector3;n.copy(e.lookat).sub(e.position),n.applyQuaternion(t);var o=n.length(),s=Math.atan2(n.y,n.x);s+=this._rotationDelta.phi;var a=Math.atan2(Math.sqrt(n.x*n.x+n.y*n.y),n.z);a+=this._rotationDelta.theta,a=Math.max(.1,Math.min(Math.PI-.1,a)),n.x=Math.sin(a)*Math.cos(s),n.y=Math.sin(a)*Math.sin(s),n.z=Math.cos(a),n.applyQuaternion(r),e.lookat.copy(e.position).add(n.multiplyScalar(o))}},t.prototype._applyRotationBasic=function(e){var t=this._currentNode,r=null!=this._previousNode?this.previousNode:this.currentNode,n=this._currentCamera,i=this._previousCamera,o=this.currentTransform,s=null!=this.previousTransform?this.previousTransform:this.currentTransform,a=o.projectBasic(n.lookat.toArray()),c=s.projectBasic(i.lookat.toArray()),u=o.gpano,h=s.gpano;t.fullPano?(a[0]=this._spatial.wrap(a[0]+e[0],0,1),a[1]=this._spatial.clamp(a[1]+e[1],.05,.95)):null!=u&&o.gpano.CroppedAreaImageWidthPixels===o.gpano.FullPanoWidthPixels?(a[0]=this._spatial.wrap(a[0]+e[0],0,1),a[1]=this._spatial.clamp(a[1]+e[1],0,1)):(a[0]=this._spatial.clamp(a[0]+e[0],0,1),a[1]=this._spatial.clamp(a[1]+e[1],0,1)),r.fullPano?(c[0]=this._spatial.wrap(c[0]+e[0],0,1),c[1]=this._spatial.clamp(c[1]+e[1],.05,.95)):null!=h&&s.gpano.CroppedAreaImageWidthPixels===s.gpano.FullPanoWidthPixels?(c[0]=this._spatial.wrap(c[0]+e[0],0,1),c[1]=this._spatial.clamp(c[1]+e[1],0,1)):(c[0]=this._spatial.clamp(c[0]+e[0],0,1),c[1]=this._spatial.clamp(a[1]+e[1],0,1));var l=o.unprojectBasic(a,this._lookatDepth);n.lookat.fromArray(l);var p=s.unprojectBasic(c,this._lookatDepth);i.lookat.fromArray(p)},t.prototype._updateZoom=function(e){var t=this._desiredZoom-this._zoom,r=t>0?1:t<0?-1:0;0!==t&&(Math.abs(t)<.002?(this._zoom=this._desiredZoom,null!=this._desiredLookat&&(this._desiredLookat=null)):this._zoom+=r*Math.max(Math.abs(5*e*t),.002))},t.prototype._updateLookat=function(e){if(null!==this._desiredLookat){var t=this._desiredLookat.distanceToSquared(this._currentCamera.lookat);Math.abs(t)<1e-6?(this._currentCamera.lookat.copy(this._desiredLookat),this._desiredLookat=null):this._currentCamera.lookat.lerp(this._desiredLookat,5*e)}},t.prototype._updateRotation=function(){if(null!=this._requestedRotationDelta){var e=this._rotationDelta.lengthSquared();return this._requestedRotationDelta.lengthSquared()>e?this._rotationDelta.lerp(this._requestedRotationDelta,this._rotationIncreaseAlpha):this._rotationDelta.lerp(this._requestedRotationDelta,this._rotationDecreaseAlpha),void(this._requestedRotationDelta=null)}this._rotationDelta.isZero||(this._rotationDelta.multiply(this._rotationAcceleration),this._rotationDelta.threshold(this._rotationThreshold))},t.prototype._updateRotationBasic=function(){if(null!=this._requestedBasicRotation){var e=this._basicRotation[0],t=this._basicRotation[1],r=this._requestedBasicRotation[0],n=this._requestedBasicRotation[1];return Math.abs(r)>Math.abs(e)?this._basicRotation[0]=(1-this._rotationIncreaseAlpha)*e+this._rotationIncreaseAlpha*r:this._basicRotation[0]=(1-this._rotationDecreaseAlpha)*e+this._rotationDecreaseAlpha*r,Math.abs(n)>Math.abs(t)?this._basicRotation[1]=(1-this._rotationIncreaseAlpha)*t+this._rotationIncreaseAlpha*n:this._basicRotation[1]=(1-this._rotationDecreaseAlpha)*t+this._rotationDecreaseAlpha*n,void(this._requestedBasicRotation=null)}if(null!=this._requestedBasicRotationUnbounded){var r=this._requestedBasicRotationUnbounded[0],n=this._requestedBasicRotationUnbounded[1];if(Math.abs(r)>0&&(this._basicRotation[0]=(1-this._unboundedRotationAlpha)*this._basicRotation[0]+this._unboundedRotationAlpha*r),Math.abs(n)>0&&(this._basicRotation[1]=(1-this._unboundedRotationAlpha)*this._basicRotation[1]+this._unboundedRotationAlpha*n),null!=this._desiredLookat){var o=this.currentTransform.projectBasic(this._desiredLookat.toArray());o[0]+=r,o[1]+=n,this._desiredLookat=(new i.Vector3).fromArray(this.currentTransform.unprojectBasic(o,this._lookatDepth))}this._requestedBasicRotationUnbounded=null}0===this._basicRotation[0]&&0===this._basicRotation[1]||(this._basicRotation[0]=this._rotationAcceleration*this._basicRotation[0],this._basicRotation[1]=this._rotationAcceleration*this._basicRotation[1],Math.abs(this._basicRotation[0])<this._rotationThreshold/Math.pow(2,this._zoom)&&Math.abs(this._basicRotation[1])<this._rotationThreshold/Math.pow(2,this._zoom)&&(this._basicRotation=[0,0]))},t.prototype._clearRotation=function(){this._currentNode.fullPano||(null!=this._requestedRotationDelta&&(this._requestedRotationDelta=null),this._rotationDelta.isZero||this._rotationDelta.reset(),null!=this._requestedBasicRotation&&(this._requestedBasicRotation=null),(this._basicRotation[0]>0||this._basicRotation[1]>0)&&(this._basicRotation=[0,0]))},t.prototype._setDesiredCenter=function(){if(null!=this._desiredCenter){var e=(new i.Vector3).fromArray(this.currentTransform.unprojectBasic(this._desiredCenter,this._lookatDepth)).sub(this._currentCamera.position);this._currentCamera.lookat.copy(this._currentCamera.position.clone().add(e)),this._previousCamera.lookat.copy(this._previousCamera.position.clone().add(e)),this._desiredCenter=null}},t.prototype._setDesiredZoom=function(){this._desiredZoom=this._currentNode.fullPano||null==this._previousNode?this._zoom:0},t}(o.StateBase);r.InteractiveStateBase=s,r.default=s},{"../../State":297,three:240}],422:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../State"),o=function(e){function t(t){var r=e.call(this,t)||this;return r._adjustCameras(),r._motionless=r._motionlessTransition(),r}return n(t,e),t.prototype.traverse=function(){return new i.TraversingState(this)},t.prototype.wait=function(){return new i.WaitingState(this)},t.prototype.waitInteractively=function(){throw new Error("Not implemented")},t.prototype.prepend=function(t){e.prototype.prepend.call(this,t),this._motionless=this._motionlessTransition()},t.prototype.set=function(t){e.prototype.set.call(this,t),this._motionless=this._motionlessTransition()},t.prototype.setSpeed=function(e){},t.prototype.move=function(e){this._alpha=Math.max(0,Math.min(1,this._alpha+e))},t.prototype.moveTo=function(e){this._alpha=Math.max(0,Math.min(1,e))},t.prototype.update=function(e){this._updateRotation(),this._rotationDelta.isZero||(this._applyRotation(this._previousCamera),this._applyRotation(this._currentCamera)),this._updateRotationBasic(),0===this._basicRotation[0]&&0===this._basicRotation[1]||this._applyRotationBasic(this._basicRotation);var t=this._animationSpeed*(60/e);this._updateZoom(t),this._updateLookat(t),this._camera.lerpCameras(this._previousCamera,this._currentCamera,this.alpha)},t.prototype._getAlpha=function(){return this._motionless?Math.round(this._alpha):this._alpha},t.prototype._setCurrentCamera=function(){e.prototype._setCurrentCamera.call(this),this._adjustCameras()},t.prototype._adjustCameras=function(){if(null!=this._previousNode){if(this._currentNode.fullPano){e=this._camera.lookat.clone().sub(this._camera.position);this._currentCamera.lookat.copy(e.clone().add(this._currentCamera.position))}if(this._previousNode.fullPano){var e=this._currentCamera.lookat.clone().sub(this._currentCamera.position);this._previousCamera.lookat.copy(e.clone().add(this._previousCamera.position))}}},t}(i.InteractiveStateBase);r.InteractiveWaitingState=o,r.default=o},{"../../State":297}],423:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../../Error"),i=e("../../Geo"),o=e("../../State"),s=function(){function e(e){this._spatial=new i.Spatial,this._geoCoords=new i.GeoCoords,this._referenceThreshold=.01,this._transitionMode=e.transitionMode,this._reference=e.reference,this._alpha=e.alpha,this._camera=e.camera.clone(),this._zoom=e.zoom,this._currentIndex=e.currentIndex,this._trajectory=e.trajectory.slice(),this._trajectoryTransforms=[],this._trajectoryCameras=[];for(var t=0,r=this._trajectory;t<r.length;t++){var n=r[t],o=this._nodeToTranslation(n),s=new i.Transform(n.orientation,n.width,n.height,n.focal,n.scale,n.gpano,n.rotation,o,n.image);this._trajectoryTransforms.push(s),this._trajectoryCameras.push(new i.Camera(s))}this._currentNode=this._trajectory.length>0?this._trajectory[this._currentIndex]:null,this._previousNode=this._trajectory.length>1&&this.currentIndex>0?this._trajectory[this._currentIndex-1]:null,this._currentCamera=this._trajectoryCameras.length>0?this._trajectoryCameras[this._currentIndex].clone():new i.Camera,this._previousCamera=this._trajectoryCameras.length>1&&this.currentIndex>0?this._trajectoryCameras[this._currentIndex-1].clone():this._currentCamera.clone()}return Object.defineProperty(e.prototype,"reference",{get:function(){return this._reference},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"alpha",{get:function(){return this._getAlpha()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"camera",{get:function(){return this._camera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"zoom",{get:function(){return this._zoom},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trajectory",{get:function(){return this._trajectory},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentIndex",{get:function(){return this._currentIndex},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentNode",{get:function(){return this._currentNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"previousNode",{get:function(){return this._previousNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentCamera",{get:function(){return this._currentCamera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentTransform",{get:function(){return this._trajectoryTransforms.length>0?this._trajectoryTransforms[this.currentIndex]:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"previousTransform",{get:function(){return this._trajectoryTransforms.length>1&&this.currentIndex>0?this._trajectoryTransforms[this.currentIndex-1]:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"motionless",{get:function(){return this._motionless},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"transitionMode",{get:function(){return this._transitionMode},enumerable:!0,configurable:!0}),e.prototype.append=function(e){if(e.length<1)throw Error("Trajectory can not be empty");this._currentIndex<0?this.set(e):(this._trajectory=this._trajectory.concat(e),this._appendToTrajectories(e))},e.prototype.prepend=function(e){if(e.length<1)throw Error("Trajectory can not be empty");this._trajectory=e.slice().concat(this._trajectory),this._currentIndex+=e.length,this._setCurrentNode();this._setReference(this._currentNode)?this._setTrajectories():this._prependToTrajectories(e),this._setCurrentCamera()},e.prototype.remove=function(e){if(e<0)throw Error("n must be a positive integer");if(this._currentIndex-1<e)throw Error("Current and previous nodes can not be removed");for(var t=0;t<e;t++)this._trajectory.shift(),this._trajectoryTransforms.shift(),this._trajectoryCameras.shift(),this._currentIndex--;this._setCurrentNode()},e.prototype.clearPrior=function(){this._currentIndex>0&&this.remove(this._currentIndex-1)},e.prototype.clear=function(){this.cut(),this._currentIndex>0&&this.remove(this._currentIndex-1)},e.prototype.cut=function(){for(;this._trajectory.length-1>this._currentIndex;)this._trajectory.pop(),this._trajectoryTransforms.pop(),this._trajectoryCameras.pop()},e.prototype.set=function(e){this._setTrajectory(e),this._setCurrentNode(),this._setReference(this._currentNode),this._setTrajectories(),this._setCurrentCamera()},e.prototype.getCenter=function(){return null!=this._currentNode?this.currentTransform.projectBasic(this._camera.lookat.toArray()):[.5,.5]},e.prototype.setTransitionMode=function(e){this._transitionMode=e},e.prototype._setCurrent=function(){this._setCurrentNode();this._setReference(this._currentNode)&&this._setTrajectories(),this._setCurrentCamera()},e.prototype._setCurrentCamera=function(){this._currentCamera=this._trajectoryCameras[this._currentIndex].clone(),this._previousCamera=this._currentIndex>0?this._trajectoryCameras[this._currentIndex-1].clone():this._currentCamera.clone()},e.prototype._motionlessTransition=function(){return null!=this._currentNode&&null!=this._previousNode&&(this._transitionMode===o.TransitionMode.Instantaneous||!(this._currentNode.merged&&this._previousNode.merged&&this._withinOriginalDistance()&&this._sameConnectedComponent()))},e.prototype._setReference=function(e){return!(Math.abs(e.latLon.lat-this.reference.lat)<this._referenceThreshold&&Math.abs(e.latLon.lon-this.reference.lon)<this._referenceThreshold)&&(!(null!=this._previousNode&&!this._motionlessTransition())&&(this._reference.lat=e.latLon.lat,this._reference.lon=e.latLon.lon,this._reference.alt=e.alt,!0))},e.prototype._setCurrentNode=function(){this._currentNode=this._trajectory.length>0?this._trajectory[this._currentIndex]:null,this._previousNode=this._currentIndex>0?this._trajectory[this._currentIndex-1]:null},e.prototype._setTrajectory=function(e){if(e.length<1)throw new n.ArgumentMapillaryError("Trajectory can not be empty");null!=this._currentNode?(this._trajectory=[this._currentNode].concat(e),this._currentIndex=1):(this._trajectory=e.slice(),this._currentIndex=0)},e.prototype._setTrajectories=function(){this._trajectoryTransforms.length=0,this._trajectoryCameras.length=0,this._appendToTrajectories(this._trajectory)},e.prototype._appendToTrajectories=function(e){for(var t=0,r=e;t<r.length;t++){var o=r[t];if(!o.assetsCached)throw new n.ArgumentMapillaryError("Assets must be cached when node is added to trajectory");var s=this._nodeToTranslation(o),a=new i.Transform(o.orientation,o.width,o.height,o.focal,o.scale,o.gpano,o.rotation,s,o.image);this._trajectoryTransforms.push(a),this._trajectoryCameras.push(new i.Camera(a))}},e.prototype._prependToTrajectories=function(e){for(var t=0,r=e.reverse();t<r.length;t++){var o=r[t];if(!o.assetsCached)throw new n.ArgumentMapillaryError("Assets must be cached when added to trajectory");var s=this._nodeToTranslation(o),a=new i.Transform(o.orientation,o.width,o.height,o.focal,o.scale,o.gpano,o.rotation,s,o.image);this._trajectoryTransforms.unshift(a),this._trajectoryCameras.unshift(new i.Camera(a))}},e.prototype._nodeToTranslation=function(e){var t=this._geoCoords.geodeticToEnu(e.latLon.lat,e.latLon.lon,e.alt,this._reference.lat,this._reference.lon,this._reference.alt),r=this._spatial.rotate(t,e.rotation);return[-r.x,-r.y,-r.z]},e.prototype._sameConnectedComponent=function(){var e=this._currentNode,t=this._previousNode;return!!e&&!!t&&e.mergeCC===t.mergeCC},e.prototype._withinOriginalDistance=function(){var e=this._currentNode,t=this._previousNode;if(!e||!t)return!0;return this._spatial.distanceFromLatLon(e.originalLatLon.lat,e.originalLatLon.lon,t.originalLatLon.lat,t.originalLatLon.lon)<25},e}();r.StateBase=s},{"../../Error":292,"../../Geo":293,"../../State":297}],424:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("@mapbox/unitbezier"),o=e("../../State"),s=function(e){function t(t){var r=e.call(this,t)||this;return r._adjustCameras(),r._motionless=r._motionlessTransition(),r._baseAlpha=r._alpha,r._speedCoefficient=1,r._unitBezier=new i(.74,.67,.38,.96),r._useBezier=!1,r}return n(t,e),t.prototype.traverse=function(){throw new Error("Not implemented")},t.prototype.wait=function(){return new o.WaitingState(this)},t.prototype.waitInteractively=function(){return new o.InteractiveWaitingState(this)},t.prototype.append=function(t){var r=0===this._trajectory.length;r&&this._resetTransition(),e.prototype.append.call(this,t),r&&(this._setDesiredCenter(),this._setDesiredZoom())},t.prototype.prepend=function(t){var r=0===this._trajectory.length;r&&this._resetTransition(),e.prototype.prepend.call(this,t),r&&(this._setDesiredCenter(),this._setDesiredZoom())},t.prototype.set=function(t){e.prototype.set.call(this,t),this._desiredLookat=null,this._resetTransition(),this._clearRotation(),this._setDesiredCenter(),this._setDesiredZoom(),this._trajectory.length<3&&(this._useBezier=!0)},t.prototype.move=function(e){throw new Error("Not implemented")},t.prototype.moveTo=function(e){throw new Error("Not implemented")},t.prototype.setSpeed=function(e){this._speedCoefficient=this._spatial.clamp(e,0,10)},t.prototype.update=function(e){1===this._alpha&&this._currentIndex+this._alpha<this._trajectory.length&&(this._currentIndex+=1,this._useBezier=this._trajectory.length<3&&this._currentIndex+1===this._trajectory.length,this._setCurrent(),this._resetTransition(),this._clearRotation(),this._desiredZoom=this._currentNode.fullPano?this._zoom:0,this._desiredLookat=null);var t=this._animationSpeed*(60/e);this._baseAlpha=Math.min(1,this._baseAlpha+this._speedCoefficient*t),this._useBezier?this._alpha=this._unitBezier.solve(this._baseAlpha):this._alpha=this._baseAlpha,this._updateRotation(),this._rotationDelta.isZero||(this._applyRotation(this._previousCamera),this._applyRotation(this._currentCamera)),this._updateRotationBasic(),0===this._basicRotation[0]&&0===this._basicRotation[1]||this._applyRotationBasic(this._basicRotation),this._updateZoom(t),this._updateLookat(t),this._camera.lerpCameras(this._previousCamera,this._currentCamera,this.alpha)},t.prototype._getAlpha=function(){return this._motionless?Math.ceil(this._alpha):this._alpha},t.prototype._setCurrentCamera=function(){e.prototype._setCurrentCamera.call(this),this._adjustCameras()},t.prototype._adjustCameras=function(){if(null!=this._previousNode){var e=this._camera.lookat.clone().sub(this._camera.position);this._previousCamera.lookat.copy(e.clone().add(this._previousCamera.position)),this._currentNode.fullPano&&this._currentCamera.lookat.copy(e.clone().add(this._currentCamera.position))}},t.prototype._resetTransition=function(){this._alpha=0,this._baseAlpha=0,this._motionless=this._motionlessTransition()},t}(o.InteractiveStateBase);r.TraversingState=s,r.default=s},{"../../State":297,"@mapbox/unitbezier":2}],425:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("../../State"),o=function(e){function t(t){var r=e.call(this,t)||this;return r._zoom=0,r._adjustCameras(),r._motionless=r._motionlessTransition(),r}return n(t,e),t.prototype.traverse=function(){return new i.TraversingState(this)},t.prototype.wait=function(){throw new Error("Not implemented")},t.prototype.waitInteractively=function(){return new i.InteractiveWaitingState(this)},t.prototype.prepend=function(t){e.prototype.prepend.call(this,t),this._motionless=this._motionlessTransition()},t.prototype.set=function(t){e.prototype.set.call(this,t),this._motionless=this._motionlessTransition()},t.prototype.rotate=function(e){},t.prototype.rotateBasic=function(e){},t.prototype.rotateBasicUnbounded=function(e){},t.prototype.rotateBasicWithoutInertia=function(e){},t.prototype.rotateToBasic=function(e){},t.prototype.setSpeed=function(e){},t.prototype.zoomIn=function(e,t){},t.prototype.move=function(e){this._alpha=Math.max(0,Math.min(1,this._alpha+e))},t.prototype.moveTo=function(e){this._alpha=Math.max(0,Math.min(1,e))},t.prototype.update=function(e){this._camera.lerpCameras(this._previousCamera,this._currentCamera,this.alpha)},t.prototype.setCenter=function(e){},t.prototype.setZoom=function(e){},t.prototype._getAlpha=function(){return this._motionless?Math.round(this._alpha):this._alpha},t.prototype._setCurrentCamera=function(){e.prototype._setCurrentCamera.call(this),this._adjustCameras()},t.prototype._adjustCameras=function(){if(null!=this._previousNode){if(this._currentNode.fullPano){e=this._camera.lookat.clone().sub(this._camera.position);this._currentCamera.lookat.copy(e.clone().add(this._currentCamera.position))}if(this._previousNode.fullPano){var e=this._currentCamera.lookat.clone().sub(this._currentCamera.position);this._previousCamera.lookat.copy(e.clone().add(this._previousCamera.position))}}},t}(i.StateBase);r.WaitingState=o,r.default=o},{"../../State":297}],426:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=function(){function e(e,t,r){this._scheme=e,this._host=t,this._origin=null!=r?"?origin="+r:""}return e.prototype.getTile=function(e,t,r,i,o,s,a){var c="/"+e+"/"+t+","+r+","+i+","+o+"/"+s+","+a+"/0/default.jpg",u=this._scheme+"://"+this._host+c+this._origin,h=null;return[n.Observable.create(function(n){(h=new XMLHttpRequest).open("GET",u,!0),h.responseType="arraybuffer",h.timeout=15e3,h.onload=function(s){if(200===h.status){var a=new Image;a.crossOrigin="Anonymous",a.onload=function(e){n.next(a),n.complete()},a.onerror=function(s){n.error(new Error("Failed to load tile image ("+e+": "+t+","+r+","+i+","+o+")"))};var c=new Blob([h.response]);a.src=window.URL.createObjectURL(c)}else n.error(new Error("Failed to fetch tile ("+e+": "+t+","+r+","+i+","+o+"). Status: "+h.status+", "+h.statusText))},h.onerror=function(s){n.error(new Error("Failed to fetch tile ("+e+": "+t+","+r+","+i+","+o+")"))},h.ontimeout=function(s){n.error(new Error("Tile request timed out ("+e+": "+t+","+r+","+i+","+o+")"))},h.onabort=function(s){n.error(new Error("Tile request was aborted ("+e+": "+t+","+r+","+i+","+o+")"))},h.send(null)}),function(){null!=h&&h.abort()}]},e}();r.ImageTileLoader=i,r.default=i},{"rxjs/Observable":29}],427:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){this._images={}}return e.prototype.addImage=function(e,t,r){r in this._images||(this._images[r]={}),this._images[r][t]=e},e.prototype.dispose=function(){for(var e=0,t=Object.keys(this._images);e<t.length;e++){for(var r=t[e],n=this._images[r],i=0,o=Object.keys(n);i<o.length;i++){var s=o[i];window.URL.revokeObjectURL(n[s].src),delete n[s]}delete this._images[r]}},e.prototype.getImage=function(e,t){return this._images[t][e]},e.prototype.hasImage=function(e,t){return t in this._images&&e in this._images[t]},e}();r.ImageTileStore=n,r.default=n},{}],428:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../Geo"),i=function(){function e(){this._viewportCoords=new n.ViewportCoords}return e.prototype.computeRegionOfInterest=function(e,t,r){var n=this._viewportBoundaryPoints(4),i=this._viewportPointsBoundingBox(n,e,r);this._clipBoundingBox(i);var o=2/t.width,s=2/t.height,a=[[-.5*o,.5*s],[.5*o,.5*s],[.5*o,-.5*s],[-.5*o,-.5*s]],c=this._viewportPointsBoundingBox(a,e,r);return{bbox:i,pixelHeight:c.maxY-c.minY,pixelWidth:c.maxX-c.minX+(c.minX<c.maxX?0:1)}},e.prototype._viewportBoundaryPoints=function(e){for(var t=[],r=[[-1,1],[1,1],[1,-1],[-1,-1]],n=[[2,0],[0,-2],[-2,0],[0,2]],i=0;i<4;++i)for(var o=r[i],s=n[i],a=0;a<e;++a)t.push([o[0]+s[0]*a/e,o[1]+s[1]*a/e]);return t},e.prototype._viewportPointsBoundingBox=function(e,t,r){var n=this,i=e.map(function(e){return n._viewportCoords.viewportToBasic(e[0],e[1],r,t.perspective)});return null!=r.gpano?this._boundingBoxPano(i):this._boundingBox(i)},e.prototype._boundingBox=function(e){for(var t={maxX:Number.NEGATIVE_INFINITY,maxY:Number.NEGATIVE_INFINITY,minX:Number.POSITIVE_INFINITY,minY:Number.POSITIVE_INFINITY},r=0;r<e.length;++r)t.minX=Math.min(t.minX,e[r][0]),t.maxX=Math.max(t.maxX,e[r][0]),t.minY=Math.min(t.minY,e[r][1]),t.maxY=Math.max(t.maxY,e[r][1]);return t},e.prototype._boundingBoxPano=function(e){for(var t=this,r=[],n=[],i=0;i<e.length;++i)r.push(e[i][0]),n.push(e[i][1]);r.sort(function(e,r){return t._sign(e-r)}),n.sort(function(e,r){return t._sign(e-r)});var o=this._intervalPano(r);return{maxX:o[1],maxY:n[n.length-1],minX:o[0],minY:n[0]}},e.prototype._intervalPano=function(e){for(var t=0,r=-1,n=0;n<e.length-1;++n){var i=e[n+1]-e[n];i>t&&(t=i,r=n)}return e[0]+1-e[e.length-1]>t?[e[0],e[e.length-1]]:[e[r+1],e[r]]},e.prototype._clipBoundingBox=function(e){e.minX=Math.max(0,Math.min(1,e.minX)),e.maxX=Math.max(0,Math.min(1,e.maxX)),e.minY=Math.max(0,Math.min(1,e.minY)),e.maxY=Math.max(0,Math.min(1,e.maxY))},e.prototype._sign=function(e){return e>0?1:e<0?-1:0},e}();r.RegionOfInterestCalculator=i,r.default=i},{"../Geo":293}],429:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("rxjs/Subject"),o=function(){function e(e,t,r,n,o,s,a,c){this._disposed=!1,this._key=e,(t<=0||r<=0)&&console.warn("Original image size ("+t+", "+r+") is invalid ("+e+"). Tiles will not be loaded."),this._width=t,this._height=r,this._maxLevel=Math.ceil(Math.log(Math.max(r,t))/Math.log(2)),this._currentLevel=-1,this._tileSize=n,this._updated$=new i.Subject,this._createdSubject$=new i.Subject,this._created$=this._createdSubject$.publishReplay(1).refCount(),this._createdSubscription=this._created$.subscribe(function(){}),this._hasSubject$=new i.Subject,this._has$=this._hasSubject$.startWith(!1).publishReplay(1).refCount(),this._hasSubscription=this._has$.subscribe(function(){}),this._abortFunctions=[],this._tileSubscriptions={},this._renderedCurrentLevelTiles={},this._renderedTiles={},this._background=o,this._camera=null,this._imageTileLoader=s,this._imageTileStore=a,this._renderer=c,this._renderTarget=null,this._roi=null}return Object.defineProperty(e.prototype,"disposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasTexture$",{get:function(){return this._has$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"key",{get:function(){return this._key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textureUpdated$",{get:function(){return this._updated$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textureCreated$",{get:function(){return this._created$},enumerable:!0,configurable:!0}),e.prototype.abort=function(){for(var e in this._tileSubscriptions)this._tileSubscriptions.hasOwnProperty(e)&&this._tileSubscriptions[e].unsubscribe();this._tileSubscriptions={};for(var t=0,r=this._abortFunctions;t<r.length;t++){(0,r[t])()}this._abortFunctions=[]},e.prototype.dispose=function(){this._disposed?console.warn("Texture already disposed ("+this._key+")"):(this.abort(),null!=this._renderTarget&&(this._renderTarget.dispose(),this._renderTarget=null),this._imageTileStore.dispose(),this._imageTileStore=null,this._background=null,this._camera=null,this._imageTileLoader=null,this._renderer=null,this._roi=null,this._createdSubscription.unsubscribe(),this._hasSubscription.unsubscribe(),this._disposed=!0)},e.prototype.setRegionOfInterest=function(e){if(!(this._width<=0||this._height<=0)){this._roi=e;var t=1/this._roi.pixelWidth,r=1/this._roi.pixelHeight,i=Math.max(r,t),o=Math.max(0,Math.min(this._maxLevel,Math.ceil(Math.log(i)/Math.log(2))));if(o!==this._currentLevel){this.abort(),this._currentLevel=o,this._currentLevel in this._renderedTiles||(this._renderedTiles[this._currentLevel]=[]),this._renderedCurrentLevelTiles={};for(var s=0,a=this._renderedTiles[this._currentLevel];s<a.length;s++){var c=a[s];this._renderedCurrentLevelTiles[this._tileKey(this._tileSize,c)]=!0}}var u=this._getTileCoords([this._roi.bbox.minX,this._roi.bbox.minY]),h=this._getTileCoords([this._roi.bbox.maxX,this._roi.bbox.maxY]),l=this._getTiles(u,h);if(null==this._camera){this._camera=new n.OrthographicCamera(-this._width/2,this._width/2,this._height/2,-this._height/2,-1,1),this._camera.position.z=1;var p=this._renderer.getContext(),f=p.getParameter(p.MAX_TEXTURE_SIZE),d=Math.max(this._width,this._height),m=f>d?1:f/d,v=Math.floor(m*this._width),g=Math.floor(m*this._height);this._renderTarget=new n.WebGLRenderTarget(v,g,{depthBuffer:!1,format:n.RGBFormat,magFilter:n.LinearFilter,minFilter:n.LinearFilter,stencilBuffer:!1}),this._renderToTarget(0,0,this._width,this._height,this._background),this._createdSubject$.next(this._renderTarget.texture),this._hasSubject$.next(!0)}this._fetchTiles(l)}},e.prototype.setTileSize=function(e){this._tileSize=e},e.prototype.updateBackground=function(e){this._background=e},e.prototype._fetchTile=function(e,t,r,n,i,o,s,a){var c=this,u=this._imageTileLoader.getTile(this._key,r,n,i,o,s,a),h=u[0],l=u[1];this._abortFunctions.push(l);var p=this._tileKey(this._tileSize,e),f=h.subscribe(function(s){c._renderToTarget(r,n,i,o,s),c._removeFromDictionary(p,c._tileSubscriptions),c._removeFromArray(l,c._abortFunctions),c._setTileRendered(e,c._currentLevel),c._imageTileStore.addImage(s,p,t),c._updated$.next(!0)},function(e){c._removeFromDictionary(p,c._tileSubscriptions),c._removeFromArray(l,c._abortFunctions),console.error(e)});f.closed||(this._tileSubscriptions[p]=f)},e.prototype._fetchTiles=function(e){for(var t=this._tileSize*Math.pow(2,this._maxLevel-this._currentLevel),r=0,n=e;r<n.length;r++){var i=n[r],o=this._tileKey(this._tileSize,i);if(!(o in this._renderedCurrentLevelTiles||o in this._tileSubscriptions)){var s=t*i[0],a=t*i[1],c=s+t>this._width?this._width-s:t,u=a+t>this._height?this._height-a:t;if(this._imageTileStore.hasImage(o,this._currentLevel))this._renderToTarget(s,a,c,u,this._imageTileStore.getImage(o,this._currentLevel)),this._setTileRendered(i,this._currentLevel),this._updated$.next(!0);else{var h=Math.floor(c/t*this._tileSize),l=Math.floor(u/t*this._tileSize);this._fetchTile(i,this._currentLevel,s,a,c,u,h,l)}}}},e.prototype._getTileCoords=function(e){var t=this._tileSize*Math.pow(2,this._maxLevel-this._currentLevel),r=Math.ceil(this._width/t)-1,n=Math.ceil(this._height/t)-1;return[Math.min(Math.floor(this._width*e[0]/t),r),Math.min(Math.floor(this._height*e[1]/t),n)]},e.prototype._getTiles=function(e,t){var r=[];if(e[0]>t[0]){for(var n=this._tileSize*Math.pow(2,this._maxLevel-this._currentLevel),i=Math.ceil(this._width/n)-1,o=e[0];o<=i;o++)r.push(o);for(o=0;o<=t[0];o++)r.push(o)}else for(o=e[0];o<=t[0];o++)r.push(o);for(var s=[],a=0,c=r;a<c.length;a++)for(var o=c[a],u=e[1];u<=t[1];u++)s.push([o,u]);return s},e.prototype._removeFromArray=function(e,t){var r=t.indexOf(e);-1!==r&&t.splice(r,1)},e.prototype._removeFromDictionary=function(e,t){e in t&&delete t[e]},e.prototype._renderToTarget=function(e,t,r,i,o){var s=new n.Texture(o);s.minFilter=n.LinearFilter,s.needsUpdate=!0;var a=new n.PlaneGeometry(r,i),c=new n.MeshBasicMaterial({map:s,side:n.FrontSide}),u=new n.Mesh(a,c);u.position.x=-this._width/2+e+r/2,u.position.y=this._height/2-t-i/2;var h=new n.Scene;h.add(u),this._renderer.render(h,this._camera,this._renderTarget),this._renderer.setRenderTarget(void 0),h.remove(u),a.dispose(),c.dispose(),s.dispose()},e.prototype._setTileRendered=function(e,t){for(var r=0,n=Object.keys(this._renderedTiles).map(function(e){return parseInt(e,10)}).filter(function(e){return e!==t});r<n.length;r++){var i=n[r],o=Math.pow(2,i-t);if(i<t)for(var s=Math.floor(o*e[0]),a=Math.floor(o*e[1]),c=0,u=this._renderedTiles[i].slice();c<u.length;c++){if((v=u[c])[0]===s&&v[1]===a){g=this._renderedTiles[i].indexOf(v);this._renderedTiles[i].splice(g,1)}}else for(var h=o*e[0],l=h+o-1,p=o*e[1],f=p+o-1,d=0,m=this._renderedTiles[i].slice();d<m.length;d++){var v=m[d];if(v[0]>=h&&v[0]<=l&&v[1]>=p&&v[1]<=f){var g=this._renderedTiles[i].indexOf(v);this._renderedTiles[i].splice(g,1)}}0===this._renderedTiles[i].length&&delete this._renderedTiles[i]}this._renderedTiles[t].push(e),this._renderedCurrentLevelTiles[this._tileKey(this._tileSize,e)]=!0},e.prototype._tileKey=function(e,t){return e+"-"+t[0]+"-"+t[1]},e}();r.TextureProvider=o,r.default=o},{"rxjs/Subject":34,three:240}],430:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e){this._document=e||document}return Object.defineProperty(e.prototype,"document",{get:function(){return this._document},enumerable:!0,configurable:!0}),e.prototype.createElement=function(e,t,r){var n=this._document.createElement(e);return t&&(n.className=t),r&&r.appendChild(n),n},e}();r.DOM=n,r.default=n},{}],431:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){this._events={}}return e.prototype.on=function(e,t){this._events[e]=this._events[e]||[],this._events[e].push(t)},e.prototype.off=function(e,t){if(e)if(this._listens(e))delete this._events[e];else{var r=this._events[e].indexOf(t);r>=0&&this._events[e].splice(r,1),this._events[e].length&&delete this._events[e]}else this._events={}},e.prototype.fire=function(e,t){if(this._listens(e))for(var r=0,n=this._events[e];r<n.length;r++){n[r].call(this,t)}},e.prototype._listens=function(e){return!(!this._events||!this._events[e])},e}();r.EventEmitter=n,r.default=n},{}],432:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../Viewer"),i=function(){function e(){}return e.setOptions=function(t){e._baseImageSize=null!=t.baseImageSize?t.baseImageSize:n.ImageSize.Size640,e._basePanoramaSize=null!=t.basePanoramaSize?t.basePanoramaSize:n.ImageSize.Size2048,e._maxImageSize=null!=t.maxImageSize?t.maxImageSize:n.ImageSize.Size2048},Object.defineProperty(e,"baseImageSize",{get:function(){return e._baseImageSize},enumerable:!0,configurable:!0}),Object.defineProperty(e,"basePanoramaSize",{get:function(){return e._basePanoramaSize},enumerable:!0,configurable:!0}),Object.defineProperty(e,"maxImageSize",{get:function(){return e._maxImageSize},enumerable:!0,configurable:!0}),e}();r.Settings=i,r.default=i},{"../Viewer":301}],433:[function(e,t,r){"use strict";function n(){var e={alpha:!1,antialias:!1,depth:!0,failIfMajorPerformanceCaveat:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,stencil:!0},t=document.createElement("canvas"),r=t.getContext("webgl",e)||t.getContext("experimental-webgl",e);if(!r)return!1;for(var n=r.getSupportedExtensions(),i=0,o=["OES_standard_derivatives"];i<o.length;i++){var s=o[i];if(-1===n.indexOf(s))return!1}return!0}Object.defineProperty(r,"__esModule",{value:!0}),r.isBrowser=function(){return"undefined"!=typeof window&&"undefined"!=typeof document},r.isArraySupported=function(){return!!(Array.prototype&&Array.prototype.filter&&Array.prototype.indexOf&&Array.prototype.map&&Array.prototype.reverse)},r.isFunctionSupported=function(){return!(!Function.prototype||!Function.prototype.bind)},r.isJSONSupported=function(){return"JSON"in window&&"parse"in JSON&&"stringify"in JSON},r.isObjectSupported=function(){return!(!Object.keys||!Object.assign)},r.isBlobSupported=function(){return"Blob"in window&&"URL"in window};var i=void 0;r.isWebGLSupportedCached=function(){return void 0===i&&(i=n()),i},r.isWebGLSupported=n},{}],434:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(){}return Object.defineProperty(e,"explore",{get:function(){return e._scheme+"://"+e._exploreHost},enumerable:!0,configurable:!0}),Object.defineProperty(e,"origin",{get:function(){return e._origin},enumerable:!0,configurable:!0}),Object.defineProperty(e,"tileScheme",{get:function(){return e._scheme},enumerable:!0,configurable:!0}),Object.defineProperty(e,"tileDomain",{get:function(){return e._imageTileHost},enumerable:!0,configurable:!0}),e.exporeImage=function(t){return e._scheme+"://"+e._exploreHost+"/app/?pKey="+t+"&focus=photo"},e.exporeUser=function(t){return e._scheme+"://"+e._exploreHost+"/app/user/"+t},e.falcorModel=function(t){return e._scheme+"://"+e._apiHost+"/v3/model.json?client_id="+t},e.protoMesh=function(t){return e._scheme+"://"+e._meshHost+"/v2/mesh/"+t},e.thumbnail=function(t,r,n){return e._scheme+"://"+e._imageHost+"/"+t+"/thumb-"+r+".jpg"+(n?"?origin="+n:"")},e.setOptions=function(t){t&&(t.apiHost&&(e._apiHost=t.apiHost),t.exploreHost&&(e._exploreHost=t.exploreHost),t.imageHost&&(e._imageHost=t.imageHost),t.imageTileHost&&(e._imageTileHost=t.imageTileHost),t.meshHost&&(e._meshHost=t.meshHost),t.scheme&&(e._scheme=t.scheme))},e._apiHost="a.mapillary.com",e._exploreHost="www.mapillary.com",e._imageHost="d1cuyjsrcm0gby.cloudfront.net",e._imageTileHost="d2qb1440i7l50o.cloudfront.net",e._meshHost="d1brzeo354iq2l.cloudfront.net",e._origin="mapillary.webgl",e._scheme="https",e}();r.Urls=n,r.default=n},{}],435:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n;!function(e){e[e.Bottom=0]="Bottom",e[e.BottomLeft=1]="BottomLeft",e[e.BottomRight=2]="BottomRight",e[e.Center=3]="Center",e[e.Left=4]="Left",e[e.Right=5]="Right",e[e.Top=6]="Top",e[e.TopLeft=7]="TopLeft",e[e.TopRight=8]="TopRight"}(n=r.Alignment||(r.Alignment={})),r.default=n},{}],436:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=e("../Graph"),o=function(){function e(e,t){this._graphService=e,this._stateService=t,this._started=!1}return Object.defineProperty(e.prototype,"started",{get:function(){return this._started},enumerable:!0,configurable:!0}),e.prototype.start=function(){var e=this;this._started||(this._uncacheSubscription=this._stateService.currentState$.distinctUntilChanged(void 0,function(e){return e.state.currentNode.key}).map(function(e){var t=e.state.trajectory;return[t.map(function(e){return e.key}),t[t.length-1].sequenceKey]}).bufferCount(1,5).withLatestFrom(this._graphService.graphMode$).switchMap(function(t){var r=t[0],n=t[1],o=r[0][0],s=n===i.GraphMode.Sequence?r[0][1]:void 0;return e._graphService.uncache$(o,s)}).subscribe(function(){}),this._cacheNodeSubscription=this._graphService.graphMode$.skip(1).withLatestFrom(this._stateService.currentState$).switchMap(function(t){var r=t[0],o=t[1];return r===i.GraphMode.Sequence?e._keyToEdges(o.state.currentNode.key,function(e){return e.sequenceEdges$}):n.Observable.from(o.state.trajectory.map(function(e){return e.key}).slice(o.state.currentIndex)).mergeMap(function(t){return e._keyToEdges(t,function(e){return e.spatialEdges$})},6)}).subscribe(function(){}),this._started=!0)},e.prototype.stop=function(){this._started&&(this._uncacheSubscription.unsubscribe(),this._uncacheSubscription=null,this._cacheNodeSubscription.unsubscribe(),this._cacheNodeSubscription=null,this._started=!1)},e.prototype._keyToEdges=function(e,t){return this._graphService.cacheNode$(e).switchMap(t).first(function(e){return e.cached}).timeout(15e3).catch(function(t){return console.error("Failed to cache edges ("+e+").",t),n.Observable.empty()})},e}();r.CacheService=o,r.default=o},{"../Graph":294,"rxjs/Observable":29}],437:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../Component"),i=function(){function e(e,t,r,i,o,s){var a=this;this._container=e,this._observer=r,this._navigator=t,this._options=null!=o?o:{},this._key=i,this._navigable=null==i,this._componentService=s||new n.ComponentService(this._container,this._navigator),this._coverComponent=this._componentService.getCover(),this._initializeComponents(),i?(this._initilizeCoverComponent(),this._subscribeCoverComponent()):this._navigator.movedToKey$.first(function(e){return null!=e}).subscribe(function(e){a._key=e,a._componentService.deactivateCover(),a._coverComponent.configure({key:a._key,state:n.CoverState.Hidden}),a._subscribeCoverComponent(),a._navigator.stateService.start(),a._navigator.cacheService.start(),a._observer.startEmit()})}return Object.defineProperty(e.prototype,"navigable",{get:function(){return this._navigable},enumerable:!0,configurable:!0}),e.prototype.get=function(e){return this._componentService.get(e)},e.prototype.activate=function(e){this._componentService.activate(e)},e.prototype.activateCover=function(){this._coverComponent.configure({state:n.CoverState.Visible})},e.prototype.deactivate=function(e){this._componentService.deactivate(e)},e.prototype.deactivateCover=function(){this._coverComponent.configure({state:n.CoverState.Loading})},e.prototype.resize=function(){this._componentService.resize()},e.prototype._initializeComponents=function(){var e=this._options;this._uFalse(e.background,"background"),this._uFalse(e.debug,"debug"),this._uFalse(e.image,"image"),this._uFalse(e.marker,"marker"),this._uFalse(e.navigation,"navigation"),this._uFalse(e.popup,"popup"),this._uFalse(e.route,"route"),this._uFalse(e.slider,"slider"),this._uFalse(e.tag,"tag"),this._uTrue(e.attribution,"attribution"),this._uTrue(e.bearing,"bearing"),this._uTrue(e.cache,"cache"),this._uTrue(e.direction,"direction"),this._uTrue(e.imagePlane,"imagePlane"),this._uTrue(e.keyboard,"keyboard"),this._uTrue(e.loading,"loading"),this._uTrue(e.mouse,"mouse"),this._uTrue(e.sequence,"sequence"),this._uTrue(e.stats,"stats"),this._uTrue(e.zoom,"zoom")},e.prototype._initilizeCoverComponent=function(){var e=this._options;this._coverComponent.configure({key:this._key}),void 0===e.cover||e.cover?this.activateCover():this.deactivateCover()},e.prototype._setNavigable=function(e){this._navigable!==e&&(this._navigable=e,this._observer.navigable$.next(e))},e.prototype._subscribeCoverComponent=function(){var e=this;this._coverComponent.configuration$.subscribe(function(t){t.state===n.CoverState.Loading?e._navigator.stateService.currentKey$.first().switchMap(function(r){var n=null==r||r!==t.key;return n&&e._setNavigable(!1),n?e._navigator.moveToKey$(t.key):e._navigator.stateService.currentNode$.first()}).subscribe(function(t){e._navigator.stateService.start(),e._navigator.cacheService.start(),e._observer.startEmit(),e._coverComponent.configure({state:n.CoverState.Hidden}),e._componentService.deactivateCover(),e._setNavigable(!0)},function(t){console.error("Failed to deactivate cover.",t),e._coverComponent.configure({state:n.CoverState.Visible})}):t.state===n.CoverState.Visible&&(e._observer.stopEmit(),e._navigator.stateService.stop(),e._navigator.cacheService.stop(),e._navigator.playService.stop(),e._componentService.activateCover(),e._setNavigable(null==t.key))})},e.prototype._uFalse=function(e,t){void 0!==e?"boolean"!=typeof e?(this._componentService.configure(t,e),this._componentService.activate(t)):e?this._componentService.activate(t):this._componentService.deactivate(t):this._componentService.deactivate(t)},e.prototype._uTrue=function(e,t){void 0!==e?"boolean"!=typeof e?(this._componentService.configure(t,e),this._componentService.activate(t)):e?this._componentService.activate(t):this._componentService.deactivate(t):this._componentService.activate(t)},e}();r.ComponentController=i},{"../Component":290}],438:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../Render"),i=e("../Utils"),o=e("../Viewer"),s=function(){function e(e,t,r,s){if(this.id=e,this._dom=s||new i.DOM,this._container=this._dom.document.getElementById(e),!this._container)throw new Error("Container '"+e+"' not found.");this._container.classList.add("mapillary-js"),this._canvasContainer=this._dom.createElement("div","mapillary-js-interactive",this._container),this._domContainer=this._dom.createElement("div","mapillary-js-dom",this._container),this.renderService=new n.RenderService(this._container,t.currentState$,r.renderMode),this.glRenderer=new n.GLRenderer(this._canvasContainer,this.renderService,this._dom),this.domRenderer=new n.DOMRenderer(this._domContainer,this.renderService,t.currentState$),this.keyboardService=new o.KeyboardService(this._canvasContainer),this.mouseService=new o.MouseService(this._container,this._canvasContainer,this._domContainer,document),this.touchService=new o.TouchService(this._canvasContainer,this._domContainer),this.spriteService=new o.SpriteService(r.sprite)}return Object.defineProperty(e.prototype,"element",{get:function(){return this._container},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canvasContainer",{get:function(){return this._canvasContainer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domContainer",{get:function(){return this._domContainer},enumerable:!0,configurable:!0}),e}();r.Container=s,r.default=s},{"../Render":296,"../Utils":300,"../Viewer":301}],439:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});!function(e){e[e.Size320=320]="Size320",e[e.Size640=640]="Size640",e[e.Size1024=1024]="Size1024",e[e.Size2048=2048]="Size2048"}(r.ImageSize||(r.ImageSize={}))},{}],440:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=function(){function e(e){this._keyDown$=n.Observable.fromEvent(e,"keydown")}return Object.defineProperty(e.prototype,"keyDown$",{get:function(){return this._keyDown$},enumerable:!0,configurable:!0}),e}();r.KeyboardService=i,r.default=i},{"rxjs/Observable":29}],441:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("underscore"),i=e("rxjs/Subject"),o=function(){function e(){this._loadersSubject$=new i.Subject,this._loaders$=this._loadersSubject$.scan(function(e,t){return void 0!==t.task&&(e[t.task]=t.loading),e},{}).startWith({}).publishReplay(1).refCount()}return Object.defineProperty(e.prototype,"loading$",{get:function(){return this._loaders$.map(function(e){return n.reduce(e,function(e,t){return e||t},!1)}).debounceTime(100).distinctUntilChanged()},enumerable:!0,configurable:!0}),e.prototype.taskLoading$=function(e){return this._loaders$.map(function(t){return!!t[e]}).debounceTime(100).distinctUntilChanged()},e.prototype.startLoading=function(e){this._loadersSubject$.next({loading:!0,task:e})},e.prototype.stopLoading=function(e){this._loadersSubject$.next({loading:!1,task:e})},e}();r.LoadingService=o,r.default=o},{"rxjs/Subject":34,underscore:242}],442:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/BehaviorSubject"),i=e("rxjs/Observable"),o=e("rxjs/Subject"),s=e("../Geo"),a=function(){function e(e,t,r,a,c){var u=this;c=null!=c?c:new s.ViewportCoords,this._activeSubject$=new n.BehaviorSubject(!1),this._active$=this._activeSubject$.distinctUntilChanged().publishReplay(1).refCount(),this._claimMouse$=new o.Subject,this._claimWheel$=new o.Subject,this._deferPixelClaims$=new o.Subject,this._deferPixels$=this._deferPixelClaims$.scan(function(e,t){return null==t.deferPixels?delete e[t.name]:e[t.name]=t.deferPixels,e},{}).map(function(e){var t=-1;for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];n>t&&(t=n)}return t}).startWith(-1).publishReplay(1).refCount(),this._deferPixels$.subscribe(function(){}),this._documentMouseMove$=i.Observable.fromEvent(a,"mousemove"),this._documentMouseUp$=i.Observable.fromEvent(a,"mouseup"),this._mouseDown$=i.Observable.fromEvent(t,"mousedown"),this._mouseLeave$=i.Observable.fromEvent(t,"mouseleave"),this._mouseMove$=i.Observable.fromEvent(t,"mousemove"),this._mouseUp$=i.Observable.fromEvent(t,"mouseup"),this._mouseOut$=i.Observable.fromEvent(t,"mouseout"),this._mouseOver$=i.Observable.fromEvent(t,"mouseover"),this._domMouseDown$=i.Observable.fromEvent(r,"mousedown"),this._domMouseMove$=i.Observable.fromEvent(r,"mousemove"),this._click$=i.Observable.fromEvent(t,"click"),this._contextMenu$=i.Observable.fromEvent(t,"contextmenu"),this._dblClick$=i.Observable.merge(i.Observable.fromEvent(e,"click"),i.Observable.fromEvent(t,"dblclick")).bufferCount(3,1).filter(function(e){var r=e[0],n=e[1],i=e[2];return"click"===r.type&&"click"===n.type&&"dblclick"===i.type&&r.target.parentNode===t&&n.target.parentNode===t}).map(function(e){return e[2]}).share(),i.Observable.merge(this._domMouseDown$,this._domMouseMove$,this._dblClick$,this._contextMenu$).subscribe(function(e){e.preventDefault()}),this._mouseWheel$=i.Observable.merge(i.Observable.fromEvent(t,"wheel"),i.Observable.fromEvent(r,"wheel")).share(),this._consistentContextMenu$=i.Observable.merge(this._mouseDown$,this._mouseMove$,this._mouseOut$,this._mouseUp$,this._contextMenu$).bufferCount(3,1).filter(function(e){return"mousedown"===e[0].type&&"contextmenu"===e[1].type&&"mouseup"===e[2].type}).map(function(e){return e[1]}).share();var h=i.Observable.merge(i.Observable.fromEvent(window,"blur"),this._documentMouseUp$.filter(function(e){return 0===e.button})).share(),l=this._createMouseDragInitiate$(this._mouseDown$,h,!0).share();this._mouseDragStart$=this._createMouseDragStart$(l).share(),this._mouseDrag$=this._createMouseDrag$(l,h).share(),this._mouseDragEnd$=this._createMouseDragEnd$(this._mouseDragStart$,h).share();var p=this._createMouseDragInitiate$(this._domMouseDown$,h,!1).share();this._domMouseDragStart$=this._createMouseDragStart$(p).share(),this._domMouseDrag$=this._createMouseDrag$(p,h).share(),this._domMouseDragEnd$=this._createMouseDragEnd$(this._domMouseDragStart$,h).share(),this._proximateClick$=this._mouseDown$.switchMap(function(e){return u._click$.takeUntil(u._createDeferredMouseMove$(e,u._documentMouseMove$)).take(1)}).share(),this._staticClick$=this._mouseDown$.switchMap(function(e){return u._click$.takeUntil(u._documentMouseMove$).take(1)}).share(),this._mouseDragStart$.subscribe(),this._mouseDrag$.subscribe(),this._mouseDragEnd$.subscribe(),this._domMouseDragStart$.subscribe(),this._domMouseDrag$.subscribe(),this._domMouseDragEnd$.subscribe(),this._staticClick$.subscribe(),this._mouseOwner$=this._createOwner$(this._claimMouse$).publishReplay(1).refCount(),this._wheelOwner$=this._createOwner$(this._claimWheel$).publishReplay(1).refCount(),this._mouseOwner$.subscribe(function(){}),this._wheelOwner$.subscribe(function(){})}return Object.defineProperty(e.prototype,"active$",{get:function(){return this._active$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activate$",{get:function(){return this._activeSubject$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"documentMouseMove$",{get:function(){return this._documentMouseMove$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"documentMouseUp$",{get:function(){return this._documentMouseUp$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domMouseDragStart$",{get:function(){return this._domMouseDragStart$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domMouseDrag$",{get:function(){return this._domMouseDrag$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domMouseDragEnd$",{get:function(){return this._domMouseDragEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domMouseDown$",{get:function(){return this._domMouseDown$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"domMouseMove$",{get:function(){return this._domMouseMove$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseOwner$",{get:function(){return this._mouseOwner$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseDown$",{get:function(){return this._mouseDown$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseMove$",{get:function(){return this._mouseMove$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseLeave$",{get:function(){return this._mouseLeave$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseOut$",{get:function(){return this._mouseOut$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseOver$",{get:function(){return this._mouseOver$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseUp$",{get:function(){return this._mouseUp$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"click$",{get:function(){return this._click$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dblClick$",{get:function(){return this._dblClick$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"contextMenu$",{get:function(){return this._consistentContextMenu$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseWheel$",{get:function(){return this._mouseWheel$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseDragStart$",{get:function(){return this._mouseDragStart$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseDrag$",{get:function(){return this._mouseDrag$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mouseDragEnd$",{get:function(){return this._mouseDragEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"proximateClick$",{get:function(){return this._proximateClick$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"staticClick$",{get:function(){return this._staticClick$},enumerable:!0,configurable:!0}),e.prototype.claimMouse=function(e,t){this._claimMouse$.next({name:e,zindex:t})},e.prototype.unclaimMouse=function(e){this._claimMouse$.next({name:e,zindex:null})},e.prototype.deferPixels=function(e,t){this._deferPixelClaims$.next({name:e,deferPixels:t})},e.prototype.undeferPixels=function(e){this._deferPixelClaims$.next({name:e,deferPixels:null})},e.prototype.claimWheel=function(e,t){this._claimWheel$.next({name:e,zindex:t})},e.prototype.unclaimWheel=function(e){this._claimWheel$.next({name:e,zindex:null})},e.prototype.filtered$=function(e,t){return this._filtered(e,t,this._mouseOwner$)},e.prototype.filteredWheel$=function(e,t){return this._filtered(e,t,this._wheelOwner$)},e.prototype._createDeferredMouseMove$=function(e,t){return t.map(function(t){var r=t.clientX-e.clientX,n=t.clientY-e.clientY;return[t,Math.sqrt(r*r+n*n)]}).withLatestFrom(this._deferPixels$).filter(function(e){var t=e[0];t[0];return t[1]>e[1]}).map(function(e){var t=e[0],r=t[0];t[1],e[1];return r})},e.prototype._createMouseDrag$=function(e,t){var r=this;return e.map(function(e){e[0];return e[1]}).switchMap(function(e){return i.Observable.of(e).concat(r._documentMouseMove$).takeUntil(t)})},e.prototype._createMouseDragEnd$=function(e,t){return e.switchMap(function(e){return t.first()})},e.prototype._createMouseDragStart$=function(e){return e.map(function(e){var t=e[0];e[1];return t})},e.prototype._createMouseDragInitiate$=function(e,t,r){var n=this;return e.filter(function(e){return 0===e.button}).switchMap(function(e){return i.Observable.combineLatest(i.Observable.of(e),r?n._createDeferredMouseMove$(e,n._documentMouseMove$):n._documentMouseMove$).takeUntil(t).take(1)})},e.prototype._createOwner$=function(e){return e.scan(function(e,t){return null==t.zindex?delete e[t.name]:e[t.name]=t.zindex,e},{}).map(function(e){var t=null,r=-1;for(var n in e)e.hasOwnProperty(n)&&e[n]>r&&(r=e[n],t=n);return t}).startWith(null)},e.prototype._filtered=function(e,t,r){return t.withLatestFrom(r).filter(function(t){t[0];return t[1]===e}).map(function(e){var t=e[0];e[1];return t})},e}();r.MouseService=a,r.default=a},{"../Geo":293,"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/Subject":34}],443:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/BehaviorSubject"),i=e("rxjs/Observable"),o=e("rxjs/ReplaySubject"),s=e("../API"),a=e("../Graph"),c=e("../Edge"),u=e("../Error"),h=e("../State"),l=e("../Viewer"),p=function(){function e(e,t,r,i,o,c,u,p,f,d){this._apiV3=null!=i?i:new s.APIv3(e,r),this._imageLoadingService=null!=c?c:new a.ImageLoadingService,this._graphService=null!=o?o:new a.GraphService(new a.Graph(this.apiV3),this._imageLoadingService),this._loadingService=null!=u?u:new l.LoadingService,this._loadingName="navigator",this._stateService=null!=p?p:new h.StateService(t.transitionMode),this._cacheService=null!=f?f:new l.CacheService(this._graphService,this._stateService),this._playService=null!=d?d:new l.PlayService(this._graphService,this._stateService),this._keyRequested$=new n.BehaviorSubject(null),this._movedToKey$=new n.BehaviorSubject(null),this._request$=null,this._requestSubscription=null,this._nodeRequestSubscription=null}return Object.defineProperty(e.prototype,"apiV3",{get:function(){return this._apiV3},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cacheService",{get:function(){return this._cacheService},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"graphService",{get:function(){return this._graphService},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageLoadingService",{get:function(){return this._imageLoadingService},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loadingService",{get:function(){return this._loadingService},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"movedToKey$",{get:function(){return this._movedToKey$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"playService",{get:function(){return this._playService},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stateService",{get:function(){return this._stateService},enumerable:!0,configurable:!0}),e.prototype.moveToKey$=function(e){this._abortRequest("to key "+e),this._loadingService.startLoading(this._loadingName);var t=this._moveToKey$(e);return this._makeRequest$(t)},e.prototype.moveDir$=function(e){var t=this;this._abortRequest("in dir "+c.EdgeDirection[e]),this._loadingService.startLoading(this._loadingName);var r=this.stateService.currentNode$.first().mergeMap(function(t){return([c.EdgeDirection.Next,c.EdgeDirection.Prev].indexOf(e)>-1?t.sequenceEdges$:t.spatialEdges$).first().map(function(t){for(var r=0,n=t.edges;r<n.length;r++){var i=n[r];if(i.data.direction===e)return i.to}return null})}).mergeMap(function(r){return null==r?(t._loadingService.stopLoading(t._loadingName),i.Observable.throw(new Error("Direction ("+e+") does not exist for current node."))):t._moveToKey$(r)});return this._makeRequest$(r)},e.prototype.moveCloseTo$=function(e,t){var r=this;this._abortRequest("to lat "+e+", lon "+t),this._loadingService.startLoading(this._loadingName);var n=this.apiV3.imageCloseTo$(e,t).mergeMap(function(n){return null==n?(r._loadingService.stopLoading(r._loadingName),i.Observable.throw(new Error("No image found close to lat "+e+", lon "+t+"."))):r._moveToKey$(n.key)});return this._makeRequest$(n)},e.prototype.setFilter$=function(e){var t=this;return this._stateService.clearNodes(),this._movedToKey$.first().mergeMap(function(r){return null!=r?t._trajectoryKeys$().mergeMap(function(r){return t._graphService.setFilter$(e).mergeMap(function(){return t._cacheKeys$(r)})}).last():t._keyRequested$.first().mergeMap(function(r){return null!=r?t._graphService.setFilter$(e).mergeMap(function(){return t._graphService.cacheNode$(r)}):t._graphService.setFilter$(e).map(function(){})})}).map(function(e){})},e.prototype.setToken$=function(e){var t=this;return this._abortRequest("to set token"),this._stateService.clearNodes(),this._movedToKey$.first().do(function(r){t._apiV3.setToken(e)}).mergeMap(function(e){return null==e?t._graphService.reset$([]):t._trajectoryKeys$().mergeMap(function(e){return t._graphService.reset$(e).mergeMap(function(){return t._cacheKeys$(e)})}).last().map(function(e){})})},e.prototype._cacheKeys$=function(e){var t=this,r=e.map(function(e){return t._graphService.cacheNode$(e)});return i.Observable.from(r).mergeAll()},e.prototype._abortRequest=function(e){null!=this._requestSubscription&&(this._requestSubscription.unsubscribe(),this._requestSubscription=null),null!=this._nodeRequestSubscription&&(this._nodeRequestSubscription.unsubscribe(),this._nodeRequestSubscription=null),null!=this._request$&&(this._request$.isStopped||this._request$.hasError||this._request$.error(new u.AbortMapillaryError("Request aborted by a subsequent request "+e+".")),this._request$=null)},e.prototype._makeRequest$=function(e){var t=this,r=new o.ReplaySubject(1);return this._requestSubscription=r.subscribe(void 0,function(e){}),this._request$=r,this._nodeRequestSubscription=e.subscribe(function(e){r.next(e),r.complete(),t._request$=null},function(e){r.error(e),t._request$=null}),r},e.prototype._moveToKey$=function(e){var t=this;return this._keyRequested$.next(e),this._graphService.cacheNode$(e).do(function(e){t._stateService.setNodes([e]),t._movedToKey$.next(e.key)}).finally(function(){t._loadingService.stopLoading(t._loadingName)})},e.prototype._trajectoryKeys$=function(){return this._stateService.currentState$.first().map(function(e){return e.state.trajectory.map(function(e){return e.key})})},e}();r.Navigator=p,r.default=p},{"../API":289,"../Edge":291,"../Error":292,"../Graph":294,"../State":297,"../Viewer":301,"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/ReplaySubject":32}],444:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=e("rxjs/Subject"),o=e("../Viewer"),s=function(){function e(e,t,r){var n=this;this._container=r,this._eventEmitter=e,this._navigator=t,this._projection=new o.Projection,this._started=!1,this._navigable$=new i.Subject,this._navigable$.subscribe(function(e){n._eventEmitter.fire(o.Viewer.navigablechanged,e)}),this._navigator.loadingService.loading$.subscribe(function(e){n._eventEmitter.fire(o.Viewer.loadingchanged,e)})}return Object.defineProperty(e.prototype,"started",{get:function(){return this._started},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"navigable$",{get:function(){return this._navigable$},enumerable:!0,configurable:!0}),e.prototype.projectBasic$=function(e){var t=this;return n.Observable.combineLatest(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).first().map(function(r){var n=r[0],i=r[1],o=t._projection.basicToCanvas(e,t._container.element,n,i);return[Math.round(o[0]),Math.round(o[1])]})},e.prototype.startEmit=function(){var e=this;if(!this._started){this._started=!0,this._currentNodeSubscription=this._navigator.stateService.currentNodeExternal$.subscribe(function(t){e._eventEmitter.fire(o.Viewer.nodechanged,t)}),this._sequenceEdgesSubscription=this._navigator.stateService.currentNodeExternal$.switchMap(function(e){return e.sequenceEdges$}).subscribe(function(t){e._eventEmitter.fire(o.Viewer.sequenceedgeschanged,t)}),this._spatialEdgesSubscription=this._navigator.stateService.currentNodeExternal$.switchMap(function(e){return e.spatialEdges$}).subscribe(function(t){e._eventEmitter.fire(o.Viewer.spatialedgeschanged,t)}),this._moveSubscription=n.Observable.combineLatest(this._navigator.stateService.inMotion$,this._container.mouseService.active$,this._container.touchService.active$).map(function(e){return e[0]||e[1]||e[2]}).distinctUntilChanged().subscribe(function(t){t?e._eventEmitter.fire(o.Viewer.movestart,null):e._eventEmitter.fire(o.Viewer.moveend,null)}),this._bearingSubscription=this._container.renderService.bearing$.auditTime(100).distinctUntilChanged(function(e,t){return Math.abs(t-e)<1}).subscribe(function(t){e._eventEmitter.fire(o.Viewer.bearingchanged,t)});var t=this._container.mouseService.active$.switchMap(function(t){return t?n.Observable.empty():e._container.mouseService.mouseMove$});this._viewerMouseEventSubscription=n.Observable.merge(this._mapMouseEvent$(o.Viewer.click,this._container.mouseService.staticClick$),this._mapMouseEvent$(o.Viewer.contextmenu,this._container.mouseService.contextMenu$),this._mapMouseEvent$(o.Viewer.dblclick,this._container.mouseService.dblClick$),this._mapMouseEvent$(o.Viewer.mousedown,this._container.mouseService.mouseDown$),this._mapMouseEvent$(o.Viewer.mousemove,t),this._mapMouseEvent$(o.Viewer.mouseout,this._container.mouseService.mouseOut$),this._mapMouseEvent$(o.Viewer.mouseover,this._container.mouseService.mouseOver$),this._mapMouseEvent$(o.Viewer.mouseup,this._container.mouseService.mouseUp$)).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.reference$,this._navigator.stateService.currentTransform$).map(function(t){var r=t[0],n=r[0],i=r[1],o=t[1],s=t[2],a=t[3],c=e._projection.eventToUnprojection(i,e._container.element,o,s,a);return{basicPoint:c.basicPoint,latLon:c.latLon,originalEvent:i,pixelPoint:c.pixelPoint,target:e._eventEmitter,type:n}}).subscribe(function(t){e._eventEmitter.fire(t.type,t)})}},e.prototype.stopEmit=function(){this.started&&(this._started=!1,this._bearingSubscription.unsubscribe(),this._currentNodeSubscription.unsubscribe(),this._moveSubscription.unsubscribe(),this._sequenceEdgesSubscription.unsubscribe(),this._spatialEdgesSubscription.unsubscribe(),this._viewerMouseEventSubscription.unsubscribe(),this._bearingSubscription=null,this._currentNodeSubscription=null,this._moveSubscription=null,this._sequenceEdgesSubscription=null,this._spatialEdgesSubscription=null,this._viewerMouseEventSubscription=null)},e.prototype.unproject$=function(e){var t=this;return n.Observable.combineLatest(this._container.renderService.renderCamera$,this._navigator.stateService.reference$,this._navigator.stateService.currentTransform$).first().map(function(r){var n=r[0],i=r[1],o=r[2];return t._projection.canvasToUnprojection(e,t._container.element,n,i,o).latLon})},e.prototype.unprojectBasic$=function(e){var t=this;return n.Observable.combineLatest(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).first().map(function(r){var n=r[0],i=r[1];return t._projection.canvasToBasic(e,t._container.element,n,i)})},e.prototype._mapMouseEvent$=function(e,t){return t.map(function(t){return[e,t]})},e}();r.Observer=s,r.default=s},{"../Viewer":301,"rxjs/Observable":29,"rxjs/Subject":34}],445:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/Observable"),i=e("rxjs/Subject"),o=e("../Edge"),s=e("../Graph"),a=function(){function e(e,t,r){this._graphService=e,this._stateService=t,this._graphCalculator=r||new s.GraphCalculator,this._directionSubject$=new i.Subject,this._direction$=this._directionSubject$.startWith(o.EdgeDirection.Next).publishReplay(1).refCount(),this._direction$.subscribe(),this._playing=!1,this._playingSubject$=new i.Subject,this._playing$=this._playingSubject$.startWith(this._playing).publishReplay(1).refCount(),this._playing$.subscribe(),this._speed=.5,this._speedSubject$=new i.Subject,this._speed$=this._speedSubject$.startWith(this._speed).publishReplay(1).refCount(),this._speed$.subscribe(),this._nodesAhead=this._mapNodesAhead(this._mapSpeed(this._speed)),this._bridging$=null}return Object.defineProperty(e.prototype,"playing",{get:function(){return this._playing},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"direction$",{get:function(){return this._direction$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"playing$",{get:function(){return this._playing$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"speed$",{get:function(){return this._speed$},enumerable:!0,configurable:!0}),e.prototype.play=function(){var e=this;if(!this._playing){this._stateService.cutNodes();var t=this._setSpeed(this._speed);this._stateService.setSpeed(t),this._graphModeSubscription=this._speed$.map(function(e){return e>.54?s.GraphMode.Sequence:s.GraphMode.Spatial}).distinctUntilChanged().subscribe(function(t){e._graphService.setGraphMode(t)}),this._cacheSubscription=this._stateService.currentNode$.map(function(e){return[e.sequenceKey,e.key]}).distinctUntilChanged(void 0,function(e){var t=e[0];e[1];return t}).combineLatest(this._graphService.graphMode$,this._direction$).switchMap(function(t){var r=t[0],i=r[0],a=r[1],c=t[1],u=t[2];if(u!==o.EdgeDirection.Next&&u!==o.EdgeDirection.Prev)return n.Observable.of([void 0,u]);var h=(c===s.GraphMode.Sequence?e._graphService.cacheSequenceNodes$(i,a):e._graphService.cacheSequence$(i)).retry(3).catch(function(e){return console.error(e),n.Observable.of(void 0)});return n.Observable.combineLatest(h,n.Observable.of(u))}).switchMap(function(t){var r=t[0],i=t[1];if(void 0===r)return n.Observable.empty();var s=r.keys.slice();return i===o.EdgeDirection.Prev&&s.reverse(),e._stateService.currentState$.map(function(e){return[e.state.trajectory[e.state.trajectory.length-1].key,e.state.nodesAhead]}).scan(function(t,r){var n=t[0],i=(t[1],r[0]),o=r[1];void 0===n&&(n=i);var a=s.length-1;if(o>=e._nodesAhead||s[a]===n)return[n,[]];var c=s.indexOf(i),u=s.indexOf(n)+1,h=Math.min(a,c+e._nodesAhead-o)+1;return h<=u?[n,[]]:[s[h-1],s.slice(u,h)]},[void 0,[]]).mergeMap(function(e){e[0];var t=e[1];return n.Observable.from(t)})}).mergeMap(function(t){return e._graphService.cacheNode$(t).catch(function(){return n.Observable.empty()})},6).subscribe(),this._playingSubscription=this._stateService.currentState$.filter(function(t){return t.state.nodesAhead<e._nodesAhead}).distinctUntilChanged(void 0,function(e){return e.state.lastNode.key}).map(function(e){for(var t=e.state.lastNode,r=e.state.trajectory,n=void 0,i=r.length-2;i>=0;i--){var o=r[i];if(o.sequenceKey!==t.sequenceKey)break;if(o.capturedAt!==t.capturedAt){n=o.capturedAt<t.capturedAt;break}}return[e.state.lastNode,n]}).withLatestFrom(this._direction$).switchMap(function(t){var r=t[0],i=r[0],s=r[1],a=t[1];return([o.EdgeDirection.Next,o.EdgeDirection.Prev].indexOf(a)>-1?i.sequenceEdges$:i.spatialEdges$).first(function(e){return e.cached}).timeout(15e3).zip(n.Observable.of(a)).map(function(e){for(var t=e[0],r=e[1],n=0,i=t.edges;n<i.length;n++){var o=i[n];if(o.data.direction===r)return o.to}return null}).switchMap(function(t){return null!=t?e._graphService.cacheNode$(t):e._bridge$(i,s).filter(function(e){return!!e})})}).subscribe(function(t){e._stateService.appendNodes([t])},function(t){console.error(t),e.stop()}),this._clearSubscription=this._stateService.currentNode$.bufferCount(1,10).subscribe(function(t){e._stateService.clearPriorNodes()}),this._setPlaying(!0);var r=this._stateService.currentState$.map(function(e){return e.state}).distinctUntilChanged(function(e,t){var r=e[0],n=e[1],i=t[0],o=t[1];return r===i&&n===o},function(e){return[e.currentNode.key,e.lastNode.key]}).filter(function(e){return e.currentNode.key===e.lastNode.key&&e.currentIndex===e.trajectory.length-1}).map(function(e){return e.currentNode});this._stopSubscription=n.Observable.combineLatest(r,this._direction$).switchMap(function(e){var t=e[0],r=e[1],i=([o.EdgeDirection.Next,o.EdgeDirection.Prev].indexOf(r)>-1?t.sequenceEdges$:t.spatialEdges$).first(function(e){return e.cached}).timeout(15e3).catch(function(e){return console.error(e),n.Observable.of({cached:!1,edges:[]})});return n.Observable.combineLatest(n.Observable.of(r),i).map(function(e){for(var t=e[0],r=0,n=e[1].edges;r<n.length;r++){if(n[r].data.direction===t)return!0}return!1})}).mergeMap(function(t){return t||!e._bridging$?n.Observable.of(t):e._bridging$.map(function(e){return null!=e}).catch(function(e){return console.error(e),n.Observable.of(!1)})}).first(function(e){return!e}).subscribe(void 0,void 0,function(){e.stop()}),this._stopSubscription.closed&&(this._stopSubscription=null)}},e.prototype.setDirection=function(e){this._directionSubject$.next(e)},e.prototype.setSpeed=function(e){if((e=Math.max(0,Math.min(1,e)))!==this._speed){var t=this._setSpeed(e);this._playing&&this._stateService.setSpeed(t),this._speedSubject$.next(this._speed)}},e.prototype.stop=function(){this._playing&&(this._stopSubscription&&(this._stopSubscription.closed||this._stopSubscription.unsubscribe(),this._stopSubscription=null),this._graphModeSubscription.unsubscribe(),this._graphModeSubscription=null,this._cacheSubscription.unsubscribe(),this._cacheSubscription=null,this._playingSubscription.unsubscribe(),this._playingSubscription=null,this._clearSubscription.unsubscribe(),this._clearSubscription=null,this._stateService.setSpeed(1),this._stateService.cutNodes(),this._graphService.setGraphMode(s.GraphMode.Spatial),this._setPlaying(!1))},e.prototype._bridge$=function(e,t){var r=this;if(void 0===t)return n.Observable.of(null);var i=this._graphCalculator.boundingBoxCorners(e.latLon,25);return this._bridging$=this._graphService.cacheBoundingBox$(i[0],i[1]).mergeMap(function(i){for(var o=null,s=0,a=i;s<a.length;s++){var c=a[s];if(c.sequenceKey!==e.sequenceKey&&c.cameraUuid&&c.cameraUuid===e.cameraUuid&&c.capturedAt!==e.capturedAt&&c.capturedAt>e.capturedAt===t){var u=Math.abs(c.capturedAt-e.capturedAt);u>15e3||(!o||u<Math.abs(o.capturedAt-e.capturedAt))&&(o=c)}}return o?r._graphService.cacheNode$(o.key):n.Observable.of(null)}).finally(function(){r._bridging$=null}).publish().refCount(),this._bridging$},e.prototype._mapSpeed=function(e){var t=2*e-1;return Math.pow(10,t)-.2*t},e.prototype._mapNodesAhead=function(e){return Math.round(Math.max(10,Math.min(50,8+6*e)))},e.prototype._setPlaying=function(e){this._playing=e,this._playingSubject$.next(e)},e.prototype._setSpeed=function(e){this._speed=e;var t=this._mapSpeed(this._speed);return this._nodesAhead=this._mapNodesAhead(t),t},e}();r.PlayService=a,r.default=a},{"../Edge":291,"../Graph":294,"rxjs/Observable":29,"rxjs/Subject":34}],446:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("../Geo"),o=function(){function e(e,t){this._geoCoords=e||new i.GeoCoords,this._viewportCoords=t||new i.ViewportCoords}return e.prototype.basicToCanvas=function(e,t,r,n){return this._viewportCoords.basicToCanvas(e[0],e[1],t,n,r.perspective)},e.prototype.canvasToBasic=function(e,t,r,n){var i=this._viewportCoords.canvasToBasic(e[0],e[1],t,n,r.perspective);return(i[0]<0||i[0]>1||i[1]<0||i[1]>1)&&(i=null),i},e.prototype.eventToUnprojection=function(e,t,r,n,i){var o=this._viewportCoords.canvasPosition(e,t);return this.canvasToUnprojection(o,t,r,n,i)},e.prototype.canvasToUnprojection=function(e,t,r,i,o){var s=e[0],a=e[1],c=this._viewportCoords.canvasToViewport(s,a,t),u=c[0],h=c[1],l=new n.Vector3(u,h,1).unproject(r.perspective),p=o.projectBasic(l.toArray());(p[0]<0||p[0]>1||p[1]<0||p[1]>1)&&(p=null);var f=l.clone().sub(r.camera.position).normalize(),d=-2/f.z,m=null;if(d>0&&d<100&&p){var v=f.clone().multiplyScalar(d).add(r.camera.position),g=this._geoCoords.enuToGeodetic(v.x,v.y,v.z,i.lat,i.lon,i.alt).slice(0,2);m={lat:g[0],lon:g[1]}}return{basicPoint:p,latLon:m,pixelPoint:[s,a]}},e}();r.Projection=o,r.default=o},{"../Geo":293,three:240}],447:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("three"),i=e("virtual-dom"),o=e("rxjs/Subject"),s=e("../Viewer"),a=function(){function e(){}return Object.defineProperty(e.prototype,"json",{set:function(e){this._json=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"image",{set:function(e){this._image=e,this._texture=new n.Texture(this._image),this._texture.minFilter=n.NearestFilter},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loaded",{get:function(){return!(!this._image||!this._json)},enumerable:!0,configurable:!0}),e.prototype.getGLSprite=function(e){if(!this.loaded)throw new Error("Sprites cannot be retrieved before the atlas is loaded.");var t=this._json[e];if(!t)return console.warn("Sprite with key"+e+"does not exist in sprite definition."),new n.Object3D;var r=this._texture.clone();r.needsUpdate=!0;var i=this._image.width,o=this._image.height;r.offset.x=t.x/i,r.offset.y=(o-t.y-t.height)/o,r.repeat.x=t.width/i,r.repeat.y=t.height/o;var s=new n.SpriteMaterial({map:r});return new n.Sprite(s)},e.prototype.getDOMSprite=function(e,t){if(!this.loaded)throw new Error("Sprites cannot be retrieved before the atlas is loaded.");null==t&&(t=s.Alignment.Center);var r=this._json[e];if(!r)return console.warn("Sprite with key"+e+"does not exist in sprite definition."),i.h("div",{},[]);var n=r.y,o=r.x+r.width,a=r.y+r.height,c=r.x,u=-r.x,h=-r.y,l=this._image.height,p=this._image.width;switch(t){case s.Alignment.Bottom:case s.Alignment.Center:case s.Alignment.Top:u-=r.width/2;break;case s.Alignment.BottomLeft:case s.Alignment.Left:case s.Alignment.TopLeft:u-=r.width;break;case s.Alignment.BottomRight:case s.Alignment.Right:case s.Alignment.TopRight:}switch(t){case s.Alignment.Center:case s.Alignment.Left:case s.Alignment.Right:h-=r.height/2;break;case s.Alignment.Top:case s.Alignment.TopLeft:case s.Alignment.TopRight:h-=r.height;break;case s.Alignment.Bottom:case s.Alignment.BottomLeft:case s.Alignment.BottomRight:}var f=1/r.pixelRatio;n*=f,o*=f,a*=f,c*=f,u*=f,h*=f,l*=f,p*=f;var d={src:this._image.src,style:{clip:"rect("+n+"px, "+o+"px, "+a+"px, "+c+"px)",height:l+"px",left:u+"px",position:"absolute",top:h+"px",width:p+"px"}};return i.h("img",d,[])},e}(),c=function(){function e(e){var t=this;if(this._retina=window.devicePixelRatio>1,this._spriteAtlasOperation$=new o.Subject,this._spriteAtlas$=this._spriteAtlasOperation$.startWith(function(e){return e}).scan(function(e,t){return t(e)},new a).publishReplay(1).refCount(),this._spriteAtlas$.subscribe(function(){}),null!=e){var r=this._retina?"@2x":"",n=new XMLHttpRequest;n.open("GET",e+r+".png",!0),n.responseType="arraybuffer",n.onload=function(){var e=new Image;e.onload=function(){t._spriteAtlasOperation$.next(function(t){return t.image=e,t})};var r=new Blob([n.response]);e.src=window.URL.createObjectURL(r)},n.onerror=function(t){console.error(new Error("Failed to fetch sprite sheet ("+e+r+".png)"))},n.send();var i=new XMLHttpRequest;i.open("GET",e+r+".json",!0),i.responseType="text",i.onload=function(){var e=JSON.parse(i.response);t._spriteAtlasOperation$.next(function(t){return t.json=e,t})},i.onerror=function(t){console.error(new Error("Failed to fetch sheet ("+e+r+".json)"))},i.send()}}return Object.defineProperty(e.prototype,"spriteAtlas$",{get:function(){return this._spriteAtlas$},enumerable:!0,configurable:!0}),e}();r.SpriteService=c,r.default=c},{"../Viewer":301,"rxjs/Subject":34,three:240,"virtual-dom":246}],448:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rxjs/BehaviorSubject"),i=e("rxjs/Observable"),o=e("rxjs/Subject"),s=function(){function e(e,t){var r=this;this._activeSubject$=new n.BehaviorSubject(!1),this._active$=this._activeSubject$.distinctUntilChanged().publishReplay(1).refCount(),i.Observable.fromEvent(t,"touchmove").subscribe(function(e){e.preventDefault()}),this._touchStart$=i.Observable.fromEvent(e,"touchstart"),this._touchMove$=i.Observable.fromEvent(e,"touchmove"),this._touchEnd$=i.Observable.fromEvent(e,"touchend"),this._touchCancel$=i.Observable.fromEvent(e,"touchcancel");var s=this._touchStart$.filter(function(e){return 1===e.touches.length&&1===e.targetTouches.length}).share();this._doubleTap$=s.bufferWhen(function(){return s.first().switchMap(function(e){return i.Observable.timer(300).merge(s).take(1)})}).filter(function(e){return 2===e.length}).map(function(e){return e[e.length-1]}).share(),this._doubleTap$.subscribe(function(e){e.preventDefault()}),this._singleTouchMove$=this._touchMove$.filter(function(e){return 1===e.touches.length&&1===e.targetTouches.length}).share();var a=i.Observable.merge(this._touchStart$,this._touchEnd$,this._touchCancel$).filter(function(e){return 1===e.touches.length&&1===e.targetTouches.length}),c=i.Observable.merge(this._touchStart$,this._touchEnd$,this._touchCancel$).filter(function(e){return e.touches.length>=1}),u=i.Observable.merge(this._touchEnd$,this._touchCancel$).filter(function(e){return 0===e.touches.length});this._singleTouchDragStart$=a.mergeMap(function(e){return r._singleTouchMove$.takeUntil(i.Observable.merge(u,c)).take(1)}),this._singleTouchDragEnd$=a.mergeMap(function(e){return i.Observable.merge(u,c).first()}),this._singleTouchDrag$=a.switchMap(function(e){return r._singleTouchMove$.skip(1).takeUntil(i.Observable.merge(c,u))});var h=i.Observable.merge(this._touchStart$,this._touchEnd$,this._touchCancel$);this._pinchStart$=h.filter(function(e){return 2===e.touches.length&&2===e.targetTouches.length}),this._pinchEnd$=h.filter(function(e){return 2!==e.touches.length||2!==e.targetTouches.length}),this._pinchOperation$=new o.Subject,this._pinch$=this._pinchOperation$.scan(function(e,t){return t(e)},{changeX:0,changeY:0,clientX:0,clientY:0,distance:0,distanceChange:0,distanceX:0,distanceY:0,originalEvent:null,pageX:0,pageY:0,screenX:0,screenY:0,touch1:null,touch2:null}),this._touchMove$.filter(function(e){return 2===e.touches.length&&2===e.targetTouches.length}).map(function(e){return function(t){var r=e.touches[0],n=e.touches[1],i=Math.min(r.clientX,n.clientX),o=Math.max(r.clientX,n.clientX),s=Math.min(r.clientY,n.clientY),a=i+(o-i)/2,c=s+(Math.max(r.clientY,n.clientY)-s)/2,u=a+r.pageX-r.clientX,h=c+r.pageY-r.clientY,l=a+r.screenX-r.clientX,p=c+r.screenY-r.clientY,f=Math.abs(r.clientX-n.clientX),d=Math.abs(r.clientY-n.clientY),m=Math.sqrt(f*f+d*d),v=m-t.distance;return{changeX:f-t.distanceX,changeY:d-t.distanceY,clientX:a,clientY:c,distance:m,distanceChange:v,distanceX:f,distanceY:d,originalEvent:e,pageX:u,pageY:h,screenX:l,screenY:p,touch1:r,touch2:n}}}).subscribe(this._pinchOperation$),this._pinchChange$=this._pinchStart$.switchMap(function(e){return r._pinch$.skip(1).takeUntil(r._pinchEnd$)})}return Object.defineProperty(e.prototype,"active$",{get:function(){return this._active$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activate$",{get:function(){return this._activeSubject$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"doubleTap$",{get:function(){return this._doubleTap$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"touchStart$",{get:function(){return this._touchStart$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"touchMove$",{get:function(){return this._touchMove$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"touchEnd$",{get:function(){return this._touchEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"touchCancel$",{get:function(){return this._touchCancel$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"singleTouchDragStart$",{get:function(){return this._singleTouchDragStart$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"singleTouchDrag$",{get:function(){return this._singleTouchDrag$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"singleTouchDragEnd$",{get:function(){return this._singleTouchDragEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pinch$",{get:function(){return this._pinchChange$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pinchStart$",{get:function(){return this._pinchStart$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pinchEnd$",{get:function(){return this._pinchEnd$},enumerable:!0,configurable:!0}),e}();r.TouchService=s},{"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/Subject":34}],449:[function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var i=e("when");e("rxjs/add/observable/combineLatest"),e("rxjs/add/observable/concat"),e("rxjs/add/observable/defer"),e("rxjs/add/observable/empty"),e("rxjs/add/observable/merge"),e("rxjs/add/observable/from"),e("rxjs/add/observable/fromEvent"),e("rxjs/add/observable/fromPromise"),e("rxjs/add/observable/of"),e("rxjs/add/observable/throw"),e("rxjs/add/observable/timer"),e("rxjs/add/observable/zip"),e("rxjs/add/operator/auditTime"),e("rxjs/add/operator/buffer"),e("rxjs/add/operator/bufferCount"),e("rxjs/add/operator/bufferWhen"),e("rxjs/add/operator/catch"),e("rxjs/add/operator/combineLatest"),e("rxjs/add/operator/concat"),e("rxjs/add/operator/count"),e("rxjs/add/operator/debounceTime"),e("rxjs/add/operator/delay"),e("rxjs/add/operator/distinct"),e("rxjs/add/operator/distinctUntilChanged"),e("rxjs/add/operator/do"),e("rxjs/add/operator/expand"),e("rxjs/add/operator/filter"),e("rxjs/add/operator/finally"),e("rxjs/add/operator/first"),e("rxjs/add/operator/last"),e("rxjs/add/operator/map"),e("rxjs/add/operator/merge"),e("rxjs/add/operator/mergeMap"),e("rxjs/add/operator/mergeAll"),e("rxjs/add/operator/pairwise"),e("rxjs/add/operator/pluck"),e("rxjs/add/operator/publish"),e("rxjs/add/operator/publishReplay"),e("rxjs/add/operator/reduce"),e("rxjs/add/operator/retry"),e("rxjs/add/operator/sample"),e("rxjs/add/operator/scan"),e("rxjs/add/operator/share"),e("rxjs/add/operator/skip"),e("rxjs/add/operator/skipUntil"),e("rxjs/add/operator/skipWhile"),e("rxjs/add/operator/startWith"),e("rxjs/add/operator/switchMap"),e("rxjs/add/operator/take"),e("rxjs/add/operator/takeUntil"),e("rxjs/add/operator/takeWhile"),e("rxjs/add/operator/timeout"),e("rxjs/add/operator/withLatestFrom"),e("rxjs/add/operator/zip");var o=e("rxjs/Observable"),s=e("../Viewer"),a=e("../Utils"),c=function(e){function t(t,r,n,i,o){var c=e.call(this)||this;return i=null!=i?i:{},a.Settings.setOptions(i),a.Urls.setOptions(i.url),c._navigator=new s.Navigator(r,i,o),c._container=new s.Container(t,c._navigator.stateService,i),c._observer=new s.Observer(c,c._navigator,c._container),c._componentController=new s.ComponentController(c._container,c._navigator,c._observer,n,i.component),c}return n(t,e),Object.defineProperty(t.prototype,"isNavigable",{get:function(){return this._componentController.navigable},enumerable:!0,configurable:!0}),t.prototype.activateComponent=function(e){this._componentController.activate(e)},t.prototype.activateCover=function(){this._componentController.activateCover()},t.prototype.deactivateComponent=function(e){this._componentController.deactivate(e)},t.prototype.deactivateCover=function(){this._componentController.deactivateCover()},t.prototype.getBearing=function(){var e=this;return i.promise(function(t,r){e._container.renderService.bearing$.first().subscribe(function(e){t(e)},function(e){r(e)})})},t.prototype.getCenter=function(){var e=this;return i.promise(function(t,r){e._navigator.stateService.getCenter().subscribe(function(e){t(e)},function(e){r(e)})})},t.prototype.getComponent=function(e){return this._componentController.get(e)},t.prototype.getContainer=function(){return this._container.element},t.prototype.getZoom=function(){var e=this;return i.promise(function(t,r){e._navigator.stateService.getZoom().subscribe(function(e){t(e)},function(e){r(e)})})},t.prototype.moveCloseTo=function(e,t){var r=this.isNavigable?this._navigator.moveCloseTo$(e,t):o.Observable.throw(new Error("Calling moveCloseTo is not supported when viewer is not navigable."));return i.promise(function(e,t){r.subscribe(function(t){e(t)},function(e){t(e)})})},t.prototype.moveDir=function(e){var t=this.isNavigable?this._navigator.moveDir$(e):o.Observable.throw(new Error("Calling moveDir is not supported when viewer is not navigable."));return i.promise(function(e,r){t.subscribe(function(t){e(t)},function(e){r(e)})})},t.prototype.moveToKey=function(e){var t=this.isNavigable?this._navigator.moveToKey$(e):o.Observable.throw(new Error("Calling moveToKey is not supported when viewer is not navigable."));return i.promise(function(e,r){t.subscribe(function(t){e(t)},function(e){r(e)})})},t.prototype.projectFromBasic=function(e){var t=this;return i.promise(function(r,n){t._observer.projectBasic$(e).subscribe(function(e){r(e)},function(e){n(e)})})},t.prototype.resize=function(){this._container.renderService.resize$.next(null),this._componentController.resize()},t.prototype.setAuthToken=function(e){var t=this.isNavigable?this._navigator.setToken$(e):o.Observable.throw(new Error("Calling setAuthToken is not supported when viewer is not navigable."));return i.promise(function(e,r){t.subscribe(function(){e(void 0)},function(e){r(e)})})},t.prototype.setCenter=function(e){this._navigator.stateService.setCenter(e)},t.prototype.setFilter=function(e){var t=this;return i.promise(function(r,n){t._navigator.setFilter$(e).subscribe(function(){r(void 0)},function(e){n(e)})})},t.prototype.setRenderMode=function(e){this._container.renderService.renderMode$.next(e)},t.prototype.setTransitionMode=function(e){this._navigator.stateService.setTransitionMode(e)},t.prototype.setZoom=function(e){this._navigator.stateService.setZoom(e)},t.prototype.unproject=function(e){var t=this;return i.promise(function(r,n){t._observer.unproject$(e).subscribe(function(e){r(e)},function(e){n(e)})})},t.prototype.unprojectToBasic=function(e){var t=this;return i.promise(function(r,n){t._observer.unprojectBasic$(e).subscribe(function(e){r(e)},function(e){n(e)})})},t.bearingchanged="bearingchanged",t.click="click",t.contextmenu="contextmenu",t.dblclick="dblclick",t.loadingchanged="loadingchanged",t.mousedown="mousedown",t.mousemove="mousemove",t.mouseout="mouseout",t.mouseover="mouseover",t.mouseup="mouseup",t.moveend="moveend",t.movestart="movestart",t.navigablechanged="navigablechanged",t.nodechanged="nodechanged",t.sequenceedgeschanged="sequenceedgeschanged",t.spatialedgeschanged="spatialedgeschanged",t}(a.EventEmitter);r.Viewer=c},{"../Utils":300,"../Viewer":301,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/concat":39,"rxjs/add/observable/defer":40,"rxjs/add/observable/empty":41,"rxjs/add/observable/from":42,"rxjs/add/observable/fromEvent":43,"rxjs/add/observable/fromPromise":44,"rxjs/add/observable/merge":45,"rxjs/add/observable/of":46,"rxjs/add/observable/throw":47,"rxjs/add/observable/timer":48,"rxjs/add/observable/zip":49,"rxjs/add/operator/auditTime":50,"rxjs/add/operator/buffer":51,"rxjs/add/operator/bufferCount":52,"rxjs/add/operator/bufferWhen":53,"rxjs/add/operator/catch":54,"rxjs/add/operator/combineLatest":55,"rxjs/add/operator/concat":56,"rxjs/add/operator/count":57,"rxjs/add/operator/debounceTime":58,"rxjs/add/operator/delay":59,"rxjs/add/operator/distinct":60,"rxjs/add/operator/distinctUntilChanged":61,"rxjs/add/operator/do":62,"rxjs/add/operator/expand":63,"rxjs/add/operator/filter":64,"rxjs/add/operator/finally":65,"rxjs/add/operator/first":66,"rxjs/add/operator/last":67,"rxjs/add/operator/map":68,"rxjs/add/operator/merge":69,"rxjs/add/operator/mergeAll":70,"rxjs/add/operator/mergeMap":71,"rxjs/add/operator/pairwise":72,"rxjs/add/operator/pluck":73,"rxjs/add/operator/publish":74,"rxjs/add/operator/publishReplay":75,"rxjs/add/operator/reduce":76,"rxjs/add/operator/retry":77,"rxjs/add/operator/sample":78,"rxjs/add/operator/scan":79,"rxjs/add/operator/share":80,"rxjs/add/operator/skip":81,"rxjs/add/operator/skipUntil":82,"rxjs/add/operator/skipWhile":83,"rxjs/add/operator/startWith":84,"rxjs/add/operator/switchMap":85,"rxjs/add/operator/take":86,"rxjs/add/operator/takeUntil":87,"rxjs/add/operator/takeWhile":88,"rxjs/add/operator/timeout":89,"rxjs/add/operator/withLatestFrom":90,"rxjs/add/operator/zip":91,when:287}]},{},[295])(295)});