X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/6e5240e1987a429e29d230e811af9176772a8228..c3df2a5180fe3821d3e45a11932068ef064a8eb0:/vendor/assets/iD/iD/mapillary-js/mapillary.min.js diff --git a/vendor/assets/iD/iD/mapillary-js/mapillary.min.js b/vendor/assets/iD/iD/mapillary-js/mapillary.min.js index e6c138d41..2b7a5406e 100644 --- a/vendor/assets/iD/iD/mapillary-js/mapillary.min.js +++ b/vendor/assets/iD/iD/mapillary-js/mapillary.min.js @@ -1,38 +1 @@ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Mapillary=t()}}(function(){var t;return function t(e,r,n){function i(a,s){if(!r[a]){if(!e[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:{}};e[a][0].call(h.exports,function(t){var r=e[a][1][t];return i(r?r:t)},h,h.exports,t,e,r,n)}return r[a].exports}for(var o="function"==typeof require&&require,a=0;a0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function i(t){return 3*t.length/4-n(t)}function o(t){var e,r,i,o,a,s,c=t.length;a=n(t),s=new l(3*c/4-a),i=a>0?c-4:c;var u=0;for(e=0,r=0;e>16&255,s[u++]=o>>8&255,s[u++]=255&o;return 2===a?(o=h[t.charCodeAt(e)]<<2|h[t.charCodeAt(e+1)]>>4,s[u++]=255&o):1===a&&(o=h[t.charCodeAt(e)]<<10|h[t.charCodeAt(e+1)]<<4|h[t.charCodeAt(e+2)]>>2,s[u++]=o>>8&255,s[u++]=255&o),s}function a(t){return u[t>>18&63]+u[t>>12&63]+u[t>>6&63]+u[63&t]}function s(t,e,r){for(var n,i=[],o=e;oc?c:a+16383));return 1===n?(e=t[r-1],i+=u[e>>2],i+=u[e<<4&63],i+="=="):2===n&&(e=(t[r-2]<<8)+t[r-1],i+=u[e>>10],i+=u[e>>4&63],i+=u[e<<2&63],i+="="),o.push(i),o.join("")}r.byteLength=i,r.toByteArray=o,r.fromByteArray=c;for(var u=[],h=[],l="undefined"!=typeof Uint8Array?Uint8Array:Array,p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=p.length;f>>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 e=1;e1&&s.index=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}}()},{}],4:[function(t,e,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function o(t){if(l===setTimeout)return setTimeout(t,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(t,0);try{return l(t,0)}catch(e){try{return l.call(null,t,0)}catch(e){return l.call(this,t,0)}}}function a(t){if(p===clearTimeout)return clearTimeout(t);if((p===i||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(t);try{return p(t)}catch(e){try{return p.call(null,t)}catch(e){return p.call(this,t)}}}function s(){v&&d&&(v=!1,d.length?m=d.concat(m):g=-1,m.length&&c())}function c(){if(!v){var t=o(s);v=!0;for(var e=m.length;e;){for(d=m,m=[];++g1)for(var r=1;r=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|t}function m(t){return+t!=t&&(t=0),o.alloc(+t)}function v(t,e){if(o.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return V(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return q(t).length;default:if(n)return V(t).length;e=(""+e).toLowerCase(),n=!0}}function g(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";for(t||(t="utf8");;)switch(t){case"hex":return R(this,e,r);case"utf8":case"utf-8":return O(this,e,r);case"ascii":return A(this,e,r);case"latin1":case"binary":return j(this,e,r);case"base64":return C(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function y(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function b(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=o.from(e,n)),o.isBuffer(e))return 0===e.length?-1:_(t,e,r,n,i);if("number"==typeof e)return e&=255,o.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):_(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function _(t,e,r,n,i){function o(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}var a=1,s=t.length,c=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,c/=2,r/=2}var u;if(i){var h=-1;for(u=r;us&&(r=s-c),u=r;u>=0;u--){for(var l=!0,p=0;pi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a239?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:c=t[i+1],128==(192&c)&&(l=(31&o)<<6|63&c)>127&&(a=l);break;case 3:c=t[i+1],u=t[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=t[i+1],u=t[i+2],h=t[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 P(n)}function P(t){var e=t.length;if(e<=Q)return String.fromCharCode.apply(String,t);for(var r="",n=0;nn)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function I(t,e,r,n,i,a){if(!o.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function D(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function k(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function F(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(t,e,r,n,i){return i||F(t,e,r,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(t,e,r,n,23,4),r+4}function B(t,e,r,n,i){return i||F(t,e,r,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(t,e,r,n,52,8),r+8}function z(t){if(t=$(t).replace(tt,""),t.length<2)return"";for(;t.length%4!=0;)t+="=";return t}function $(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function G(t){return t<16?"0"+t.toString(16):t.toString(16)}function V(t,e){e=e||1/0;for(var r,n=t.length,i=null,o=[],a=0;a55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=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((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function H(t){for(var e=[],r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function q(t){return K.toByteArray(z(t))}function X(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function Y(t){return t!==t}var K=t("base64-js"),Z=t("ieee754"),J=t("isarray");r.Buffer=o,r.SlowBuffer=m,r.INSPECT_MAX_BYTES=50,o.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}(),r.kMaxLength=n(),o.poolSize=8192,o._augment=function(t){return t.__proto__=o.prototype,t},o.from=function(t,e,r){return a(null,t,e,r)},o.TYPED_ARRAY_SUPPORT&&(o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,configurable:!0})),o.alloc=function(t,e,r){return c(null,t,e,r)},o.allocUnsafe=function(t){return u(null,t)},o.allocUnsafeSlow=function(t){return u(null,t)},o.isBuffer=function(t){return!(null==t||!t._isBuffer)},o.compare=function(t,e){if(!o.isBuffer(t)||!o.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},o.prototype.compare=function(t,e,r,n,i){if(!o.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var a=i-n,s=r-e,c=Math.min(a,s),u=this.slice(n,i),h=t.slice(e,r),l=0;li)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return x(this,t,e,r);case"utf8":case"utf-8":return w(this,t,e,r);case"ascii":return S(this,t,e,r);case"latin1":case"binary":return M(this,t,e,r);case"base64":return E(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;o.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r)<0&&(t=0):t>r&&(t=r),e<0?(e+=r)<0&&(e=0):e>r&&(e=r),e0&&(i*=256);)n+=this[t+--e]*i;return n},o.prototype.readUInt8=function(t,e){return e||N(t,1,this.length),this[t]},o.prototype.readUInt16LE=function(t,e){return e||N(t,2,this.length),this[t]|this[t+1]<<8},o.prototype.readUInt16BE=function(t,e){return e||N(t,2,this.length),this[t]<<8|this[t+1]},o.prototype.readUInt32LE=function(t,e){return e||N(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},o.prototype.readUInt32BE=function(t,e){return e||N(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},o.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||N(t,e,this.length);for(var n=this[t],i=1,o=0;++o=i&&(n-=Math.pow(2,8*e)),n},o.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||N(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},o.prototype.readInt8=function(t,e){return e||N(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},o.prototype.readInt16LE=function(t,e){e||N(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt16BE=function(t,e){e||N(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt32LE=function(t,e){return e||N(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},o.prototype.readInt32BE=function(t,e){return e||N(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},o.prototype.readFloatLE=function(t,e){return e||N(t,4,this.length),Z.read(this,t,!0,23,4)},o.prototype.readFloatBE=function(t,e){return e||N(t,4,this.length),Z.read(this,t,!1,23,4)},o.prototype.readDoubleLE=function(t,e){return e||N(t,8,this.length),Z.read(this,t,!0,52,8)},o.prototype.readDoubleBE=function(t,e){return e||N(t,8,this.length),Z.read(this,t,!1,52,8)},o.prototype.writeUIntLE=function(t,e,r,n){if(t=+t,e|=0,r|=0,!n){I(this,t,e,r,Math.pow(2,8*r)-1,0)}var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},o.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,1,255,0),o.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},o.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):D(this,t,e,!0),e+2},o.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):D(this,t,e,!1),e+2},o.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):k(this,t,e,!0),e+4},o.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):k(this,t,e,!1),e+4},o.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);I(this,t,e,r,i-1,-i)}var o=0,a=1,s=0;for(this[e]=255&t;++o>0)-s&255;return e+r},o.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);I(this,t,e,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},o.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,1,127,-128),o.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},o.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):D(this,t,e,!0),e+2},o.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):D(this,t,e,!1),e+2},o.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,2147483647,-2147483648),o.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):k(this,t,e,!0),e+4},o.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),o.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):k(this,t,e,!1),e+4},o.prototype.writeFloatLE=function(t,e,r){return U(this,t,e,!0,r)},o.prototype.writeFloatBE=function(t,e,r){return U(this,t,e,!1,r)},o.prototype.writeDoubleLE=function(t,e,r){return B(this,t,e,!0,r)},o.prototype.writeDoubleBE=function(t,e,r){return B(this,t,e,!1,r)},o.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=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),t.length-e=0;--i)t[i+e]=this[i+r];else if(a<1e3||!o.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0);var a;if("number"==typeof t)for(a=e;a80*r){u=p=t[0],h=f=t[1];for(var g=r;gp&&(p=d),m>f&&(f=m);v=Math.max(p-u,f-h)}return a(s,c,r,u,h,v),c}function i(t,e,r,n,i){var o,a;if(i===j(t,e,r,n)>0)for(o=e;o=e;o-=n)a=O(o,t[o],t[o+1],a);return a&&w(a,a.next)&&(P(a),a=a.next),a}function o(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!w(n,n.next)&&0!==x(n.prev,n,n.next))n=n.next;else{if(P(n),(n=e=n.prev)===n.next)return null;r=!0}}while(r||n!==e);return e}function a(t,e,r,n,i,l,p){if(t){!p&&l&&m(t,n,i,l);for(var f,d,v=t;t.prev!==t.next;)if(f=t.prev,d=t.next,l?c(t,n,i,l):s(t))e.push(f.i/r),e.push(t.i/r),e.push(d.i/r),P(t),t=d.next,v=d.next;else if((t=d)===v){p?1===p?(t=u(t,e,r),a(t,e,r,n,i,l,2)):2===p&&h(t,e,r,n,i,l):a(o(t),e,r,n,i,l,1);break}}}function s(t){var e=t.prev,r=t,n=t.next;if(x(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(b(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&x(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function c(t,e,r,n){var i=t.prev,o=t,a=t.next;if(x(i,o,a)>=0)return!1;for(var s=i.xo.x?i.x>a.x?i.x:a.x:o.x>a.x?o.x:a.x,h=i.y>o.y?i.y>a.y?i.y:a.y:o.y>a.y?o.y:a.y,l=g(s,c,e,r,n),p=g(u,h,e,r,n),f=t.nextZ;f&&f.z<=p;){if(f!==t.prev&&f!==t.next&&b(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&x(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(f=t.prevZ;f&&f.z>=l;){if(f!==t.prev&&f!==t.next&&b(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&x(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}function u(t,e,r){var n=t;do{var i=n.prev,o=n.next.next;!w(i,o)&&S(i,n,n.next,o)&&E(i,o)&&E(o,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(o.i/r),P(n),P(n.next),n=t=o),n=n.next}while(n!==t);return n}function h(t,e,r,n,i,s){var c=t;do{for(var u=c.next.next;u!==c.prev;){if(c.i!==u.i&&_(c,u)){var h=C(c,u);return c=o(c,c.next),h=o(h,h.next),a(c,e,r,n,i,s),void a(h,e,r,n,i,s)}u=u.next}c=c.next}while(c!==t)}function l(t,e,r,n){var a,s,c,u,h,l=[];for(a=0,s=e.length;a=n.next.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.x&&n.x>=h&&b(or.x)&&E(n,t)&&(r=n,p=c),n=n.next;return r}function m(t,e,r,n){var i=t;do{null===i.z&&(i.z=g(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,v(i)}function v(t){var e,r,n,i,o,a,s,c,u=1;do{for(r=t,t=null,o=null,a=0;r;){for(a++,n=r,s=0,e=0;e0||c>0&&n;)0===s?(i=n,n=n.nextZ,c--):0!==c&&n?r.z<=n.z?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,c--):(i=r,r=r.nextZ,s--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;r=n}o.nextZ=null,u*=2}while(a>1);return t}function g(t,e,r,n,i){return t=32767*(t-r)/i,e=32767*(e-n)/i,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1}function y(t){var e=t,r=t;do{e.x=0&&(t-a)*(n-s)-(r-a)*(e-s)>=0&&(r-a)*(o-s)-(i-a)*(n-s)>=0}function _(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!M(t,e)&&E(t,e)&&E(e,t)&&T(t,e)}function x(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function w(t,e){return t.x===e.x&&t.y===e.y}function S(t,e,r,n){return!!(w(t,e)&&w(r,n)||w(t,n)&&w(r,e))||x(t,e,r)>0!=x(t,e,n)>0&&x(r,n,t)>0!=x(r,n,e)>0}function M(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&S(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function E(t,e){return x(t.prev,t,t.next)<0?x(t,e,t.next)>=0&&x(t,t.prev,e)>=0:x(t,e,t.prev)<0||x(t,t.next,e)<0}function T(t,e){var r=t,n=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do{r.y>o!=r.next.y>o&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}function C(t,e){var r=new A(t.i,t.x,t.y),n=new A(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,o.next=n,n.prev=o,n}function O(t,e,r,n){var i=new A(t,e,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 P(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function A(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function j(t,e,r,n){for(var i=0,o=e,a=r-n;o0&&(n+=t[i-1].length,r.holes.push(n))}return r}},{}],7:[function(t,e,r){"use strict";function n(t){var e=t[o];return e||(e=t[o]={}),e}var i=t("individual/one-version");i("ev-store","7");var o="__EV_STORE_KEY@7";e.exports=n},{"individual/one-version":17}],8:[function(t,e,r){"use strict";function n(t,e){var r;for(r in e)t[r]=e[r];return t}function i(t,e){if(this._jsongUrl=t,"number"==typeof e){e={timeout:e}}this._config=n({timeout:15e3,headers:{}},e||{})}var o=t("./request"),a=t("./buildQueryObject");Array.isArray;i.prototype={constructor:i,buildQueryObject:a,get:function(t){var e=this.buildQueryObject(this._jsongUrl,"GET",{paths:t,method:"get"}),r=n(e,this._config);return o("GET",r,this)},set:function(t){var e=this.buildQueryObject(this._jsongUrl,"POST",{jsonGraph:t,method:"set"}),r=n(e,this._config);return r.headers["Content-Type"]="application/x-www-form-urlencoded",o("POST",r,this)},call:function(t,e,r,i){e=e||[],r=r||[],i=i||[];var a=[];a.push("method=call"),a.push("callPath="+encodeURIComponent(JSON.stringify(t))),a.push("arguments="+encodeURIComponent(JSON.stringify(e))),a.push("pathSuffixes="+encodeURIComponent(JSON.stringify(r))),a.push("paths="+encodeURIComponent(JSON.stringify(i)));var s=this.buildQueryObject(this._jsongUrl,"POST",a.join("&")),c=n(s,this._config);return c.headers["Content-Type"]="application/x-www-form-urlencoded",o("POST",c,this)}},i.XMLHttpSource=i,i.default=i,e.exports=i},{"./buildQueryObject":9,"./request":12}],9:[function(t,e,r){"use strict";e.exports=function(t,e,r){var n,i=[],o={url:t},a=t.indexOf("?")!==-1,s=a?"&":"?";return"string"==typeof r?i.push(r):(n=Object.keys(r),n.forEach(function(t){ -var e="object"==typeof r[t]?JSON.stringify(r[t]):r[t];i.push(t+"="+encodeURIComponent(e))})),"GET"===e?o.url+=s+i.join("&"):o.data=i.join("&"),o}},{}],10:[function(t,e,r){(function(t){"use strict";e.exports=function(){var e=new t.XMLHttpRequest;if("withCredentials"in e)return e;if(t.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:{})},{}],11:[function(t,e,r){(function(t){"use strict";e.exports=function(){var e,r,n;if(t.XMLHttpRequest)return new t.XMLHttpRequest;try{for(r=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],n=0;n<3;n++)try{if(e=r[n],new t.ActiveXObject(e))break}catch(t){}return new t.ActiveXObject(e)}catch(t){throw new Error("XMLHttpRequest is not supported by your browser")}}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],12:[function(t,e,r){"use strict";function n(){}function i(t,e,r){return n.create(function(n){var i,o,l,p,f,d={method:t||"GET",crossDomain:!1,async:!0,headers:{},responseType:"json"};for(f in e)h.call(e,f)&&(d[f]=e[f]);d.crossDomain||d.headers["X-Requested-With"]||(d.headers["X-Requested-With"]="XMLHttpRequest"),null!=r.onBeforeRequest&&r.onBeforeRequest(d);try{i=d.crossDomain?u():c()}catch(t){n.onError(t)}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=d.withCredentials!==!1,l=d.headers;for(p in l)h.call(l,p)&&i.setRequestHeader(p,l[p]);if(d.responseType)try{i.responseType=d.responseType}catch(t){if("json"!==d.responseType)throw t}i.onreadystatechange=function(t){4===i.readyState&&(o||(o=!0,a(n,i,t)))},i.ontimeout=function(t){o||(o=!0,s(n,i,"timeout error",t))},i.send(d.data)}catch(t){n.onError(t)}return function(){o||4===i.readyState||(o=!0,i.abort())}})}function o(t,e,r){r||(r=new Error(e)),t.onError(r)}function a(t,e,r){var n,i;if(e&&t){i=e.responseType,n="response"in e?e.response:e.responseText;var a=1223===e.status?204:e.status;if(a>=200&&a<=399){try{"json"!==i&&(n=JSON.parse(n||"")),"string"==typeof n&&(n=JSON.parse(n||""))}catch(e){o(t,"invalid json",e)}return t.onNext(n),void t.onCompleted()}return 401===a||403===a||407===a?o(t,n):410===a?o(t,n):408===a||504===a?o(t,n):o(t,n||"Response code "+a)}}function s(t,e,r,n){o(t,r||e.statusText||"request error",n)}var c=t("./getXMLHttpRequest"),u=t("./getCORSRequest"),h=Object.prototype.hasOwnProperty,l=function(){};n.create=function(t){var e=new n;return e.subscribe=function(e,r,n){var i,o;return i="function"==typeof e?{onNext:e,onError:r||l,onCompleted:n||l}:e,o=t(i),"function"==typeof o?{dispose:o}:o},e},e.exports=i},{"./getCORSRequest":10,"./getXMLHttpRequest":11}],13:[function(e,r,n){(function(i){!function(e){if("object"==typeof n&&void 0!==r)r.exports=e();else if("function"==typeof t&&t.amd)t([],e);else{var o;o="undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this,o.falcor=e()}}(function(){var t;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(t){var e=r[s][1][t];return o(e?e:t)},l,l.exports,t,r,n,i)}return n[s].exports}for(var a="function"==typeof e&&e,s=0;s1&&!Array.isArray(n)||0===e&&!Array.isArray(n)&&"string"!==i||1===e&&!Array.isArray(n)&&!x(n))return new s(function(t){t.onError(new Error("Invalid argument"))})}return u.create(this,t)},n.prototype.invalidate=function(){var t,e=-1,r=arguments.length,n=arguments[r-1];for(t=new Array(r);++e0){var r=i.Observable.of(t);return t.get.apply(t,s).catch(i.Observable.empty()).concat(r).last().flatMap(function(){return n(e,c)}).filter(function(t){return t})}return i.Observable.return(t)}if(a>0){var o=s.map(function(t){return c.concat(t)});return e.get.apply(e,o).concat(i.Observable.defer(function(){return n(e,c)})).last().filter(function(t){return t})}return i.Observable.empty()})}},{134:134,159:159}],6:[function(t,e,r){var n=t(134),i=t(13),o=t(8),a=t(118);e.exports=function(t){var e=n.fromPath(t);if(!Array.isArray(e))throw new Error("Model#derefSync must be called with an Array path.");var r=i(this,this._path.concat(e),!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(t,e,r){function n(){this.message=n.message,this.stack=(new Error).stack}n.prototype=new Error,n.prototype.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.",e.exports=n},{}],8:[function(t,e,r){function n(t,e){this.message=i,this.stack=(new Error).stack,this.boundPath=t,this.shortedPath=e}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,n.prototype.name="InvalidModelError",n.message=i,e.exports=n},{}],9:[function(t,e,r){function n(t){this.message="An exception was thrown when making a request.",this.stack=(new Error).stack,this.innerError=t}var i="InvalidSourceError";n.prototype=new Error,n.prototype.name=i,n.is=function(t){return t&&t.name===i},e.exports=n},{}],10:[function(t,e,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,n.prototype.name=i,n.is=function(t){return t&&t.name===i},e.exports=n},{}],11:[function(t,e,r){function n(t,e,r,n,i,l,p){for(var f,d,m=r,v=i,g=n,y=0;;){if(0===y&&g[u]?(y=v.length,d=g[u]):(f=v[y++],d=m[f]),d){var b=d.$type,_=b&&d.value||d;if(yw;w++)x[w]=v[w];v=x}return[m,v]}var i=t(26),o=i.create,a=t(22),s=t(27),c=t(120),u=t(33),h=t(29).promote;e.exports=n},{120:120,22:22,26:26,27:27,29:29,33:33}],12:[function(t,e,r){var n=t(15),i=t(8),o=t(7);e.exports=function(t,e){return function(r,a,s){var c,u,h,l=s[0],p={values:s,optimizedPaths:[]},f=r._root.cache,d=r._path,m=f,v=d.length,g=[];if(v){if(e)return{criticalError:new o};if(m=n(r,d),m.$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=a.length;h>u;u++)t(r,f,m,a[u],0,l,p,g,c,v,e);return p}}},{15:15,7:7,8:8}],13:[function(t,e,r){var n=t(17),i=t(8);e.exports=function(t,e,r){var o,a,s,c,u,h=e,l=e;for(o=t._boxed,r=t._materialized,a=t._treatErrorsAsValues,t._boxed=!0,t._materialized=void 0===r||r,t._treatErrorsAsValues=!0,s=n(t,h.concat(null),!0),t._boxed=o,t._materialized=r,t._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(t,e,r){function n(t){var e,r,n,i={},o=Object.keys(t);for(r=0,n=o.length;n>r;r++)e=o[r],a(e)||(i[e]=t[e]);return i}function i(t,e,r){Object.keys(t).filter(function(e){return!a(e)&&t[e]}).forEach(function(r){var a=t[r],s=e[r];if(s||(s=e[r]={}),a.$type){var c,u=a.value&&"object"==typeof a.value,h=!t[o];return c=u||h?n(a):a.value,void(e[r]=c)}i(a,s,r)})}var o=t(37),a=t(97);e.exports=function(t){var e={};return i(t,e),e}},{37:37,97:97}],15:[function(t,e,r){e.exports=function(t,e){for(var r=t._root.cache,n=-1,i=e.length;++n_;){if(h=e[_++],null!==h&&(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(f=n(t,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!==e[_]){b=!0;break}for(b?(y=!0,S=void 0):S=x,l=_;v>l;++l)null!==e[l]&&(g[g.length]=e[l])}if(S&&p&&(o(S)?S=void 0:a(t,S)),S&&p===u&&!t._treatErrorsAsValues)throw{path:_===v?e:e.slice(0,_),value:S.value};return S&&t._boxed?S=Boolean(p)&&!r?i(S):S:!S&&t._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(t,e,r){var n=t(46);e.exports=function(t,e){var r=t._getValueSync({_boxed:!0,_root:t._root,_treatErrorsAsValues:t._treatErrorsAsValues},e,!0).value,i=r&&r[n];return null==i?-1:i}},{46:46}],19:[function(t,e,r){var n=t(12),i=t(31),o=n(i,!1),a=n(i,!0);e.exports={getValueSync:t(17),getBoundValue:t(13),getWithPathsAsPathMap:o,getWithPathsAsJSONGraph:a}},{12:12,13:13,17:17,31:31}],20:[function(t,e,r){var n=t(29),i=t(25),o=n.promote;e.exports=function(t,e,r,n,a){var s=e.value;a.errors||(a.errors=[]),t._boxed&&(s=i(e)),a.errors.push({path:n.slice(0,r+1),value:s}),o(t,e)}},{25:25,29:29}],21:[function(t,e,r){function n(t,e,r,n,i,o,a){a.requestedMissingPaths.push(n.slice(0,r).concat(e)),a.optimizedMissingPaths.push(i.slice(0,o).concat(e))}var i=t(30),o=i.fastCopy;e.exports=function(t,e,r,i,a,s,c){var u;i.requestedMissingPaths||(i.requestedMissingPaths=[],i.optimizedMissingPaths=[]),u=rv;v++)b=p[v],_[b]||(_[b]={}),_=_[b];b=p[v],_[b]=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];y=l[v],null!==y?_[y]=S:x[w]=S}}}},{118:118,119:119,120:120,25:25,29:29,37:37}],23:[function(t,e,r){var n=t(27),i=t(26),o=t(29),a=i.remove,s=o.splice,c=t(119),u=t(20),h=t(22),l=t(21),p=t(28),f=t(35);e.exports=function(t,e,r,i,o,d,m,v,g,y,b){var _=e&&e.$type,x=e&&void 0===e.value;return e&&_?void(n(e)?(e[f]||(s(t,e),a(e)),l(t,r,i,d,m,v,g)):_===c?(b&&(m[i]=null),y||t._treatErrorsAsValues?h(t,e,o,i,d,m,v,g,y,b):u(t,e,i,m,d)):(b&&(m[i]=null),(!x||x&&t._materialized)&&h(t,e,o,i,d,m,v,g,y,b))):void(p(t)?h(t,e,o,i,d,m,v,g,y,b):l(t,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(t,e,r){var n=t(134);e.exports=function(t){var e=n.fromPath(t);if(Array.isArray(e)===!1)throw new Error("Model#getValueSync must be called with an Array path.");return this._path.length&&(e=this._path.concat(e)),this._syncCheck("getValueSync")&&this._getValueSync(this,e).value}},{134:134}],25:[function(t,e,r){var n=t(40);e.exports=function(t){var e,r,i,o=Object.keys(t);for(e={},r=0,i=o.length;i>r;r++){var a=o[r];a[0]!==n&&(e[a]=t[a])}return e}},{40:40}],26:[function(t,e,r){function n(t,e){var r=e[c]||0;e[o+r]=t,e[c]=r+1,t[s]=r,t[a]=e}function i(t){var e=t[a];if(e){for(var r=t[s],n=e[c];n>r;)e[o+r]=e[o+r+1],++r;e[c]=n-1,t[a]=void 0,t[s]=void 0}}var o=t(43),a=t(33),s=t(42),c=t(44);e.exports={create:n,remove:i}},{33:33,42:42,43:43,44:44}],27:[function(t,e,r){var n=t(106);e.exports=function(t){var e=void 0===t.$expires&&-1||t.$expires;return-1!==e&&1!==e&&(0===e||ei;n++,i++)o[n]=t[i];return o}function i(t,e){var r,n,i,o=[];for(r=0,n=t.length;n>r;r++)o[r]=t[r];for(i=0,n=e.length;n>i;i++)null!==e[i]&&(o[r++]=e[i]);return o}function o(t,e){var r,n,i,o=[];for(r=0,n=t.length;n>r;r++)o[r]=t[r];for(i=0,n=e.length;n>i;i++)o[r++]=e[i];return o}e.exports={fastCat:o,fastCatSkipNulls:i,fastCopy:n}},{}],31:[function(t,e,r){var n=t(11),i=t(23),o=t(27),a=t(143).iterateKeySet,s=t(120),c=t(29).promote;e.exports=function t(e,r,u,h,l,p,f,d,m,v,g,y){var b=y,_=m;if(!u||u&&u.$type||l===h.length)return void i(e,u,h,l,p,f,d,_,v,g,b);var x,w;x=h[l];var S="object"==typeof x,M=l+1,E=!1,T=x;if(S&&(E={},T=a(x,E)),void 0!==T||!E.done){var C=v+1;do{b=!1;var O;null===T?O=u:(O=u[T],_[v]=T,d[l]=T);var P=_,A=C;if(O){var j=O.$type,R=j&&O.value||O;if(Mw;++w)P[w]=N[w]}}t(e,r,O,h,M,p,f,d,P,A,g,b),E&&!E.done&&(T=a(x,E))}while(E&&!E.done)}}},{11:11,120:120,143:143,23:23,27:27,29:29}],32:[function(t,e,r){"use strict";function n(t){return new n.Model(t)}"function"==typeof Promise?n.Promise=Promise:n.Promise=t(151),e.exports=n,n.Model=t(2)},{151:151,2:2}],33:[function(t,e,r){e.exports=t(40)+"context"},{40:40}],34:[function(t,e,r){e.exports=t(40)+"head"},{40:40}],35:[function(t,e,r){e.exports=t(40)+"invalidated"},{40:40}],36:[function(t,e,r){e.exports=t(40)+"key"},{40:40}],37:[function(t,e,r){e.exports="$modelCreated"},{}],38:[function(t,e,r){e.exports=t(40)+"next"},{40:40}],39:[function(t,e,r){e.exports=t(40)+"parent"},{40:40}],40:[function(t,e,r){e.exports=String.fromCharCode(30)},{}],41:[function(t,e,r){e.exports=t(40)+"prev"},{40:40}],42:[function(t,e,r){e.exports=t(40)+"ref-index"},{40:40}],43:[function(t,e,r){e.exports=t(40)+"ref"},{40:40}],44:[function(t,e,r){e.exports=t(40)+"refs-length"},{40:40}],45:[function(t,e,r){e.exports=t(40)+"tail"},{40:40}],46:[function(t,e,r){e.exports=t(40)+"version"},{40:40}],47:[function(t,e,r){function n(t,e,r,i,a,s,u,h,l,p){if(!w(t)&&!t.$type)for(var f in t)if(f[0]!==c&&"$"!==f[0]&&y(t,f)){var d=t[f],m=b(d)&&!d.$type,v=o(r,i,a,f,d,m,!1,s,u,h,l,p),_=v[0],x=v[1];_&&(m?n(d,e+1,r,x,_,s,u,h,l,p):T(_,x,f,h)&&E(x,g(_),h,s))}}function i(t,e,r,n,i,a,c,l){if(_(r))return S(r,i,a),[void 0,e];v(a,r);var d=r,m=r.value,g=e;if(null!=(r=r[h]))g=r[u]||e;else{var y=0,b=m.length-1;g=r=e;do{var x=m[y],M=b>y,E=o(e,g,r,x,t,M,!0,n,i,a,c,l);if(r=E[0],w(r))return E;g=E[1]}while(y++d,w=o(t,f,e,y,x,!0,r,n,i);if(e=w[0],b(e))return w;f=w[1]}while(d++=l){var x=t[a];for(g=x;d>=_&&g;)x=x[c],y=g.$size||0,d-=y,b===!0&&h(g,y,t,f),g=x;t[a]=t[c]=g,null==g?t[o]=t[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(t,e,r){var n=t(121),i=t(34),o=t(45),a=t(38),s=t(41),c=t(100);e.exports=function(t,e){if(c(e)&&e.$expires!==n){var r=t[i],u=t[o],h=e[a],l=e[s];e!==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]=e),t[i]=t[a]=r=e,r[a]=h,r[s]=void 0),null!=u&&e!==u||(t[o]=t[s]=u=l||e)}return e}},{100:100,121:121,34:34,38:38,41:41,45:45}],51:[function(t,e,r){var n=t(34),i=t(45),o=t(38),a=t(41);e.exports=function(t,e){var r=t[n],s=t[i],c=e[o],u=e[a];null!=c&&"object"==typeof c&&(c[a]=u),null!=u&&"object"==typeof u&&(u[o]=c),e===r&&(t[n]=t[o]=c),e===s&&(t[i]=t[a]=u),e[o]=e[a]=void 0,r=s=c=u=void 0}},{34:34,38:38,41:41,45:45}],52:[function(t,e,r){function n(t,e){var r=!1;return function(){if(!r&&!t._disposed){r=!0,t._callbacks[e]=null,t._optimizedPaths[e]=[],t._requestedPaths[e]=[];0!==--t._count||t.sent||(t._disposable.dispose(),t.requestQueue.removeRequest(t))}}}function i(t){for(var e=[],r=-1,n=0,i=t.length;i>n;++n)for(var o=t[n],a=0,s=o.length;s>a;++a)e[++r]=o[a];return e}var o=t(59),a=t(60),s=0,c=t(57).GetRequest,u=t(76),h=t(78),l=t(119),p=[],f=function(t,e){this.sent=!1,this.scheduled=!1,this.requestQueue=e,this.id=++s,this.type=c,this._scheduler=t,this._pathMap={},this._optimizedPaths=[],this._requestedPaths=[],this._callbacks=[],this._count=0,this._disposable=null,this._collapsed=null,this._disposed=!1};f.prototype={batch:function(t,e,r){var i=this,o=i._optimizedPaths,s=i._requestedPaths,c=i._callbacks,u=o.length;return o[u]=e,s[u]=t,c[u]=r,++i._count,i.scheduled||(i.scheduled=!0,i._disposable=i._scheduler.schedule(function(){a(i,o,function(t,e){if(i.requestQueue.removeRequest(i),i._disposed=!0,i._count){i._merge(s,t,e);for(var r=0,n=c.length;n>r;++r){var o=c[r];o&&o(t,e)}}})})),n(i,u)},add:function(t,e,r){var i,a,s=this,c=o(t,e,s._pathMap);c?(a=c[2],i=c[1]):(a=t,i=e);var u=!1,h=!1;if(i.lengtho){if(null==u){if(e)return!1;u=s[c]=Object.create(null)}if(this.insertPath(t,e,u,o+1,a)===!1)return!1}else s[c]=(u||0)+1,this.length+=1;l.done||(c=p(h,l))}while(!l.done);return!0},n.prototype.removePath=function(t,e,r,n){var i=r||0,o=n||t.length-1,a=e||this.pathmaps[o+1];if(void 0===a||null===a)return!0;var s,c,u=0,h=t[i],l={};s=p(h,l);do{if(void 0!==(c=a[s])&&null!==c){if(o>i){u+=this.removePath(t,c,i+1,o);var f=void 0;for(f in c)break;void 0===f&&delete a[s]}else c=a[s]=(c||1)-1,0===c&&delete a[s],u+=1,this.length-=1;l.done||(s=p(h,l))}}while(!l.done);return u},n.prototype.getSourceObserver=function(t){var e=this;return o.create(function(r){r.jsonGraph=r.jsonGraph||r.jsong||r.values||r.value,r.index=e.index,t.onNext(r)},function(e){t.onError(e)},function(){t.onCompleted()})},n.prototype._subscribe=function(t){var e=this,r=this.queue;e.pending=!0;var n=!1,i=new c,o=s.create(function(){n||(n=!0,r&&r._remove(e))}),a=new u(i,o);try{i.setDisposable(this.model._source[this.method](this.getSourceArgs()).subscribe(this.getSourceObserver(t)))}catch(t){throw new h(t)}return a},e.exports=n},{143:143,159:159,9:9}],54:[function(t,e,r){function n(t,e){this.total=0,this.model=t,this.requests=[],this.scheduler=e}var i=t(58),o=t(40),a=t(90),s=t(100),c=t(143);n.prototype.set=function(t){return t.paths=c.collapse(t.paths),i.create(this.model,t)},n.prototype._remove=function(t){var e=this.requests,r=e.indexOf(t);-1!==r&&e.splice(r,1)},n.prototype.distributePaths=function(t,e,r){var n,i,o=this.model,a=-1,s=t.length,c=-1,u=e.length,h=[];t:for(;++a-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=a(m),g=p[d],y=a(g);if(s(m)&&s(g)&&!v&&!y){n[r]=m,i[r]=g,r+=1;continue t}h>u&&(l[d]=g)}else l[d]=p[d]}r-=1}return t},e.exports=n},{100:100,143:143,40:40,58:58,90:90}],55:[function(t,e,r){function n(t,e){this.model=t,this.scheduler=e,this.requests=this._requests=[]}var i=t(54),o=t(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,e.exports=n},{54:54,56:56}],56:[function(t,e,r){function n(t,e){this.model=t,this.scheduler=e,this.requests=this._requests=[]}var i=t(57),o=t(52);n.prototype={setScheduler:function(t){this.scheduler=t},get:function(t,e,r){function n(){m||0===--l&&r()}var a,s,c,u=this,h=[],l=0,p=u._requests,f=e,d=t,m=!1;for(a=0,s=p.length;s>a;++a)if(c=p[a],c.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 t=h.length,e=0;t>e;++e)h[e]()}}},removeRequest:function(t){for(var e=this._requests,r=e.length;--r>=0;)if(e[r].id===t.id){e.splice(r,1);break}}},e.exports=n},{52:52,57:57}],57:[function(t,e,r){e.exports={GetRequest:"GET"}},{}],58:[function(t,e,r){function n(){a.call(this)}var i=t(159),o=i.Observer,a=t(53),s=t(83),c=t(76),u=t(78),h=new Array(0);n.create=function(t,e){var r=new n;return r.model=t,r.jsonGraphEnvelope=e,r},n.prototype=Object.create(a.prototype),n.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(t){var e=this.model,r=e._path,n=this.jsonGraphEnvelope.paths,i=e._root,l=i.errorSelector,p=i.comparator;return a.prototype.getSourceObserver.call(this,o.create(function(i){e._path=h;var o=c(e,[{paths:n,jsonGraph:i.jsonGraph}],null,l,p);i.paths=o[1],e._path=r,t.onNext(i)},function(i){e._path=h,u(e,s(n,function(t){return{path:t,value:i}}),null,l,p),e._path=r,t.onError(i)},function(){t.onCompleted()}))},e.exports=n},{159:159,53:53,76:76,78:78,83:83}],59:[function(t,e,r){var n=t(143).hasIntersection,i=t(84);e.exports=function(t,e,r){for(var o=[],a=[],s=[],c=-1,u=-1,h=!1,l=0,p=e.length;p>l;++l){var f=e[l],d=r[f.length];d&&n(d,f,0)?(!h&&l>0&&(a=i(t,0,l),o=i(e,0,l)),s[++c]=t[l],h=!0):h&&(o[++u]=f,a[u]=t[l])}return h?[s,o,a]:null}},{143:143,84:84}],60:[function(t,e,r){var n=t(143),i=n.toTree,o=n.toPaths;e.exports=function(t,e,r){if(0===t._count)return void t.requestQueue.removeRequest(t);t.sent=!0,t.scheduled=!1;for(var n=t._pathMap,a=Object.keys(e),s=0,c=a.length;c>s;++s)for(var u=e[s],h=0,l=u.length;l>h;++h){var p=u[h],f=p.length;if(n[f]){var d=n[f];d[d.length]=p}else n[f]=[p]}for(var m=Object.keys(n),v=0,g=m.length;g>v;++v){var y=m[v];n[y]=i(n[y])}var b,_=t._collasped=o(n);t.requestQueue.model._source.get(_).subscribe(function(t){b=t},function(t){r(t,b)},function(){r(null,b)})}},{143:143}],61:[function(t,e,r){function n(t){s.call(this,t||o)}function i(t){return a.Observable.defer(function(){return t})}function o(t){function e(t){function e(t,e){if(Boolean(e.invalidated))t.invalidations.push(t.localThisPath.concat(e.path));else{var r=e.path,i=e.value;Boolean(i)&&"object"==typeof i&&i.$type===p?t.references.push({path:n(r),value:e.value}):t.values.push({path:n(r),value:e.value})}return t}function r(t){var e=t.values.concat(t.references);return e.length>0?i(y.set.apply(y,e)._toJSONG()).map(function(e){return{results:t,envelope:e}}):s.return({results:t,envelope:{jsonGraph:{},paths:[]}})}function o(t){var e,r=t.envelope,o=t.results,u=o.values,h=o.references,l=o.invalidations,p=u.map(c).map(n),f=h.reduce(a,[]),d=v.map(n),m=f.concat(d);return e=m.length>0?i(g.get.apply(g,p.concat(m))._toJSONG()):s.return(r),e.doAction(function(t){t.invalidated=l})}function a(t,e){var r=e.path;return t.push.apply(t,m.map(function(t){return r.concat(t)})),t}function c(t){return t.path}var u=t&&t.localFn;if("function"==typeof u){var h=t.model,l=h._path,f=u.apply(h,d).reduce(e,{values:[],references:[],invalidations:[],localThisPath:l}).flatMap(r).flatMap(o);return s.return(f)}return s.empty()}function r(t){return i(y.set(t)).reduce(function(t){return t},null).map(function(){return{invalidated:t.invalidated,paths:t.paths.map(function(t){return t.slice(b.length)})}})}function n(t){return x.concat(t)}var o=this.args,u=this.model,f=l.fromPath(o[0]),d=o[1]||[],m=(o[2]||[]).map(l.fromPath),v=(o[3]||[]).map(l.fromPath),g=u._clone({_path:[]}),y=g.withoutDataSource(),b=u._path,_=b.concat(f),x=_.slice(0,-1),w=i(u.withoutDataSource().get(f)).map(function(t){for(var e=t.json,r=-1,n=f.length;e&&++r0){(0,e["_"+r+c+"AsJSON"])(e,u)}}return t.onCompleted(),a.empty}var o=t(159),a=o.Disposable,s=t(62);n.create=s.create,n.prototype=Object.create(s.prototype),n.prototype.method="invalidate",n.prototype.constructor=n,e.exports=n},{159:159,62:62}],64:[function(t,e,r){function n(t){this._subscribe=t}function i(t){var e=this.model,r=new this.type;return r.model=e,r.args=this.args,r.outputFormat=t.outputFormat||"AsPathMap",r.isProgressive=t.isProgressive||!1,r.subscribeCount=0,r.subscribeLimit=t.retryLimit||10,r.initialize().invokeSourceRequest(e).ensureCollect(e).subscribe(t)}var o=t(32),a=t(159)&&t(158),s=a.Observable,c=t(84),u=t(105),h={outputFormat:{value:"AsJSONG"}},l={isProgressive:{value:!0}};n.create=function(t,e){var r=new n(i);return r.args=e,r.type=this,r.model=t,r},n.prototype=Object.create(s.prototype),n.prototype.constructor=n,n.prototype._mixin=function(){var t=this,e=c(arguments);return new t.constructor(function(r){return t.subscribe(e.reduce(function(t,e){return Object.create(t,e)},r))})},n.prototype._toJSONG=function(){return this._mixin(h)},n.prototype.progressively=function(){return this._mixin(l)},n.prototype.subscribe=function(t,e,r){var n=t;n&&"object"==typeof n||(n={onNext:t||u,onError:e||u,onCompleted:r||u});var i=this._subscribe(n);switch(typeof i){case"function":return{dispose:i};case"object":return i||{dispose:u};default:return{dispose:u}}},n.prototype.then=function(t,e){var r=this;return new o.Promise(function(t,e){var n,i=!1;r.toArray().subscribe(function(t){n=t.length<=1?t[0]:t},function(t){i=!0,e(t)},function(){i===!1&&t(n)})}).then(t,e)},e.exports=n},{105:105,158:158,159:159,32:32,84:84}],65:[function(t,e,r){function n(t){f.call(this,t||i)}function i(t){return this.isCompleted?a.call(this,t):o.call(this,t)}function o(t){if(this.subscribeCount++>this.subscribeLimit)return t.onError("Loop kill switch thrown."),l.empty;for(var e=[],r=[],n=this.model,i=this.isMaster,o=n._root,u=this.outputFormat,h=o.errorSelector,p=this.method,f=this.groups,d=-1,v=f.length;++d0){var _="_"+p+y+u,x=n[_],w=x(n,b,null,h);r.push.apply(r,w[1]),"PathValues"===y?e.push.apply(e,b.map(s)):"JSONGs"===y?e.push.apply(e,m(b,c)):e.push.apply(e,w[0])}}return this.requestedPaths=e,i?(this.isCompleted=!0,a.call(this,t)):void t.onError({method:p,optimizedPaths:r,invokeSourceRequest:!0})}function a(t){var e=new p(this.model,this.requestedPaths);return"AsJSONG"===this.outputFormat&&(e=e._toJSONG()),this.isProgressive&&(e=e.progressively()),e.subscribe(t)}function s(t){return t.path}function c(t){return t.paths}var u=t(159),h=u.Observable,l=u.Disposable,p=t(67),f=t(62),d=t(9),m=t(82),v=new Array(0);n.create=f.create,n.prototype=Object.create(f.prototype),n.prototype.method="set",n.prototype.constructor=n,n.prototype.invokeSourceRequest=function(t){var e=this,r=this.catch(function(n){var i;if(n&&n.invokeSourceRequest===!0){var o={},a=t._path,s=n.optimizedPaths;t._path=v,t._getPathValuesAsJSONG(t._materialize().withoutDataSource(),s,[o]),t._path=a,i=t._request.set(o).do(function(t){e.isCompleted=s.length===t.paths.length},function(){e.isCompleted=!0}).materialize().flatMap(function(t){if("C"===t.kind)return h.empty();if("E"===t.kind){var e=t.exception;if(d.is(e))return h.throw(t.exception)}return r})}else i=h.throw(n);return i});return new this.constructor(function(t){return r.subscribe(t)})},e.exports=n},{159:159,62:62,67:67,82:82,9:9}],66:[function(t,e,r){var n=function(t){this.disposed=!1,this.currentDisposable=t};n.prototype={dispose:function(){if(!this.disposed&&this.currentDisposable){this.disposed=!0;var t=this.currentDisposable;t.dispose?t.dispose():t()}}},e.exports=n},{}],67:[function(t,e,r){var n=t(64),i=t(68),o=t(69),a={dispose:function(){}},s=t(159).Observable,c=e.exports=function(t,e,r,n){this.model=t,this.currentRemainingPaths=e,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(t){var e=[{}],r=[],n=t.isJSONG=this.isJSONGraph,s=this.isProgressive,c=i(this.model,this.currentRemainingPaths,t,s,n,e,r);return c?o(this,this.model,c,t,e,r,1):a}},{159:159,64:64,68:68,69:69}],68:[function(t,e,r){var n=t(19),i=n.getWithPathsAsJSONGraph,o=n.getWithPathsAsPathMap;e.exports=function(t,e,r,n,a,s,c){var u;if(u=a?i(t,e,s):o(t,e,s),u.criticalError)return r.onError(u.criticalError),null;var h=u.hasValue,l=!u.requestedMissingPaths||!t._source,p=s[0].json||s[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{++t._root.syncRefCount,r.onNext(s[0])}catch(t){throw t}finally{--t._root.syncRefCount}return l?(c.length?r.onError(c):r.onCompleted(),null):u}},{19:19}],69:[function(t,e,r){var n=t(68),i=t(10),o=t(30).fastCat,a=t(49),s=t(88),c=t(66),u=t(46);e.exports=function t(e,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,e.isProgressive,e.isJSONGraph,p,f);if(i)y.currentDisposable=t(e,r,i,l,p,f,d+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(t,e,r){var n=t(67);e.exports=function(t){return new n(this,t)}},{67:67}],71:[function(t,e,r){var n=t(134),i=t(64),o=t(72),a=t(116),s=t(67);e.exports=function(){var t=a(arguments,o,"get");if(t!==!0)return new i(function(e){e.onError(t)});var e=n.fromPathsOrPathValues(arguments);return new s(this,e)}},{116:116,134:134,64:64,67:67,72:72}],72:[function(t,e,r){e.exports={path:!0,pathSyntax:!0}},{}],73:[function(t,e,r){function n(){}var i=t(123),o=t(159),a=o.Disposable;n.prototype.schedule=function(t){return i(t),a.empty},n.prototype.scheduleWithState=function(t,e){var r=this;return i(function(){e(r,t)}),a.empty},e.exports=n},{123:123,159:159}],74:[function(t,e,r){function n(){}var i=t(159),o=i.Disposable;n.prototype.schedule=function(t){return t(),o.empty},n.prototype.scheduleWithState=function(t,e){return e(this,t),o.empty},e.exports=n},{159:159}],75:[function(t,e,r){function n(t){this.delay=t}var i=t(159),o=i.Disposable;n.prototype.schedule=function(t){var e=setTimeout(t,this.delay);return o.create(function(){void 0!==e&&(clearTimeout(e),e=void 0)})},n.prototype.scheduleWithState=function(t,e){var r=this,n=setTimeout(function(){e(r,t)},this.delay);return o.create(function(){void 0!==n&&(clearTimeout(n),n=void 0)})},e.exports=n},{159:159}],76:[function(t,e,r){function n(t,e,r,i,a,s,c,u,h,l,p,d,m,v,g,b,_){for(var x={},w=ex,O=o(t,M,e,r,E,n,T,C,!0,i,a,u,p,m,y,b);if(e=O[0],v(e))return a.index=x,O;M=O[1],n=O[2],E=O[3]}while(x++=x)break;l.index=w}}function i(t,e,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,e];y(u,r);var g=r,b=e;if(null!=(r=r[l]))b=r[h]||e,i.index=v.length;else{var _=0,w=v.length-1;b=r=e;do{var E=v[_],T=w>_,C=o(e,b,r,E,t,T,!0,n,i,a,s,u,p,m);if(r=C[0],S(r))return i.index=_,C;b=C[1]}while(_++S,C=o(e,w,r,E,t,T,!0,n,i,a,h,f,d,g);if(r=C[0],y(r))return i.index=S,C;w=C[1]}while(S++o&&(o=0),r>0&&o>r&&(o=r);for(var a=new Array(o);++iL)return}if(O&&j&&!P)return d(v(e,r,t,b,M),t,b);if(P||!j){if(P===a&&l(T)&&(r=T(y(_,b),r)),P&&e===r)null==e[i]&&(e=f(e,O,e.value),t=g(t,-e.$size,M,w),e=d(e,t,b,w));else{var N=!0;!O&&A||(N=c(r)-1);return t}},{39:39,43:43,44:44,46:46}],115:[function(t,e,r){var n=t(36),i=t(46),o=t(39),a=t(108),s=t(114);e.exports=function(t,e,r,c){var u=t;do{var h=u[o];0>=(u.$size=(u.$size||0)-e)&&null!=h?a(u,h,u[n],r):u[i]!==c&&s(u,c),u=h}while(u);return t}},{108:108,114:114,36:36,39:39,46:46}],116:[function(t,e,r){var n=Array.isArray,i=t(101),o=t(99),a=t(98),s=t(134);e.exports=function(t,e,r){for(var c=0,u=t.length;u>c;++c){var h=t[c],l=!1;if(n(h)&&e.path?l=!0:"string"==typeof h&&e.pathSyntax?l=!0:i(h)&&e.pathValue?(h.path=s.fromPath(h.path),l=!0):o(h)&&e.jsonGraph?l=!0:a(h)&&e.json?l=!0:"function"==typeof h&&c+1===u&&e.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(t,e,r){var n=t(130),i=n.atom,o=t(106),a=t(122),s=t(37),c=t(85),u=Array.isArray,h=t(88),l=t(87);e.exports=function(t,e,r){var n=0,p=t,f=e;if(f?(p=c(p),n=h(p),p.$type=f):(p=i(r),f=p.$type,p[s]=!0),null==r)n=51;else if(null==n||0>=n)switch(typeof r){case"object":n=u(r)?50+r.length:51;break;case"string":n=50+r.length;break;default:n=51}var d=l(p);return"number"==typeof d&&a>d&&(p.$expires=o()+-1*d),p.$size=n,p}},{106:106,122:122,130:130,37:37,85:85,87:87,88:88}],118:[function(t,e,r){e.exports="atom"},{}],119:[function(t,e,r){e.exports="error"},{}],120:[function(t,e,r){e.exports="ref"},{}],121:[function(t,e,r){e.exports=1},{}],122:[function(t,e,r){e.exports=0},{}],123:[function(t,e,r){"use strict";function n(){if(c.length)throw c.shift()}function i(t){var e;e=s.length?s.pop():new o,e.task=t,a(e)}function o(){this.task=null}var a=t(124),s=[],c=[],u=a.makeRequestCallFromTimer(n);e.exports=i,o.prototype.call=function(){try{this.task.call()}catch(t){i.onerror?i.onerror(t):(c.push(t),u())}finally{this.task=null,s[s.length]=this}}},{124:124}],124:[function(t,e,r){(function(t){"use strict";function r(t){a.length||(o(),s=!0),a[a.length]=t}function n(){for(;cu){for(var e=0,r=a.length-c;r>e;e++)a[e]=a[e+c];a.length-=c,c=0}}a.length=0,c=0,s=!1}function i(t){return function(){function e(){clearTimeout(r),clearInterval(n),t()}var r=setTimeout(e,0),n=setInterval(e,50)}}e.exports=r;var o,a=[],s=!1,c=0,u=1024,h=t.MutationObserver||t.WebKitMutationObserver;o="function"==typeof h?function(t){var e=1,r=new h(t),n=document.createTextNode("");return r.observe(n,{characterData:!0}),function(){e=-e,n.data=e}}(n):i(n),r.requestFlush=o,r.makeRequestCallFromTimer=i}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],125:[function(t,e,r){"use strict";function n(t,e){var r;for(r in e)t[r]=e[r];return t}function i(t,e){if(this._jsongUrl=t,"number"==typeof e){e={timeout:e}}this._config=n({timeout:15e3,headers:{}},e||{})}var o=t(129),a=t(126);Array.isArray,i.prototype={constructor:i,buildQueryObject:a,get:function(t){var e=this.buildQueryObject(this._jsongUrl,"GET",{paths:t,method:"get"}),r=n(e,this._config);return o("GET",r,this)},set:function(t){var e="POST",r=this.buildQueryObject(this._jsongUrl,e,{jsonGraph:t,method:"set"}),i=n(r,this._config);return i.headers["Content-Type"]="application/x-www-form-urlencoded",o(e,i,this)},call:function(t,e,r,i){e=e||[],r=r||[],i=i||[];var a="POST",s=[];s.push("method=call"),s.push("callPath="+encodeURIComponent(JSON.stringify(t))),s.push("arguments="+encodeURIComponent(JSON.stringify(e))),s.push("pathSuffixes="+encodeURIComponent(JSON.stringify(r))),s.push("paths="+encodeURIComponent(JSON.stringify(i)));var c=this.buildQueryObject(this._jsongUrl,a,s.join("&")),u=n(c,this._config);return u.headers["Content-Type"]="application/x-www-form-urlencoded",o(a,u,this)}},i.XMLHttpSource=i,i.default=i,e.exports=i},{126:126,129:129}],126:[function(t,e,r){"use strict";e.exports=function(t,e,r){var n,i=[],o={url:t},a=-1!==t.indexOf("?"),s=a?"&":"?";return"string"==typeof r?i.push(r):(n=Object.keys(r),n.forEach(function(t){var e="object"==typeof r[t]?JSON.stringify(r[t]):r[t];i.push(t+"="+encodeURIComponent(e))})),"GET"===e?o.url+=s+i.join("&"):o.data=i.join("&"),o}},{}],127:[function(t,e,r){(function(t){"use strict";e.exports=function(){var e=new t.XMLHttpRequest;if("withCredentials"in e)return e;if(t.XDomainRequest)return new XDomainRequest;throw new Error("CORS is not supported by your browser")}}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],128:[function(t,e,r){(function(t){"use strict";e.exports=function(){var e,r,n;if(t.XMLHttpRequest)return new t.XMLHttpRequest;try{for(r=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],n=0;3>n;n++)try{if(e=r[n],new t.ActiveXObject(e))break}catch(t){}return new t.ActiveXObject(e)}catch(t){throw new Error("XMLHttpRequest is not supported by your browser")}}}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],129:[function(t,e,r){"use strict";function n(){}function i(t,e,r){return n.create(function(n){var i,o,l,p,f,d={method:t||"GET",crossDomain:!1,async:!0,headers:{},responseType:"json"};for(f in e)h.call(e,f)&&(d[f]=e[f]);d.crossDomain||d.headers["X-Requested-With"]||(d.headers["X-Requested-With"]="XMLHttpRequest"),null!=r.onBeforeRequest&&r.onBeforeRequest(d);try{i=d.crossDomain?u():c()}catch(t){n.onError(t)}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=d.withCredentials!==!1,l=d.headers;for(p in l)h.call(l,p)&&i.setRequestHeader(p,l[p]);if(d.responseType)try{i.responseType=d.responseType}catch(t){if("json"!==d.responseType)throw t}i.onreadystatechange=function(t){4===i.readyState&&(o||(o=!0,a(n,i,t)))},i.ontimeout=function(t){o||(o=!0,s(n,i,"timeout error",t))},i.send(d.data)}catch(t){n.onError(t)}return function(){o||4===i.readyState||(o=!0,i.abort())}})}function o(t,e,r){r||(r=new Error(e)),t.onError(r)}function a(t,e,r){var n,i;if(e&&t){i=e.responseType,n="response"in e?e.response:e.responseText;var a=1223===e.status?204:e.status;if(a>=200&&399>=a){try{"json"!==i&&(n=JSON.parse(n||"")),"string"==typeof n&&(n=JSON.parse(n||""))}catch(e){o(t,"invalid json",e)}return t.onNext(n),void t.onCompleted()}return 401===a||403===a||407===a?o(t,n):410===a?o(t,n):408===a||504===a?o(t,n):o(t,n||"Response code "+a)}}function s(t,e,r,n){o(t,r||e.statusText||"request error",n)}var c=t(128),u=t(127),h=Object.prototype.hasOwnProperty,l=function(){};n.create=function(t){var e=new n;return e.subscribe=function(e,r,n){var i,o;return i="function"==typeof e?{onNext:e,onError:r||l,onCompleted:n||l}:e,o=t(i),"function"==typeof o?{dispose:o}:o},e},e.exports=i},{127:127,128:128}],130:[function(t,e,r){function n(t,e,r){var n=Object.create(null);if(null!=r){for(var i in r)n[i]=r[i];return n.$type=t,n.value=e,n}return{$type:t,value:e}}var i=t(134);e.exports={ref:function(t,e){return n("ref",i.fromPath(t),e)},atom:function(t,e){return n("atom",t,e)},undefined:function(){return n("atom")},error:function(t,e){return n("error",t,e)},pathValue:function(t,e){return{path:i.fromPath(t),value:e}},pathInvalidation:function(t){return{path:i.fromPath(t),invalidated:!0}}}},{134:134}],131:[function(t,e,r){e.exports={integers:"integers",ranges:"ranges",keys:"keys"}},{}], -132:[function(t,e,r){var n={token:"token",dotSeparator:".",commaSeparator:",",openingBracket:"[",closingBracket:"]",openingBrace:"{",closingBrace:"}",escape:"\\",space:" ",colon:":",quote:"quote",unknown:"unknown"};e.exports=n},{}],133:[function(t,e,r){e.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(t,e,r){if(r)throw t+" -- "+e.parseString+" with next token: "+r;throw t+" -- "+e.parseString}}},{}],134:[function(t,e,r){var n=t(140),i=t(135),o=t(131),a=function(t,e){return i(new n(t,e))};e.exports=a,a.fromPathsOrPathValues=function(t,e){if(!t)return[];for(var r=[],n=0,i=t.length;i>n;n++)"string"==typeof t[n]?r[n]=a(t[n],e):"string"==typeof t[n].path?r[n]={path:a(t[n].path,e),value:t[n].value}:r[n]=t[n];return r},a.fromPath=function(t,e){return t?"string"==typeof t?a(t,e):t:[]},a.RoutedTokens=o},{131:131,135:135,140:140}],135:[function(t,e,r){var n=t(132),i=t(133),o=t(136);e.exports=function(t){for(var e=t.next(),r={},a=[];!e.done;){switch(e.type){case n.token:var s=+e.token[0];isNaN(s)||i.throwError(i.invalidIdentifier,t),a[a.length]=e.token;break;case n.dotSeparator:0===a.length&&i.throwError(i.unexpectedToken,t);break;case n.space:break;case n.openingBracket:o(t,e,r,a);break;default:i.throwError(i.unexpectedToken,t)}e=t.next()}return 0===a.length&&i.throwError(i.invalidPath,t),a}},{132:132,133:133,136:136}],136:[function(t,e,r){var n=t(132),i=t(133),o=i.indexer,a=t(138),s=t(137),c=t(139);e.exports=function(t,e,r,u){var h=t.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,t)}switch(h.type){case n.openingBrace:f=!0,c(t,h,r,u);break;case n.token:var d=+h.token;isNaN(d)&&i.throwError(o.needQuotes,t),r.indexer[r.indexer.length]=d;break;case n.dotSeparator:r.indexer.length||i.throwError(o.leadingDot,t),a(t,h,r,u);break;case n.space:break;case n.closingBracket:l=!0;break;case n.quote:s(t,h,r,u);break;case n.openingBracket:i.throwError(o.nested,t);break;case n.commaSeparator:++p;break;default:i.throwError(i.unexpectedToken,t)}if(l)break;h=t.next()}0===r.indexer.length&&i.throwError(o.empty,t),r.indexer.length>1&&f&&i.throwError(o.routedTokens,t),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(t,e,r){var n=t(132),i=t(133),o=i.quote;e.exports=function(t,e,r,a){for(var s=t.next(),c="",u=e.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,t),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,t)}if(l)break;s=t.next()}0===c.length&&i.throwError(o.empty,t),r.indexer[r.indexer.length]=c}},{132:132,133:133}],138:[function(t,e,r){var n=t(140),i=t(132),o=t(133);e.exports=function(t,e,r,a){var s,c=t.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,t);!h&&!c.done;){switch(c.type){case i.dotSeparator:3===u&&o.throwError(o.unexpectedToken,t),3===++u&&(l=!1);break;case i.token:s=n.toNumber(t.next().token),isNaN(s)&&o.throwError(o.range.suceedingNaN,t),h=!0;break;default:h=!0}if(h)break;t.next(),c=t.peek()}r.indexer[p]={from:f,to:l?s:s-1}}},{132:132,133:133,140:140}],139:[function(t,e,r){var n=t(132),i=t(131),o=t(133),a=o.routed;e.exports=function(t,e,r,s){var c=t.next(),u=!1,h="";switch(c.token){case i.integers:case i.ranges:case i.keys:break;default:o.throwError(a.invalid,t)}var l=t.next();if(l.type===n.colon&&(u=!0,l=t.next(),l.type!==n.token&&o.throwError(a.invalid,t),h=l.token,l=t.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,t)}},{131:131,132:132,133:133}],140:[function(t,e,r){function n(t,e,r){return{token:t,done:r,type:e}}function i(t,e,r){var i,b=!1,_="",x=r?y:g;do{if(i=e+1>=t.length)break;var w=t[e+1];if(void 0===w||-1!==x.indexOf(w)){if(_.length)break;++e;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 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,++e}while(!i);return!b&&_.length&&(b=n(_,o.token,!1)),b||(b={done:!0}),{token:b,idx:e}}var o=t(132),a=".",s=",",c="[",u="]",h="{",l="}",p=":",f="\\",d='"',m="'",v=" ",g="\\'\"[]., ",y="\\{}'\"[]., :",b=e.exports=function(t,e){this._string=t,this._idx=-1,this._extended=e,this.parseString=""};b.prototype={next:function(){var t=this._nextToken?this._nextToken:i(this._string,this._idx,this._extended);return this._idx=t.idx,this._nextToken=!1,this.parseString+=t.token.token,t.token},peek:function(){var t=this._nextToken?this._nextToken:i(this._string,this._idx,this._extended);return this._nextToken=t,t.token}},b.toNumber=function(t){return isNaN(+t)?NaN:+t}},{132:132}],141:[function(t,e,r){var n=t(147),i=t(148);e.exports=function(t){var e=t.reduce(function(t,e){var r=e.length;return t[r]||(t[r]=[]),t[r].push(e),t},{});return Object.keys(e).forEach(function(t){e[t]=i(e[t])}),n(e)}},{147:147,148:148}],142:[function(t,e,r){var n=t(144);e.exports=function t(e,r,i){for(var o=e,a=!0;a&&in&&(e.empty=!0)}function i(t,e){e.done=!1;var r=e.isObject=!(!t||"object"!=typeof t);e.isArray=r&&o(t),e.arrayOffset=0}var o=Array.isArray;e.exports=function(t,e){if(void 0===e.isArray&&i(t,e),e.isArray){var r;do{e.loaded&&e.rangeOffset>e.to&&(++e.arrayOffset,e.loaded=!1);if(e.arrayOffset>=t.length){e.done=!0;break}var o=t[e.arrayOffset];if("object"===typeof o){if(e.loaded||n(o,e),e.empty)continue;r=e.rangeOffset++}else++e.arrayOffset,r=o}while(void 0===r);return r}return e.isObject?(e.loaded||n(t,e),e.rangeOffset>e.to?void(e.done=!0):e.rangeOffset++):(e.done=!0,t)}},{}],145:[function(t,e,r){var n=t(142);e.exports=function(t,e){for(var r=[],i=-1,o=0,a=t.length;a>o;++o){var s=t[o];n(e[s.length],s,0)||(r[++i]=s)}return r}},{142:142}],146:[function(t,e,r){var n=t(142);e.exports=function(t,e){for(var r=[],i=-1,o=0,a=t.length;a>o;++o)n(e,t[o],0)||(r[++i]=t[o]);return r}},{142:142}],147:[function(t,e,r){function n(t){return null!==t&&typeof t===p}function i(t,e,r){var n,o,a,s,l,p,f,d,m,v,g,y,b,_,x=u(String(e)),w=Object.create(null),S=[],M=-1,E=0,T=[],C=0;if(s=[],l=-1,r-1>e){for(p=c(t,s);++l0)for(f=o.sets,d=-1,m=f.length,b=s[0];++d1&&s||b;++g1?[s]:s;++l0;++e<=r;){var i=t[e];if(!h(i)){n=!1;break}t[e]=parseInt(i,10)}if(n===!0){t.sort(s);var o=t[0],a=t[r];if(r>=a-o)return{from:o,to:a}}return t}function s(t,e){return t-e}function c(t,e,r){var n=0;for(var i in t)e[n++]=i;return n>1&&e.sort(r),n}function u(t){for(var e=5381,r=-1,n=t.length;++r=0}var l=Array.isArray,p="object";e.exports=function(t){var e,r=[],a=0;for(var s in t)if(h(s)&&n(e=t[s]))for(var c=i(e,0,parseInt(s,10)).sets,u=-1,l=c.length;++u1)for(var r=1;r0?e:0);return new n(function(e,n){i.push(function(t,r){t?n(t):e(r)});var o=t.apply(r,i);!o||"object"!=typeof o&&"function"!=typeof o||"function"!=typeof o.then||e(o)})}},n.nodeify=function(t){return function(){var e=Array.prototype.slice.call(arguments),r="function"==typeof e[e.length-1]?e.pop():null,o=this;try{return t.apply(this,arguments).nodeify(r,o)}catch(t){if(null===r||void 0===r)return new n(function(e,r){r(t)});i(function(){r.call(o,t)})}}},n.prototype.nodeify=function(t,e){return"function"!=typeof t?this:void this.then(function(r){i(function(){t.call(e,null,r)})},function(r){i(function(){t.call(e,r)})})}},{123:123,152:152}],158:[function(e,r,n){(function(i){(function(o){var a={boolean:!1,function:!0,object:!0,number:!1,string:!1,undefined:!1},s=a[typeof window]&&window||this,c=a[typeof n]&&n&&!n.nodeType&&n,u=a[typeof r]&&r&&!r.nodeType&&r,h=(u&&u.exports,a[typeof i]&&i);!h||h.global!==h&&h.window!==h||(s=h),"function"==typeof t&&t.amd?t(["rx"],function(t,e){return o(s,e,t)}):"object"==typeof r&&r&&r.exports===c?r.exports=o(s,r.exports,e(159)):s.Rx=o(s,{},s.Rx)}).call(this,function(t,e,r,n){function i(){try{return f.apply(this,arguments)}catch(t){return I.e=t,I}}function o(t){if(!M(t))throw new TypeError("fn must be a function");return f=t,i}function a(t,e,r){return new g(function(n){var i=!1,o=null,a=[];return t.subscribe(function(t){var s,c;try{c=e(t)}catch(t){return void n.onError(t)}if(s=0,i)try{s=r(c,o)}catch(t){return void n.onError(t)}else i=!0,o=c;s>0&&(o=c,a=[]),s>=0&&a.push(t)},function(t){n.onError(t)},function(){n.onNext(a),n.onCompleted()})},t)}function s(t){if(0===t.length)throw new R;return t[0]}function c(t,e,r,n){if(0>e)throw new N;return new g(function(i){var o=e;return t.subscribe(function(t){0==o--&&(i.onNext(t),i.onCompleted())},function(t){i.onError(t)},function(){r?(i.onNext(n),i.onCompleted()):i.onError(new N)})},t)}function u(t,e,r){return new g(function(n){var i=r,o=!1;return t.subscribe(function(t){o?n.onError(new Error("Sequence contains more than one element")):(i=t,o=!0)},function(t){n.onError(t)},function(){o||e?(n.onNext(i),n.onCompleted()):n.onError(new R)})},t)}function h(t,e,r){return new g(function(n){return t.subscribe(function(t){n.onNext(t),n.onCompleted()},function(t){n.onError(t)},function(){e?(n.onNext(r),n.onCompleted()):n.onError(new R)})},t)}function l(t,e,r){return new g(function(n){var i=r,o=!1;return t.subscribe(function(t){i=t,o=!0},function(t){n.onError(t)},function(){o||e?(n.onNext(i),n.onCompleted()):n.onError(new R)})},t)}function p(t,e,r,i){var o=j(e,r,3);return new g(function(e){var r=0;return t.subscribe(function(n){var a;try{a=o(n,r,t)}catch(t){return void e.onError(t)}a?(e.onNext(i?r:n),e.onCompleted()):r++},function(t){e.onError(t)},function(){e.onNext(i?-1:n),e.onCompleted()})},t)}var f,d=r.Observable,m=d.prototype,v=r.CompositeDisposable,g=r.AnonymousObservable,y=r.Disposable.empty,b=(r.internals.isEqual,r.helpers),_=b.not,x=b.defaultComparer,w=b.identity,S=b.defaultSubComparer,M=b.isFunction,E=b.isPromise,T=b.isArrayLike,C=b.isIterable,O=r.internals.inherits,P=d.fromPromise,A=d.from,j=r.internals.bindCallback,R=r.EmptyError,L=r.ObservableBase,N=r.ArgumentOutOfRangeError,I={e:{}};m.aggregate=function(){var t,e,r=!1,n=this;return 2===arguments.length?(r=!0,e=arguments[0],t=arguments[1]):t=arguments[0],new g(function(i){var o,a,s;return n.subscribe(function(n){!s&&(s=!0);try{o?a=t(a,n):(a=r?t(e,n):n,o=!0)}catch(t){return i.onError(t)}},function(t){i.onError(t)},function(){s&&i.onNext(a),!s&&r&&i.onNext(e),!s&&!r&&i.onError(new R),i.onCompleted()})},n)};var D=function(t){function e(e,r,n,i){this.source=e,this.acc=r,this.hasSeed=n,this.seed=i,t.call(this)}function r(t,e){this.o=t,this.acc=e.acc,this.hasSeed=e.hasSeed,this.seed=e.seed,this.hasAccumulation=!1,this.result=null,this.hasValue=!1,this.isStopped=!1}return O(e,t),e.prototype.subscribeCore=function(t){return this.source.subscribe(new r(t,this))},r.prototype.onNext=function(t){this.isStopped||(!this.hasValue&&(this.hasValue=!0),this.hasAccumulation?this.result=o(this.acc)(this.result,t):(this.result=this.hasSeed?o(this.acc)(this.seed,t):t,this.hasAccumulation=!0),this.result===I&&this.o.onError(this.result.e))},r.prototype.onError=function(t){this.isStopped||(this.isStopped=!0,this.o.onError(t))},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(t){return!this.isStopped&&(this.isStopped=!0,this.o.onError(t),!0)},e}(L);return m.reduce=function(t){var e=!1;if(2===arguments.length){e=!0;var r=arguments[1]}return new D(this,t,e,r)},m.some=function(t,e){var r=this;return t?r.filter(t,e).some():new g(function(t){return r.subscribe(function(){t.onNext(!0),t.onCompleted()},function(e){t.onError(e)},function(){t.onNext(!1),t.onCompleted()})},r)},m.any=function(){return this.some.apply(this,arguments)},m.isEmpty=function(){return this.any().map(_)},m.every=function(t,e){return this.filter(function(e){return!t(e)},e).some().map(_)},m.all=function(){return this.every.apply(this,arguments)},m.includes=function(t,e){function r(t,e){return 0===t&&0===e||t===e||isNaN(t)&&isNaN(e)}var n=this;return new g(function(i){var o=0,a=+e||0;return Math.abs(a)===1/0&&(a=0),0>a?(i.onNext(!1),i.onCompleted(),y):n.subscribe(function(e){o++>=a&&r(e,t)&&(i.onNext(!0),i.onCompleted())},function(t){i.onError(t)},function(){i.onNext(!1),i.onCompleted()})},this)},m.contains=function(t,e){m.includes(t,e)},m.count=function(t,e){return t?this.filter(t,e).count():this.reduce(function(t){return t+1},0)},m.indexOf=function(t,e){var r=this;return new g(function(n){var i=0,o=+e||0;return Math.abs(o)===1/0&&(o=0),0>o?(n.onNext(-1),n.onCompleted(),y):r.subscribe(function(e){i>=o&&e===t&&(n.onNext(i),n.onCompleted()),i++},function(t){n.onError(t)},function(){n.onNext(-1),n.onCompleted()})},r)},m.sum=function(t,e){return t&&M(t)?this.map(t,e).sum():this.reduce(function(t,e){return t+e},0)},m.minBy=function(t,e){return e||(e=S),a(this,t,function(t,r){return-1*e(t,r)})},m.min=function(t){return this.minBy(w,t).map(function(t){return s(t)})},m.maxBy=function(t,e){return e||(e=S),a(this,t,e)},m.max=function(t){return this.maxBy(w,t).map(function(t){return s(t)})},m.average=function(t,e){return t&&M(t)?this.map(t,e).average():this.reduce(function(t,e){return{sum:t.sum+e,count:t.count+1}},{sum:0,count:0}).map(function(t){if(0===t.count)throw new R;return t.sum/t.count})},m.sequenceEqual=function(t,e){var r=this;return e||(e=x),new g(function(n){var i=!1,o=!1,a=[],s=[],c=r.subscribe(function(t){var r,i;if(s.length>0){i=s.shift();try{r=e(i,t)}catch(t){return void n.onError(t)}r||(n.onNext(!1),n.onCompleted())}else o?(n.onNext(!1),n.onCompleted()):a.push(t)},function(t){n.onError(t)},function(){i=!0,0===a.length&&(s.length>0?(n.onNext(!1),n.onCompleted()):o&&(n.onNext(!0),n.onCompleted()))});(T(t)||C(t))&&(t=A(t)),E(t)&&(t=P(t));var u=t.subscribe(function(t){var r;if(a.length>0){var o=a.shift();try{r=e(o,t)}catch(t){return void n.onError(t)}r||(n.onNext(!1),n.onCompleted())}else i?(n.onNext(!1),n.onCompleted()):s.push(t)},function(t){n.onError(t)},function(){o=!0,0===s.length&&(a.length>0?(n.onNext(!1),n.onCompleted()):i&&(n.onNext(!0),n.onCompleted()))});return new v(c,u)},r)},m.elementAt=function(t){return c(this,t,!1)},m.elementAtOrDefault=function(t,e){return c(this,t,!0,e)},m.single=function(t,e){return t&&M(t)?this.where(t,e).single():u(this,!1)},m.singleOrDefault=function(t,e,r){return t&&M(t)?this.filter(t,r).singleOrDefault(null,e):u(this,!0,e)},m.first=function(t,e){return t?this.where(t,e).first():h(this,!1)},m.firstOrDefault=function(t,e,r){return t?this.where(t).firstOrDefault(null,e):h(this,!0,e)},m.last=function(t,e){return t?this.where(t,e).last():l(this,!1)},m.lastOrDefault=function(t,e,r){return t?this.where(t,r).lastOrDefault(null,e):l(this,!0,e)},m.find=function(t,e){return p(this,t,e,!1)},m.findIndex=function(t,e){return p(this,t,e,!0)},m.toSet=function(){if(void 0===t.Set)throw new TypeError;var e=this;return new g(function(r){var n=new t.Set;return e.subscribe(function(t){n.add(t)},function(t){r.onError(t)},function(){r.onNext(n),r.onCompleted()})},e)},m.toMap=function(e,r){if(void 0===t.Map)throw new TypeError;var n=this;return new g(function(i){var o=new t.Map;return n.subscribe(function(t){var n;try{n=e(t)}catch(t){return void i.onError(t)}var a=t;if(r)try{a=r(t)}catch(t){return void i.onError(t)}o.set(n,a)},function(t){i.onError(t)},function(){i.onNext(o),i.onCompleted()})},n)},r})}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{159:159}],159:[function(e,r,n){(function(e,i){(function(o){function a(t){for(var e=[],r=0,n=t.length;n>r;r++)e.push(t[r]);return e}function c(t,e){if(ut&&e.stack&&"object"==typeof t&&null!==t&&t.stack&&-1===t.stack.indexOf(pt)){for(var r=[],n=e;n;n=n.source)n.stack&&r.unshift(n.stack);r.unshift(t.stack);var i=r.join("\n"+pt+"\n");t.stack=u(i)}}function u(t){for(var e=t.split("\n"),r=[],n=0,i=e.length;i>n;n++){var o=e[n];h(o)||l(o)||!o||r.push(o)}return r.join("\n")}function h(t){var e=f(t);if(!e)return!1;var r=e[0],n=e[1];return r===ht&&n>=lt&&Lr>=n}function l(t){return-1!==t.indexOf("(module.js:")||-1!==t.indexOf("(node.js:")}function p(){if(ut)try{throw new Error}catch(n){var t=n.stack.split("\n"),e=t[0].indexOf("@")>0?t[1]:t[2],r=f(e);if(!r)return;return ht=r[0],r[1]}}function f(t){var e=/at .+ \((.+):(\d+):(?:\d+)\)$/.exec(t);if(e)return[e[1],Number(e[2])];var r=/at ([^ ]+):(\d+):(?:\d+)$/.exec(t);if(r)return[r[1],Number(r[2])];var n=/.*@(.+):(\d+)$/.exec(t);return n?[n[1],Number(n[2])]:void 0}function d(t){var e=[];if(!Vt(t))return e;Gt.nonEnumArgs&&t.length&&Ht(t)&&(t=Xt.call(t));var r=Gt.enumPrototypes&&"function"==typeof t,n=Gt.enumErrorProps&&(t===Ft||t instanceof Error);for(var i in t)r&&"prototype"==i||n&&("message"==i||"name"==i)||e.push(i);if(Gt.nonEnumShadows&&t!==Ut){var o=t.constructor,a=-1,s=Et;if(t===(o&&o.prototype))var c=t===Bt?Nt:t===Ft?At:It.call(t),u=$t[c];for(;++a-1:void 0});return r.pop(),n.pop(),f}function b(t,e){for(var r=new Array(t),n=0;t>n;n++)r[n]=e();return r}function _(){try{return Wt.apply(this,arguments)}catch(t){return Jt.e=t,Jt}}function x(t){if(!ct(t))throw new TypeError("fn must be a function");return Wt=t,_}function w(t){throw t}function S(t,e){this.id=t,this.value=e}function M(t,e){this.scheduler=t,this.disposable=e,this.isDisposed=!1}function E(t,e){e.isDisposed||(e.isDisposed=!0,e.disposable.dispose())}function T(t){this._s=s}function C(t){this._s=s,this._l=s.length,this._i=0}function O(t){this._a=t}function P(t){this._a=t,this._l=L(t),this._i=0}function A(t){return"number"==typeof t&&Y.isFinite(t)}function j(t){var e,r=t[bt];if(!r&&"string"==typeof t)return e=new T(t),e[bt]();if(!r&&t.length!==o)return e=new O(t),e[bt]();if(!r)throw new TypeError("Object is not iterable");return t[bt]()}function R(t){var e=+t;return 0===e?e:isNaN(e)?e:0>e?-1:1}function L(t){var e=+t.length;return isNaN(e)?0:0!==e&&A(e)?(e=R(e)*Math.floor(Math.abs(e)),0>=e?0:e>Ze?Ze:e):e}function N(t,e){this.observer=t,this.parent=e}function I(t,e){return de(t)||(t=ye),new Qe(e,t)}function D(t,e){this.observer=t,this.parent=e}function k(t,e){this.observer=t,this.parent=e}function F(t,e){return new Or(function(r){var n=new ce,i=new ue;return i.setDisposable(n),n.setDisposable(t.subscribe(function(t){r.onNext(t)},function(t){try{var n=e(t)}catch(t){return r.onError(t)}st(n)&&(n=He(n));var o=new ce;i.setDisposable(o),o.setDisposable(n.subscribe(r))},function(t){r.onCompleted(t)})),i},t)}function U(){return!1}function B(t,e){var r=this;return new Or(function(n){var i=0,o=t.length;return r.subscribe(function(r){if(o>i){var a=t[i++],s=x(e)(r,a);if(s===Jt)return n.onError(s.e);n.onNext(s)}else n.onCompleted()},function(t){n.onError(t)},function(){n.onCompleted()})},r)}function U(){return!1}function z(){return[]}function U(){return!1}function $(){return[]}function G(t,e){this.observer=t,this.accumulator=e.accumulator,this.hasSeed=e.hasSeed,this.seed=e.seed,this.hasAccumulation=!1,this.accumulation=null,this.hasValue=!1,this.isStopped=!1}function V(t,e,r){var n=St(e,r,3);return t.map(function(e,r){var i=n(e,r,t);return st(i)&&(i=He(i)),(wt(i)||xt(i))&&(i=Je(i)),i}).concatAll()}function H(t,e,r){for(var n=0,i=t.length;i>n;n++)if(r(t[n],e))return n;return-1}function W(t){this.comparer=t,this.set=[]}function q(t,e,r){var n=St(e,r,3);return t.map(function(e,r){var i=n(e,r,t);return st(i)&&(i=He(i)),(wt(i)||xt(i))&&(i=Je(i)),i}).mergeAll()}var X={boolean:!1,function:!0,object:!0,number:!1,string:!1,undefined:!1},Y=X[typeof window]&&window||this,K=X[typeof n]&&n&&!n.nodeType&&n,Z=X[typeof r]&&r&&!r.nodeType&&r,J=Z&&Z.exports===K&&K,Q=X[typeof i]&&i;!Q||Q.global!==Q&&Q.window!==Q||(Y=Q);var tt={internals:{},config:{Promise:Y.Promise},helpers:{}},et=tt.helpers.noop=function(){},rt=(tt.helpers.notDefined=function(t){return void 0===t},tt.helpers.identity=function(t){return t}),nt=(tt.helpers.pluck=function(t){return function(e){return e[t]}},tt.helpers.just=function(t){return function(){return t}},tt.helpers.defaultNow=Date.now),it=tt.helpers.defaultComparer=function(t,e){return qt(t,e)},ot=tt.helpers.defaultSubComparer=function(t,e){return t>e?1:e>t?-1:0},at=(tt.helpers.defaultKeySerializer=function(t){return t.toString()},tt.helpers.defaultError=function(t){throw t}),st=tt.helpers.isPromise=function(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then},ct=(tt.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},tt.helpers.not=function(t){return!t},tt.helpers.isFunction=function(){var t=function(t){return"function"==typeof t||!1};return t(/x/)&&(t=function(t){return"function"==typeof t&&"[object Function]"==It.call(t)}),t}());tt.config.longStackSupport=!1;var ut=!1;try{throw new Error}catch(t){ut=!!t.stack}var ht,lt=p(),pt="From previous event:";(tt.EmptyError=function(){this.message="Sequence contains no elements.",Error.call(this)}).prototype=Error.prototype;var ft=tt.ObjectDisposedError=function(){this.message="Object has been disposed",Error.call(this)};ft.prototype=Error.prototype;var dt=tt.ArgumentOutOfRangeError=function(){this.message="Argument out of range",Error.call(this)};dt.prototype=Error.prototype;var mt=tt.NotSupportedError=function(t){this.message=t||"This operation is not supported",Error.call(this)};mt.prototype=Error.prototype;var vt=tt.NotImplementedError=function(t){this.message=t||"This operation is not implemented",Error.call(this)};vt.prototype=Error.prototype;var gt=tt.helpers.notImplemented=function(){throw new vt},yt=tt.helpers.notSupported=function(){throw new mt},bt="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";Y.Set&&"function"==typeof(new Y.Set)["@@iterator"]&&(bt="@@iterator");var _t=tt.doneEnumerator={done:!0,value:o},xt=tt.helpers.isIterable=function(t){return t[bt]!==o},wt=tt.helpers.isArrayLike=function(t){return t&&t.length!==o};tt.helpers.iterator=bt;var St=tt.internals.bindCallback=function(t,e,r){if(void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,i){return t.call(e,r,n,i)}}return function(){return t.apply(e,arguments)}},Mt=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Et=Mt.length,Tt="[object Arguments]",Ct="[object Array]",Ot="[object Boolean]",Pt="[object Date]",At="[object Error]",jt="[object Number]",Rt="[object Object]",Lt="[object RegExp]",Nt="[object String]",It=Object.prototype.toString,Dt=Object.prototype.hasOwnProperty,kt=It.call(arguments)==Tt,Ft=Error.prototype,Ut=Object.prototype,Bt=String.prototype,zt=Ut.propertyIsEnumerable;try{!(It.call(document)==Rt&&!({toString:0}+""))}catch(t){!0}var $t={};$t[Ct]=$t[Pt]=$t[jt]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},$t[Ot]=$t[Nt]={constructor:!0,toString:!0,valueOf:!0},$t[At]=$t["[object Function]"]=$t[Lt]={constructor:!0,toString:!0},$t[Rt]={constructor:!0};var Gt={};!function(){var t=function(){this.x=1},e=[];t.prototype={valueOf:1,y:1};for(var r in new t)e.push(r);for(r in arguments);Gt.enumErrorProps=zt.call(Ft,"message")||zt.call(Ft,"name"),Gt.enumPrototypes=zt.call(t,"prototype"),Gt.nonEnumArgs=0!=r,Gt.nonEnumShadows=!/valueOf/.test(e)}(1);var Vt=tt.internals.isObject=function(t){var e=typeof t;return t&&("function"==e||"object"==e)||!1},Ht=function(t){ -return!(!t||"object"!=typeof t)&&It.call(t)==Tt};kt||(Ht=function(t){return!(!t||"object"!=typeof t)&&Dt.call(t,"callee")});var Wt,qt=tt.internals.isEqual=function(t,e){return y(t,e,[],[])},Xt=({}.hasOwnProperty,Array.prototype.slice),Yt=this.inherits=tt.internals.inherits=function(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r},Kt=tt.internals.addProperties=function(t){for(var e=[],r=1,n=arguments.length;n>r;r++)e.push(arguments[r]);for(var i=0,o=e.length;o>i;i++){var a=e[i];for(var s in a)t[s]=a[s]}},Zt=tt.internals.addRef=function(t,e){return new Or(function(r){return new ee(e.getDisposable(),t.subscribe(r))})},Jt={e:{}};S.prototype.compareTo=function(t){var e=this.value.compareTo(t.value);return 0===e&&(e=this.id-t.id),e};var Qt=tt.internals.PriorityQueue=function(t){this.items=new Array(t),this.length=0},te=Qt.prototype;te.isHigherPriority=function(t,e){return this.items[t].compareTo(this.items[e])<0},te.percolate=function(t){if(!(t>=this.length||0>t)){var e=t-1>>1;if(!(0>e||e===t)&&this.isHigherPriority(t,e)){var r=this.items[t];this.items[t]=this.items[e],this.items[e]=r,this.percolate(e)}}},te.heapify=function(t){if(+t||(t=0),!(t>=this.length||0>t)){var e=2*t+1,r=2*t+2,n=t;if(et;t++)r[t]=arguments[t];for(t=0;e>t;t++)if(!ae(r[t]))throw new TypeError("Not a disposable");this.disposables=r,this.isDisposed=!1,this.length=r.length},re=ee.prototype;re.add=function(t){this.isDisposed?t.dispose():(this.disposables.push(t),this.length++)},re.remove=function(t){var e=!1;if(!this.isDisposed){var r=this.disposables.indexOf(t);-1!==r&&(e=!0,this.disposables.splice(r,1),this.length--,t.dispose())}return e},re.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;for(var t=this.disposables.length,e=new Array(t),r=0;t>r;r++)e[r]=this.disposables[r];for(this.disposables=[],this.length=0,r=0;t>r;r++)e[r].dispose()}};var ne=tt.Disposable=function(t){this.isDisposed=!1,this.action=t||et};ne.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var ie=ne.create=function(t){return new ne(t)},oe=ne.empty={dispose:et},ae=ne.isDisposable=function(t){return t&&ct(t.dispose)},se=ne.checkDisposed=function(t){if(t.isDisposed)throw new ft},ce=tt.SingleAssignmentDisposable=function(){this.isDisposed=!1,this.current=null};ce.prototype.getDisposable=function(){return this.current},ce.prototype.setDisposable=function(t){if(this.current)throw new Error("Disposable has already been assigned");var e=this.isDisposed;!e&&(this.current=t),e&&t&&t.dispose()},ce.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var t=this.current;this.current=null}t&&t.dispose()};var ue=tt.SerialDisposable=function(){this.isDisposed=!1,this.current=null};ue.prototype.getDisposable=function(){return this.current},ue.prototype.setDisposable=function(t){var e=this.isDisposed;if(!e){var r=this.current;this.current=t}r&&r.dispose(),e&&t&&t.dispose()},ue.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var t=this.current;this.current=null}t&&t.dispose()};var he=tt.RefCountDisposable=function(){function t(t){this.disposable=t,this.disposable.count++,this.isInnerDisposed=!1}function e(t){this.underlyingDisposable=t,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return t.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,0===--this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},e.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},e.prototype.getDisposable=function(){return this.isDisposed?oe:new t(this)},e}();M.prototype.dispose=function(){this.scheduler.scheduleWithState(this,E)};var le=tt.internals.ScheduledItem=function(t,e,r,n,i){this.scheduler=t,this.state=e,this.action=r,this.dueTime=n,this.comparer=i||ot,this.disposable=new ce};le.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},le.prototype.compareTo=function(t){return this.comparer(this.dueTime,t.dueTime)},le.prototype.isCancelled=function(){return this.disposable.isDisposed},le.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var pe=tt.Scheduler=function(){function t(t,e,r,n){this.now=t,this._schedule=e,this._scheduleRelative=r,this._scheduleAbsolute=n}function e(t,e){return e(),oe}t.isScheduler=function(e){return e instanceof t};var r=t.prototype;return r.schedule=function(t){return this._schedule(t,e)},r.scheduleWithState=function(t,e){return this._schedule(t,e)},r.scheduleWithRelative=function(t,r){return this._scheduleRelative(r,t,e)},r.scheduleWithRelativeAndState=function(t,e,r){return this._scheduleRelative(t,e,r)},r.scheduleWithAbsolute=function(t,r){return this._scheduleAbsolute(r,t,e)},r.scheduleWithAbsoluteAndState=function(t,e,r){return this._scheduleAbsolute(t,e,r)},t.now=nt,t.normalize=function(t){return 0>t&&(t=0),t},t}(),fe=pe.normalize,de=pe.isScheduler;!function(t){function e(t,e){function r(e){i(e,function(e){var n=!1,i=!1,a=t.scheduleWithState(e,function(t,e){return n?o.remove(a):i=!0,r(e),oe});i||(o.add(a),n=!0)})}var n=e[0],i=e[1],o=new ee;return r(n),o}function r(t,e,r){function n(e){o(e,function(e,i){var o=!1,s=!1,c=t[r](e,i,function(t,e){return o?a.remove(c):s=!0,n(e),oe});s||(a.add(c),o=!0)})}var i=e[0],o=e[1],a=new ee;return n(i),a}function n(t,e){t(function(r){e(t,r)})}t.scheduleRecursive=function(t){return this.scheduleRecursiveWithState(t,n)},t.scheduleRecursiveWithState=function(t,r){return this.scheduleWithState([t,r],e)},t.scheduleRecursiveWithRelative=function(t,e){return this.scheduleRecursiveWithRelativeAndState(e,t,n)},t.scheduleRecursiveWithRelativeAndState=function(t,e,n){return this._scheduleRelative([t,n],e,function(t,e){return r(t,e,"scheduleWithRelativeAndState")})},t.scheduleRecursiveWithAbsolute=function(t,e){return this.scheduleRecursiveWithAbsoluteAndState(e,t,n)},t.scheduleRecursiveWithAbsoluteAndState=function(t,e,n){return this._scheduleAbsolute([t,n],e,function(t,e){return r(t,e,"scheduleWithAbsoluteAndState")})}}(pe.prototype),function(t){pe.prototype.schedulePeriodic=function(t,e){return this.schedulePeriodicWithState(null,t,e)},pe.prototype.schedulePeriodicWithState=function(t,e,r){if(void 0===Y.setInterval)throw new mt;e=fe(e);var n=t,i=Y.setInterval(function(){n=r(n)},e);return ie(function(){Y.clearInterval(i)})}}(pe.prototype),function(t){t.catchError=t.catch=function(t){return new we(this,t)}}(pe.prototype);var me,ve,ge=(tt.internals.SchedulePeriodicRecursive=function(){function t(t,e){e(0,this._period);try{this._state=this._action(this._state)}catch(t){throw this._cancel.dispose(),t}}function e(t,e,r,n){this._scheduler=t,this._state=e,this._period=r,this._action=n}return e.prototype.start=function(){var e=new ce;return this._cancel=e,e.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,t.bind(this))),e},e}(),pe.immediate=function(){function t(t,e){return e(this,t)}return new pe(nt,t,yt,yt)}()),ye=pe.currentThread=function(){function t(){for(;r.length>0;){var t=r.dequeue();!t.isCancelled()&&t.invoke()}}function e(e,n){var i=new le(this,e,n,this.now());if(r)r.enqueue(i);else{r=new Qt(4),r.enqueue(i);var o=x(t)();if(r=null,o===Jt)return w(o.e)}return i.disposable}var r,n=new pe(nt,e,yt,yt);return n.scheduleRequired=function(){return!r},n}(),be=function(){var t,e=et;if(Y.setTimeout)t=Y.setTimeout,e=Y.clearTimeout;else{if(!Y.WScript)throw new mt;t=function(t,e){Y.WScript.Sleep(e),t()}}return{setTimeout:t,clearTimeout:e}}(),_e=be.setTimeout,xe=be.clearTimeout;!function(){function t(e){if(o)_e(function(){t(e)},0);else{var r=i[e];if(r){o=!0;var n=x(r)();if(ve(e),o=!1,n===Jt)return w(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;ve=function(t){delete i[t]};var a=RegExp("^"+String(It).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),s="function"==typeof(s=Q&&J&&Q.setImmediate)&&!a.test(s)&&s;if(ct(s))me=function(e){var r=n++;return i[r]=e,s(function(){t(r)}),r};else if(void 0!==e&&"[object process]"==={}.toString.call(e))me=function(r){var o=n++;return i[o]=r,e.nextTick(function(){t(o)}),o};else if(function(){if(!Y.postMessage||Y.importScripts)return!1;var t=!1,e=Y.onmessage;return Y.onmessage=function(){t=!0},Y.postMessage("","*"),Y.onmessage=e,t}()){var c="ms.rx.schedule"+Math.random();Y.addEventListener?Y.addEventListener("message",r,!1):Y.attachEvent?Y.attachEvent("onmessage",r):Y.onmessage=r,me=function(t){var e=n++;return i[e]=t,Y.postMessage(c+currentId,"*"),e}}else if(Y.MessageChannel){var u=new Y.MessageChannel;u.port1.onmessage=function(e){t(e.data)},me=function(t){var e=n++;return i[e]=t,u.port2.postMessage(e),e}}else me="document"in Y&&"onreadystatechange"in Y.document.createElement("script")?function(e){var r=Y.document.createElement("script"),o=n++;return i[o]=e,r.onreadystatechange=function(){t(o),r.onreadystatechange=null,r.parentNode.removeChild(r),r=null},Y.document.documentElement.appendChild(r),o}:function(e){var r=n++;return i[r]=e,_e(function(){t(r)},0),r}}();var we=(pe.timeout=pe.default=function(){function t(t,e){var r=this,n=new ce,i=me(function(){!n.isDisposed&&n.setDisposable(e(r,t))});return new ee(n,ie(function(){ve(i)}))}function e(t,e,r){var n=this,i=pe.normalize(e),o=new ce;if(0===i)return n.scheduleWithState(t,r);var a=_e(function(){!o.isDisposed&&o.setDisposable(r(n,t))},i);return new ee(o,ie(function(){xe(a)}))}function r(t,e,r){return this.scheduleWithRelativeAndState(t,e-this.now(),r)}return new pe(nt,t,e,r)}(),function(t){function e(t,e){return this._scheduler.scheduleWithState(t,this._wrap(e))}function r(t,e,r){return this._scheduler.scheduleWithRelativeAndState(t,e,this._wrap(r))}function n(t,e,r){return this._scheduler.scheduleWithAbsoluteAndState(t,e,this._wrap(r))}function i(i,o){this._scheduler=i,this._handler=o,this._recursiveOriginal=null,this._recursiveWrapper=null,t.call(this,this._scheduler.now.bind(this._scheduler),e,r,n)}return Yt(i,t),i.prototype._clone=function(t){return new i(t,this._handler)},i.prototype._wrap=function(t){var e=this;return function(r,n){try{return t(e._getRecursiveWrapper(r),n)}catch(t){if(!e._handler(t))throw t;return oe}}},i.prototype._getRecursiveWrapper=function(t){if(this._recursiveOriginal!==t){this._recursiveOriginal=t;var e=this._clone(t);e._recursiveOriginal=t,e._recursiveWrapper=e,this._recursiveWrapper=e}return this._recursiveWrapper},i.prototype.schedulePeriodicWithState=function(t,e,r){var n=this,i=!1,o=new ce;return o.setDisposable(this._scheduler.schedulePeriodicWithState(t,e,function(t){if(i)return null;try{return r(t)}catch(t){if(i=!0,!n._handler(t))throw t;return o.dispose(),null}})),o},i}(pe)),Se=tt.Notification=function(){function t(t,e,r,n,i,o){this.kind=t,this.value=e,this.exception=r,this._accept=n,this._acceptObservable=i,this.toString=o}return t.prototype.accept=function(t,e,r){return t&&"object"==typeof t?this._acceptObservable(t):this._accept(t,e,r)},t.prototype.toObservable=function(t){var e=this;return de(t)||(t=ge),new Or(function(r){return t.scheduleWithState(e,function(t,e){e._acceptObservable(r),"N"===e.kind&&r.onCompleted()})})},t}(),Me=Se.createOnNext=function(){function t(t){return t(this.value)}function e(t){return t.onNext(this.value)}function r(){return"OnNext("+this.value+")"}return function(n){return new Se("N",n,null,t,e,r)}}(),Ee=Se.createOnError=function(){function t(t,e){return e(this.exception)}function e(t){return t.onError(this.exception)}function r(){return"OnError("+this.exception+")"}return function(n){return new Se("E",null,n,t,e,r)}}(),Te=Se.createOnCompleted=function(){function t(t,e,r){return r()}function e(t){return t.onCompleted()}function r(){return"OnCompleted()"}return function(){return new Se("C",null,null,t,e,r)}}(),Ce=tt.Observer=function(){};Ce.prototype.toNotifier=function(){var t=this;return function(e){return e.accept(t)}},Ce.prototype.asObserver=function(){return new je(this.onNext.bind(this),this.onError.bind(this),this.onCompleted.bind(this))},Ce.prototype.checked=function(){return new Re(this)};var Oe=Ce.create=function(t,e,r){return t||(t=et),e||(e=at),r||(r=et),new je(t,e,r)};Ce.fromNotifier=function(t,e){return new je(function(r){return t.call(e,Me(r))},function(r){return t.call(e,Ee(r))},function(){return t.call(e,Te())})},Ce.prototype.notifyOn=function(t){return new Ne(t,this)},Ce.prototype.makeSafe=function(t){return new AnonymousSafeObserver(this._onNext,this._onError,this._onCompleted,t)};var Pe,Ae=tt.internals.AbstractObserver=function(t){function e(){this.isStopped=!1,t.call(this)}return Yt(e,t),e.prototype.next=gt,e.prototype.error=gt,e.prototype.completed=gt,e.prototype.onNext=function(t){this.isStopped||this.next(t)},e.prototype.onError=function(t){this.isStopped||(this.isStopped=!0,this.error(t))},e.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.completed())},e.prototype.dispose=function(){this.isStopped=!0},e.prototype.fail=function(t){return!this.isStopped&&(this.isStopped=!0,this.error(t),!0)},e}(Ce),je=tt.AnonymousObserver=function(t){function e(e,r,n){t.call(this),this._onNext=e,this._onError=r,this._onCompleted=n}return Yt(e,t),e.prototype.next=function(t){this._onNext(t)},e.prototype.error=function(t){this._onError(t)},e.prototype.completed=function(){this._onCompleted()},e}(Ae),Re=function(t){function e(e){t.call(this),this._observer=e,this._state=0}Yt(e,t);var r=e.prototype;return r.onNext=function(t){this.checkAccess();var e=x(this._observer.onNext).call(this._observer,t);this._state=0,e===Jt&&w(e.e)},r.onError=function(t){this.checkAccess();var e=x(this._observer.onError).call(this._observer,t);this._state=2,e===Jt&&w(e.e)},r.onCompleted=function(){this.checkAccess();var t=x(this._observer.onCompleted).call(this._observer);this._state=2,t===Jt&&w(t.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)},e}(Ce),Le=tt.internals.ScheduledObserver=function(t){function e(e,r){t.call(this),this.scheduler=e,this.observer=r,this.isAcquired=!1,this.hasFaulted=!1,this.queue=[],this.disposable=new ue}return Yt(e,t),e.prototype.next=function(t){var e=this;this.queue.push(function(){e.observer.onNext(t)})},e.prototype.error=function(t){var e=this;this.queue.push(function(){e.observer.onError(t)})},e.prototype.completed=function(){var t=this;this.queue.push(function(){t.observer.onCompleted()})},e.prototype.ensureActive=function(){var t=!1,e=this;!this.hasFaulted&&this.queue.length>0&&(t=!this.isAcquired,this.isAcquired=!0),t&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(t){var r;if(!(e.queue.length>0))return void(e.isAcquired=!1);r=e.queue.shift();try{r()}catch(t){throw e.queue=[],e.hasFaulted=!0,t}t()}))},e.prototype.dispose=function(){t.prototype.dispose.call(this),this.disposable.dispose()},e}(Ae),Ne=function(t){function e(e,r,n){t.call(this,e,r),this._cancel=n}return Yt(e,t),e.prototype.next=function(e){t.prototype.next.call(this,e),this.ensureActive()},e.prototype.error=function(e){t.prototype.error.call(this,e),this.ensureActive()},e.prototype.completed=function(){t.prototype.completed.call(this),this.ensureActive()},e.prototype.dispose=function(){t.prototype.dispose.call(this),this._cancel&&this._cancel.dispose(),this._cancel=null},e}(Le),Ie=tt.Observable=function(){function t(t){if(tt.config.longStackSupport&&ut){try{throw new Error}catch(t){this.stack=t.stack.substring(t.stack.indexOf("\n")+1)}var e=this;this._subscribe=function(r){var n=r.onError.bind(r);return r.onError=function(t){c(t,e),n(t)},t.call(e,r)}}else this._subscribe=t}return Pe=t.prototype,Pe.subscribe=Pe.forEach=function(t,e,r){return this._subscribe("object"==typeof t?t:Oe(t,e,r))},Pe.subscribeOnNext=function(t,e){return this._subscribe(Oe(void 0!==e?function(r){t.call(e,r)}:t))},Pe.subscribeOnError=function(t,e){return this._subscribe(Oe(null,void 0!==e?function(r){t.call(e,r)}:t))},Pe.subscribeOnCompleted=function(t,e){return this._subscribe(Oe(null,null,void 0!==e?function(){t.call(e)}:t))},t}(),De=tt.ObservableBase=function(t){function e(t){return t&&ct(t.dispose)?t:ct(t)?ie(t):oe}function r(t,r){var n=r[0],i=r[1],o=x(i.subscribeCore).call(i,n);return o!==Jt||n.fail(Jt.e)?void n.setDisposable(e(o)):w(Jt.e)}function n(t){var e=new Pr(t),n=[e,this];return ye.scheduleRequired()?ye.scheduleWithState(n,r):r(null,n),e}function i(){t.call(this,n)}return Yt(i,t),i.prototype.subscribeCore=gt,i}(Ie),ke=tt.internals.Enumerable=function(){},Fe=function(t){function e(e){this.sources=e,t.call(this)}function r(t,e,r){this.o=t,this.s=e,this.e=r,this.isStopped=!1}return Yt(e,t),e.prototype.subscribeCore=function(t){var e,n=new ue,i=ge.scheduleRecursiveWithState(this.sources[bt](),function(i,o){if(!e){var a=x(i.next).call(i);if(a===Jt)return t.onError(a.e);if(a.done)return t.onCompleted();var s=a.value;st(s)&&(s=He(s));var c=new ce;n.setDisposable(c),c.setDisposable(s.subscribe(new r(t,o,i)))}});return new ee(n,i,ie(function(){e=!0}))},r.prototype.onNext=function(t){this.isStopped||this.o.onNext(t)},r.prototype.onError=function(t){this.isStopped||(this.isStopped=!0,this.o.onError(t))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.s(this.e))},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(t){return!this.isStopped&&(this.isStopped=!0,this.o.onError(t),!0)},e}(De);ke.prototype.concat=function(){return new Fe(this)};var Ue=function(t){function e(e){this.sources=e,t.call(this)}return Yt(e,t),e.prototype.subscribeCore=function(t){var e,r=this.sources[bt](),n=new ue,i=ge.scheduleRecursiveWithState(null,function(i,o){if(!e){var a=x(r.next).call(r);if(a===Jt)return t.onError(a.e);if(a.done)return null!==i?t.onError(i):t.onCompleted();var s=a.value;st(s)&&(s=He(s));var c=new ce;n.setDisposable(c),c.setDisposable(s.subscribe(function(e){t.onNext(e)},o,function(){t.onCompleted()}))}});return new ee(n,i,ie(function(){e=!0}))},e}(De);ke.prototype.catchError=function(){return new Ue(this)},ke.prototype.catchErrorWhen=function(t){var e=this;return new Or(function(r){var n,i=new jr,o=new jr,a=t(i),s=a.subscribe(o),c=e[bt](),u=new ue,h=ge.scheduleRecursive(function(t){if(!n){var e=x(c.next).call(c);if(e===Jt)return r.onError(e.e);if(e.done)return void r.onCompleted();var a=e.value;st(a)&&(a=He(a));var s=new ce,h=new ce;u.setDisposable(new ee(h,s)),s.setDisposable(a.subscribe(function(t){r.onNext(t)},function(e){h.setDisposable(o.subscribe(t,function(t){r.onError(t)},function(){r.onCompleted()})),i.onNext(e)},function(){r.onCompleted()}))}});return new ee(s,u,h,ie(function(){n=!0}))})};var Be=function(t){function e(t,e){this.v=t,this.c=null==e?-1:e}function r(t){this.v=t.v,this.l=t.c}return Yt(e,t),e.prototype[bt]=function(){return new r(this)},r.prototype.next=function(){return 0===this.l?_t:(this.l>0&&this.l--,{done:!1,value:this.v})},e}(ke),ze=ke.repeat=function(t,e){return new Be(t,e)},$e=function(t){function e(t,e,r){this.s=t,this.fn=e?St(e,r,3):null}function r(t){this.i=-1,this.s=t.s,this.l=this.s.length,this.fn=t.fn}return Yt(e,t),e.prototype[bt]=function(){return new r(this)},r.prototype.next=function(){return++this.it?(e.onNext(r[t]),i(t+1)):e.onCompleted()}var e=this.observer,r=this.parent.args,n=r.length;return this.parent.scheduler.scheduleRecursiveWithState(0,t)};var tr=Ie.fromArray=function(t,e){return de(e)||(e=ye),new Qe(t,e)};Ie.generate=function(t,e,r,n,i){return de(i)||(i=ye),new Or(function(o){var a=!0;return i.scheduleRecursiveWithState(t,function(t,i){var s,c;try{a?a=!1:t=r(t),(s=e(t))&&(c=n(t))}catch(t){return o.onError(t)}s?(o.onNext(c),i(t)):o.onCompleted()})})};var er=function(t){function e(){t.call(this)}return Yt(e,t),e.prototype.subscribeCore=function(t){return oe},e}(De),rr=Ie.never=function(){return new er};Ie.of=function(){for(var t=arguments.length,e=new Array(t),r=0;t>r;r++)e[r]=arguments[r];return new Qe(e,ye)},Ie.ofWithScheduler=function(t){for(var e=arguments.length,r=new Array(e-1),n=1;e>n;n++)r[n-1]=arguments[n];return new Qe(r,t)};var nr=function(t){function e(e,r){this.obj=e,this.keys=Object.keys(e),this.scheduler=r,t.call(this)}return Yt(e,t),e.prototype.subscribeCore=function(t){return new D(t,this).run()},e}(De);D.prototype.run=function(){function t(t,o){if(i>t){var a=n[t];e.onNext([a,r[a]]),o(t+1)}else e.onCompleted()}var e=this.observer,r=this.parent.obj,n=this.parent.keys,i=n.length;return this.parent.scheduler.scheduleRecursiveWithState(0,t)},Ie.pairs=function(t,e){return e||(e=ye),new nr(t,e)};var ir=function(t){function e(e,r,n){this.start=e,this.rangeCount=r,this.scheduler=n,t.call(this)}return Yt(e,t),e.prototype.subscribeCore=function(t){return new or(t,this).run()},e}(De),or=function(){function t(t,e){this.observer=t,this.parent=e}return t.prototype.run=function(){function t(t,i){r>t?(n.onNext(e+t),i(t+1)):n.onCompleted()}var e=this.parent.start,r=this.parent.rangeCount,n=this.observer;return this.parent.scheduler.scheduleRecursiveWithState(0,t)},t}();Ie.range=function(t,e,r){return de(r)||(r=ye),new ir(t,e,r)};var ar=function(t){function e(e,r,n){this.value=e,this.repeatCount=null==r?-1:r,this.scheduler=n,t.call(this)}return Yt(e,t),e.prototype.subscribeCore=function(t){return new k(t,this).run()},e}(De);k.prototype.run=function(){function t(t,n){return(-1===t||t>0)&&(e.onNext(r),t>0&&t--),0===t?e.onCompleted():void n(t)}var e=this.observer,r=this.parent.value;return this.parent.scheduler.scheduleRecursiveWithState(this.parent.repeatCount,t)},Ie.repeat=function(t,e,r){return de(r)||(r=ye),new ar(t,e,r)};var sr=function(t){function e(e,r){this.value=e,this.scheduler=r,t.call(this)}function r(t,e){this.observer=t,this.parent=e}function n(t,e){var r=e[0],n=e[1];n.onNext(r),n.onCompleted()}return Yt(e,t),e.prototype.subscribeCore=function(t){return new r(t,this).run()},r.prototype.run=function(){return this.parent.scheduler.scheduleWithState([this.parent.value,this.observer],n)},e}(De),cr=(Ie.return=Ie.just=Ie.returnValue=function(t,e){return de(e)||(e=ge),new sr(t,e)},function(t){function e(e,r){this.error=e,this.scheduler=r,t.call(this)}function r(t,e){this.o=t,this.p=e}function n(t,e){var r=e[0];e[1].onError(r)}return Yt(e,t),e.prototype.subscribeCore=function(t){return new r(t,this).run()},r.prototype.run=function(){return this.p.scheduler.scheduleWithState([this.p.error,this.o],n)},e}(De)),ur=Ie.throw=Ie.throwError=Ie.throwException=function(t,e){return de(e)||(e=ge),new cr(t,e)};Ie.using=function(t,e){return new Or(function(r){var n,i,o=oe;try{n=t(),n&&(o=n),i=e(n)}catch(t){return new ee(ur(t).subscribe(r),o)}return new ee(i.subscribe(r),o)})},Pe.amb=function(t){var e=this;return new Or(function(r){function n(){o||(o=a,u.dispose())}function i(){o||(o=s,c.dispose())}var o,a="L",s="R",c=new ce,u=new ce;return st(t)&&(t=He(t)),c.setDisposable(e.subscribe(function(t){n(),o===a&&r.onNext(t)},function(t){n(),o===a&&r.onError(t)},function(){n(),o===a&&r.onCompleted()})),u.setDisposable(t.subscribe(function(t){i(),o===s&&r.onNext(t)},function(t){i(),o===s&&r.onError(t)},function(){i(),o===s&&r.onCompleted()})),new ee(c,u)})},Ie.amb=function(){var t=rr(),e=[];if(Array.isArray(arguments[0]))e=arguments[0];else for(var r=0,n=arguments.length;n>r;r++)e.push(arguments[r]);for(var r=0,n=e.length;n>r;r++)t=function(t,e){return t.amb(e)}(t,e[r]);return t},Pe.catch=Pe.catchError=Pe.catchException=function(t){return"function"==typeof t?F(this,t):hr([this,t])};var hr=Ie.catchError=Ie.catch=Ie.catchException=function(){var t=[];if(Array.isArray(arguments[0]))t=arguments[0];else for(var e=0,r=arguments.length;r>e;e++)t.push(arguments[e]);return Ge(t).catchError()};Pe.combineLatest=function(){for(var t=arguments.length,e=new Array(t),r=0;t>r;r++)e[r]=arguments[r];return Array.isArray(e[0])?e[0].unshift(this):e.unshift(this),lr.apply(this,e)};var lr=Ie.combineLatest=function(){for(var t=arguments.length,e=new Array(t),r=0;t>r;r++)e[r]=arguments[r];var n=e.pop();return Array.isArray(e[0])&&(e=e[0]),new Or(function(t){function r(e){if(s[e]=!0,c||(c=s.every(rt))){try{var r=n.apply(null,h)}catch(e){return t.onError(e)}t.onNext(r)}else u.filter(function(t,r){return r!==e}).every(rt)&&t.onCompleted()}function i(e){u[e]=!0,u.every(rt)&&t.onCompleted()}for(var o=e.length,a=function(){return!1},s=b(o,a),c=!1,u=b(o,a),h=new Array(o),l=new Array(o),p=0;o>p;p++)!function(n){var o=e[n],a=new ce;st(o)&&(o=He(o)),a.setDisposable(o.subscribe(function(t){h[n]=t,r(n)},function(e){t.onError(e)},function(){i(n)})),l[n]=a}(p);return new ee(l)},this)};Pe.concat=function(){for(var t=[],e=0,r=arguments.length;r>e;e++)t.push(arguments[e]);return t.unshift(this),fr.apply(null,t)};var pr=function(t){function e(e){this.sources=e,t.call(this)}function r(t,e){this.sources=t,this.o=e}return Yt(e,t),e.prototype.subscribeCore=function(t){return new r(this.sources,t).run()},r.prototype.run=function(){var t,e=new ue,r=this.sources,n=r.length,i=this.o,o=ge.scheduleRecursiveWithState(0,function(o,a){if(!t){if(o===n)return i.onCompleted();var s=r[o];st(s)&&(s=He(s));var c=new ce;e.setDisposable(c),c.setDisposable(s.subscribe(function(t){i.onNext(t)},function(t){i.onError(t)},function(){a(o+1)}))}});return new ee(e,o,ie(function(){t=!0}))},e}(De),fr=Ie.concat=function(){var t;if(Array.isArray(arguments[0]))t=arguments[0];else{t=new Array(arguments.length);for(var e=0,r=arguments.length;r>e;e++)t[e]=arguments[e]}return new pr(t)};Pe.concatAll=Pe.concatObservable=function(){return this.merge(1)};var dr=function(t){function e(e,r){this.source=e,this.maxConcurrent=r,t.call(this)}return Yt(e,t),e.prototype.subscribeCore=function(t){var e=new ee;return e.add(this.source.subscribe(new mr(t,this.maxConcurrent,e))),e},e}(De),mr=function(){function t(t,e,r){this.o=t,this.max=e,this.g=r,this.done=!1,this.q=[],this.activeCount=0,this.isStopped=!1}function e(t,e){this.parent=t,this.sad=e,this.isStopped=!1}return t.prototype.handleSubscribe=function(t){var r=new ce;this.g.add(r),st(t)&&(t=He(t)),r.setDisposable(t.subscribe(new e(this,r)))},t.prototype.onNext=function(t){this.isStopped||(this.activeCount0?t.handleSubscribe(t.q.shift()):(t.activeCount--,t.done&&0===t.activeCount&&t.o.onCompleted())}},e.prototype.dispose=function(){this.isStopped=!0},e.prototype.fail=function(t){return!this.isStopped&&(this.isStopped=!0,this.parent.o.onError(t),!0)},t}();Pe.merge=function(t){return"number"!=typeof t?vr(this,t):new dr(this,t)};var vr=Ie.merge=function(){var t,e,r=[],n=arguments.length;if(arguments[0])if(de(arguments[0]))for(t=arguments[0],e=1;n>e;e++)r.push(arguments[e]);else for(t=ge,e=0;n>e;e++)r.push(arguments[e]);else for(t=ge, -e=1;n>e;e++)r.push(arguments[e]);return Array.isArray(r[0])&&(r=r[0]),I(t,r).mergeAll()},gr=tt.CompositeError=function(t){this.name="NotImplementedError",this.innerErrors=t,this.message="This contains multiple errors. Check the innerErrors",Error.call(this)};gr.prototype=Error.prototype,Ie.mergeDelayError=function(){var t;if(Array.isArray(arguments[0]))t=arguments[0];else{var e=arguments.length;t=new Array(e);for(var r=0;e>r;r++)t[r]=arguments[r]}var n=I(null,t);return new Or(function(t){function e(){0===a.length?t.onCompleted():1===a.length?t.onError(a[0]):t.onError(new gr(a))}var r=new ee,i=new ce,o=!1,a=[];return r.add(i),i.setDisposable(n.subscribe(function(n){var i=new ce;r.add(i),st(n)&&(n=He(n)),i.setDisposable(n.subscribe(function(e){t.onNext(e)},function(t){a.push(t),r.remove(i),o&&1===r.length&&e()},function(){r.remove(i),o&&1===r.length&&e()}))},function(t){a.push(t),o=!0,1===r.length&&e()},function(){o=!0,1===r.length&&e()})),r})};var yr=function(t){function e(e){this.source=e,t.call(this)}function r(t,e){this.o=t,this.g=e,this.isStopped=!1,this.done=!1}function n(t,e,r){this.parent=t,this.g=e,this.sad=r,this.isStopped=!1}return Yt(e,t),e.prototype.subscribeCore=function(t){var e=new ee,n=new ce;return e.add(n),n.setDisposable(this.source.subscribe(new r(t,e))),e},r.prototype.onNext=function(t){if(!this.isStopped){var e=new ce;this.g.add(e),st(t)&&(t=He(t)),e.setDisposable(t.subscribe(new n(this,this.g,e)))}},r.prototype.onError=function(t){this.isStopped||(this.isStopped=!0,this.o.onError(t))},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(t){return!this.isStopped&&(this.isStopped=!0,this.o.onError(t),!0)},n.prototype.onNext=function(t){this.isStopped||this.parent.o.onNext(t)},n.prototype.onError=function(t){this.isStopped||(this.isStopped=!0,this.parent.o.onError(t))},n.prototype.onCompleted=function(){if(!this.isStopped){var t=this.parent;this.isStopped=!0,t.g.remove(this.sad),t.done&&1===t.g.length&&t.o.onCompleted()}},n.prototype.dispose=function(){this.isStopped=!0},n.prototype.fail=function(t){return!this.isStopped&&(this.isStopped=!0,this.parent.o.onError(t),!0)},e}(De);Pe.mergeAll=Pe.mergeObservable=function(){return new yr(this)},Pe.onErrorResumeNext=function(t){if(!t)throw new Error("Second observable is required");return br([this,t])};var br=Ie.onErrorResumeNext=function(){var t=[];if(Array.isArray(arguments[0]))t=arguments[0];else for(var e=0,r=arguments.length;r>e;e++)t.push(arguments[e]);return new Or(function(e){var r=0,n=new ue,i=ge.scheduleRecursive(function(i){var o,a;rr;r++)e[r]=arguments[r];var n=e.pop(),i=this;return Array.isArray(e[0])&&(e=e[0]),new Or(function(t){for(var r=e.length,o=b(r,U),a=!1,s=new Array(r),c=new Array(r+1),u=0;r>u;u++)!function(r){var n=e[r],i=new ce;st(n)&&(n=He(n)),i.setDisposable(n.subscribe(function(t){s[r]=t,o[r]=!0,a=o.every(rt)},function(e){t.onError(e)},et)),c[r]=i}(u);var h=new ce;return h.setDisposable(i.subscribe(function(e){var r=[e].concat(s);if(a){var i=x(n).apply(null,r);return i===Jt?t.onError(i.e):void t.onNext(i)}},function(e){t.onError(e)},function(){t.onCompleted()})),c[r]=h,new ee(c)},this)},Pe.zip=function(){if(Array.isArray(arguments[0]))return B.apply(this,arguments);for(var t=arguments.length,e=new Array(t),r=0;t>r;r++)e[r]=arguments[r];var n=this,i=e.pop();return e.unshift(n),new Or(function(t){for(var r=e.length,o=b(r,z),a=b(r,U),s=new Array(r),c=0;r>c;c++)!function(r){var c=e[r],u=new ce;st(c)&&(c=He(c)),u.setDisposable(c.subscribe(function(e){if(o[r].push(e),o.every(function(t){return t.length>0})){var s=o.map(function(t){return t.shift()}),c=x(i).apply(n,s);if(c===Jt)return t.onError(c.e);t.onNext(c)}else a.filter(function(t,e){return e!==r}).every(rt)&&t.onCompleted()},function(e){t.onError(e)},function(){a[r]=!0,a.every(rt)&&t.onCompleted()})),s[r]=u}(c);return new ee(s)},n)},Ie.zip=function(){for(var t=arguments.length,e=new Array(t),r=0;t>r;r++)e[r]=arguments[r];var n=e.shift();return n.zip.apply(n,e)},Ie.zipArray=function(){var t;if(Array.isArray(arguments[0]))t=arguments[0];else{var e=arguments.length;t=new Array(e);for(var r=0;e>r;r++)t[r]=arguments[r]}return new Or(function(e){for(var r=t.length,n=b(r,$),i=b(r,U),o=new Array(r),a=0;r>a;a++)!function(r){o[r]=new ce,o[r].setDisposable(t[r].subscribe(function(t){if(n[r].push(t),n.every(function(t){return t.length>0})){var o=n.map(function(t){return t.shift()});e.onNext(o)}else if(i.filter(function(t,e){return e!==r}).every(rt))return e.onCompleted()},function(t){e.onError(t)},function(){i[r]=!0,i.every(rt)&&e.onCompleted()}))}(a);return new ee(o)})},Pe.asObservable=function(){var t=this;return new Or(function(e){return t.subscribe(e)},t)},Pe.bufferWithCount=function(t,e){return"number"!=typeof e&&(e=t),this.windowWithCount(t,e).selectMany(function(t){return t.toArray()}).where(function(t){return t.length>0})},Pe.dematerialize=function(){var t=this;return new Or(function(e){return t.subscribe(function(t){return t.accept(e)},function(t){e.onError(t)},function(){e.onCompleted()})},this)},Pe.distinctUntilChanged=function(t,e){var r=this;return e||(e=it),new Or(function(n){var i,o=!1;return r.subscribe(function(r){var a=r;if(t&&(a=x(t)(r))===Jt)return n.onError(a.e);if(o){var s=x(e)(i,a);if(s===Jt)return n.onError(s.e)}o&&s||(o=!0,i=a,n.onNext(r))},function(t){n.onError(t)},function(){n.onCompleted()})},this)};var wr=function(t){function e(e,r,n,i){this.source=e,this.t=!r||ct(r)?Oe(r||et,n||et,i||et):r,t.call(this)}function r(t,e){this.o=t,this.t=e,this.isStopped=!1}return Yt(e,t),e.prototype.subscribeCore=function(t){return this.source.subscribe(new r(t,this.t))},r.prototype.onNext=function(t){if(!this.isStopped){var e=x(this.t.onNext).call(this.t,t);e===Jt&&this.o.onError(e.e),this.o.onNext(t)}},r.prototype.onError=function(t){if(!this.isStopped){this.isStopped=!0;var e=x(this.t.onError).call(this.t,t);if(e===Jt)return this.o.onError(e.e);this.o.onError(t)}},r.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=!0;var t=x(this.t.onCompleted).call(this.t);if(t===Jt)return this.o.onError(t.e);this.o.onCompleted()}},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(t){return!this.isStopped&&(this.isStopped=!0,this.o.onError(t),!0)},e}(De);Pe.do=Pe.tap=Pe.doAction=function(t,e,r){return new wr(this,t,e,r)},Pe.doOnNext=Pe.tapOnNext=function(t,e){return this.tap(void 0!==e?function(r){t.call(e,r)}:t)},Pe.doOnError=Pe.tapOnError=function(t,e){return this.tap(et,void 0!==e?function(r){t.call(e,r)}:t)},Pe.doOnCompleted=Pe.tapOnCompleted=function(t,e){return this.tap(et,null,void 0!==e?function(){t.call(e)}:t)},Pe.finally=Pe.ensure=function(t){var e=this;return new Or(function(r){var n;try{n=e.subscribe(r)}catch(e){throw t(),e}return ie(function(){try{n.dispose()}catch(t){throw t}finally{t()}})},this)},Pe.finallyAction=function(t){return this.ensure(t)};var Sr=function(t){function e(e){this.source=e,t.call(this)}function r(t){this.o=t,this.isStopped=!1}return Yt(e,t),e.prototype.subscribeCore=function(t){return this.source.subscribe(new r(t))},r.prototype.onNext=et,r.prototype.onError=function(t){this.isStopped||(this.isStopped=!0,this.o.onError(t))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(t){return!this.isStopped&&(this.isStopped=!0,this.observer.onError(t),!0)},e}(De);Pe.ignoreElements=function(){return new Sr(this)},Pe.materialize=function(){var t=this;return new Or(function(e){return t.subscribe(function(t){e.onNext(Me(t))},function(t){e.onNext(Ee(t)),e.onCompleted()},function(){e.onNext(Te()),e.onCompleted()})},t)},Pe.repeat=function(t){return ze(this,t).concat()},Pe.retry=function(t){return ze(this,t).catchError()},Pe.retryWhen=function(t){return ze(this).catchErrorWhen(t)};var Mr=function(t){function e(e,r,n,i){this.source=e,this.accumulator=r,this.hasSeed=n,this.seed=i,t.call(this)}return Yt(e,t),e.prototype.subscribeCore=function(t){return this.source.subscribe(new G(t,this))},e}(De);G.prototype.onNext=function(t){if(!this.isStopped){!this.hasValue&&(this.hasValue=!0);try{this.hasAccumulation?this.accumulation=this.accumulator(this.accumulation,t):(this.accumulation=this.hasSeed?this.accumulator(this.seed,t):t,this.hasAccumulation=!0)}catch(t){return this.observer.onError(t)}this.observer.onNext(this.accumulation)}},G.prototype.onError=function(t){this.isStopped||(this.isStopped=!0,this.observer.onError(t))},G.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,!this.hasValue&&this.hasSeed&&this.observer.onNext(this.seed),this.observer.onCompleted())},G.prototype.dispose=function(){this.isStopped=!0},G.prototype.fail=function(t){return!this.isStopped&&(this.isStopped=!0,this.observer.onError(t),!0)},Pe.scan=function(){var t,e,r=!1;return 2===arguments.length?(r=!0,t=arguments[0],e=arguments[1]):e=arguments[0],new Mr(this,e,r,t)},Pe.skipLast=function(t){if(0>t)throw new dt;var e=this;return new Or(function(r){var n=[];return e.subscribe(function(e){n.push(e),n.length>t&&r.onNext(n.shift())},function(t){r.onError(t)},function(){r.onCompleted()})},e)},Pe.startWith=function(){var t,e=0;arguments.length&&de(arguments[0])?(t=arguments[0],e=1):t=ge;for(var r=[],n=e,i=arguments.length;i>n;n++)r.push(arguments[n]);return Ge([tr(r,t),this]).concat()},Pe.takeLast=function(t){if(0>t)throw new dt;var e=this;return new Or(function(r){var n=[];return e.subscribe(function(e){n.push(e),n.length>t&&n.shift()},function(t){r.onError(t)},function(){for(;n.length>0;)r.onNext(n.shift());r.onCompleted()})},e)},Pe.takeLastBuffer=function(t){var e=this;return new Or(function(r){var n=[];return e.subscribe(function(e){n.push(e),n.length>t&&n.shift()},function(t){r.onError(t)},function(){r.onNext(n),r.onCompleted()})},e)},Pe.windowWithCount=function(t,e){var r=this;if(+t||(t=0),Math.abs(t)===1/0&&(t=0),0>=t)throw new dt;if(null==e&&(e=t),+e||(e=0),Math.abs(e)===1/0&&(e=0),0>=e)throw new dt;return new Or(function(n){function i(){var t=new jr;c.push(t),n.onNext(Zt(t,a))}var o=new ce,a=new he(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-t+1;a>=0&&a%e==0&&c.shift().onCompleted(),++s%e==0&&i()},function(t){for(;c.length>0;)c.shift().onError(t);n.onError(t)},function(){for(;c.length>0;)c.shift().onCompleted();n.onCompleted()})),a},r)},Pe.selectConcat=Pe.concatMap=function(t,e,r){return ct(t)&&ct(e)?this.concatMap(function(r,n){var i=t(r,n);return st(i)&&(i=He(i)),(wt(i)||xt(i))&&(i=Je(i)),i.map(function(t,i){return e(r,t,n,i)})}):ct(t)?V(this,t,r):V(this,function(){return t})},Pe.concatMapObserver=Pe.selectConcatObserver=function(t,e,r,n){var i=this,o=St(t,n,2),a=St(e,n,1),s=St(r,n,0);return new Or(function(t){var e=0;return i.subscribe(function(r){var n;try{n=o(r,e++)}catch(e){return void t.onError(e)}st(n)&&(n=He(n)),t.onNext(n)},function(e){var r;try{r=a(e)}catch(e){return void t.onError(e)}st(r)&&(r=He(r)),t.onNext(r),t.onCompleted()},function(){var e;try{e=s()}catch(e){return void t.onError(e)}st(e)&&(e=He(e)),t.onNext(e),t.onCompleted()})},this).concatAll()},Pe.defaultIfEmpty=function(t){var e=this;return t===o&&(t=null),new Or(function(r){var n=!1;return e.subscribe(function(t){n=!0,r.onNext(t)},function(t){r.onError(t)},function(){!n&&r.onNext(t),r.onCompleted()})},e)},W.prototype.push=function(t){var e=-1===H(this.set,t,this.comparer);return e&&this.set.push(t),e},Pe.distinct=function(t,e){var r=this;return e||(e=it),new Or(function(n){var i=new W(e);return r.subscribe(function(e){var r=e;if(t)try{r=t(e)}catch(t){return void n.onError(t)}i.push(r)&&n.onNext(e)},function(t){n.onError(t)},function(){n.onCompleted()})},this)};var Er=function(t){function e(e,r,n){this.source=e,this.selector=St(r,n,3),t.call(this)}function r(t,e){return function(r,n,i){return t.call(this,e.selector(r,n,i),n,i)}}function n(t,e,r){this.o=t,this.selector=e,this.source=r,this.i=0,this.isStopped=!1}return Yt(e,t),e.prototype.internalMap=function(t,n){return new e(this.source,r(t,this),n)},e.prototype.subscribeCore=function(t){return this.source.subscribe(new n(t,this.selector,this))},n.prototype.onNext=function(t){if(!this.isStopped){var e=x(this.selector)(t,this.i++,this.source);return e===Jt?this.o.onError(e.e):void this.o.onNext(e)}},n.prototype.onError=function(t){this.isStopped||(this.isStopped=!0,this.o.onError(t))},n.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},n.prototype.dispose=function(){this.isStopped=!0},n.prototype.fail=function(t){return!this.isStopped&&(this.isStopped=!0,this.o.onError(t),!0)},e}(De);Pe.map=Pe.select=function(t,e){var r="function"==typeof t?t:function(){return t};return this instanceof Er?this.internalMap(r,e):new Er(this,r,e)},Pe.pluck=function(){var t=arguments,e=arguments.length;if(0===e)throw new Error("List of properties cannot be empty.");return this.map(function(r){for(var n=r,i=0;e>i;i++){var a=n[t[i]];if(void 0===a)return o;n=a}return n})},Pe.flatMapObserver=Pe.selectManyObserver=function(t,e,r,n){var i=this;return new Or(function(o){var a=0;return i.subscribe(function(e){var r;try{r=t.call(n,e,a++)}catch(t){return void o.onError(t)}st(r)&&(r=He(r)),o.onNext(r)},function(t){var r;try{r=e.call(n,t)}catch(t){return void o.onError(t)}st(r)&&(r=He(r)),o.onNext(r),o.onCompleted()},function(){var t;try{t=r.call(n)}catch(t){return void o.onError(t)}st(t)&&(t=He(t)),o.onNext(t),o.onCompleted()})},i).mergeAll()},Pe.selectMany=Pe.flatMap=function(t,e,r){return ct(t)&&ct(e)?this.flatMap(function(r,n){var i=t(r,n);return st(i)&&(i=He(i)),(wt(i)||xt(i))&&(i=Je(i)),i.map(function(t,i){return e(r,t,n,i)})},r):ct(t)?q(this,t,r):q(this,function(){return t})},Pe.selectSwitch=Pe.flatMapLatest=Pe.switchMap=function(t,e){return this.select(t,e).switchLatest()};var Tr=function(t){function e(e,r){this.source=e,this.skipCount=r,t.call(this)}function r(t,e){this.c=e,this.r=e,this.o=t,this.isStopped=!1}return Yt(e,t),e.prototype.subscribeCore=function(t){return this.source.subscribe(new r(t,this.skipCount))},r.prototype.onNext=function(t){this.isStopped||(this.r<=0?this.o.onNext(t):this.r--)},r.prototype.onError=function(t){this.isStopped||(this.isStopped=!0,this.o.onError(t))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(t){return!this.isStopped&&(this.isStopped=!0,this.o.onError(t),!0)},e}(De);Pe.skip=function(t){if(0>t)throw new dt;return new Tr(this,t)},Pe.skipWhile=function(t,e){var r=this,n=St(t,e,3);return new Or(function(t){var e=0,i=!1;return r.subscribe(function(o){if(!i)try{i=!n(o,e++,r)}catch(e){return void t.onError(e)}i&&t.onNext(o)},function(e){t.onError(e)},function(){t.onCompleted()})},r)},Pe.take=function(t,e){if(0>t)throw new dt;if(0===t)return Xe(e);var r=this;return new Or(function(e){var n=t;return r.subscribe(function(t){n-- >0&&(e.onNext(t),0>=n&&e.onCompleted())},function(t){e.onError(t)},function(){e.onCompleted()})},r)},Pe.takeWhile=function(t,e){var r=this,n=St(t,e,3);return new Or(function(t){var e=0,i=!0;return r.subscribe(function(o){if(i){try{i=n(o,e++,r)}catch(e){return void t.onError(e)}i?t.onNext(o):t.onCompleted()}},function(e){t.onError(e)},function(){t.onCompleted()})},r)};var Cr=function(t){function e(e,r,n){this.source=e,this.predicate=St(r,n,3),t.call(this)}function r(t,e){return function(r,n,i){return e.predicate(r,n,i)&&t.call(this,r,n,i)}}function n(t,e,r){this.o=t,this.predicate=e,this.source=r,this.i=0,this.isStopped=!1}return Yt(e,t),e.prototype.subscribeCore=function(t){return this.source.subscribe(new n(t,this.predicate,this))},e.prototype.internalFilter=function(t,n){return new e(this.source,r(t,this),n)},n.prototype.onNext=function(t){if(!this.isStopped){var e=x(this.predicate)(t,this.i++,this.source);return e===Jt?this.o.onError(e.e):void(e&&this.o.onNext(t))}},n.prototype.onError=function(t){this.isStopped||(this.isStopped=!0,this.o.onError(t))},n.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},n.prototype.dispose=function(){this.isStopped=!0},n.prototype.fail=function(t){return!this.isStopped&&(this.isStopped=!0,this.o.onError(t),!0)},e}(De);Pe.filter=Pe.where=function(t,e){return this instanceof Cr?this.internalFilter(t,e):new Cr(this,t,e)},Pe.transduce=function(t){function e(t){return{"@@transducer/init":function(){return t},"@@transducer/step":function(t,e){return t.onNext(e)},"@@transducer/result":function(t){return t.onCompleted()}}}var r=this;return new Or(function(n){var i=t(e(n));return r.subscribe(function(t){try{i["@@transducer/step"](n,t)}catch(t){n.onError(t)}},function(t){n.onError(t)},function(){i["@@transducer/result"](n)})},r)};var Or=tt.AnonymousObservable=function(t){function e(t){return t&&ct(t.dispose)?t:ct(t)?ie(t):oe}function r(t,r){var n=r[0],i=r[1],o=x(i)(n);return o!==Jt||n.fail(Jt.e)?void n.setDisposable(e(o)):w(Jt.e)}function n(e,n){function i(t){var n=new Pr(t),i=[n,e];return ye.scheduleRequired()?ye.scheduleWithState(i,r):r(null,i),n}this.source=n,t.call(this,i)}return Yt(n,t),n}(Ie),Pr=function(t){function e(e){t.call(this),this.observer=e,this.m=new ce}Yt(e,t);var r=e.prototype;return r.next=function(t){var e=x(this.observer.onNext).call(this.observer,t);e===Jt&&(this.dispose(),w(e.e))},r.error=function(t){var e=x(this.observer.onError).call(this.observer,t);this.dispose(),e===Jt&&w(e.e)},r.completed=function(){var t=x(this.observer.onCompleted).call(this.observer);this.dispose(),t===Jt&&w(t.e)},r.setDisposable=function(t){this.m.setDisposable(t)},r.getDisposable=function(){return this.m.getDisposable()},r.dispose=function(){t.prototype.dispose.call(this),this.m.dispose()},e}(Ae),Ar=function(t,e){this.subject=t,this.observer=e};Ar.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var t=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(t,1),this.observer=null}};var jr=tt.Subject=function(t){function e(t){return se(this),this.isStopped?this.hasError?(t.onError(this.error),oe):(t.onCompleted(),oe):(this.observers.push(t),new Ar(this,t))}function r(){t.call(this,e),this.isDisposed=!1,this.isStopped=!1,this.observers=[],this.hasError=!1}return Yt(r,t),Kt(r.prototype,Ce.prototype,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(se(this),!this.isStopped){this.isStopped=!0;for(var t=0,e=a(this.observers),r=e.length;r>t;t++)e[t].onCompleted();this.observers.length=0}},onError:function(t){if(se(this),!this.isStopped){this.isStopped=!0,this.error=t,this.hasError=!0;for(var e=0,r=a(this.observers),n=r.length;n>e;e++)r[e].onError(t);this.observers.length=0}},onNext:function(t){if(se(this),!this.isStopped)for(var e=0,r=a(this.observers),n=r.length;n>e;e++)r[e].onNext(t)},dispose:function(){this.isDisposed=!0,this.observers=null}}),r.create=function(t,e){return new Rr(t,e)},r}(Ie),Rr=(tt.AsyncSubject=function(t){function e(t){return se(this),this.isStopped?(this.hasError?t.onError(this.error):this.hasValue?(t.onNext(this.value),t.onCompleted()):t.onCompleted(),oe):(this.observers.push(t),new Ar(this,t))}function r(){t.call(this,e),this.isDisposed=!1,this.isStopped=!1,this.hasValue=!1,this.observers=[],this.hasError=!1}return Yt(r,t),Kt(r.prototype,Ce,{hasObservers:function(){return se(this),this.observers.length>0},onCompleted:function(){var t,e;if(se(this),!this.isStopped){this.isStopped=!0;var r=a(this.observers),e=r.length;if(this.hasValue)for(t=0;e>t;t++){var n=r[t];n.onNext(this.value),n.onCompleted()}else for(t=0;e>t;t++)r[t].onCompleted();this.observers.length=0}},onError:function(t){if(se(this),!this.isStopped){this.isStopped=!0,this.hasError=!0,this.error=t;for(var e=0,r=a(this.observers),n=r.length;n>e;e++)r[e].onError(t);this.observers.length=0}},onNext:function(t){se(this),this.isStopped||(this.value=t,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),r}(Ie),tt.AnonymousSubject=function(t){function e(t){return this.observable.subscribe(t)}function r(r,n){this.observer=r,this.observable=n,t.call(this,e)}return Yt(r,t),Kt(r.prototype,Ce.prototype,{onCompleted:function(){this.observer.onCompleted()},onError:function(t){this.observer.onError(t)},onNext:function(t){this.observer.onNext(t)}}),r}(Ie));"function"==typeof t&&"object"==typeof t.amd&&t.amd?(Y.Rx=tt,t(function(){return tt})):K&&Z?J?(Z.exports=tt).Rx=tt:K.Rx=tt:Y.Rx=tt;var Lr=p()}).call(this)}).call(this,e(150),void 0!==i?i:"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:{})},{}],14:[function(t,e,r){(function(r){var n=void 0!==r?r:"undefined"!=typeof window?window:{},i=t("min-document");if("undefined"!=typeof document)e.exports=document;else{var o=n["__GLOBAL_DOCUMENT_CACHE@4"];o||(o=n["__GLOBAL_DOCUMENT_CACHE@4"]=i),e.exports=o}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"min-document":2}],15:[function(t,e,r){r.read=function(t,e,r,n,i){var o,a,s=8*i-n-1,c=(1<>1,h=-7,l=r?i-1:0,p=r?-1:1,f=t[e+l];for(l+=p,o=f&(1<<-h)-1,f>>=-h,h+=s;h>0;o=256*o+t[e+l],l+=p,h-=8);for(a=o&(1<<-h)-1,o>>=-h,h+=n;h>0;a=256*a+t[e+l],l+=p,h-=8);if(0===o)o=1-u;else{if(o===c)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,n),o-=u}return(f?-1:1)*a*Math.pow(2,o-n)},r.write=function(t,e,r,n,i,o){var a,s,c,u=8*o-i-1,h=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=h):(a=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-a))<1&&(a--,c*=2),e+=a+l>=1?p/c:p*Math.pow(2,1-l),e*c>=2&&(a++,c/=2),a+l>=h?(s=0,a=h):a+l>=1?(s=(e*c-1)*Math.pow(2,i),a+=l):(s=e*Math.pow(2,l-1)*Math.pow(2,i),a=0));i>=8;t[r+f]=255&s,f+=d,s/=256,i-=8);for(a=a<0;t[r+f]=255&a,f+=d,a/=256,u-=8);t[r+f-d]|=128*m}},{}],16:[function(t,e,r){(function(t){"use strict";function r(t,e){return t in n?n[t]:(n[t]=e,e)}var n="undefined"!=typeof window?window:void 0!==t?t:{};e.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],17:[function(t,e,r){"use strict";function n(t,e,r){var n="__INDIVIDUAL_ONE_VERSION_"+t,o=n+"_ENFORCE_SINGLETON",a=i(o,e);if(a!==e)throw new Error("Can only have one copy of "+t+".\nYou already have version "+a+" installed.\nThis means you cannot install version "+e);return i(n,r)}var i=t("./index.js");e.exports=n},{"./index.js":16}],18:[function(t,e,r){"use strict";e.exports=function(t){return"object"==typeof t&&null!==t}},{}],19:[function(t,e,r){var n={}.toString;e.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},{}],20:[function(t,e,r){"use strict";var n={};n.base32="0123456789bcdefghjkmnpqrstuvwxyz",n.encode=function(t,e,r){if(void 0===r){for(var i=1;i<=12;i++){var o=n.encode(t,e,i),a=n.decode(o);if(a.lat==t&&a.lon==e)return o}r=12}if(t=Number(t),e=Number(e),r=Number(r),isNaN(t)||isNaN(e)||isNaN(r))throw new Error("Invalid geohash");for(var s=0,c=0,u=!0,h="",l=-90,p=90,f=-180,d=180;h.length=m?(s=2*s+1,f=m):(s*=2,d=m)}else{var v=(l+p)/2;t>=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(t){var e=n.bounds(t),r=e.sw.lat,i=e.sw.lon,o=e.ne.lat,a=e.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(t){if(0===t.length)throw new Error("Invalid geohash");t=t.toLowerCase();for(var e=!0,r=-90,i=90,o=-180,a=180,s=0;s=0;h--){var l=u>>h&1;if(e){var p=(o+a)/2;1==l?o=p:a=p}else{var f=(r+i)/2;1==l?r=f:i=f}e=!e}}return{sw:{lat:r,lon:o},ne:{lat:i,lon:a}}},n.adjacent=function(t,e){if(t=t.toLowerCase(),e=e.toLowerCase(),0===t.length)throw new Error("Invalid geohash");if("nsew".indexOf(e)==-1)throw new Error("Invalid direction");var r={n:["p0r21436x8zb9dcf5h7kjnmqesgutwvy","bc01fg45238967deuvhjyznpkmstqrwx"],s:["14365h7k9dcfesgujnmqp0r2twvyx8zb","238967debc01fg45kmstqrwxuvhjyznp"],e:["bc01fg45238967deuvhjyznpkmstqrwx","p0r21436x8zb9dcf5h7kjnmqesgutwvy"],w:["238967debc01fg45kmstqrwxuvhjyznp","14365h7k9dcfesgujnmqp0r2twvyx8zb"]},i={n:["prxz","bcfguvyz"],s:["028b","0145hjnp"],e:["bcfguvyz","prxz"],w:["0145hjnp","028b"]},o=t.slice(-1),a=t.slice(0,-1),s=t.length%2;return i[e][s].indexOf(o)!=-1&&""!==a&&(a=n.adjacent(a,e)),a+n.base32.charAt(r[e][s].indexOf(o))},n.neighbours=function(t){return{n:n.adjacent(t,"n"),ne:n.adjacent(n.adjacent(t,"n"),"e"),e:n.adjacent(t,"e"),se:n.adjacent(n.adjacent(t,"s"),"e"),s:n.adjacent(t,"s"),sw:n.adjacent(n.adjacent(t,"s"),"w"),w:n.adjacent(t,"w"),nw:n.adjacent(n.adjacent(t,"n"),"w")}},void 0!==e&&e.exports&&(e.exports=n)},{}],21:[function(t,e,r){(function(t){function e(t,e){for(var r=0,n=t.length-1;n>=0;n--){var i=t[n];"."===i?t.splice(n,1):".."===i?(t.splice(n,1),r++):r&&(t.splice(n,1),r--)}if(e)for(;r--;r)t.unshift("..");return t}function n(t,e){if(t.filter)return t.filter(e);for(var r=[],n=0;n=-1&&!i;o--){var a=o>=0?arguments[o]:t.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=e(n(r.split("/"),function(t){return!!t}),!i).join("/"),(i?"/":"")+r||"."},r.normalize=function(t){var i=r.isAbsolute(t),o="/"===a(t,-1);return t=e(n(t.split("/"),function(t){return!!t}),!i).join("/"),t||i||(t="."),t&&o&&(t+="/"),(i?"/":"")+t},r.isAbsolute=function(t){return"/"===t.charAt(0)},r.join=function(){var t=Array.prototype.slice.call(arguments,0);return r.normalize(n(t,function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))},r.relative=function(t,e){function n(t){for(var e=0;e=0&&""===t[r];r--);return e>r?[]:t.slice(e,r-e+1)}t=r.resolve(t).substr(1),e=r.resolve(e).substr(1);for(var i=n(t.split("/")),o=n(e.split("/")),a=Math.min(i.length,o.length),s=a,c=0;c>4,i<128)return a(t,n,e);if(i=o[r.pos++],n|=(127&i)<<3,i<128)return a(t,n,e);if(i=o[r.pos++],n|=(127&i)<<10,i<128)return a(t,n,e);if(i=o[r.pos++],n|=(127&i)<<17,i<128)return a(t,n,e);if(i=o[r.pos++],n|=(127&i)<<24,i<128)return a(t,n,e);if(i=o[r.pos++],n|=(1&i)<<31,i<128)return a(t,n,e);throw new Error("Expected varint not more than 10 bytes")}function o(t){return t.type===n.Bytes?t.readVarint()+t.pos:t.pos+1}function a(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function s(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(r=~(-t%4294967296),n=~(-t/4294967296),4294967295^r?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),c(r,n,e),u(n,e)}function c(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos]=127&t}function u(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))))}function h(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function l(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function w(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function S(t,e,r){for(var n="",i=e;i239?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=t[i+1]))&&(a=(31&o)<<6|63&c)<=127&&(a=null):3===s?(c=t[i+1],u=t[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=t[i+1],u=t[i+2],h=t[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}function M(t,e,r){for(var n,i,o=0;o55295&&n<57344){if(!i){n>56319||o+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128)}return r}e.exports=n;var E=t("ieee754");n.Varint=0,n.Fixed64=1,n.Bytes=2,n.Fixed32=5;n.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos>3,o=this.pos;this.type=7&n,t(i,e,this),this.pos===o&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=_(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=w(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=_(this.buf,this.pos)+4294967296*_(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=_(this.buf,this.pos)+4294967296*w(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=E.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=E.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return r=n[this.pos++],e=127&r,r<128?e:(r=n[this.pos++],e|=(127&r)<<7,r<128?e:(r=n[this.pos++],e|=(127&r)<<14,r<128?e:(r=n[this.pos++],e|=(127&r)<<21,r<128?e:(r=n[this.pos],e|=(15&r)<<28,i(e,t,this)))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=S(this.buf,this.pos,t);return this.pos=t,e},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){var r=o(this);for(t=t||[];this.pos127;);else if(e===n.Bytes)this.pos=this.readVarint()+this.pos;else if(e===n.Fixed32)this.pos+=4;else{if(e!==n.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0)return void s(t,this);this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127)))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=M(this.buf,t,this.pos);var r=this.pos-e;r>=128&&h(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),E.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),E.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&h(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,n.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){this.writeMessage(t,l,e)},writePackedSVarint:function(t,e){this.writeMessage(t,p,e)},writePackedBoolean:function(t,e){this.writeMessage(t,m,e)},writePackedFloat:function(t,e){this.writeMessage(t,f,e)},writePackedDouble:function(t,e){this.writeMessage(t,d,e)},writePackedFixed32:function(t,e){this.writeMessage(t,v,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,g,e)},writePackedFixed64:function(t,e){this.writeMessage(t,y,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,b,e)},writeBytesField:function(t,e){this.writeTag(t,n.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,n.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,n.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,n.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},{ieee754:15}],23:[function(t,e,r){"use strict";function n(t,e,r,a,s){for(r=r||0,a=a||t.length-1,s=s||o;a>r;){if(a-r>600){var c=a-r+1,u=e-r+1,h=Math.log(c),l=.5*Math.exp(2*h/3),p=.5*Math.sqrt(h*l*(c-l)/c)*(u-c/2<0?-1:1);n(t,e,Math.max(r,Math.floor(e-u*l/c+p)),Math.min(a,Math.floor(e+(c-u)*l/c+p)),s)}var f=t[e],d=r,m=a;for(i(t,r,e),s(t[a],f)>0&&i(t,r,a);d0;)m--}0===s(t[r],f)?i(t,r,m):(m++,i(t,m,a)),m<=e&&(r=m+1),e<=m&&(a=m-1)}}function i(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function o(t,e){return te?1:0}e.exports=n},{}],24:[function(t,e,r){"use strict";function n(t,e){if(!(this instanceof n))return new n(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function i(t,e,r){if(!r)return e.indexOf(t);for(var n=0;n=t.minX&&e.maxY>=t.minY}function v(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-(1/0),maxY:-(1/0)}}function g(t,e,r,n,i){for(var o,a=[e,r];a.length;)r=a.pop(),e=a.pop(),r-e<=n||(o=e+Math.ceil((r-e)/n/2)*n,y(t,o,e,r,i),a.push(e,o,o,r))}e.exports=n;var y=t("quickselect");n.prototype={all:function(){return this._all(this.data,[])},search:function(t){var e=this.data,r=[],n=this.toBBox;if(!m(t,e))return r;for(var i,o,a,s,c=[];e;){for(i=0,o=e.children.length;i=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(i,o,e)},_split:function(t,e){var r=t[e],n=r.children.length,i=this._minEntries;this._chooseSplitAxis(r,i,n);var a=this._chooseSplitIndex(r,i,n),s=v(r.children.splice(a,r.children.length-a));s.height=r.height,s.leaf=r.leaf,o(r,this.toBBox),o(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(r,s)},_splitRoot:function(t,e){this.data=v([t,e]),this.data.height=t.height+1,this.data.leaf=!1,o(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,r){var n,i,o,s,c,u,l,p;for(u=l=1/0,n=e;n<=r-e;n++)i=a(t,0,n,this.toBBox),o=a(t,n,r,this.toBBox),s=f(i,o),c=h(i)+h(o),s=e;i--)o=t.children[i],s(h,t.leaf?c(o):o),p+=l(h);return p},_adjustParentBBoxes:function(t,e,r){for(var n=r;n>=0;n--)s(e[n],t)},_condense:function(t){for(var e,r=t.length-1;r>=0;r--)0===t[r].children.length?r>0?(e=t[r-1].children,e.splice(e.indexOf(t[r]),1)):this.clear():o(t[r],this.toBBox)},_initFormat:function(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}}},{quickselect:23}],25:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("./Subject"),o=t("./util/ObjectUnsubscribedError"),a=function(t){function e(e){t.call(this),this._value=e}return n(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),e.prototype._subscribe=function(e){var r=t.prototype._subscribe.call(this,e);return r&&!r.closed&&e.next(this._value),r},e.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new o.ObjectUnsubscribedError;return this._value},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(i.Subject);r.BehaviorSubject=a},{"./Subject":33,"./util/ObjectUnsubscribedError":158}],26:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("./Subscriber"),o=function(t){function e(e,r,n){t.call(this),this.parent=e,this.outerValue=r,this.outerIndex=n,this.index=0}return n(e,t),e.prototype._next=function(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)},e.prototype._error=function(t){this.parent.notifyError(t,this),this.unsubscribe()},e.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},e}(i.Subscriber);r.InnerSubscriber=o},{"./Subscriber":35}],27:[function(t,e,r){"use strict";var n=t("./Observable"),i=function(){function t(t,e,r){this.kind=t,this.value=e,this.error=r,this.hasValue="N"===t}return t.prototype.observe=function(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.error);case"C":return t.complete&&t.complete()}},t.prototype.do=function(t,e,r){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return r&&r()}},t.prototype.accept=function(t,e,r){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,r)},t.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")},t.createNext=function(e){return void 0!==e?new t("N",e):this.undefinedValueNotification},t.createError=function(e){return new t("E",void 0,e)},t.createComplete=function(){return this.completeNotification},t.completeNotification=new t("C"),t.undefinedValueNotification=new t("N",void 0),t}();r.Notification=i},{"./Observable":28}],28:[function(t,e,r){"use strict";var n=t("./util/root"),i=t("./util/toSubscriber"),o=t("./symbol/observable"),a=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var r=new t;return r.source=this,r.operator=e,r},t.prototype.subscribe=function(t,e,r){var n=this.operator,o=i.toSubscriber(t,e,r);if(n?n.call(o,this.source):o.add(this._trySubscribe(o)),o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.syncErrorThrown=!0,t.syncErrorValue=e,t.error(e)}},t.prototype.forEach=function(t,e){var r=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,n){var i=r.subscribe(function(e){if(i)try{t(e)}catch(t){n(t),i.unsubscribe()}else t(e)},n,e)})},t.prototype._subscribe=function(t){return this.source.subscribe(t)},t.prototype[o.$$observable]=function(){return this},t.create=function(e){return new t(e)},t}();r.Observable=a},{"./symbol/observable":153,"./util/root":170,"./util/toSubscriber":172}],29:[function(t,e,r){"use strict";r.empty={closed:!0,next:function(t){},error:function(t){throw t},complete:function(){}}},{}],30:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("./Subscriber"),o=function(t){function e(){t.apply(this,arguments)}return n(e,t),e.prototype.notifyNext=function(t,e,r,n,i){this.destination.next(e)},e.prototype.notifyError=function(t,e){this.destination.error(t)},e.prototype.notifyComplete=function(t){this.destination.complete()},e}(i.Subscriber);r.OuterSubscriber=o},{"./Subscriber":35}],31:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("./Subject"),o=t("./scheduler/queue"),a=t("./Subscription"),s=t("./operator/observeOn"),c=t("./util/ObjectUnsubscribedError"),u=t("./SubjectSubscription"),h=function(t){function e(e,r,n){void 0===e&&(e=Number.POSITIVE_INFINITY),void 0===r&&(r=Number.POSITIVE_INFINITY),t.call(this),this.scheduler=n,this._events=[],this._bufferSize=e<1?1:e,this._windowTime=r<1?1:r}return n(e,t),e.prototype.next=function(e){var r=this._getNow();this._events.push(new l(r,e)),this._trimBufferThenGetEvents(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){var e,r=this._trimBufferThenGetEvents(),n=this.scheduler;if(this.closed)throw new c.ObjectUnsubscribedError;this.hasError?e=a.Subscription.EMPTY:this.isStopped?e=a.Subscription.EMPTY:(this.observers.push(t),e=new u.SubjectSubscription(this,t)),n&&t.add(t=new s.ObserveOnSubscriber(t,n));for(var i=r.length,o=0;oe&&(o=Math.max(o,i-e)),o>0&&n.splice(0,o),n},e}(i.Subject);r.ReplaySubject=h;var l=function(){function t(t,e){this.time=t,this.value=e}return t}()},{"./Subject":33,"./SubjectSubscription":34,"./Subscription":36,"./operator/observeOn":128,"./scheduler/queue":151,"./util/ObjectUnsubscribedError":158}],32:[function(t,e,r){"use strict";var n=function(){function t(e,r){void 0===r&&(r=t.now),this.SchedulerAction=e,this.now=r}return t.prototype.schedule=function(t,e,r){return void 0===e&&(e=0),new this.SchedulerAction(this,t).schedule(r,e)},t.now=Date.now?Date.now:function(){return+new Date},t}();r.Scheduler=n},{}],33:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("./Observable"),o=t("./Subscriber"),a=t("./Subscription"),s=t("./util/ObjectUnsubscribedError"),c=t("./SubjectSubscription"),u=t("./symbol/rxSubscriber"),h=function(t){function e(e){t.call(this,e),this.destination=e}return n(e,t),e}(o.Subscriber);r.SubjectSubscriber=h;var l=function(t){function e(){t.call(this),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}return n(e,t),e.prototype[u.$$rxSubscriber]=function(){return new h(this)},e.prototype.lift=function(t){var e=new p(this,this);return e.operator=t,e},e.prototype.next=function(t){if(this.closed)throw new s.ObjectUnsubscribedError;if(!this.isStopped)for(var e=this.observers,r=e.length,n=e.slice(),i=0;i=n)return void i.complete();i.next(e[r]),t.index=r+1,this.schedule(t)}},e.prototype._subscribe=function(t){var r=this,n=r.arrayLike,i=r.scheduler,o=n.length;if(i)return i.schedule(e.dispatch,0,{arrayLike:n,index:0,length:o,subscriber:t});for(var a=0;a1?new e(t,n):1===i?new o.ScalarObservable(t[0],n):new a.EmptyObservable(n)},e.dispatch=function(t){var e=t.array,r=t.index,n=t.count,i=t.subscriber;if(r>=n)return void i.complete();i.next(e[r]),i.closed||(t.index=r+1,this.schedule(t))},e.prototype._subscribe=function(t){var r=this.array,n=r.length,i=this.scheduler;if(i)return i.schedule(e.dispatch,0,{array:r,index:0,count:n,subscriber:t});for(var o=0;o1)return void(this.connection=null);var r=this.connection,n=t._connection;this.connection=null,!n||r&&n!==r||n.unsubscribe()},e}(a.Subscriber)},{"../Observable":28,"../Subject":33,"../Subscriber":35,"../Subscription":36}],87:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Observable"),o=t("../util/subscribeToResult"),a=t("../OuterSubscriber"),s=function(t){function e(e){t.call(this),this.observableFactory=e}return n(e,t),e.create=function(t){return new e(t)},e.prototype._subscribe=function(t){return new c(t,this.observableFactory)},e}(i.Observable);r.DeferObservable=s;var c=function(t){function e(e,r){t.call(this,e),this.factory=r,this.tryDefer()}return n(e,t),e.prototype.tryDefer=function(){try{this._callFactory()}catch(t){this._error(t)}},e.prototype._callFactory=function(){var t=this.factory();t&&this.add(o.subscribeToResult(this,t))},e}(a.OuterSubscriber)},{"../Observable":28,"../OuterSubscriber":30,"../util/subscribeToResult":171}],88:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Observable"),o=function(t){function e(e){t.call(this),this.scheduler=e}return n(e,t),e.create=function(t){return new e(t)},e.dispatch=function(t){t.subscriber.complete()},e.prototype._subscribe=function(t){var r=this.scheduler;if(r)return r.schedule(e.dispatch,0,{subscriber:t});t.complete()},e}(i.Observable);r.EmptyObservable=o},{"../Observable":28}],89:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Observable"),o=function(t){function e(e,r){t.call(this),this.error=e,this.scheduler=r}return n(e,t),e.create=function(t,r){return new e(t,r)},e.dispatch=function(t){var e=t.error;t.subscriber.error(e)},e.prototype._subscribe=function(t){var r=this.error,n=this.scheduler;if(n)return n.schedule(e.dispatch,0,{error:r,subscriber:t});t.error(r)},e}(i.Observable);r.ErrorObservable=o},{"../Observable":28}],90:[function(t,e,r){"use strict";function n(t){return!!t&&"function"==typeof t.addListener&&"function"==typeof t.removeListener}function i(t){return!!t&&"function"==typeof t.on&&"function"==typeof t.off}function o(t){return!!t&&"[object NodeList]"===d.call(t)}function a(t){return!!t&&"[object HTMLCollection]"===d.call(t)}function s(t){return!!t&&"function"==typeof t.addEventListener&&"function"==typeof t.removeEventListener}var c=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},u=t("../Observable"),h=t("../util/tryCatch"),l=t("../util/isFunction"),p=t("../util/errorObject"),f=t("../Subscription"),d=Object.prototype.toString,m=function(t){function e(e,r,n,i){t.call(this),this.sourceObj=e,this.eventName=r,this.selector=n,this.options=i}return c(e,t),e.create=function(t,r,n,i){return l.isFunction(n)&&(i=n,n=void 0),new e(t,r,i,n)},e.setupSubscription=function(t,r,c,u,h){var l;if(o(t)||a(t))for(var p=0,d=t.length;pd?d:e):e}function o(t){return"number"==typeof t&&c.root.isFinite(t)}function a(t){var e=+t;return 0===e?e:isNaN(e)?e:e<0?-1:1}var s=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},c=t("../util/root"),u=t("../Observable"),h=t("../symbol/iterator"),l=function(t){function e(e,r){if(t.call(this),this.scheduler=r,null==e)throw new Error("iterator cannot be null.");this.iterator=n(e)}return s(e,t),e.create=function(t,r){return new e(t,r)},e.dispatch=function(t){var e=t.index,r=t.hasError,n=t.iterator,i=t.subscriber;if(r)return void i.error(t.error);var o=n.next();return o.done?void i.complete():(i.next(o.value),t.index=e+1,i.closed?void("function"==typeof n.return&&n.return()):void this.schedule(t))},e.prototype._subscribe=function(t){var r=this,n=r.iterator,i=r.scheduler;if(i)return i.schedule(e.dispatch,0,{index:0,iterator:n,subscriber:t});for(;;){var o=n.next();if(o.done){t.complete();break}if(t.next(o.value),t.closed){"function"==typeof n.return&&n.return();break}}},e}(u.Observable);r.IteratorObservable=l;var p=function(){function t(t,e,r){void 0===e&&(e=0),void 0===r&&(r=t.length),this.str=t,this.idx=e,this.len=r}return t.prototype[h.$$iterator]=function(){return this},t.prototype.next=function(){return this.idx0;){var n=r.shift();n.length>0&&e.next(n)}t.prototype._complete.call(this)},e}(o.Subscriber)},{"../Subscriber":35}],109:[function(t,e,r){"use strict";function n(t){return this.lift(new h(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscription"),a=t("../util/tryCatch"),s=t("../util/errorObject"),c=t("../OuterSubscriber"),u=t("../util/subscribeToResult");r.bufferWhen=n;var h=function(){function t(t){this.closingSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.closingSelector))},t}(),l=function(t){function e(e,r){t.call(this,e),this.closingSelector=r,this.subscribing=!1,this.openBuffer()}return i(e,t),e.prototype._next=function(t){this.buffer.push(t)},e.prototype._complete=function(){var e=this.buffer;e&&this.destination.next(e),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},e.prototype.notifyNext=function(t,e,r,n,i){this.openBuffer()},e.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},e.prototype.openBuffer=function(){var t=this.closingSubscription;t&&(this.remove(t),t.unsubscribe());var e=this.buffer;this.buffer&&this.destination.next(e),this.buffer=[];var r=a.tryCatch(this.closingSelector)();r===s.errorObject?this.error(s.errorObject.e):(t=new o.Subscription,this.closingSubscription=t,this.add(t),this.subscribing=!0,t.add(u.subscribeToResult(this,r)),this.subscribing=!1)},e}(c.OuterSubscriber)},{"../OuterSubscriber":30,"../Subscription":36,"../util/errorObject":161,"../util/subscribeToResult":171,"../util/tryCatch":173}],110:[function(t,e,r){"use strict";function n(t){var e=new s(t),r=this.lift(e);return e.caught=r}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../OuterSubscriber"),a=t("../util/subscribeToResult");r._catch=n;var s=function(){function t(t){this.selector=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.selector,this.caught))},t}(),c=function(t){function e(e,r,n){t.call(this,e),this.selector=r,this.caught=n}return i(e,t),e.prototype.error=function(e){if(!this.isStopped){var r=void 0;try{r=this.selector(e,this.caught)}catch(e){return void t.prototype.error.call(this,e)}this._unsubscribeAndRecycle(),this.add(a.subscribeToResult(this,r))}},e}(o.OuterSubscriber)},{"../OuterSubscriber":30,"../util/subscribeToResult":171}],111:[function(t,e,r){"use strict";function n(){for(var t=[],e=0;e0&&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(t,o)}else e.active=!1},e.prototype._schedule=function(t){this.active=!0,this.add(t.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))},e.prototype.scheduleNotification=function(t){if(this.errored!==!0){var e=this.scheduler,r=new l(e.now()+this.delay,t);this.queue.push(r),this.active===!1&&this._schedule(e)}},e.prototype._next=function(t){this.scheduleNotification(c.Notification.createNext(t))},e.prototype._error=function(t){this.errored=!0,this.queue=[],this.destination.error(t)},e.prototype._complete=function(){this.scheduleNotification(c.Notification.createComplete())},e}(s.Subscriber),l=function(){function t(t,e){this.time=t,this.notification=e}return t}()},{"../Notification":27,"../Subscriber":35,"../scheduler/async":150,"../util/isDate":164}],115:[function(t,e,r){"use strict";function n(t,e){return this.lift(new c(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../OuterSubscriber"),a=t("../util/subscribeToResult"),s=t("../util/Set");r.distinct=n;var c=function(){function t(t,e){this.keySelector=t,this.flushes=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.keySelector,this.flushes))},t}(),u=function(t){function e(e,r,n){t.call(this,e),this.keySelector=r,this.values=new s.Set,n&&this.add(a.subscribeToResult(this,n))}return i(e,t),e.prototype.notifyNext=function(t,e,r,n,i){this.values.clear()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype._next=function(t){this.keySelector?this._useKeySelector(t):this._finalizeNext(t,t)},e.prototype._useKeySelector=function(t){var e,r=this.destination;try{e=this.keySelector(t)}catch(t){return void r.error(t)}this._finalizeNext(e,t)},e.prototype._finalizeNext=function(t,e){var r=this.values;r.has(t)||(r.add(t),this.destination.next(e))},e}(o.OuterSubscriber);r.DistinctSubscriber=u},{"../OuterSubscriber":30,"../util/Set":159,"../util/subscribeToResult":171}],116:[function(t,e,r){"use strict";function n(t,e){return this.lift(new c(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber"),a=t("../util/tryCatch"),s=t("../util/errorObject");r.distinctUntilChanged=n;var c=function(){function t(t,e){this.compare=t,this.keySelector=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.compare,this.keySelector))},t}(),u=function(t){function e(e,r,n){t.call(this,e),this.keySelector=n,this.hasKey=!1,"function"==typeof r&&(this.compare=r)}return i(e,t),e.prototype.compare=function(t,e){return t===e},e.prototype._next=function(t){var e=this.keySelector,r=t;if(e&&(r=a.tryCatch(this.keySelector)(t))===s.errorObject)return this.destination.error(s.errorObject.e);var n=!1;if(this.hasKey){if((n=a.tryCatch(this.compare)(this.key,r))===s.errorObject)return this.destination.error(s.errorObject.e)}else this.hasKey=!0;Boolean(n)===!1&&(this.key=r,this.destination.next(t))},e}(o.Subscriber)},{"../Subscriber":35,"../util/errorObject":161,"../util/tryCatch":173}],117:[function(t,e,r){"use strict";function n(t,e,r){return this.lift(new a(t,e,r))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber");r._do=n;var a=function(){function t(t,e,r){this.nextOrObserver=t,this.error=e,this.complete=r}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.nextOrObserver,this.error,this.complete))},t}(),s=function(t){function e(e,r,n,i){t.call(this,e);var a=new o.Subscriber(r,n,i);a.syncErrorThrowable=!0,this.add(a),this.safeSubscriber=a}return i(e,t),e.prototype._next=function(t){var e=this.safeSubscriber;e.next(t),e.syncErrorThrown?this.destination.error(e.syncErrorValue):this.destination.next(t)},e.prototype._error=function(t){var e=this.safeSubscriber;e.error(t),e.syncErrorThrown?this.destination.error(e.syncErrorValue):this.destination.error(t)},e.prototype._complete=function(){var t=this.safeSubscriber;t.complete(),t.syncErrorThrown?this.destination.error(t.syncErrorValue):this.destination.complete()},e}(o.Subscriber)},{"../Subscriber":35}],118:[function(t,e,r){"use strict";function n(t,e,r){return void 0===e&&(e=Number.POSITIVE_INFINITY),void 0===r&&(r=void 0),e=(e||0)<1?Number.POSITIVE_INFINITY:e,this.lift(new u(t,e,r))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../util/tryCatch"),a=t("../util/errorObject"),s=t("../OuterSubscriber"),c=t("../util/subscribeToResult");r.expand=n;var u=function(){function t(t,e,r){this.project=t,this.concurrent=e,this.scheduler=r}return t.prototype.call=function(t,e){return e.subscribe(new h(t,this.project,this.concurrent,this.scheduler))},t}();r.ExpandOperator=u;var h=function(t){function e(e,r,n,i){t.call(this,e),this.project=r,this.concurrent=n,this.scheduler=i,this.index=0,this.active=0,this.hasCompleted=!1,n0&&this._next(e.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},e}(s.OuterSubscriber);r.ExpandSubscriber=h},{"../OuterSubscriber":30,"../util/errorObject":161,"../util/subscribeToResult":171,"../util/tryCatch":173}],119:[function(t,e,r){"use strict";function n(t,e){return this.lift(new a(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber");r.filter=n;var a=function(){function t(t,e){this.predicate=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.predicate,this.thisArg))},t}(),s=function(t){function e(e,r,n){t.call(this,e),this.predicate=r,this.thisArg=n,this.count=0,this.predicate=r}return i(e,t),e.prototype._next=function(t){var e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(t){return void this.destination.error(t)}e&&this.destination.next(t)},e}(o.Subscriber)},{"../Subscriber":35}],120:[function(t,e,r){"use strict";function n(t){return this.lift(new s(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber"),a=t("../Subscription");r._finally=n;var s=function(){function t(t){this.callback=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.callback))},t}(),c=function(t){function e(e,r){t.call(this,e),this.add(new a.Subscription(r))}return i(e,t),e}(o.Subscriber)},{"../Subscriber":35,"../Subscription":36}],121:[function(t,e,r){"use strict";function n(t,e,r){return this.lift(new s(t,e,r,this))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber"),a=t("../util/EmptyError");r.first=n;var s=function(){function t(t,e,r,n){this.predicate=t,this.resultSelector=e,this.defaultValue=r,this.source=n}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.predicate,this.resultSelector,this.defaultValue,this.source))},t}(),c=function(t){function e(e,r,n,i,o){t.call(this,e),this.predicate=r,this.resultSelector=n,this.defaultValue=i,this.source=o,this.index=0,this.hasCompleted=!1,this._emitted=!1}return i(e,t),e.prototype._next=function(t){var e=this.index++;this.predicate?this._tryPredicate(t,e):this._emit(t,e)},e.prototype._tryPredicate=function(t,e){var r;try{r=this.predicate(t,e,this.source)}catch(t){return void this.destination.error(t)}r&&this._emit(t,e)},e.prototype._emit=function(t,e){if(this.resultSelector)return void this._tryResultSelector(t,e);this._emitFinal(t)},e.prototype._tryResultSelector=function(t,e){var r;try{r=this.resultSelector(t,e)}catch(t){return void this.destination.error(t)}this._emitFinal(r)},e.prototype._emitFinal=function(t){var e=this.destination;this._emitted||(this._emitted=!0,e.next(t),e.complete(),this.hasCompleted=!0)},e.prototype._complete=function(){var t=this.destination;this.hasCompleted||void 0===this.defaultValue?this.hasCompleted||t.error(new a.EmptyError):(t.next(this.defaultValue),t.complete())},e}(o.Subscriber)},{"../Subscriber":35,"../util/EmptyError":157}],122:[function(t,e,r){"use strict";function n(t,e,r){return this.lift(new s(t,e,r,this))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber"),a=t("../util/EmptyError");r.last=n;var s=function(){function t(t,e,r,n){this.predicate=t,this.resultSelector=e,this.defaultValue=r,this.source=n}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.predicate,this.resultSelector,this.defaultValue,this.source))},t}(),c=function(t){function e(e,r,n,i,o){t.call(this,e),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 i(e,t),e.prototype._next=function(t){var e=this.index++;if(this.predicate)this._tryPredicate(t,e);else{if(this.resultSelector)return void this._tryResultSelector(t,e);this.lastValue=t,this.hasValue=!0}},e.prototype._tryPredicate=function(t,e){var r;try{r=this.predicate(t,e,this.source)}catch(t){return void this.destination.error(t)}if(r){if(this.resultSelector)return void this._tryResultSelector(t,e);this.lastValue=t,this.hasValue=!0}},e.prototype._tryResultSelector=function(t,e){var r;try{r=this.resultSelector(t,e)}catch(t){return void this.destination.error(t)}this.lastValue=r,this.hasValue=!0},e.prototype._complete=function(){var t=this.destination;this.hasValue?(t.next(this.lastValue),t.complete()):t.error(new a.EmptyError)},e}(o.Subscriber)},{"../Subscriber":35,"../util/EmptyError":157}],123:[function(t,e,r){"use strict";function n(t,e){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return this.lift(new a(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber");r.map=n;var a=function(){function t(t,e){this.project=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.project,this.thisArg))},t}();r.MapOperator=a;var s=function(t){function e(e,r,n){t.call(this,e),this.project=r,this.count=0,this.thisArg=n||this}return i(e,t),e.prototype._next=function(t){var e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(o.Subscriber)},{"../Subscriber":35}],124:[function(t,e,r){"use strict";function n(){for(var t=[],e=0;e1&&"number"==typeof t[t.length-1]&&(r=t.pop())):"number"==typeof i&&(r=t.pop()),null===n&&1===t.length&&t[0]instanceof o.Observable?t[0]:new a.ArrayObservable(t,n).lift(new s.MergeAllOperator(r))}var o=t("../Observable"),a=t("../observable/ArrayObservable"),s=t("./mergeAll"),c=t("../util/isScheduler");r.merge=n,r.mergeStatic=i},{"../Observable":28,"../observable/ArrayObservable":85,"../util/isScheduler":169,"./mergeAll":125}],125:[function(t,e,r){"use strict";function n(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),this.lift(new s(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../OuterSubscriber"),a=t("../util/subscribeToResult");r.mergeAll=n;var s=function(){function t(t){this.concurrent=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.concurrent))},t}();r.MergeAllOperator=s;var c=function(t){function e(e,r){t.call(this,e),this.concurrent=r,this.hasCompleted=!1,this.buffer=[],this.active=0}return i(e,t),e.prototype._next=function(t){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(o.OuterSubscriber);r.MergeAllSubscriber=c},{"../OuterSubscriber":30,"../util/subscribeToResult":171}],126:[function(t,e,r){"use strict";function n(t,e,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"number"==typeof e&&(r=e,e=null),this.lift(new s(t,e,r))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../util/subscribeToResult"),a=t("../OuterSubscriber");r.mergeMap=n;var s=function(){function t(t,e,r){void 0===r&&(r=Number.POSITIVE_INFINITY),this.project=t,this.resultSelector=e,this.concurrent=r}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.project,this.resultSelector,this.concurrent))},t}();r.MergeMapOperator=s;var c=function(t){function e(e,r,n,i){void 0===i&&(i=Number.POSITIVE_INFINITY),t.call(this,e),this.project=r,this.resultSelector=n,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return i(e,t),e.prototype._next=function(t){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(a.OuterSubscriber);r.MergeMapSubscriber=c},{"../OuterSubscriber":30,"../util/subscribeToResult":171}],127:[function(t,e,r){"use strict";function n(t,e){var r;if(r="function"==typeof t?t:function(){return t},"function"==typeof e)return this.lift(new o(r,e));var n=Object.create(this,i.connectableObservableDescriptor);return n.source=this,n.subjectFactory=r,n}var i=t("../observable/ConnectableObservable");r.multicast=n;var o=function(){function t(t,e){this.subjectFactory=t,this.selector=e}return t.prototype.call=function(t,e){var r=this.selector,n=this.subjectFactory(),i=r(n).subscribe(t);return i.add(e.subscribe(n)),i},t}();r.MulticastOperator=o},{"../observable/ConnectableObservable":86}],128:[function(t,e,r){"use strict";function n(t,e){return void 0===e&&(e=0),this.lift(new s(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber"),a=t("../Notification");r.observeOn=n;var s=function(){function t(t,e){void 0===e&&(e=0),this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.scheduler,this.delay))},t}();r.ObserveOnOperator=s;var c=function(t){function e(e,r,n){void 0===n&&(n=0),t.call(this,e),this.scheduler=r,this.delay=n}return i(e,t),e.dispatch=function(t){var e=t.notification,r=t.destination;e.observe(r),this.unsubscribe()},e.prototype.scheduleMessage=function(t){this.add(this.scheduler.schedule(e.dispatch,this.delay,new u(t,this.destination)))},e.prototype._next=function(t){this.scheduleMessage(a.Notification.createNext(t))},e.prototype._error=function(t){this.scheduleMessage(a.Notification.createError(t))},e.prototype._complete=function(){this.scheduleMessage(a.Notification.createComplete())},e}(o.Subscriber);r.ObserveOnSubscriber=c;var u=function(){function t(t,e){this.notification=t,this.destination=e}return t}();r.ObserveOnMessage=u},{"../Notification":27,"../Subscriber":35}],129:[function(t,e,r){"use strict";function n(){return this.lift(new a)}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber");r.pairwise=n;var a=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new s(t))},t}(),s=function(t){function e(e){t.call(this,e),this.hasPrev=!1}return i(e,t),e.prototype._next=function(t){this.hasPrev?this.destination.next([this.prev,t]):this.hasPrev=!0,this.prev=t},e}(o.Subscriber)},{"../Subscriber":35}],130:[function(t,e,r){"use strict";function n(){for(var t=[],e=0;e=2&&(r=!0),this.lift(new a(t,e,r))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber");r.scan=n;var a=function(){function t(t,e,r){void 0===r&&(r=!1),this.accumulator=t,this.seed=e,this.hasSeed=r}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.accumulator,this.seed,this.hasSeed))},t}(),s=function(t){function e(e,r,n,i){t.call(this,e),this.accumulator=r,this._seed=n,this.hasSeed=i,this.index=0}return i(e,t),Object.defineProperty(e.prototype,"seed",{get:function(){return this._seed},set:function(t){this.hasSeed=!0,this._seed=t},enumerable:!0,configurable:!0}),e.prototype._next=function(t){if(this.hasSeed)return this._tryNext(t);this.seed=t,this.destination.next(t)},e.prototype._tryNext=function(t){var e,r=this.index++;try{e=this.accumulator(this.seed,t,r)}catch(t){this.destination.error(t)}this.seed=e,this.destination.next(e)},e}(o.Subscriber)},{"../Subscriber":35}],134:[function(t,e,r){"use strict";function n(){return new a.Subject}function i(){return o.multicast.call(this,n).refCount()}var o=t("./multicast"),a=t("../Subject");r.share=i},{"../Subject":33,"./multicast":127}],135:[function(t,e,r){"use strict";function n(t){return this.lift(new a(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber");r.skip=n;var a=function(){function t(t){this.total=t}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.total))},t}(),s=function(t){function e(e,r){t.call(this,e),this.total=r,this.count=0}return i(e,t),e.prototype._next=function(t){++this.count>this.total&&this.destination.next(t)},e}(o.Subscriber)},{"../Subscriber":35}],136:[function(t,e,r){"use strict";function n(t){return this.lift(new s(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../OuterSubscriber"),a=t("../util/subscribeToResult");r.skipUntil=n;var s=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.notifier))},t}(),c=function(t){function e(e,r){t.call(this,e),this.hasValue=!1,this.isInnerStopped=!1,this.add(a.subscribeToResult(this,r))}return i(e,t),e.prototype._next=function(e){this.hasValue&&t.prototype._next.call(this,e)},e.prototype._complete=function(){this.isInnerStopped?t.prototype._complete.call(this):this.unsubscribe()},e.prototype.notifyNext=function(t,e,r,n,i){this.hasValue=!0},e.prototype.notifyComplete=function(){this.isInnerStopped=!0,this.isStopped&&t.prototype._complete.call(this)},e}(o.OuterSubscriber)},{"../OuterSubscriber":30,"../util/subscribeToResult":171}],137:[function(t,e,r){"use strict";function n(t){return this.lift(new a(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber");r.skipWhile=n;var a=function(){function t(t){this.predicate=t}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.predicate))},t}(),s=function(t){function e(e,r){t.call(this,e),this.predicate=r,this.skipping=!0,this.index=0}return i(e,t),e.prototype._next=function(t){var e=this.destination;this.skipping&&this.tryCallPredicate(t),this.skipping||e.next(t)},e.prototype.tryCallPredicate=function(t){try{var e=this.predicate(t,this.index++);this.skipping=Boolean(e)}catch(t){this.destination.error(t)}},e}(o.Subscriber)},{"../Subscriber":35}],138:[function(t,e,r){"use strict";function n(){for(var t=[],e=0;e1?s.concatStatic(new i.ArrayObservable(t,r),this):s.concatStatic(new a.EmptyObservable(r),this)}var i=t("../observable/ArrayObservable"),o=t("../observable/ScalarObservable"),a=t("../observable/EmptyObservable"),s=t("./concat"),c=t("../util/isScheduler");r.startWith=n},{"../observable/ArrayObservable":85,"../observable/EmptyObservable":88,"../observable/ScalarObservable":94,"../util/isScheduler":169,"./concat":112}],139:[function(t,e,r){"use strict";function n(t,e){return this.lift(new s(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../OuterSubscriber"),a=t("../util/subscribeToResult");r.switchMap=n;var s=function(){function t(t,e){this.project=t,this.resultSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.project,this.resultSelector))},t}(),c=function(t){function e(e,r,n){t.call(this,e),this.project=r,this.resultSelector=n,this.index=0}return i(e,t),e.prototype._next=function(t){var e,r=this.index++;try{e=this.project(t,r)}catch(t){return void this.destination.error(t)}this._innerSub(e,t,r)},e.prototype._innerSub=function(t,e,r){var n=this.innerSubscription;n&&n.unsubscribe(),this.add(this.innerSubscription=a.subscribeToResult(this,t,e,r))},e.prototype._complete=function(){var e=this.innerSubscription;e&&!e.closed||t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.innerSubscription=null},e.prototype.notifyComplete=function(e){this.remove(e),this.innerSubscription=null,this.isStopped&&t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,r,n,i){this.resultSelector?this._tryNotifyNext(t,e,r,n):this.destination.next(e)},e.prototype._tryNotifyNext=function(t,e,r,n){var i;try{i=this.resultSelector(t,e,r,n)}catch(t){return void this.destination.error(t)}this.destination.next(i)},e}(o.OuterSubscriber)},{"../OuterSubscriber":30,"../util/subscribeToResult":171}],140:[function(t,e,r){"use strict";function n(t){return 0===t?new s.EmptyObservable:this.lift(new c(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subscriber"),a=t("../util/ArgumentOutOfRangeError"),s=t("../observable/EmptyObservable");r.take=n;var c=function(){function t(t){if(this.total=t,this.total<0)throw new a.ArgumentOutOfRangeError}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.total))},t}(),u=function(t){function e(e,r){t.call(this,e),this.total=r,this.count=0}return i(e,t),e.prototype._next=function(t){var e=this.total,r=++this.count;r<=e&&(this.destination.next(t),r===e&&(this.destination.complete(),this.unsubscribe()))},e}(o.Subscriber)},{"../Subscriber":35,"../observable/EmptyObservable":88,"../util/ArgumentOutOfRangeError":156}],141:[function(t,e,r){"use strict";function n(t){return this.lift(new s(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../OuterSubscriber"),a=t("../util/subscribeToResult");r.takeUntil=n;var s=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.notifier))},t}(),c=function(t){function e(e,r){t.call(this,e),this.notifier=r,this.add(a.subscribeToResult(this,r))}return i(e,t),e.prototype.notifyNext=function(t,e,r,n,i){this.complete()},e.prototype.notifyComplete=function(){},e}(o.OuterSubscriber)},{"../OuterSubscriber":30,"../util/subscribeToResult":171}],142:[function(t,e,r){"use strict";function n(t,e){return void 0===e&&(e=s.async),this.lift(new c(t,e))}function i(t){t.subscriber.clearThrottle()}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},a=t("../Subscriber"),s=t("../scheduler/async");r.throttleTime=n;var c=function(){function t(t,e){this.duration=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.duration,this.scheduler))},t}(),u=function(t){function e(e,r,n){t.call(this,e),this.duration=r,this.scheduler=n}return o(e,t),e.prototype._next=function(t){this.throttled||(this.add(this.throttled=this.scheduler.schedule(i,this.duration,{subscriber:this})),this.destination.next(t))},e.prototype.clearThrottle=function(){var t=this.throttled;t&&(t.unsubscribe(),this.remove(t),this.throttled=null)},e}(a.Subscriber)},{"../Subscriber":35,"../scheduler/async":150}],143:[function(t,e,r){"use strict";function n(){for(var t=[],e=0;e0){var a=o.indexOf(r);a!==-1&&o.splice(a,1)}},e.prototype.notifyComplete=function(){},e.prototype._next=function(t){if(0===this.toRespond.length){var e=[t].concat(this.values);this.project?this._tryProject(e):this.destination.next(e)}},e.prototype._tryProject=function(t){var e;try{e=this.project.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(o.OuterSubscriber)},{"../OuterSubscriber":30,"../util/subscribeToResult":171}],144:[function(t,e,r){"use strict";function n(){for(var t=[],e=0;ethis.index},t.prototype.hasCompleted=function(){return this.array.length===this.index},t}(),v=function(t){function e(e,r,n){t.call(this,e),this.parent=r,this.observable=n,this.stillUnsubscribed=!0,this.buffer=[],this.isComplete=!1}return o(e,t),e.prototype[l.$$iterator]=function(){return this},e.prototype.next=function(){var t=this.buffer;return 0===t.length&&this.isComplete?{value:null,done:!0}:{value:t.shift(),done:!1}},e.prototype.hasValue=function(){return this.buffer.length>0},e.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},e.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},e.prototype.notifyNext=function(t,e,r,n,i){this.buffer.push(e),this.parent.checkIterators()},e.prototype.subscribe=function(t,e){return h.subscribeToResult(this,this.observable,this,e)},e}(u.OuterSubscriber)},{"../OuterSubscriber":30,"../Subscriber":35,"../observable/ArrayObservable":85,"../symbol/iterator":152,"../util/isArray":162,"../util/subscribeToResult":171}],145:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Subscription"),o=function(t){function e(e,r){t.call(this)}return n(e,t),e.prototype.schedule=function(t,e){return void 0===e&&(e=0),this},e}(i.Subscription);r.Action=o},{"../Subscription":36}],146:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../util/root"),o=t("./Action"),a=function(t){function e(e,r){t.call(this,e,r),this.scheduler=e,this.work=r,this.pending=!1}return n(e,t),e.prototype.schedule=function(t,e){if(void 0===e&&(e=0),this.closed)return this;this.state=t,this.pending=!0;var r=this.id,n=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(n,r,e)),this.delay=e,this.id=this.id||this.requestAsyncId(n,this.id,e),this},e.prototype.requestAsyncId=function(t,e,r){return void 0===r&&(r=0),i.root.setInterval(t.flush.bind(t,this),r)},e.prototype.recycleAsyncId=function(t,e,r){return void 0===r&&(r=0),null!==r&&this.delay===r?e:i.root.clearInterval(e)&&void 0||void 0},e.prototype.execute=function(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var r=this._execute(t,e);if(r)return r;this.pending===!1&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(t,e){var r=!1,n=void 0;try{this.work(t)}catch(t){r=!0,n=!!t&&t||new Error(t)}if(r)return this.unsubscribe(),n},e.prototype._unsubscribe=function(){var t=this.id,e=this.scheduler,r=e.actions,n=r.indexOf(this);this.work=null,this.delay=null,this.state=null,this.pending=!1,this.scheduler=null,n!==-1&&r.splice(n,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null))},e}(o.Action);r.AsyncAction=a},{"../util/root":170,"./Action":145}],147:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Scheduler"),o=function(t){function e(){t.apply(this,arguments),this.actions=[],this.active=!1,this.scheduled=void 0}return n(e,t),e.prototype.flush=function(t){var e=this.actions;if(this.active)return void e.push(t);var r;this.active=!0;do{if(r=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,r){for(;t=e.shift();)t.unsubscribe();throw r}},e}(i.Scheduler);r.AsyncScheduler=o},{"../Scheduler":32}],148:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("./AsyncAction"),o=function(t){function e(e,r){t.call(this,e,r),this.scheduler=e,this.work=r}return n(e,t),e.prototype.schedule=function(e,r){return void 0===r&&(r=0),r>0?t.prototype.schedule.call(this,e,r):(this.delay=r,this.state=e,this.scheduler.flush(this),this)},e.prototype.execute=function(e,r){return r>0||this.closed?t.prototype.execute.call(this,e,r):this._execute(e,r)},e.prototype.requestAsyncId=function(e,r,n){return void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0?t.prototype.requestAsyncId.call(this,e,r,n):e.flush(this)},e}(i.AsyncAction);r.QueueAction=o},{"./AsyncAction":146}],149:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("./AsyncScheduler"),o=function(t){function e(){t.apply(this,arguments)}return n(e,t),e}(i.AsyncScheduler);r.QueueScheduler=o},{"./AsyncScheduler":147}],150:[function(t,e,r){"use strict";var n=t("./AsyncAction"),i=t("./AsyncScheduler");r.async=new i.AsyncScheduler(n.AsyncAction)},{"./AsyncAction":146,"./AsyncScheduler":147}],151:[function(t,e,r){"use strict";var n=t("./QueueAction"),i=t("./QueueScheduler");r.queue=new i.QueueScheduler(n.QueueAction)},{"./QueueAction":148,"./QueueScheduler":149}],152:[function(t,e,r){"use strict";function n(t){var e=t.Symbol;if("function"==typeof e)return e.iterator||(e.iterator=e("iterator polyfill")),e.iterator;var r=t.Set;if(r&&"function"==typeof(new r)["@@iterator"])return"@@iterator";var n=t.Map;if(n)for(var i=Object.getOwnPropertyNames(n.prototype),o=0;o=0}var i=t("../util/isArray");r.isNumeric=n},{"../util/isArray":162}],167:[function(t,e,r){"use strict";function n(t){return null!=t&&"object"==typeof t}r.isObject=n},{}],168:[function(t,e,r){"use strict";function n(t){return t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}r.isPromise=n},{}],169:[function(t,e,r){"use strict";function n(t){return t&&"function"==typeof t.schedule}r.isScheduler=n},{}],170:[function(t,e,r){(function(t){"use strict";if(r.root="object"==typeof window&&window.window===window&&window||"object"==typeof self&&self.self===self&&self||"object"==typeof t&&t.global===t&&t,!r.root)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:{})},{}],171:[function(t,e,r){"use strict";function n(t,e,r,n){var p=new h.InnerSubscriber(t,r,n);if(p.closed)return null;if(e instanceof c.Observable)return e._isScalar?(p.next(e.value),p.complete(),null):e.subscribe(p);if(o.isArrayLike(e)){for(var f=0,d=e.length;f=n||0 0 ) {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat fogFactor = 0.0;\nif ( fogType == 1 ) {\nfogFactor = smoothstep( fogNear, fogFar, depth );\n} else {\nconst float LOG2 = 1.442695;\nfogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n}\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}\n}"].join("\n")),C.compileShader(L),C.compileShader(N),C.attachShader(R,L),C.attachShader(R,N),C.linkProgram(R),E=R,x=C.getAttribLocation(E,"position"),w=C.getAttribLocation(E,"uv"),i=C.getUniformLocation(E,"uvOffset"),o=C.getUniformLocation(E,"uvScale"),a=C.getUniformLocation(E,"rotation"),u=C.getUniformLocation(E,"scale"),h=C.getUniformLocation(E,"color"),l=C.getUniformLocation(E,"map"),p=C.getUniformLocation(E,"opacity"),f=C.getUniformLocation(E,"modelViewMatrix"),d=C.getUniformLocation(E,"projectionMatrix"),m=C.getUniformLocation(E,"fogType"),v=C.getUniformLocation(E,"fogDensity"),g=C.getUniformLocation(E,"fogNear"),y=C.getUniformLocation(E,"fogFar"),b=C.getUniformLocation(E,"fogColor"),_=C.getUniformLocation(E,"alphaTest"),R=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),R.width=8,R.height=8,L=R.getContext("2d"),L.fillStyle="white",L.fillRect(0,0,8,8),T=new n(R),T.needsUpdate=!0}C.useProgram(E),O.initAttributes(),O.enableAttribute(x),O.enableAttribute(w),O.disableUnusedAttributes(),O.disable(C.CULL_FACE),O.enable(C.BLEND),C.bindBuffer(C.ARRAY_BUFFER,S),C.vertexAttribPointer(x,2,C.FLOAT,!1,16,0),C.vertexAttribPointer(w,2,C.FLOAT,!1,16,8),C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,M),C.uniformMatrix4fv(d,!1,c.projectionMatrix.elements),O.activeTexture(C.TEXTURE0),C.uniform1i(l,0),L=R=0,(N=s.fog)?(C.uniform3f(b,N.color.r,N.color.g,N.color.b),N.isFog?(C.uniform1f(g,N.near),C.uniform1f(y,N.far),C.uniform1i(m,1),L=R=1):N.isFogExp2&&(C.uniform1f(v,N.density),C.uniform1i(m,2),L=R=2)):(C.uniform1i(m,0),L=R=0);for(var N=0,I=e.length;N/g,function(t,e){var r=hi[e];if(void 0===r)throw Error("Can not resolve #include <"+e+">");return $t(r)})}function Gt(t){return t.replace(/for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,function(t,e,r,n){for(t="",e=parseInt(e);ee||t.height>e){var r=e/Math.max(t.width,t.height),n=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return n.width=Math.floor(t.width*r),n.height=Math.floor(t.height*r),n.getContext("2d").drawImage(t,0,0,t.width,t.height,0,0,n.width,n.height),console.warn("THREE.WebGLRenderer: image is too big ("+t.width+"x"+t.height+"). Resized to "+n.width+"x"+n.height,t),n}return t}function c(t){return ri.isPowerOfTwo(t.width)&&ri.isPowerOfTwo(t.height)}function u(e){return 1003===e||1004===e||1005===e?t.NEAREST:t.LINEAR}function h(e){e=e.target,e.removeEventListener("dispose",h);t:{var r=n.get(e);if(e.image&&r.__image__webglTextureCube)t.deleteTexture(r.__image__webglTextureCube);else{if(void 0===r.__webglInit)break t;t.deleteTexture(r.__webglTexture)}n.delete(e)}v.textures--}function l(e){e=e.target,e.removeEventListener("dispose",l);var r=n.get(e),i=n.get(e.texture);if(e){if(void 0!==i.__webglTexture&&t.deleteTexture(i.__webglTexture),e.depthTexture&&e.depthTexture.dispose(),e.isWebGLRenderTargetCube)for(i=0;6>i;i++)t.deleteFramebuffer(r.__webglFramebuffer[i]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[i]);else t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer);n.delete(e.texture),n.delete(e)}v.textures--}function p(e,a){var u=n.get(e);if(0m;m++)d[m]=l||p?p?e.image[m].image:e.image[m]:s(e.image[m],i.maxCubemapSize);var g=c(d[0]),y=o(e.format),b=o(e.type);for(f(t.TEXTURE_CUBE_MAP,e,g),m=0;6>m;m++)if(l)for(var _,x=d[m].mipmaps,w=0,S=x.length;wu;u++)i.__webglFramebuffer[u]=t.createFramebuffer()}else i.__webglFramebuffer=t.createFramebuffer();if(a){for(r.bindTexture(t.TEXTURE_CUBE_MAP,o.__webglTexture),f(t.TEXTURE_CUBE_MAP,e.texture,s),u=0;6>u;u++)d(i.__webglFramebuffer[u],e,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+u);e.texture.generateMipmaps&&s&&t.generateMipmap(t.TEXTURE_CUBE_MAP),r.bindTexture(t.TEXTURE_CUBE_MAP,null)}else r.bindTexture(t.TEXTURE_2D,o.__webglTexture),f(t.TEXTURE_2D,e.texture,s),d(i.__webglFramebuffer,e,t.COLOR_ATTACHMENT0,t.TEXTURE_2D),e.texture.generateMipmaps&&s&&t.generateMipmap(t.TEXTURE_2D),r.bindTexture(t.TEXTURE_2D,null);if(e.depthBuffer){if(i=n.get(e),o=!0===e.isWebGLRenderTargetCube,e.depthTexture){if(o)throw Error("target.depthTexture not supported in Cube render targets");if(e&&e.isWebGLRenderTargetCube)throw Error("Depth Texture with cube render targets is not supported!");if(t.bindFramebuffer(t.FRAMEBUFFER,i.__webglFramebuffer),!e.depthTexture||!e.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");if(n.get(e.depthTexture).__webglTexture&&e.depthTexture.image.width===e.width&&e.depthTexture.image.height===e.height||(e.depthTexture.image.width=e.width,e.depthTexture.image.height=e.height,e.depthTexture.needsUpdate=!0),p(e.depthTexture,0),i=n.get(e.depthTexture).__webglTexture,1026===e.depthTexture.format)t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,i,0);else{if(1027!==e.depthTexture.format)throw Error("Unknown depthTexture format");t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,i,0)}}else if(o)for(i.__webglDepthbuffer=[],o=0;6>o;o++)t.bindFramebuffer(t.FRAMEBUFFER,i.__webglFramebuffer[o]),i.__webglDepthbuffer[o]=t.createRenderbuffer(),m(i.__webglDepthbuffer[o],e);else t.bindFramebuffer(t.FRAMEBUFFER,i.__webglFramebuffer),i.__webglDepthbuffer=t.createRenderbuffer(),m(i.__webglDepthbuffer,e);t.bindFramebuffer(t.FRAMEBUFFER,null)}},this.updateRenderTargetMipmap=function(e){var i=e.texture;i.generateMipmaps&&c(e)&&1003!==i.minFilter&&1006!==i.minFilter&&(e=e&&e.isWebGLRenderTargetCube?t.TEXTURE_CUBE_MAP:t.TEXTURE_2D,i=n.get(i).__webglTexture,r.bindTexture(e,i),t.generateMipmap(e),r.bindTexture(e,null))}}function Yt(){var t={};return{get:function(e){e=e.uuid;var r=t[e];return void 0===r&&(r={},t[e]=r),r},delete:function(e){delete t[e.uuid]},clear:function(){t={}}}}function Kt(t,e,r){function n(e,r,n){var i=new Uint8Array(4),o=t.createTexture();for(t.bindTexture(e,o),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST),e=0;e=Lt.maxTextures&&console.warn("WebGLRenderer: trying to use "+t+" texture units while this GPU supports only "+Lt.maxTextures),Q+=1,t},this.setTexture2D=function(){var t=!1;return function(e,r){e&&e.isWebGLRenderTarget&&(t||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),t=!0),e=e.texture),Dt.setTexture2D(e,r)}}(),this.setTexture=function(){var t=!1;return function(e,r){t||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),t=!0),Dt.setTexture2D(e,r)}}(),this.setTextureCube=function(){var t=!1;return function(e,r){e&&e.isWebGLRenderTargetCube&&(t||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),t=!0),e=e.texture),e&&e.isCubeTexture||Array.isArray(e.image)&&6===e.image.length?Dt.setTextureCube(e,r):Dt.setTextureCubeDynamic(e,r)}}(),this.getCurrentRenderTarget=function(){return U},this.setRenderTarget=function(t){(U=t)&&void 0===It.get(t).__webglFramebuffer&&Dt.setupRenderTarget(t);var e,r=t&&t.isWebGLRenderTargetCube;t?(e=It.get(t),e=r?e.__webglFramebuffer[t.activeCubeFace]:e.__webglFramebuffer,Y.copy(t.scissor),K=t.scissorTest,J.copy(t.viewport)):(e=null,Y.copy(st).multiplyScalar(at),K=ct,J.copy(ht).multiplyScalar(at)),B!==e&&(Tt.bindFramebuffer(Tt.FRAMEBUFFER,e),B=e),Nt.scissor(Y),Nt.setScissorTest(K),Nt.viewport(J),r&&(r=It.get(t.texture),Tt.framebufferTexture2D(Tt.FRAMEBUFFER,Tt.COLOR_ATTACHMENT0,Tt.TEXTURE_CUBE_MAP_POSITIVE_X+t.activeCubeFace,r.__webglTexture,t.activeMipMapLevel))},this.readRenderTargetPixels=function(t,e,r,n,i,o){if(!1===(t&&t.isWebGLRenderTarget))console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");else{var a=It.get(t).__webglFramebuffer;if(a){var s=!1;a!==B&&(Tt.bindFramebuffer(Tt.FRAMEBUFFER,a),s=!0);try{var c=t.texture,u=c.format,h=c.type;1023!==u&&_(u)!==Tt.getParameter(Tt.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===h||_(h)===Tt.getParameter(Tt.IMPLEMENTATION_COLOR_READ_TYPE)||1015===h&&(Rt.get("OES_texture_float")||Rt.get("WEBGL_color_buffer_float"))||1016===h&&Rt.get("EXT_color_buffer_half_float")?Tt.checkFramebufferStatus(Tt.FRAMEBUFFER)===Tt.FRAMEBUFFER_COMPLETE?0<=e&&e<=t.width-n&&0<=r&&r<=t.height-i&&Tt.readPixels(e,r,n,i,_(u),_(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&&Tt.bindFramebuffer(Tt.FRAMEBUFFER,B)}}}}}function ee(t,e){this.name="",this.color=new $(t),this.density=void 0!==e?e:25e-5}function re(t,e,r){this.name="",this.color=new $(t),this.near=void 0!==e?e:1,this.far=void 0!==r?r:1e3}function ne(){ot.call(this),this.type="Scene",this.overrideMaterial=this.fog=this.background=null,this.autoUpdate=!0}function ie(t,e,r,n,i){ot.call(this),this.lensFlares=[],this.positionScreen=new c,this.customUpdateCallback=void 0,void 0!==t&&this.add(t,e,r,n,i)}function oe(t){q.call(this),this.type="SpriteMaterial",this.color=new $(16777215),this.map=null,this.rotation=0,this.lights=this.fog=!1,this.setValues(t)}function ae(t){ot.call(this),this.type="Sprite",this.material=void 0!==t?t:new oe}function se(){ot.call(this),this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function ce(t,e,r){if(this.useVertexTexture=void 0===r||r,this.identityMatrix=new u,t=t||[],this.bones=t.slice(0),this.useVertexTexture?(t=Math.sqrt(4*this.bones.length),t=ri.nextPowerOfTwo(Math.ceil(t)),this.boneTextureHeight=this.boneTextureWidth=t=Math.max(t,4),this.boneMatrices=new Float32Array(this.boneTextureWidth*this.boneTextureHeight*4),this.boneTexture=new G(this.boneMatrices,this.boneTextureWidth,this.boneTextureHeight,1023,1015)):this.boneMatrices=new Float32Array(16*this.bones.length),void 0===e)this.calculateInverses();else if(this.bones.length===e.length)this.boneInverses=e.slice(0);else for(console.warn("THREE.Skeleton bonInverses is the wrong length."),this.boneInverses=[],e=0,t=this.bones.length;e=t.HAVE_CURRENT_DATA&&(l.needsUpdate=!0)}n.call(this,t,e,r,i,o,a,s,c,u),this.generateMipmaps=!1;var l=this;h()}function ye(t,e,r,i,o,a,s,c,u,h,l,p){n.call(this,null,a,s,c,u,h,i,o,l,p),this.image={width:e,height:r},this.mipmaps=t,this.generateMipmaps=this.flipY=!1}function be(t,e,r,i,o,a,s,c,u){n.call(this,t,e,r,i,o,a,s,c,u),this.needsUpdate=!0}function _e(t,e,r,i,o,a,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),n.call(this,null,i,o,a,s,c,h,r,u),this.image={width:t,height:e},this.magFilter=void 0!==s?s:1003,this.minFilter=void 0!==c?c:1003,this.generateMipmaps=this.flipY=!1}function xe(t){function e(t,e){return t-e}wt.call(this);var r=[0,0],n={},i=["a","b","c"];if(t&&t.isGeometry){var o=t.vertices,a=t.faces,s=0,c=new Uint32Array(6*a.length);t=0;for(var u=a.length;tl;l++){r[0]=h[i[l]],r[1]=h[i[(l+1)%3]],r.sort(e);var p=r.toString();void 0===n[p]&&(c[2*s]=r[0],c[2*s+1]=r[1],n[p]=!0,s++)}for(r=new Float32Array(6*s),t=0,u=s;tl;l++)n=o[c[2*t+l]],s=6*t+3*l,r[s+0]=n.x,r[s+1]=n.y,r[s+2]=n.z;this.addAttribute("position",new ht(r,3))}else if(t&&t.isBufferGeometry){if(null!==t.index){for(u=t.index.array,o=t.attributes.position,i=t.groups,s=0,0===i.length&&t.addGroup(0,u.length),c=new Uint32Array(2*u.length),a=0,h=i.length;al;l++)r[0]=u[t+l],r[1]=u[t+(l+1)%3],r.sort(e),p=r.toString(),void 0===n[p]&&(c[2*s]=r[0],c[2*s+1]=r[1],n[p]=!0,s++)}for(r=new Float32Array(6*s),t=0,u=s;tl;l++)s=6*t+3*l,n=c[2*t+l],r[s+0]=o.getX(n),r[s+1]=o.getY(n),r[s+2]=o.getZ(n)}else for(o=t.attributes.position.array,s=o.length/3,c=s/3,r=new Float32Array(6*s),t=0,u=c;tl;l++)s=18*t+6*l,c=9*t+3*l,r[s+0]=o[c],r[s+1]=o[c+1],r[s+2]=o[c+2],n=9*t+(l+1)%3*3,r[s+3]=o[n],r[s+4]=o[n+1],r[s+5]=o[n+2];this.addAttribute("position",new ht(r,3))}}function we(t,e,r){wt.call(this),this.type="ParametricBufferGeometry",this.parameters={func:t,slices:e,stacks:r};var n,i,o,a,s,c=[],u=[],h=e+1;for(n=0;n<=r;n++)for(s=n/r,i=0;i<=e;i++)a=i/e,o=t(a,s),c.push(o.x,o.y,o.z),u.push(a,s);t=[];var l;for(n=0;nn&&1===t.x&&(h[e]=t.x-1),0===r.x&&0===r.z&&(h[e]=n/2/Math.PI+.5)}wt.call(this),this.type="PolyhedronBufferGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i},n=n||1;var u=[],h=[];!function(t){for(var r=new c,n=new c,i=new c,s=0;so&&(.2>e&&(h[t+0]+=1),.2>n&&(h[t+2]+=1),.2>i&&(h[t+4]+=1))}(),this.addAttribute("position",new yt(u,3)),this.addAttribute("normal",new yt(u.slice(),3)),this.addAttribute("uv",new yt(h,2)),this.normalizeNormals(),this.boundingSphere=new Z(new c,n)}function Ee(t,e){Me.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],t,e),this.type="TetrahedronBufferGeometry",this.parameters={radius:t,detail:e}}function Te(t,e){xt.call(this),this.type="TetrahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new Ee(t,e)),this.mergeVertices()}function Ce(t,e){Me.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],t,e),this.type="OctahedronBufferGeometry",this.parameters={radius:t,detail:e}}function Oe(t,e){xt.call(this),this.type="OctahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new Ce(t,e)),this.mergeVertices()}function Pe(t,e){var r=(1+Math.sqrt(5))/2;Me.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],t,e),this.type="IcosahedronBufferGeometry",this.parameters={radius:t,detail:e}}function Ae(t,e){xt.call(this),this.type="IcosahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new Pe(t,e)),this.mergeVertices()}function je(t,e){var r=(1+Math.sqrt(5))/2,n=1/r;Me.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],t,e),this.type="DodecahedronBufferGeometry",this.parameters={radius:t,detail:e}}function Re(t,e){xt.call(this),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new je(t,e)),this.mergeVertices()}function Le(t,e,r,n){xt.call(this),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:r,detail:n},this.fromBufferGeometry(new Me(t,e,r,n)),this.mergeVertices()}function Ne(t,e,n,i,o){function a(r){var o=t.getPointAt(r/e),a=s.normals[r];for(r=s.binormals[r],h=0;h<=i;h++){var c=h/i*Math.PI*2,u=Math.sin(c),c=-Math.cos(c);p.x=c*a.x+u*r.x,p.y=c*a.y+u*r.y,p.z=c*a.z+u*r.z,p.normalize(),m.push(p.x,p.y,p.z),l.x=o.x+n*p.x,l.y=o.y+n*p.y,l.z=o.z+n*p.z,d.push(l.x,l.y,l.z)}}wt.call(this),this.type="TubeBufferGeometry",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:i,closed:o},e=e||64,n=n||1,i=i||8,o=o||!1;var s=t.computeFrenetFrames(e,o);this.tangents=s.tangents,this.normals=s.normals,this.binormals=s.binormals;var u,h,l=new c,p=new c,f=new r,d=[],m=[],v=[],g=[];for(u=0;up;p++){o[0]=l[s[p]],o[1]=l[s[(p+1)%3]],o.sort(r);var f=o.toString();void 0===a[f]?a[f]={vert1:o[0],vert2:o[1],face1:u,face2:void 0}:a[f].face2=u}o=[];for(f in a)s=a[f],(void 0===s.face2||n[s.face1].normal.dot(n[s.face2].normal)<=i)&&(u=c[s.vert1],o.push(u.x),o.push(u.y),o.push(u.z),u=c[s.vert2],o.push(u.x),o.push(u.y),o.push(u.z));this.addAttribute("position",new yt(o,3))}function Je(t,e,n,i,o,a,s,u){function h(n){var o,a,h,p=new r,f=new c,d=0,x=!0===n?t:e,M=!0===n?1:-1;for(a=b,o=1;o<=i;o++)v.setXYZ(b,0,w*M,0),g.setXYZ(b,0,M,0),p.x=.5,p.y=.5,y.setXY(b,p.x,p.y),b++;for(h=b,o=0;o<=i;o++){var E=o/i*u+s,T=Math.cos(E),E=Math.sin(E);f.x=x*E,f.y=w*M,f.z=x*T,v.setXYZ(b,f.x,f.y,f.z),g.setXYZ(b,0,M,0),p.x=.5*T+.5,p.y=.5*E*M+.5,y.setXY(b,p.x,p.y),b++}for(o=0;othis.duration&&this.resetDuration(),this.optimize()}function Hr(t){this.manager=void 0!==t?t:wi,this.textures={}}function Wr(t){this.manager=void 0!==t?t:wi}function qr(){this.onLoadStart=function(){},this.onLoadProgress=function(){},this.onLoadComplete=function(){}}function Xr(t){"boolean"==typeof t&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),t=void 0),this.manager=void 0!==t?t:wi,this.withCredentials=!1}function Yr(t){this.manager=void 0!==t?t:wi,this.texturePath=""}function Kr(){}function Zr(t,e){this.v1=t,this.v2=e}function Jr(){this.curves=[],this.autoClose=!1}function Qr(t,e,r,n,i,o,a,s){this.aX=t,this.aY=e,this.xRadius=r,this.yRadius=n,this.aStartAngle=i,this.aEndAngle=o,this.aClockwise=a,this.aRotation=s||0}function tn(t){this.points=void 0===t?[]:t}function en(t,e,r,n){this.v0=t,this.v1=e,this.v2=r,this.v3=n}function rn(t,e,r){this.v0=t,this.v1=e,this.v2=r}function nn(){on.apply(this,arguments),this.holes=[]}function on(t){Jr.call(this),this.currentPoint=new r,t&&this.fromPoints(t)}function an(){this.subPaths=[],this.currentPath=null}function sn(t){this.data=t}function cn(t){this.manager=void 0!==t?t:wi}function un(t){this.manager=void 0!==t?t:wi}function hn(t,e,r,n){wr.call(this,t,e),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 ln(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new Ct,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Ct,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1}function pn(t,e,r){ot.call(this),this.type="CubeCamera";var n=new Ct(90,1,t,e);n.up.set(0,-1,0),n.lookAt(new c(1,0,0)),this.add(n);var i=new Ct(90,1,t,e);i.up.set(0,-1,0),i.lookAt(new c(-1,0,0)),this.add(i);var o=new Ct(90,1,t,e);o.up.set(0,0,1),o.lookAt(new c(0,1,0)),this.add(o);var s=new Ct(90,1,t,e);s.up.set(0,0,-1),s.lookAt(new c(0,-1,0)),this.add(s);var u=new Ct(90,1,t,e);u.up.set(0,-1,0),u.lookAt(new c(0,0,1)),this.add(u);var h=new Ct(90,1,t,e);h.up.set(0,-1,0),h.lookAt(new c(0,0,-1)),this.add(h),this.renderTarget=new a(r,r,{format:1022,magFilter:1006,minFilter:1006}),this.updateCubeMap=function(t,e){null===this.parent&&this.updateMatrixWorld();var r=this.renderTarget,a=r.texture.generateMipmaps;r.texture.generateMipmaps=!1,r.activeCubeFace=0,t.render(e,n,r),r.activeCubeFace=1,t.render(e,i,r),r.activeCubeFace=2,t.render(e,o,r),r.activeCubeFace=3,t.render(e,s,r),r.activeCubeFace=4,t.render(e,u,r),r.texture.generateMipmaps=a,r.activeCubeFace=5,t.render(e,h,r),t.setRenderTarget(null)}}function fn(){ot.call(this),this.type="AudioListener",this.context=Oi.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null}function dn(t){ot.call(this),this.type="Audio",this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.loop=!1,this.startTime=0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.sourceType="empty",this.filters=[]}function mn(t){dn.call(this,t),this.panner=this.context.createPanner(),this.panner.connect(this.gain)}function vn(t,e){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=void 0!==e?e:2048,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}function gn(t,e,r){switch(this.binding=t,this.valueSize=r,t=Float64Array,e){case"quaternion":e=this._slerp;break;case"string":case"bool":t=Array,e=this._select;break;default:e=this._lerp}this.buffer=new t(4*r),this._mixBufferRegion=e,this.referenceCount=this.useCount=this.cumulativeWeight=0}function yn(t,e,r){this.path=e,this.parsedPath=r||yn.parseTrackName(e),this.node=yn.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t}function bn(t){this.uuid=ri.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;var e={};this._indicesByUUID=e;for(var r=0,n=arguments.length;r!==n;++r)e[arguments[r].uuid]=r;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};var i=this;this.stats={objects:{get total(){return i._objects.length},get inUse(){return this.total-i.nCachedObjects_}},get bindingsPerObject(){return i._bindings.length}}}function _n(t,e,r){this._mixer=t,this._clip=e,this._localRoot=r||null,t=e.tracks,e=t.length,r=Array(e);for(var n={endingStart:2400,endingEnd:2400},i=0;i!==e;++i){var o=t[i].createInterpolant(null);r[i]=o,o.settings=n}this._interpolantSettings=n,this._interpolants=r,this._propertyBindings=Array(e),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 xn(t){this._root=t,this._initMemoryManager(),this.time=this._accuIndex=0,this.timeScale=1}function wn(t,e){"string"==typeof t&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),t=e),this.value=t}function Sn(){wt.call(this),this.type="InstancedBufferGeometry",this.maxInstancedCount=void 0}function Mn(t,e,r,n){this.uuid=ri.generateUUID(),this.data=t,this.itemSize=e,this.offset=r,this.normalized=!0===n}function En(t,e){this.uuid=ri.generateUUID(),this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.dynamic=!1,this.updateRange={offset:0,count:-1},this.onUploadCallback=function(){},this.version=0}function Tn(t,e,r){En.call(this,t,e),this.meshPerAttribute=r||1}function Cn(t,e,r){ht.call(this,t,e),this.meshPerAttribute=r||1}function On(t,e,r,n){this.ray=new rt(t,e),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 Pn(t,e){return t.distance-e.distance}function An(t,e,r,n){if(!1!==t.visible&&(t.raycast(e,r),!0===n)){t=t.children,n=0;for(var i=t.length;nr;r++,n++){var i=r/32*Math.PI*2,o=n/32*Math.PI*2;e.push(Math.cos(i),Math.sin(i),1,Math.cos(o),Math.sin(o),1)}t.addAttribute("position",new yt(e,3)),e=new le({fog:!1}),this.cone=new fe(t,e),this.add(this.cone),this.update()}function Fn(t){this.bones=this.getBoneList(t);for(var e=new wt,r=[],n=[],i=new $(0,0,1),o=new $(0,1,0),a=0;at?-1:0i;i++)8===i||13===i||18===i||23===i?r[i]="-":14===i?r[i]="4":(2>=n&&(n=33554432+16777216*Math.random()|0),t=15&n,n>>=4,r[i]=e[19===i?3&t|8:t]);return r.join("")}}(),clamp:function(t,e,r){return Math.max(e,Math.min(r,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,r,n,i){return n+(t-e)*(i-n)/(r-e)},lerp:function(t,e,r){return(1-r)*t+r*e},smoothstep:function(t,e,r){return t<=e?0:t>=r?1:(t=(t-e)/(r-e))*t*(3-2*t)},smootherstep:function(t,e,r){return t<=e?0:t>=r?1:(t=(t-e)/(r-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},degToRad:function(t){return t*ri.DEG2RAD},radToDeg:function(t){return t*ri.RAD2DEG},isPowerOfTwo:function(t){return 0==(t&t-1)&&0!==t},nearestPowerOfTwo:function(t){return Math.pow(2,Math.round(Math.log(t)/Math.LN2))},nextPowerOfTwo:function(t){return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t}};r.prototype={constructor:r,isVector2:!0,get width(){return this.x},set width(t){this.x=t},get height(){return this.y},set height(t){this.y=t},set:function(t,e){return this.x=t,this.y=e,this},setScalar:function(t){return this.y=this.x=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(t){return this.x=t.x,this.y=t.y,this},add:function(t,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)},addScalar:function(t){return this.x+=t,this.y+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},sub:function(t,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)},subScalar:function(t){return this.x-=t,this.y-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},multiplyScalar:function(t){return isFinite(t)?(this.x*=t,this.y*=t):this.y=this.x=0,this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this},clampScalar:function(){var t,e;return function(n,i){return void 0===t&&(t=new r,e=new r), -t.set(n,n),e.set(i,i),this.clamp(t,e)}}(),clampLength:function(t,e){var r=this.length();return this.multiplyScalar(Math.max(t,Math.min(e,r))/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(t){return this.x*t.x+this.y*t.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)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length())},angle:function(){var t=Math.atan2(this.y,this.x);return 0>t&&(t+=2*Math.PI),t},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x;return t=this.y-t.y,e*e+t*t},distanceToManhattan:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},setLength:function(t){return this.multiplyScalar(t/this.length())},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},lerpVectors:function(t,e,r){return this.subVectors(e,t).multiplyScalar(r).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t},fromAttribute:function(t,e,r){return void 0!==r&&console.warn("THREE.Vector2: offset has been removed from .fromAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this},rotateAround:function(t,e){var r=Math.cos(e),n=Math.sin(e),i=this.x-t.x,o=this.y-t.y;return this.x=i*r-o*n+t.x,this.y=i*n+o*r+t.y,this}};var ni=0;n.DEFAULT_IMAGE=void 0,n.DEFAULT_MAPPING=300,n.prototype={constructor:n,isTexture:!0,set needsUpdate(t){!0===t&&this.version++},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this},toJSON:function(t){if(void 0!==t.textures[this.uuid])return t.textures[this.uuid];var e={metadata:{version:4.4,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],wrap:[this.wrapS,this.wrapT],minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==this.image){var r=this.image;if(void 0===r.uuid&&(r.uuid=ri.generateUUID()),void 0===t.images[r.uuid]){var n,i=t.images,o=r.uuid,a=r.uuid;void 0!==r.toDataURL?n=r:(n=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),n.width=r.width,n.height=r.height,n.getContext("2d").drawImage(r,0,0,r.width,r.height)),n=2048t.x||1t.x?0:1;break;case 1002:t.x=1===Math.abs(Math.floor(t.x)%2)?Math.ceil(t.x)-t.x:t.x-Math.floor(t.x)}if(0>t.y||1t.y?0:1;break;case 1002:t.y=1===Math.abs(Math.floor(t.y)%2)?Math.ceil(t.y)-t.y:t.y-Math.floor(t.y)}this.flipY&&(t.y=1-t.y)}}},Object.assign(n.prototype,e.prototype),i.prototype={constructor:i,isVector4:!0,set:function(t,e,r,n){return this.x=t,this.y=e,this.z=r,this.w=n,this},setScalar:function(t){return this.w=this.z=this.y=this.x=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setW:function(t){return this.w=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){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: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this},add:function(t,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this},sub:function(t,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this},multiplyScalar:function(t){return isFinite(t)?(this.x*=t,this.y*=t,this.z*=t,this.w*=t):this.w=this.z=this.y=this.x=0,this},applyMatrix4:function(t){var e=this.x,r=this.y,n=this.z,i=this.w;return t=t.elements,this.x=t[0]*e+t[4]*r+t[8]*n+t[12]*i,this.y=t[1]*e+t[5]*r+t[9]*n+t[13]*i,this.z=t[2]*e+t[6]*r+t[10]*n+t[14]*i,this.w=t[3]*e+t[7]*r+t[11]*n+t[15]*i,this},divideScalar:function(t){return this.multiplyScalar(1/t)},setAxisAngleFromQuaternion:function(t){this.w=2*Math.acos(t.w);var e=Math.sqrt(1-t.w*t.w);return 1e-4>e?(this.x=1,this.z=this.y=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this},setAxisAngleFromRotationMatrix:function(t){var e,r,n;t=t.elements;var i=t[0];n=t[4];var o=t[8],a=t[1],s=t[5],c=t[9];r=t[2],e=t[6];var u=t[10];return.01>Math.abs(n-a)&&.01>Math.abs(o-r)&&.01>Math.abs(c-e)?.1>Math.abs(n+a)&&.1>Math.abs(o+r)&&.1>Math.abs(c+e)&&.1>Math.abs(i+s+u-3)?(this.set(1,0,0,0),this):(t=Math.PI,i=(i+1)/2,s=(s+1)/2,u=(u+1)/2,n=(n+a)/4,o=(o+r)/4,c=(c+e)/4,i>s&&i>u?.01>i?(e=0,n=r=.707106781):(e=Math.sqrt(i),r=n/e,n=o/e):s>u?.01>s?(e=.707106781,r=0,n=.707106781):(r=Math.sqrt(s),e=n/r,n=c/r):.01>u?(r=e=.707106781,n=0):(n=Math.sqrt(u),e=o/n,r=c/n),this.set(e,r,n,t),this):(t=Math.sqrt((e-c)*(e-c)+(o-r)*(o-r)+(a-n)*(a-n)),.001>Math.abs(t)&&(t=1),this.x=(e-c)/t,this.y=(o-r)/t,this.z=(a-n)/t,this.w=Math.acos((i+s+u-1)/2),this)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this},clampScalar:function(){var t,e;return function(r,n){return void 0===t&&(t=new i,e=new i),t.set(r,r,r,r),e.set(n,n,n,n),this.clamp(t,e)}}(),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(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.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)},lengthManhattan: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())},setLength:function(t){return this.multiplyScalar(t/this.length())},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this},lerpVectors:function(t,e,r){return this.subVectors(e,t).multiplyScalar(r).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t},fromAttribute:function(t,e,r){return void 0!==r&&console.warn("THREE.Vector4: offset has been removed from .fromAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}},Object.assign(o.prototype,e.prototype,{isWebGLRenderTarget:!0,setSize:function(t,e){this.width===t&&this.height===e||(this.width=t,this.height=e,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.width=t.width,this.height=t.height,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),a.prototype=Object.create(o.prototype),a.prototype.constructor=a,a.prototype.isWebGLRenderTargetCube=!0,s.prototype={constructor:s,get x(){return this._x},set x(t){this._x=t,this.onChangeCallback()},get y(){return this._y},set y(t){this._y=t,this.onChangeCallback()},get z(){return this._z},set z(t){this._z=t,this.onChangeCallback()},get w(){return this._w},set w(t){this._w=t,this.onChangeCallback()},set:function(t,e,r,n){return this._x=t,this._y=e,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(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this.onChangeCallback(),this},setFromEuler:function(t,e){if(!1===(t&&t.isEuler))throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var r=Math.cos(t._x/2),n=Math.cos(t._y/2),i=Math.cos(t._z/2),o=Math.sin(t._x/2),a=Math.sin(t._y/2),s=Math.sin(t._z/2),c=t.order;return"XYZ"===c?(this._x=o*n*i+r*a*s,this._y=r*a*i-o*n*s,this._z=r*n*s+o*a*i,this._w=r*n*i-o*a*s):"YXZ"===c?(this._x=o*n*i+r*a*s,this._y=r*a*i-o*n*s,this._z=r*n*s-o*a*i,this._w=r*n*i+o*a*s):"ZXY"===c?(this._x=o*n*i-r*a*s,this._y=r*a*i+o*n*s,this._z=r*n*s+o*a*i,this._w=r*n*i-o*a*s):"ZYX"===c?(this._x=o*n*i-r*a*s,this._y=r*a*i+o*n*s,this._z=r*n*s-o*a*i,this._w=r*n*i+o*a*s):"YZX"===c?(this._x=o*n*i+r*a*s,this._y=r*a*i+o*n*s,this._z=r*n*s-o*a*i,this._w=r*n*i-o*a*s):"XZY"===c&&(this._x=o*n*i-r*a*s,this._y=r*a*i-o*n*s,this._z=r*n*s+o*a*i,this._w=r*n*i+o*a*s),!1!==e&&this.onChangeCallback(),this},setFromAxisAngle:function(t,e){var r=e/2,n=Math.sin(r);return this._x=t.x*n,this._y=t.y*n,this._z=t.z*n,this._w=Math.cos(r),this.onChangeCallback(),this},setFromRotationMatrix:function(t){var e=t.elements,r=e[0];t=e[4];var n=e[8],i=e[1],o=e[5],a=e[9],s=e[2],c=e[6],e=e[10],u=r+o+e;return 0o&&r>e?(r=2*Math.sqrt(1+r-o-e),this._w=(c-a)/r,this._x=.25*r,this._y=(t+i)/r,this._z=(n+s)/r):o>e?(r=2*Math.sqrt(1+o-r-e),this._w=(n-s)/r,this._x=(t+i)/r,this._y=.25*r,this._z=(a+c)/r):(r=2*Math.sqrt(1+e-r-o),this._w=(i-t)/r,this._x=(n+s)/r,this._y=(a+c)/r,this._z=.25*r),this.onChangeCallback(),this},setFromUnitVectors:function(){var t,e;return function(r,n){return void 0===t&&(t=new c),e=r.dot(n)+1,1e-6>e?(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(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._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 t=this.length();return 0===t?(this._z=this._y=this._x=0,this._w=1):(t=1/t,this._x*=t,this._y*=t,this._z*=t,this._w*=t),this.onChangeCallback(),this},multiply:function(t,e){return void 0!==e?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)},premultiply:function(t){return this.multiplyQuaternions(t,this)},multiplyQuaternions:function(t,e){var r=t._x,n=t._y,i=t._z,o=t._w,a=e._x,s=e._y,c=e._z,u=e._w;return this._x=r*u+o*a+n*c-i*s,this._y=n*u+o*s+i*a-r*c,this._z=i*u+o*c+r*s-n*a,this._w=o*u-r*a-n*s-i*c,this.onChangeCallback(),this},slerp:function(t,e){if(0===e)return this;if(1===e)return this.copy(t);var r=this._x,n=this._y,i=this._z,o=this._w,a=o*t._w+r*t._x+n*t._y+i*t._z;if(0>a?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),1<=a)return this._w=o,this._x=r,this._y=n,this._z=i,this;var s=Math.sqrt(1-a*a);if(.001>Math.abs(s))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 c=Math.atan2(s,a),a=Math.sin((1-e)*c)/s,s=Math.sin(e*c)/s;return this._w=o*a+this._w*s,this._x=r*a+this._x*s,this._y=n*a+this._y*s,this._z=i*a+this._z*s,this.onChangeCallback(),this},equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},fromArray:function(t,e){return void 0===e&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this.onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}},Object.assign(s,{slerp:function(t,e,r,n){return r.copy(t).slerp(e,n)},slerpFlat:function(t,e,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,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,a=Math.sin(a*p)/d),f*=a,s=s*o+n*f,c=c*o+h*f,u=u*o+l*f,r=r*o+i*f,o===1-a&&(a=1/Math.sqrt(s*s+c*c+u*u+r*r),s*=a,c*=a,u*=a,r*=a)}t[e]=s,t[e+1]=c,t[e+2]=u,t[e+3]=r}}),c.prototype={constructor:c,isVector3:!0,set:function(t,e,r){return this.x=t,this.y=e,this.z=r,this},setScalar:function(t){return this.z=this.y=this.x=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},add:function(t,e){return void 0!==e?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},sub:function(t,e){return void 0!==e?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},multiply:function(t,e){return void 0!==e?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)},multiplyScalar:function(t){return isFinite(t)?(this.x*=t,this.y*=t,this.z*=t):this.z=this.y=this.x=0,this},multiplyVectors:function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},applyEuler:function(){var t;return function(e){return!1===(e&&e.isEuler)&&console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),void 0===t&&(t=new s),this.applyQuaternion(t.setFromEuler(e))}}(),applyAxisAngle:function(){var t;return function(e,r){return void 0===t&&(t=new s),this.applyQuaternion(t.setFromAxisAngle(e,r))}}(),applyMatrix3:function(t){var e=this.x,r=this.y,n=this.z;return t=t.elements,this.x=t[0]*e+t[3]*r+t[6]*n,this.y=t[1]*e+t[4]*r+t[7]*n,this.z=t[2]*e+t[5]*r+t[8]*n,this},applyMatrix4:function(t){var e=this.x,r=this.y,n=this.z;return t=t.elements,this.x=t[0]*e+t[4]*r+t[8]*n+t[12],this.y=t[1]*e+t[5]*r+t[9]*n+t[13],this.z=t[2]*e+t[6]*r+t[10]*n+t[14],this},applyProjection:function(t){var e=this.x,r=this.y,n=this.z;t=t.elements;var i=1/(t[3]*e+t[7]*r+t[11]*n+t[15]);return this.x=(t[0]*e+t[4]*r+t[8]*n+t[12])*i,this.y=(t[1]*e+t[5]*r+t[9]*n+t[13])*i,this.z=(t[2]*e+t[6]*r+t[10]*n+t[14])*i,this},applyQuaternion:function(t){var e=this.x,r=this.y,n=this.z,i=t.x,o=t.y,a=t.z;t=t.w;var s=t*e+o*n-a*r,c=t*r+a*e-i*n,u=t*n+i*r-o*e,e=-i*e-o*r-a*n;return this.x=s*t+e*-i+c*-a-u*-o,this.y=c*t+e*-o+u*-i-s*-a,this.z=u*t+e*-a+s*-o-c*-i,this},project:function(){var t;return function(e){return void 0===t&&(t=new u),t.multiplyMatrices(e.projectionMatrix,t.getInverse(e.matrixWorld)),this.applyProjection(t)}}(),unproject:function(){var t;return function(e){return void 0===t&&(t=new u),t.multiplyMatrices(e.matrixWorld,t.getInverse(e.projectionMatrix)),this.applyProjection(t)}}(),transformDirection:function(t){var e=this.x,r=this.y,n=this.z;return t=t.elements,this.x=t[0]*e+t[4]*r+t[8]*n,this.y=t[1]*e+t[5]*r+t[9]*n,this.z=t[2]*e+t[6]*r+t[10]*n,this.normalize()},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this},clampScalar:function(){var t,e;return function(r,n){return void 0===t&&(t=new c,e=new c),t.set(r,r,r),e.set(n,n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var r=this.length();return this.multiplyScalar(Math.max(t,Math.min(e,r))/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(t){return this.x*t.x+this.y*t.y+this.z*t.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)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())},setLength:function(t){return this.multiplyScalar(t/this.length())},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},lerpVectors:function(t,e,r){return this.subVectors(e,t).multiplyScalar(r).add(t)},cross:function(t,e){if(void 0!==e)return console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e);var r=this.x,n=this.y,i=this.z;return this.x=n*t.z-i*t.y,this.y=i*t.x-r*t.z,this.z=r*t.y-n*t.x,this},crossVectors:function(t,e){var r=t.x,n=t.y,i=t.z,o=e.x,a=e.y,s=e.z;return this.x=n*s-i*a,this.y=i*o-r*s,this.z=r*a-n*o,this},projectOnVector:function(t){var e=t.dot(this)/t.lengthSq();return this.copy(t).multiplyScalar(e)},projectOnPlane:function(){var t;return function(e){return void 0===t&&(t=new c),t.copy(this).projectOnVector(e),this.sub(t)}}(),reflect:function(){var t;return function(e){return void 0===t&&(t=new c),this.sub(t.copy(e).multiplyScalar(2*this.dot(e)))}}(),angleTo:function(t){return t=this.dot(t)/Math.sqrt(this.lengthSq()*t.lengthSq()),Math.acos(ri.clamp(t,-1,1))},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,r=this.y-t.y;return t=this.z-t.z,e*e+r*r+t*t},distanceToManhattan:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},setFromSpherical:function(t){var e=Math.sin(t.phi)*t.radius;return this.x=e*Math.sin(t.theta),this.y=Math.cos(t.phi)*t.radius,this.z=e*Math.cos(t.theta),this},setFromCylindrical:function(t){return this.x=t.radius*Math.sin(t.theta),this.y=t.y,this.z=t.radius*Math.cos(t.theta),this},setFromMatrixPosition:function(t){return this.setFromMatrixColumn(t,3)},setFromMatrixScale:function(t){var e=this.setFromMatrixColumn(t,0).length(),r=this.setFromMatrixColumn(t,1).length();return t=this.setFromMatrixColumn(t,2).length(),this.x=e,this.y=r,this.z=t,this},setFromMatrixColumn:function(t,e){if("number"==typeof t){console.warn("THREE.Vector3: setFromMatrixColumn now expects ( matrix, index ).");var r=t;t=e,e=r}return this.fromArray(t.elements,4*e)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},fromAttribute:function(t,e,r){return void 0!==r&&console.warn("THREE.Vector3: offset has been removed from .fromAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}},u.prototype={constructor:u,isMatrix4:!0,set:function(t,e,r,n,i,o,a,s,c,u,h,l,p,f,d,m){var v=this.elements;return v[0]=t,v[4]=e,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]=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 u).fromArray(this.elements)},copy:function(t){return this.elements.set(t.elements),this},copyPosition:function(t){var e=this.elements;return t=t.elements,e[12]=t[12],e[13]=t[13],e[14]=t[14],this},extractBasis:function(t,e,r){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),r.setFromMatrixColumn(this,2),this},makeBasis:function(t,e,r){return this.set(t.x,e.x,r.x,0,t.y,e.y,r.y,0,t.z,e.z,r.z,0,0,0,0,1),this},extractRotation:function(){var t;return function(e){void 0===t&&(t=new c);var r=this.elements,n=e.elements,i=1/t.setFromMatrixColumn(e,0).length(),o=1/t.setFromMatrixColumn(e,1).length();return e=1/t.setFromMatrixColumn(e,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]*e,r[9]=n[9]*e,r[10]=n[10]*e,this}}(),makeRotationFromEuler:function(t){!1===(t&&t.isEuler)&&console.error("THREE.Matrix: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var e=this.elements,r=t.x,n=t.y,i=t.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"===t.order){t=o*s;var c=o*i,u=r*s,h=r*i;e[0]=a*s,e[4]=-a*i,e[8]=n,e[1]=c+u*n,e[5]=t-h*n,e[9]=-r*a,e[2]=h-t*n,e[6]=u+c*n,e[10]=o*a}else"YXZ"===t.order?(t=a*s,c=a*i,u=n*s,h=n*i,e[0]=t+h*r,e[4]=u*r-c,e[8]=o*n,e[1]=o*i,e[5]=o*s,e[9]=-r,e[2]=c*r-u,e[6]=h+t*r,e[10]=o*a):"ZXY"===t.order?(t=a*s,c=a*i,u=n*s,h=n*i,e[0]=t-h*r,e[4]=-o*i,e[8]=u+c*r,e[1]=c+u*r,e[5]=o*s,e[9]=h-t*r,e[2]=-o*n,e[6]=r,e[10]=o*a):"ZYX"===t.order?(t=o*s,c=o*i,u=r*s,h=r*i,e[0]=a*s,e[4]=u*n-c,e[8]=t*n+h,e[1]=a*i,e[5]=h*n+t,e[9]=c*n-u,e[2]=-n,e[6]=r*a,e[10]=o*a):"YZX"===t.order?(t=o*a,c=o*n,u=r*a,h=r*n,e[0]=a*s,e[4]=h-t*i,e[8]=u*i+c,e[1]=i,e[5]=o*s,e[9]=-r*s,e[2]=-n*s,e[6]=c*i+u,e[10]=t-h*i):"XZY"===t.order&&(t=o*a,c=o*n,u=r*a,h=r*n,e[0]=a*s,e[4]=-i,e[8]=n*s,e[1]=t*i+h,e[5]=o*s,e[9]=c*i-u,e[2]=u*i-c,e[6]=r*s,e[10]=h*i+t);return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromQuaternion:function(t){var e=this.elements,r=t.x,n=t.y,i=t.z,o=t.w,a=r+r,s=n+n,c=i+i;t=r*a;var u=r*s,r=r*c,h=n*s,n=n*c,i=i*c,a=o*a,s=o*s,o=o*c;return e[0]=1-(h+i),e[4]=u-o,e[8]=r+s,e[1]=u+o,e[5]=1-(t+i),e[9]=n-a,e[2]=r-s,e[6]=n+a,e[10]=1-(t+h),e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},lookAt:function(){var t,e,r;return function(n,i,o){void 0===t&&(t=new c,e=new c,r=new c);var a=this.elements;return r.subVectors(n,i).normalize(),0===r.lengthSq()&&(r.z=1),t.crossVectors(o,r).normalize(),0===t.lengthSq()&&(r.z+=1e-4,t.crossVectors(o,r).normalize()),e.crossVectors(r,t),a[0]=t.x,a[4]=e.x,a[8]=r.x,a[1]=t.y,a[5]=e.y,a[9]=r.y,a[2]=t.z,a[6]=e.z,a[10]=r.z,this}}(),multiply:function(t,e){return void 0!==e?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var r=t.elements,n=e.elements,i=this.elements,o=r[0],a=r[4],s=r[8],c=r[12],u=r[1],h=r[5],l=r[9],p=r[13],f=r[2],d=r[6],m=r[10],v=r[14],g=r[3],y=r[7],b=r[11],r=r[15],_=n[0],x=n[4],w=n[8],S=n[12],M=n[1],E=n[5],T=n[9],C=n[13],O=n[2],P=n[6],A=n[10],j=n[14],R=n[3],L=n[7],N=n[11],n=n[15];return i[0]=o*_+a*M+s*O+c*R,i[4]=o*x+a*E+s*P+c*L,i[8]=o*w+a*T+s*A+c*N,i[12]=o*S+a*C+s*j+c*n,i[1]=u*_+h*M+l*O+p*R,i[5]=u*x+h*E+l*P+p*L,i[9]=u*w+h*T+l*A+p*N,i[13]=u*S+h*C+l*j+p*n,i[2]=f*_+d*M+m*O+v*R,i[6]=f*x+d*E+m*P+v*L,i[10]=f*w+d*T+m*A+v*N,i[14]=f*S+d*C+m*j+v*n,i[3]=g*_+y*M+b*O+r*R,i[7]=g*x+y*E+b*P+r*L,i[11]=g*w+y*T+b*A+r*N,i[15]=g*S+y*C+b*j+r*n,this},multiplyToArray:function(t,e,r){var n=this.elements;return this.multiplyMatrices(t,e),r[0]=n[0],r[1]=n[1],r[2]=n[2],r[3]=n[3],r[4]=n[4],r[5]=n[5],r[6]=n[6],r[7]=n[7],r[8]=n[8],r[9]=n[9],r[10]=n[10],r[11]=n[11],r[12]=n[12],r[13]=n[13],r[14]=n[14],r[15]=n[15],this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this},applyToVector3Array:function(){var t;return function(e,r,n){void 0===t&&(t=new c),void 0===r&&(r=0),void 0===n&&(n=e.length);for(var i=0;ithis.determinant()&&(a=-a),r.x=o[12],r.y=o[13],r.z=o[14],e.elements.set(this.elements),r=1/a;var o=1/s,l=1/h;return e.elements[0]*=r,e.elements[1]*=r,e.elements[2]*=r,e.elements[4]*=o,e.elements[5]*=o,e.elements[6]*=o,e.elements[8]*=l,e.elements[9]*=l,e.elements[10]*=l,n.setFromRotationMatrix(e),i.x=a,i.y=s,i.z=h,this}}(),makeFrustum:function(t,e,r,n,i,o){var a=this.elements;return a[0]=2*i/(e-t),a[4]=0,a[8]=(e+t)/(e-t),a[12]=0,a[1]=0,a[5]=2*i/(n-r),a[9]=(n+r)/(n-r),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}, -makePerspective:function(t,e,r,n){t=r*Math.tan(ri.DEG2RAD*t*.5);var i=-t;return this.makeFrustum(i*e,t*e,i,t,r,n)},makeOrthographic:function(t,e,r,n,i,o){var a=this.elements,s=1/(e-t),c=1/(r-n),u=1/(o-i);return a[0]=2*s,a[4]=0,a[8]=0,a[12]=-((e+t)*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(t){var e=this.elements;t=t.elements;for(var r=0;16>r;r++)if(e[r]!==t[r])return!1;return!0},fromArray:function(t,e){void 0===e&&(e=0);for(var r=0;16>r;r++)this.elements[r]=t[r+e];return this},toArray:function(t,e){void 0===t&&(t=[]),void 0===e&&(e=0);var r=this.elements;return t[e]=r[0],t[e+1]=r[1],t[e+2]=r[2],t[e+3]=r[3],t[e+4]=r[4],t[e+5]=r[5],t[e+6]=r[6],t[e+7]=r[7],t[e+8]=r[8],t[e+9]=r[9],t[e+10]=r[10],t[e+11]=r[11],t[e+12]=r[12],t[e+13]=r[13],t[e+14]=r[14],t[e+15]=r[15],t}},h.prototype=Object.create(n.prototype),h.prototype.constructor=h,h.prototype.isCubeTexture=!0,Object.defineProperty(h.prototype,"images",{get:function(){return this.image},set:function(t){this.image=t}});var ii=new n,oi=new h,ai=[],si=[];B.prototype.setValue=function(t,e){for(var r=this.seq,n=0,i=r.length;n!==i;++n){var o=r[n];o.setValue(t,e[o.id])}};var ci=/([\w\d_]+)(\])?(\[|\.)?/g;z.prototype.setValue=function(t,e,r){void 0!==(e=this.map[e])&&e.setValue(t,r,this.renderer)},z.prototype.set=function(t,e,r){var n=this.map[r];void 0!==n&&n.setValue(t,e[r],this.renderer)},z.prototype.setOptional=function(t,e,r){void 0!==(e=e[r])&&this.setValue(t,r,e)},z.upload=function(t,e,r,n){for(var i=0,o=e.length;i!==o;++i){var a=e[i],s=r[a.id];!1!==s.needsUpdate&&a.setValue(t,s.value,n)}},z.seqWithValue=function(t,e){for(var r=[],n=0,i=t.length;n!==i;++n){var o=t[n];o.id in e&&r.push(o)}return r};var ui={merge:function(t){for(var e={},r=0;r 0.0 ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\t\tfloat maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t\treturn distanceFalloff * maxDistanceCutoffFactor;\n#else\n\t\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n#endif\n\t\t}\n\t\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 ltcTextureCoords( const in GeometricContext geometry, 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\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 P = geometry.position;\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}\nvoid clipQuadToHorizon( inout vec3 L[5], out int n ) {\n\tint config = 0;\n\tif ( L[0].z > 0.0 ) config += 1;\n\tif ( L[1].z > 0.0 ) config += 2;\n\tif ( L[2].z > 0.0 ) config += 4;\n\tif ( L[3].z > 0.0 ) config += 8;\n\tn = 0;\n\tif ( config == 0 ) {\n\t} else if ( config == 1 ) {\n\t\tn = 3;\n\t\tL[1] = -L[1].z * L[0] + L[0].z * L[1];\n\t\tL[2] = -L[3].z * L[0] + L[0].z * L[3];\n\t} else if ( config == 2 ) {\n\t\tn = 3;\n\t\tL[0] = -L[0].z * L[1] + L[1].z * L[0];\n\t\tL[2] = -L[2].z * L[1] + L[1].z * L[2];\n\t} else if ( config == 3 ) {\n\t\tn = 4;\n\t\tL[2] = -L[2].z * L[1] + L[1].z * L[2];\n\t\tL[3] = -L[3].z * L[0] + L[0].z * L[3];\n\t} else if ( config == 4 ) {\n\t\tn = 3;\n\t\tL[0] = -L[3].z * L[2] + L[2].z * L[3];\n\t\tL[1] = -L[1].z * L[2] + L[2].z * L[1];\n\t} else if ( config == 5 ) {\n\t\tn = 0;\n\t} else if ( config == 6 ) {\n\t\tn = 4;\n\t\tL[0] = -L[0].z * L[1] + L[1].z * L[0];\n\t\tL[3] = -L[3].z * L[2] + L[2].z * L[3];\n\t} else if ( config == 7 ) {\n\t\tn = 5;\n\t\tL[4] = -L[3].z * L[0] + L[0].z * L[3];\n\t\tL[3] = -L[3].z * L[2] + L[2].z * L[3];\n\t} else if ( config == 8 ) {\n\t\tn = 3;\n\t\tL[0] = -L[0].z * L[3] + L[3].z * L[0];\n\t\tL[1] = -L[2].z * L[3] + L[3].z * L[2];\n\t\tL[2] = L[3];\n\t} else if ( config == 9 ) {\n\t\tn = 4;\n\t\tL[1] = -L[1].z * L[0] + L[0].z * L[1];\n\t\tL[2] = -L[2].z * L[3] + L[3].z * L[2];\n\t} else if ( config == 10 ) {\n\t\tn = 0;\n\t} else if ( config == 11 ) {\n\t\tn = 5;\n\t\tL[4] = L[3];\n\t\tL[3] = -L[2].z * L[3] + L[3].z * L[2];\n\t\tL[2] = -L[2].z * L[1] + L[1].z * L[2];\n\t} else if ( config == 12 ) {\n\t\tn = 4;\n\t\tL[1] = -L[1].z * L[2] + L[2].z * L[1];\n\t\tL[0] = -L[0].z * L[3] + L[3].z * L[0];\n\t} else if ( config == 13 ) {\n\t\tn = 5;\n\t\tL[4] = L[3];\n\t\tL[3] = L[2];\n\t\tL[2] = -L[1].z * L[2] + L[2].z * L[1];\n\t\tL[1] = -L[1].z * L[0] + L[0].z * L[1];\n\t} else if ( config == 14 ) {\n\t\tn = 5;\n\t\tL[4] = -L[0].z * L[3] + L[3].z * L[0];\n\t\tL[0] = -L[0].z * L[1] + L[1].z * L[0];\n\t} else if ( config == 15 ) {\n\t\tn = 4;\n\t}\n\tif ( n == 3 )\n\t\tL[3] = L[0];\n\tif ( n == 4 )\n\t\tL[4] = L[0];\n}\nfloat integrateLtcBrdfOverRectEdge( vec3 v1, vec3 v2 ) {\n\tfloat cosTheta = dot( v1, v2 );\n\tfloat theta = acos( cosTheta );\n\tfloat res = cross( v1, v2 ).z * ( ( theta > 0.001 ) ? theta / sin( theta ) : 1.0 );\n\treturn res;\n}\nvoid initRectPoints( const in vec3 pos, const in vec3 halfWidth, const in vec3 halfHeight, out vec3 rectPoints[4] ) {\n\trectPoints[0] = pos - halfWidth - halfHeight;\n\trectPoints[1] = pos + halfWidth - halfHeight;\n\trectPoints[2] = pos + halfWidth + halfHeight;\n\trectPoints[3] = pos - halfWidth + halfHeight;\n}\nvec3 integrateLtcBrdfOverRect( const in GeometricContext geometry, const in mat3 brdfMat, const in vec3 rectPoints[4] ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 P = geometry.position;\n\tvec3 T1, T2;\n\tT1 = normalize(V - N * dot( V, N ));\n\tT2 = - cross( N, T1 );\n\tmat3 brdfWrtSurface = brdfMat * transpose( mat3( T1, T2, N ) );\n\tvec3 clippedRect[5];\n\tclippedRect[0] = brdfWrtSurface * ( rectPoints[0] - P );\n\tclippedRect[1] = brdfWrtSurface * ( rectPoints[1] - P );\n\tclippedRect[2] = brdfWrtSurface * ( rectPoints[2] - P );\n\tclippedRect[3] = brdfWrtSurface * ( rectPoints[3] - P );\n\tint n;\n\tclipQuadToHorizon(clippedRect, n);\n\tif ( n == 0 )\n\t\treturn vec3( 0, 0, 0 );\n\tclippedRect[0] = normalize( clippedRect[0] );\n\tclippedRect[1] = normalize( clippedRect[1] );\n\tclippedRect[2] = normalize( clippedRect[2] );\n\tclippedRect[3] = normalize( clippedRect[3] );\n\tclippedRect[4] = normalize( clippedRect[4] );\n\tfloat sum = 0.0;\n\tsum += integrateLtcBrdfOverRectEdge( clippedRect[0], clippedRect[1] );\n\tsum += integrateLtcBrdfOverRectEdge( clippedRect[1], clippedRect[2] );\n\tsum += integrateLtcBrdfOverRectEdge( clippedRect[2], clippedRect[3] );\n\tif (n >= 4)\n\t\tsum += integrateLtcBrdfOverRectEdge( clippedRect[3], clippedRect[4] );\n\tif (n == 5)\n\t\tsum += integrateLtcBrdfOverRectEdge( clippedRect[4], clippedRect[0] );\n\tsum = max( 0.0, sum );\n\tvec3 Lo_i = vec3( sum, sum, sum );\n\treturn Lo_i;\n}\nvec3 Rect_Area_Light_Specular_Reflectance(\n\t\tconst in GeometricContext geometry,\n\t\tconst in vec3 lightPos, const in vec3 lightHalfWidth, const in vec3 lightHalfHeight,\n\t\tconst in float roughness,\n\t\tconst in sampler2D ltcMat, const in sampler2D ltcMag ) {\n\tvec3 rectPoints[4];\n\tinitRectPoints( lightPos, lightHalfWidth, lightHalfHeight, rectPoints );\n\tvec2 uv = ltcTextureCoords( geometry, roughness );\n\tvec4 brdfLtcApproxParams, t;\n\tbrdfLtcApproxParams = texture2D( ltcMat, uv );\n\tt = texture2D( ltcMat, uv );\n\tfloat brdfLtcScalar = texture2D( ltcMag, uv ).a;\n\tmat3 brdfLtcApproxMat = mat3(\n\t\tvec3( 1, 0, t.y ),\n\t\tvec3( 0, t.z, 0 ),\n\t\tvec3( t.w, 0, t.x )\n\t);\n\tvec3 specularReflectance = integrateLtcBrdfOverRect( geometry, brdfLtcApproxMat, rectPoints );\n\tspecularReflectance *= brdfLtcScalar;\n\treturn specularReflectance;\n}\nvec3 Rect_Area_Light_Diffuse_Reflectance(\n\t\tconst in GeometricContext geometry,\n\t\tconst in vec3 lightPos, const in vec3 lightHalfWidth, const in vec3 lightHalfHeight ) {\n\tvec3 rectPoints[4];\n\tinitRectPoints( lightPos, lightHalfWidth, lightHalfHeight, rectPoints );\n\tmat3 diffuseBrdfMat = mat3(1);\n\tvec3 diffuseReflectance = integrateLtcBrdfOverRect( geometry, diffuseBrdfMat, rectPoints );\n\treturn diffuseReflectance;\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 = dFdx( surf_pos );\n\t\tvec3 vSigmaY = dFdy( surf_pos );\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 transpose( const in mat3 v ) {\n\tmat3 tmp;\n\ttmp[0] = vec3(v[0].x, v[1].x, v[2].x);\n\ttmp[1] = vec3(v[0].y, v[1].y, v[2].y);\n\ttmp[2] = vec3(v[0].z, v[1].z, v[2].z);\n\treturn tmp;\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:"#ifdef FLIP_SIDED\n\tobjectNormal = -objectNormal;\n#endif\nvec3 transformedNormal = normalMatrix * objectNormal;\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 += normal * ( 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 return value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n return 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 return 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 return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n float maxComponent = max( max( value.r, value.g ), value.b );\n float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n return vec4( value.xyz * value.w * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n float maxRGB = max( value.x, max( value.g, value.b ) );\n float M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n M = ceil( M * 255.0 ) / 255.0;\n return vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n float maxRGB = max( value.x, max( value.g, value.b ) );\n float D = max( maxRange / maxRGB, 1.0 );\n D = min( floor( D ) / 255.0, 1.0 );\n return 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 vec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\n Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\n vec4 vResult;\n vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n vResult.w = fract(Le);\n vResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\n return 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 float Le = value.z * 255.0 + value.w;\n vec3 Xp_Y_XYZp;\n Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\n Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n vec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\n return 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, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\n\t\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\tvec3 reflectView = flipNormal * 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_fragment:"#ifdef USE_FOG\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;\n\t#else\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\t#endif\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, depth );\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\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",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_RECT_AREA_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\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};\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 = saturate( reflectVec.y * 0.5 + 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};\n#if NUM_RECT_AREA_LIGHTS > 0\n void RE_Direct_RectArea_BlinnPhong( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n vec3 matDiffColor = material.diffuseColor;\n vec3 matSpecColor = material.specularColor;\n vec3 lightColor = rectAreaLight.color;\n float roughness = BlinnExponentToGGXRoughness( material.specularShininess );\n vec3 spec = Rect_Area_Light_Specular_Reflectance(\n geometry,\n rectAreaLight.position, rectAreaLight.halfWidth, rectAreaLight.halfHeight,\n roughness,\n ltcMat, ltcMag );\n vec3 diff = Rect_Area_Light_Diffuse_Reflectance(\n geometry,\n rectAreaLight.position, rectAreaLight.halfWidth, rectAreaLight.halfHeight );\n reflectedLight.directSpecular += lightColor * matSpecColor * spec / PI2;\n reflectedLight.directDiffuse += lightColor * matDiffColor * diff / PI2;\n }\n#endif\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_Direct_RectArea\t\tRE_Direct_RectArea_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 void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n vec3 matDiffColor = material.diffuseColor;\n vec3 matSpecColor = material.specularColor;\n vec3 lightColor = rectAreaLight.color;\n float roughness = material.specularRoughness;\n vec3 spec = Rect_Area_Light_Specular_Reflectance(\n geometry,\n rectAreaLight.position, rectAreaLight.halfWidth, rectAreaLight.halfHeight,\n roughness,\n ltcMat, ltcMag );\n vec3 diff = Rect_Area_Light_Diffuse_Reflectance(\n geometry,\n rectAreaLight.position, rectAreaLight.halfWidth, rectAreaLight.halfHeight );\n reflectedLight.directSpecular += lightColor * matSpecColor * spec;\n reflectedLight.directDiffuse += lightColor * matDiffColor * diff;\n }\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 ] ) : 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\t\t\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\tgl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z = (gl_Position.z - 1.0) * 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\tvec4 mapTexel = texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n",map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform vec4 offsetRepeat;\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.r;\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_flip:"#ifdef DOUBLE_SIDED\n\tfloat flipNormal = ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n#else\n\tfloat flipNormal = 1.0;\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 ) * flipNormal;\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 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\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 return normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 1.0 - 2.0 * rgb.xyz;\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 return ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n return linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n return (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n return ( 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:"#ifdef USE_SKINNING\n\tvec4 mvPosition = modelViewMatrix * skinned;\n#else\n\tvec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\n#endif\ngl_Position = projectionMatrix * mvPosition;\n",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.r;\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 #if NUM_RECT_AREA_LIGHTS > 0\n #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\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\treturn (\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\treturn (\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\treturn texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn 1.0;\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 ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\tfloat dp = ( length( lightToPosition ) - shadowBias ) / 1000.0;\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 #if NUM_RECT_AREA_LIGHTS > 0\n #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 #if NUM_RECT_AREA_LIGHTS > 0\n #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 ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_RECT_AREA_LIGHTS > 0\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 boneTextureWidth;\n\t\tuniform int boneTextureHeight;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureWidth ) );\n\t\t\tfloat y = floor( j / float( boneTextureWidth ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureWidth );\n\t\t\tfloat dy = 1.0 / float( boneTextureHeight );\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\tskinned = bindMatrixInverse * skinned;\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:"#define saturate(a) clamp( a, 0.0, 1.0 )\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n return toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n return 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 color *= toneMappingExposure;\n return saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n color = max( vec3( 0.0 ), color - 0.004 );\n return 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 vec4 offsetRepeat;\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 = uv * offsetRepeat.zw + offsetRepeat.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( PHONG ) || defined( PHYSICAL ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\n\t#ifdef USE_SKINNING\n\t\tvec4 worldPosition = modelMatrix * skinned;\n\t#else\n\t\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n\t#endif\n#endif\n",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldPosition;\n#include \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 \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}\n",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n",distanceRGBA_frag:"uniform vec3 lightPos;\nvarying vec4 vWorldPosition;\n#include \n#include \n#include \nvoid main () {\n\t#include \n\tgl_FragColor = packDepthToRGBA( length( vWorldPosition.xyz - lightPos.xyz ) / 1000.0 );\n}\n",distanceRGBA_vert:"varying vec4 vWorldPosition;\n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition;\n}\n",equirect_frag:"uniform sampler2D tEquirect;\nuniform float tFlip;\nvarying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = saturate( tFlip * direction.y * -0.5 + 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 \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}\n",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n}\n",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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 \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_ENVMAP\n\t#include \n\t#include \n\t#include \n\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#include \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 \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n",meshphysical_vert:"#define PHYSICAL\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \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 \n\t#include \n\t#include \n\t#include \n}\n",shadow_frag:"uniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( 0.0, 0.0, 0.0, opacity * ( 1.0 - getShadowMask() ) );\n}\n",shadow_vert:"#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n}\n"};$.prototype={constructor:$,isColor:!0,r:1,g:1,b:1,set:function(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this},setScalar:function(t){return this.b=this.g=this.r=t,this},setHex:function(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this},setRGB:function(t,e,r){return this.r=t,this.g=e,this.b=r,this},setHSL:function(){function t(t,e,r){return 0>r&&(r+=1),1r?e:r<2/3?t+6*(e-t)*(2/3-r):t}return function(e,r,n){return e=ri.euclideanModulo(e,1),r=ri.clamp(r,0,1),n=ri.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=t(n,r,e+1/3),this.g=t(n,r,e),this.b=t(n,r,e-1/3)),this}}(),setStyle:function(t){function e(e){void 0!==e&&1>parseFloat(e)&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}var r;if(r=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(t)){var 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,e(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,e(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 e(r[5]),this.setHSL(n,i,o)}}}else if(r=/^\#([A-Fa-f0-9]+)$/.exec(t)){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 t&&0=s?c/(o+a):c/(2-o-a);switch(o){case r:e=(n-i)/c+(nthis.max.x||t.ythis.max.y)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},getParameter:function(t,e){return(e||new r).set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)},clampPoint:function(t,e){return(e||new r).copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new r;return function(e){return t.copy(e).clamp(this.min,this.max).sub(e).length()}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}};var di=0;q.prototype={constructor:q,isMaterial:!0,get needsUpdate(){return this._needsUpdate},set needsUpdate(t){!0===t&&this.update(),this._needsUpdate=t},setValues:function(t){if(void 0!==t)for(var e in t){var r=t[e];if(void 0===r)console.warn("THREE.Material: '"+e+"' parameter is undefined.");else{var n=this[e];void 0===n?console.warn("THREE."+this.type+": '"+e+"' is not a property of this material."):n&&n.isColor?n.set(r):n&&n.isVector3&&r&&r.isVector3?n.copy(r):this[e]="overdraw"===e?Number(r):r}}},toJSON:function(t){function e(t){var e,r=[];for(e in t){var n=t[e];delete n.metadata,r.push(n)}return r}var r=void 0===t;r&&(t={textures:{},images:{}});var n={metadata:{version:4.4,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()),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(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,n.reflectivity=this.reflectivity),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.size&&(n.size=this.size),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),2!==this.shading&&(n.shading=this.shading),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,0i&&(i=u),h>o&&(o=h),l>a&&(a=l)}this.min.set(e,r,n),this.max.set(i,o,a)},setFromBufferAttribute:function(t){for(var e=1/0,r=1/0,n=1/0,i=-(1/0),o=-(1/0),a=-(1/0),s=0,c=t.count;si&&(i=u),h>o&&(o=h),l>a&&(a=l)}this.min.set(e,r,n),this.max.set(i,o,a)},setFromPoints:function(t){this.makeEmpty();for(var e=0,r=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},getParameter:function(t,e){return(e||new c).set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)},intersectsSphere:function(){var t;return function(e){return void 0===t&&(t=new c),this.clampPoint(e.center,t),t.distanceToSquared(e.center)<=e.radius*e.radius}}(),intersectsPlane:function(t){var e,r;return 0=t.constant},clampPoint:function(t,e){return(e||new c).copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new c;return function(e){return t.copy(e).clamp(this.min,this.max).sub(e).length()}}(),getBoundingSphere:function(){var t=new c;return function(e){return e=e||new Z,this.getCenter(e.center),e.radius=.5*this.getSize(t).length(),e}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},applyMatrix4:function(){var t=[new c,new c,new c,new c,new c,new c,new c,new c];return function(e){return this.isEmpty()?this:(t[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),t[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),t[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),t[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),t[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),t[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),t[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),t[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(t),this)}}(),translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},Z.prototype={constructor:Z,set:function(t,e){return this.center.copy(t),this.radius=e,this},setFromPoints:function(){var t=new K;return function(e,r){var n=this.center;void 0!==r?n.copy(r):t.setFromPoints(e).getCenter(n);for(var i=0,o=0,a=e.length;o=this.radius},containsPoint:function(t){return t.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(t){return t.distanceTo(this.center)-this.radius},intersectsSphere:function(t){var e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e},intersectsBox:function(t){return t.intersectsSphere(this)},intersectsPlane:function(t){return Math.abs(this.center.dot(t.normal)-t.constant)<=this.radius},clampPoint:function(t,e){var r=this.center.distanceToSquared(t),n=e||new c;return n.copy(t),r>this.radius*this.radius&&(n.sub(this.center).normalize(),n.multiplyScalar(this.radius).add(this.center)),n},getBoundingBox:function(t){return t=t||new K,t.set(this.center,this.center),t.expandByScalar(this.radius),t},applyMatrix4:function(t){return this.center.applyMatrix4(t),this.radius*=t.getMaxScaleOnAxis(),this},translate:function(t){return this.center.add(t),this},equals:function(t){return t.center.equals(this.center)&&t.radius===this.radius}},J.prototype={constructor:J,isMatrix3:!0,set:function(t,e,r,n,i,o,a,s,c){var u=this.elements;return u[0]=t,u[1]=n,u[2]=a,u[3]=e,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(t){return t=t.elements,this.set(t[0],t[3],t[6],t[1],t[4],t[7],t[2],t[5],t[8]),this},setFromMatrix4:function(t){return t=t.elements,this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this},applyToVector3Array:function(){var t;return function(e,r,n){void 0===t&&(t=new c),void 0===r&&(r=0),void 0===n&&(n=e.length);for(var i=0;ir;r++)this.elements[r]=t[r+e];return this},toArray:function(t,e){void 0===t&&(t=[]),void 0===e&&(e=0);var r=this.elements;return t[e]=r[0],t[e+1]=r[1],t[e+2]=r[2],t[e+3]=r[3],t[e+4]=r[4],t[e+5]=r[5],t[e+6]=r[6],t[e+7]=r[7],t[e+8]=r[8],t}},Q.prototype={constructor:Q,set:function(t,e){return this.normal.copy(t),this.constant=e,this},setComponents:function(t,e,r,n){return this.normal.set(t,e,r),this.constant=n,this},setFromNormalAndCoplanarPoint:function(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this},setFromCoplanarPoints:function(){var t=new c,e=new c;return function(r,n,i){return n=t.subVectors(i,n).cross(e.subVectors(r,n)).normalize(),this.setFromNormalAndCoplanarPoint(n,r),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.normal.copy(t.normal),this.constant=t.constant,this},normalize:function(){var t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this},negate:function(){return this.constant*=-1,this.normal.negate(),this},distanceToPoint:function(t){return this.normal.dot(t)+this.constant},distanceToSphere:function(t){return this.distanceToPoint(t.center)-t.radius},projectPoint:function(t,e){return this.orthoPoint(t,e).sub(t).negate()},orthoPoint:function(t,e){var r=this.distanceToPoint(t);return(e||new c).copy(this.normal).multiplyScalar(r)},intersectLine:function(){var t=new c;return function(e,r){var n=r||new c,i=e.delta(t),o=this.normal.dot(i);return 0!==o?(o=-(e.start.dot(this.normal)+this.constant)/o,0>o||1e&&0t&&0r;r++)e[r].copy(t.planes[r]);return this},setFromMatrix:function(t){var e=this.planes,r=t.elements;t=r[0];var n=r[1],i=r[2],o=r[3],a=r[4],s=r[5],c=r[6],u=r[7],h=r[8],l=r[9],p=r[10],f=r[11],d=r[12],m=r[13],v=r[14],r=r[15];return e[0].setComponents(o-t,u-a,f-h,r-d).normalize(),e[1].setComponents(o+t,u+a,f+h,r+d).normalize(),e[2].setComponents(o+n,u+s,f+l,r+m).normalize(),e[3].setComponents(o-n,u-s,f-l,r-m).normalize(),e[4].setComponents(o-i,u-c,f-p,r-v).normalize(),e[5].setComponents(o+i,u+c,f+p,r+v).normalize(),this},intersectsObject:function(){var t=new Z;return function(e){var r=e.geometry;return null===r.boundingSphere&&r.computeBoundingSphere(),t.copy(r.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSprite:function(){var t=new Z;return function(e){return t.center.set(0,0,0),t.radius=.7071067811865476,t.applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSphere:function(t){var e=this.planes,r=t.center;t=-t.radius;for(var n=0;6>n;n++)if(e[n].distanceToPoint(r)i;i++){var o=n[i];t.x=0a&&0>o)return!1}return!0}}(),containsPoint:function(t){for(var e=this.planes,r=0;6>r;r++)if(0>e[r].distanceToPoint(t))return!1;return!0}},rt.prototype={constructor:rt,set:function(t,e){return this.origin.copy(t),this.direction.copy(e),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this},at:function(t,e){return(e||new c).copy(this.direction).multiplyScalar(t).add(this.origin)},lookAt:function(t){return this.direction.copy(t).sub(this.origin).normalize(),this},recast:function(){var t=new c;return function(e){return this.origin.copy(this.at(e,t)),this}}(),closestPointToPoint:function(t,e){var r=e||new c;r.subVectors(t,this.origin);var n=r.dot(this.direction);return 0>n?r.copy(this.origin):r.copy(this.direction).multiplyScalar(n).add(this.origin)},distanceToPoint:function(t){return Math.sqrt(this.distanceSqToPoint(t))},distanceSqToPoint:function(){var t=new c;return function(e){var r=t.subVectors(e,this.origin).dot(this.direction);return 0>r?this.origin.distanceToSquared(e):(t.copy(this.direction).multiplyScalar(r).add(this.origin),t.distanceToSquared(e))}}(),distanceSqToSegment:function(){var t=new c,e=new c,r=new c;return function(n,i,o,a){t.copy(n).add(i).multiplyScalar(.5),e.copy(i).sub(n).normalize(),r.copy(this.origin).sub(t);var s,c=.5*n.distanceTo(i),u=-this.direction.dot(e),h=r.dot(this.direction),l=-r.dot(e),p=r.lengthSq(),f=Math.abs(1-u*u);return 0=-s?i<=s?(c=1/f,n*=c,i*=c,u=n*(n+u*i+2*h)+i*(u*n+i+2*l)+p):(i=c,n=Math.max(0,-(u*i+h)),u=-n*n+i*(i+2*l)+p):(i=-c,n=Math.max(0,-(u*i+h)),u=-n*n+i*(i+2*l)+p):i<=-s?(n=Math.max(0,-(-u*c+h)),i=0o?null:(o=Math.sqrt(o-i),i=n-o,n+=o,0>i&&0>n?null:0>i?this.at(n,r):this.at(i,r))}}(),intersectsSphere:function(t){return this.distanceToPoint(t.center)<=t.radius},distanceToPlane:function(t){var e=t.normal.dot(this.direction);return 0===e?0===t.distanceToPoint(this.origin)?0:null:(t=-(this.origin.dot(t.normal)+t.constant)/e,0<=t?t:null)},intersectPlane:function(t,e){var r=this.distanceToPlane(t);return null===r?null:this.at(r,e)},intersectsPlane:function(t){var e=t.distanceToPoint(this.origin);return 0===e||0>t.normal.dot(this.direction)*e},intersectBox:function(t,e){var r,n,i,o,a;n=1/this.direction.x,o=1/this.direction.y,a=1/this.direction.z;var s=this.origin;return 0<=n?(r=(t.min.x-s.x)*n,n*=t.max.x-s.x):(r=(t.max.x-s.x)*n,n*=t.min.x-s.x),0<=o?(i=(t.min.y-s.y)*o,o*=t.max.y-s.y):(i=(t.max.y-s.y)*o,o*=t.min.y-s.y),r>o||i>n?null:((i>r||r!==r)&&(r=i),(oa||i>n?null:((i>r||r!==r)&&(r=i),(an?null:this.at(0<=r?r:n,e)))},intersectsBox:function(){var t=new c;return function(e){return null!==this.intersectBox(e,t)}}(),intersectTriangle:function(){var t=new c,e=new c,r=new c,n=new c;return function(i,o,a,s,c){if(e.subVectors(o,i),r.subVectors(a,i),n.crossVectors(e,r),0<(o=this.direction.dot(n))){if(s)return null;s=1}else{if(!(0>o))return null;s=-1,o=-o}return t.subVectors(this.origin,i),0>(i=s*this.direction.dot(r.crossVectors(t,r)))?null:0>(a=s*this.direction.dot(e.cross(t)))||i+a>o?null:(i=-s*t.dot(n),0>i?null:this.at(i/o,c))}}(),applyMatrix4:function(t){return this.direction.add(this.origin).applyMatrix4(t),this.origin.applyMatrix4(t),this.direction.sub(this.origin),this.direction.normalize(),this},equals:function(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}},nt.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" "),nt.DefaultOrder="XYZ",nt.prototype={constructor:nt,isEuler:!0,get x(){return this._x},set x(t){this._x=t,this.onChangeCallback()},get y(){return this._y},set y(t){this._y=t,this.onChangeCallback()},get z(){return this._z},set z(t){this._z=t,this.onChangeCallback()},get order(){return this._order},set order(t){this._order=t,this.onChangeCallback()},set:function(t,e,r,n){return this._x=t,this._y=e,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(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this.onChangeCallback(),this},setFromRotationMatrix:function(t,e,r){var n=ri.clamp,i=t.elements;t=i[0];var o=i[4],a=i[8],s=i[1],c=i[5],u=i[9],h=i[2],l=i[6],i=i[10];return e=e||this._order,"XYZ"===e?(this._y=Math.asin(n(a,-1,1)),.99999>Math.abs(a)?(this._x=Math.atan2(-u,i),this._z=Math.atan2(-o,t)):(this._x=Math.atan2(l,c),this._z=0)):"YXZ"===e?(this._x=Math.asin(-n(u,-1,1)),.99999>Math.abs(u)?(this._y=Math.atan2(a,i),this._z=Math.atan2(s,c)):(this._y=Math.atan2(-h,t),this._z=0)):"ZXY"===e?(this._x=Math.asin(n(l,-1,1)),.99999>Math.abs(l)?(this._y=Math.atan2(-h,i),this._z=Math.atan2(-o,c)):(this._y=0,this._z=Math.atan2(s,t))):"ZYX"===e?(this._y=Math.asin(-n(h,-1,1)),.99999>Math.abs(h)?(this._x=Math.atan2(l,i),this._z=Math.atan2(s,t)):(this._x=0,this._z=Math.atan2(-o,c))):"YZX"===e?(this._z=Math.asin(n(s,-1,1)),.99999>Math.abs(s)?(this._x=Math.atan2(-u,c),this._y=Math.atan2(-h,t)):(this._x=0,this._y=Math.atan2(a,i))):"XZY"===e?(this._z=Math.asin(-n(o,-1,1)),.99999>Math.abs(o)?(this._x=Math.atan2(l,c),this._y=Math.atan2(a,t)):(this._x=Math.atan2(-u,i),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+e),this._order=e,!1!==r&&this.onChangeCallback(),this},setFromQuaternion:function(){var t;return function(e,r,n){ -return void 0===t&&(t=new u),t.makeRotationFromQuaternion(e),this.setFromRotationMatrix(t,r,n)}}(),setFromVector3:function(t,e){return this.set(t.x,t.y,t.z,e||this._order)},reorder:function(){var t=new s;return function(e){return t.setFromEuler(this),this.setFromQuaternion(t,e)}}(),equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order},fromArray:function(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this.onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t},toVector3:function(t){return t?t.set(this._x,this._y,this._z):new c(this._x,this._y,this._z)},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}},it.prototype={constructor:it,set:function(t){this.mask=1<=e.x+e.y}}(),st.prototype={constructor:st,set:function(t,e,r){return this.a.copy(t),this.b.copy(e),this.c.copy(r),this},setFromPointsAndIndices:function(t,e,r,n){return this.a.copy(t[e]),this.b.copy(t[r]),this.c.copy(t[n]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this},area:function(){var t=new c,e=new c;return function(){return t.subVectors(this.c,this.b),e.subVectors(this.a,this.b),.5*t.cross(e).length()}}(),midpoint:function(t){return(t||new c).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(t){return st.normal(this.a,this.b,this.c,t)},plane:function(t){return(t||new Q).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(t,e){return st.barycoordFromPoint(t,this.a,this.b,this.c,e)},containsPoint:function(t){return st.containsPoint(t,this.a,this.b,this.c)},closestPointToPoint:function(){var t,e,r,n;return function(i,o){void 0===t&&(t=new Q,e=[new at,new at,new at],r=new c,n=new c);var a=o||new c,s=1/0;if(t.setFromCoplanarPoints(this.a,this.b,this.c),t.projectPoint(i,r),!0===this.containsPoint(r))a.copy(r);else{e[0].set(this.a,this.b),e[1].set(this.b,this.c),e[2].set(this.c,this.a);for(var u=0;ut;t++)if(a[t]===a[(t+1)%3]){n.push(e);break}for(e=n.length-1;0<=e;e--)for(a=n[e],this.faces.splice(a,1),o=0,r=this.faceVertexUvs.length;oe.far?null:{distance:r,point:_.clone(),object:t})}function n(r,n,i,o,a,c,u,p){return s.fromArray(o,3*c),h.fromArray(o,3*u),l.fromArray(o,3*p),(r=e(r,n,i,s,h,l,b))&&(a&&(m.fromArray(a,2*c),v.fromArray(a,2*u),g.fromArray(a,2*p),r.uv=t(b,s,h,l,m,v,g)),r.face=new ct(c,u,p,st.normal(s,h,l)),r.faceIndex=c),r}var i=new u,o=new rt,a=new Z,s=new c,h=new c,l=new c,p=new c,f=new c,d=new c,m=new r,v=new r,g=new r,y=new c,b=new c,_=new c;return function(r,c){var u=this.geometry,y=this.material,_=this.matrixWorld;if(void 0!==y&&(null===u.boundingSphere&&u.computeBoundingSphere(),a.copy(u.boundingSphere),a.applyMatrix4(_),!1!==r.ray.intersectsSphere(a)&&(i.getInverse(_),o.copy(r.ray).applyMatrix4(i),null===u.boundingBox||!1!==o.intersectsBox(u.boundingBox)))){var x,w;if(u.isBufferGeometry){var S,M,y=u.index,_=u.attributes,u=_.position.array;if(void 0!==_.uv&&(x=_.uv.array),null!==y)for(var _=y.array,E=0,T=_.length;Ethis.scale.x*this.scale.y/4||r.push({distance:Math.sqrt(n),point:this.position,face:null,object:this})}}(),clone:function(){return new this.constructor(this.material).copy(this)}}),se.prototype=Object.assign(Object.create(ot.prototype),{constructor:se,copy:function(t){ot.prototype.copy.call(this,t,!1),t=t.levels;for(var e=0,r=t.length;e=n[i].distance;i++)n[i-1].object.visible=!1,n[i].object.visible=!0;for(;io||(l.applyMatrix4(this.matrixWorld),(v=n.ray.origin.distanceTo(l))n.far||i.push({distance:v,point:s.clone().applyMatrix4(this.matrixWorld),index:a,face:null,faceIndex:null,object:this}))}else for(a=0,m=d.length/3-1;ao||(l.applyMatrix4(this.matrixWorld),(v=n.ray.origin.distanceTo(l))n.far||i.push({distance:v,point:s.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;ao||(l.applyMatrix4(this.matrixWorld),(v=n.ray.origin.distanceTo(l))n.far||i.push({distance:v,point:s.clone().applyMatrix4(this.matrixWorld),index:a,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),fe.prototype=Object.assign(Object.create(pe.prototype),{constructor:fe,isLineSegments:!0}),de.prototype=Object.create(q.prototype),de.prototype.constructor=de,de.prototype.isPointsMaterial=!0,de.prototype.copy=function(t){return q.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this},me.prototype=Object.assign(Object.create(ot.prototype),{constructor:me,isPoints:!0,raycast:function(){var t=new u,e=new rt,r=new Z;return function(n,i){function o(t,r){var o=e.distanceSqToPoint(t);if(on.far||i.push({distance:c,distanceToRay:Math.sqrt(o),point:s.clone(),index:r,face:null,object:a})}}var a=this,s=this.geometry,u=this.matrixWorld,h=n.params.Points.threshold;if(null===s.boundingSphere&&s.computeBoundingSphere(),r.copy(s.boundingSphere),r.applyMatrix4(u),!1!==n.ray.intersectsSphere(r)){t.getInverse(u),e.copy(n.ray).applyMatrix4(t);var h=h/((this.scale.x+this.scale.y+this.scale.z)/3),l=h*h,h=new c;if(s.isBufferGeometry){var p=s.index,s=s.attributes.position.array;if(null!==p)for(var f=p.array,p=0,d=f.length;pr)return null;var n,i,o,a=[],s=[],c=[];if(0=u--){console.warn("THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()");break}n=i,r<=n&&(n=0),i=n+1,r<=i&&(i=0),o=i+1,r<=o&&(o=0);var h;t:{var l,p,f,d,m,v,g,y;if(l=t[s[n]].x,p=t[s[n]].y,f=t[s[i]].x,d=t[s[i]].y,m=t[s[o]].x,v=t[s[o]].y,0>=(f-l)*(v-p)-(d-p)*(m-l))h=!1;else{var b,_,x,w,S,M,E,T,C,O;for(b=m-f,_=v-d,x=l-m,w=p-v,S=f-l,M=d-p,h=0;h=-Number.EPSILON&&T>=-Number.EPSILON&&E>=-Number.EPSILON)){h=!1;break t}h=!0}}if(h){for(a.push([t[s[n]],t[s[i]],t[s[o]]]),c.push([s[n],s[i],s[o]]),n=i,o=i+1;oNumber.EPSILON){if(0f||f>p)return[];if(0>(c=u*h-c*l)||c>p)return[]}else{if(0r?[]:c===r?o?[]:[a]:t<=r?[a,s]:[a,u]))}function o(t,e,r,n){var i=e.x-t.x,o=e.y-t.y;e=r.x-t.x,r=r.y-t.y;var a=n.x-t.x;return n=n.y-t.y,t=i*r-o*e,i=i*n-o*a,Math.abs(t)>Number.EPSILON?(e=a*r-n*e,0--g){console.log("Infinite Loop! Holes left:"+d.length+", Probably Hole outside Shape!");break}for(a=h;ai&&(i=n);var a=t+1;return a>n&&(a=0),!!(n=o(f[t],f[i],f[a],r[e]))&&(n=r.length-1,i=e-1,0>i&&(i=n),a=e+1,a>n&&(a=0),!!(n=o(r[e],r[i],r[a],f[t])))}(a,l)&&!function(t,e){var r,n;for(r=0;rc;c++)h=u[c].x+":"+u[c].y,void 0!==(h=l[h])&&(u[c]=h);return p.concat()},isClockWise:function(t){return 0>yi.area(t)},b2:function(){return function(t,e,r,n){var i=1-t;return i*i*e+2*(1-t)*t*r+t*t*n}}(),b3:function(){return function(t,e,r,n,i){var o=1-t,a=1-t;return o*o*o*e+3*a*a*t*r+3*(1-t)*t*t*n+t*t*t*i}}()};Be.prototype=Object.create(xt.prototype),Be.prototype.constructor=Be,Be.prototype.addShapeList=function(t,e){for(var r=t.length,n=0;nNumber.EPSILON){var u=Math.sqrt(c),h=Math.sqrt(i*i+s*s),c=e.x-a/u;if(e=e.y+o/u,s=((n.x-s/h-c)*s-(n.y+i/h-e)*i)/(o*s-a*i),i=c+o*s-t.x,o=e+a*s-t.y,2>=(a=i*i+o*o))return new r(i,o);a=Math.sqrt(a/2)}else t=!1,o>Number.EPSILON?i>Number.EPSILON&&(t=!0):o<-Number.EPSILON?i<-Number.EPSILON&&(t=!0):Math.sign(a)===Math.sign(s)&&(t=!0),t?(i=-a,a=Math.sqrt(c)):(i=o,o=a,a=Math.sqrt(c/2));return new r(i/a,o/a)}function o(t,e){var r,n;for(B=t.length;0<=--B;){r=B,n=B-1,0>n&&(n=t.length-1);var i,o=_+2*g;for(i=0;iMath.abs(e.y-n.y)?[new r(e.x,1-e.z),new r(n.x,1-n.z),new r(i.x,1-i.z),new r(o.x,1-o.z)]:[new r(e.y,1-e.z),new r(n.y,1-n.z),new r(i.y,1-i.z),new r(o.y,1-o.z)]}},ze.prototype=Object.create(Be.prototype),ze.prototype.constructor=ze,$e.prototype=Object.create(wt.prototype),$e.prototype.constructor=$e,Ge.prototype=Object.create(xt.prototype),Ge.prototype.constructor=Ge,Ve.prototype=Object.create(wt.prototype),Ve.prototype.constructor=Ve,He.prototype=Object.create(xt.prototype),He.prototype.constructor=He,We.prototype=Object.create(xt.prototype),We.prototype.constructor=We,qe.prototype=Object.create(wt.prototype),qe.prototype.constructor=qe,Xe.prototype=Object.create(xt.prototype),Xe.prototype.constructor=Xe,Ye.prototype=Object.create(wt.prototype),Ye.prototype.constructor=Ye,Ke.prototype=Object.create(xt.prototype),Ke.prototype.constructor=Ke,Ze.prototype=Object.create(wt.prototype),Ze.prototype.constructor=Ze,Je.prototype=Object.create(wt.prototype),Je.prototype.constructor=Je,Qe.prototype=Object.create(xt.prototype),Qe.prototype.constructor=Qe,tr.prototype=Object.create(Qe.prototype),tr.prototype.constructor=tr,er.prototype=Object.create(Je.prototype),er.prototype.constructor=er,rr.prototype=Object.create(wt.prototype),rr.prototype.constructor=rr,nr.prototype=Object.create(xt.prototype),nr.prototype.constructor=nr,ir.prototype=Object.create(xt.prototype),ir.prototype.constructor=ir;var bi=Object.freeze({WireframeGeometry:xe,ParametricGeometry:Se,ParametricBufferGeometry:we,TetrahedronGeometry:Te,TetrahedronBufferGeometry:Ee,OctahedronGeometry:Oe,OctahedronBufferGeometry:Ce,IcosahedronGeometry:Ae,IcosahedronBufferGeometry:Pe, -DodecahedronGeometry:Re,DodecahedronBufferGeometry:je,PolyhedronGeometry:Le,PolyhedronBufferGeometry:Me,TubeGeometry:Ie,TubeBufferGeometry:Ne,TorusKnotGeometry:ke,TorusKnotBufferGeometry:De,TorusGeometry:Ue,TorusBufferGeometry:Fe,TextGeometry:ze,SphereBufferGeometry:$e,SphereGeometry:Ge,RingGeometry:He,RingBufferGeometry:Ve,PlaneBufferGeometry:Et,PlaneGeometry:We,LatheGeometry:Xe,LatheBufferGeometry:qe,ShapeGeometry:Ke,ShapeBufferGeometry:Ye,ExtrudeGeometry:Be,EdgesGeometry:Ze,ConeGeometry:tr,ConeBufferGeometry:er,CylinderGeometry:Qe,CylinderBufferGeometry:Je,CircleBufferGeometry:rr,CircleGeometry:nr,BoxBufferGeometry:Mt,BoxGeometry:ir});or.prototype=Object.create(X.prototype),or.prototype.constructor=or,or.prototype.isShadowMaterial=!0,ar.prototype=Object.create(X.prototype),ar.prototype.constructor=ar,ar.prototype.isRawShaderMaterial=!0,sr.prototype={constructor:sr,isMultiMaterial:!0,toJSON:function(t){for(var e={metadata:{version:4.2,type:"material",generator:"MaterialExporter"},uuid:this.uuid,type:this.type,materials:[]},r=this.materials,n=0,i=r.length;n=i)break t;for(o=e[1],t=i)break e}n=r,r=0}for(;r>>1,te;)--o;return++o,0===i&&o===n||(i>=o&&(o=Math.max(o,1),i=o-1),n=this.getValueSize(),this.times=Si.arraySlice(r,i,o),this.values=Si.arraySlice(this.values,i*n,o*n)),this},validate:function(){var t=!0,e=this.getValueSize();0!=e-Math.floor(e)&&(console.error("invalid value size in track",this),t=!1);var r=this.times,e=this.values,n=r.length;0===n&&(console.error("track is empty",this),t=!1);for(var i=null,o=0;o!==n;o++){var a=r[o];if("number"==typeof a&&isNaN(a)){console.error("time is not a valid number",this,o,a),t=!1;break}if(null!==i&&i>a){console.error("out of order keys",this,o,a,i),t=!1;break}i=a}if(void 0!==e&&Si.isTypedArray(e))for(o=0,r=e.length;o!==r;++o)if(n=e[o],isNaN(n)){console.error("value is not a valid number",this,o,n),t=!1;break}return t},optimize:function(){for(var t=this.times,e=this.values,r=this.getValueSize(),n=2302===this.getInterpolation(),i=1,o=t.length-1,a=1;au.opacity&&(u.transparent=!0),r.setTextures(c),r.parse(u)}}()},qr.Handlers={handlers:[],add:function(t,e){this.handlers.push(t,e)},get:function(t){for(var e=this.handlers,r=0,n=e.length;ro;o++)p=y[s++],g=v[2*p],p=v[2*p+1],g=new r(g,p),2!==o&&n.faceVertexUvs[i][a].push(g),0!==o&&n.faceVertexUvs[i][a+1].push(g);if(l&&(l=3*y[s++],f.normal.set(b[l++],b[l++],b[l]),m.normal.copy(f.normal)),d)for(i=0;4>i;i++)l=3*y[s++],d=new c(b[l++],b[l++],b[l]),2!==i&&f.vertexNormals.push(d),0!==i&&m.vertexNormals.push(d);if(h&&(h=y[s++],h=_[h],f.color.setHex(h),m.color.setHex(h)),e)for(i=0;4>i;i++)h=y[s++],h=_[h],2!==i&&f.vertexColors.push(new $(h)),0!==i&&m.vertexColors.push(new $(h));n.faces.push(f),n.faces.push(m)}else{if(f=new ct,f.a=y[s++],f.b=y[s++],f.c=y[s++],a&&(a=y[s++],f.materialIndex=a),a=n.faces.length,i)for(i=0;io;o++)p=y[s++],g=v[2*p],p=v[2*p+1],g=new r(g,p),n.faceVertexUvs[i][a].push(g);if(l&&(l=3*y[s++],f.normal.set(b[l++],b[l++],b[l])),d)for(i=0;3>i;i++)l=3*y[s++],d=new c(b[l++],b[l++],b[l]),f.vertexNormals.push(d);if(h&&(h=y[s++],f.color.setHex(_[h])),e)for(i=0;3>i;i++)h=y[s++],f.vertexColors.push(new $(_[h]));n.faces.push(f)}}(o),function(){var e=void 0!==t.influencesPerVertex?t.influencesPerVertex:2;if(t.skinWeights)for(var r=0,o=t.skinWeights.length;r(a=i[r]-n))s=r+1;else{if(!(0e&&(e=0),1Number.EPSILON&&(h.normalize(),i=Math.acos(ri.clamp(o[r-1].dot(o[r]),-1,1)),a[r].applyMatrix4(l.makeRotationAxis(h,i))),s[r].crossVectors(o[r],a[r]);if(!0===e)for(i=Math.acos(ri.clamp(a[0].dot(a[t]),-1,1)),i/=t,0=e)return e=r[t]-e,t=this.curves[t],r=t.getLength(),t.getPointAt(0===r?0:1-e/r);t++}return null},getLength:function(){var t=this.getCurveLengths();return t[t.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var t=[],e=0,r=0,n=this.curves.length;rn;)n+=e;for(;n>e;)n-=e;ne.length-2?e.length-1:n+1],e=e[n>e.length-3?e.length-1:n+2],n=Ei.interpolate;return new r(n(i.x,o.x,a.x,e.x,t),n(i.y,o.y,a.y,e.y,t))},en.prototype=Object.create(Kr.prototype),en.prototype.constructor=en,en.prototype.getPoint=function(t){var e=yi.b3;return new r(e(t,this.v0.x,this.v1.x,this.v2.x,this.v3.x),e(t,this.v0.y,this.v1.y,this.v2.y,this.v3.y))},en.prototype.getTangent=function(t){var e=Ei.tangentCubicBezier;return new r(e(t,this.v0.x,this.v1.x,this.v2.x,this.v3.x),e(t,this.v0.y,this.v1.y,this.v2.y,this.v3.y)).normalize()},rn.prototype=Object.create(Kr.prototype),rn.prototype.constructor=rn,rn.prototype.getPoint=function(t){var e=yi.b2;return new r(e(t,this.v0.x,this.v1.x,this.v2.x),e(t,this.v0.y,this.v1.y,this.v2.y))},rn.prototype.getTangent=function(t){var e=Ei.tangentQuadraticBezier;return new r(e(t,this.v0.x,this.v1.x,this.v2.x),e(t,this.v0.y,this.v1.y,this.v2.y)).normalize()};var Ti=Object.assign(Object.create(Jr.prototype),{fromPoints:function(t){this.moveTo(t[0].x,t[0].y);for(var e=1,r=t.length;eNumber.EPSILON){if(0>u&&(a=e[o],c=-c,s=e[i],u=-u),!(t.ys.y))if(t.y===a.y){if(t.x===a.x)return!0}else{if(0===(i=u*(t.x-a.x)-c*(t.y-a.y)))return!0;0>i||(n=!n)}}else if(t.y===a.y&&(s.x<=t.x&&t.x<=a.x||a.x<=t.x&&t.x<=s.x))return!0}return n})(f.p,l[m].p)&&(n!==m&&a.push({froms:n,tos:m,hole:u}),h?(h=!1,s[m].push(f)):d=!0);h&&s[n].push(f)}0n&&this._mixBufferRegion(r,t,3*e,1-n,e);for(var n=e,o=e+e;n!==o;++n)if(r[n]!==r[n+e]){i.setValue(r,t);break}},saveOriginalState:function(){var t=this.buffer,e=this.valueSize,r=3*e;this.binding.getValue(t,r);for(var n=e;n!==r;++n)t[n]=t[r+n%e];this.cumulativeWeight=0}, -restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(t,e,r,n,i){if(.5<=n)for(n=0;n!==i;++n)t[e+n]=t[r+n]},_slerp:function(t,e,r,n,i){s.slerpFlat(t,e,t,e,t,r,n)},_lerp:function(t,e,r,n,i){for(var o=1-n,a=0;a!==i;++a){var s=e+a;t[s]=t[s]*o+t[r+a]*n}}},yn.prototype={constructor:yn,getValue:function(t,e){this.bind(),this.getValue(t,e)},setValue:function(t,e){this.bind(),this.setValue(t,e)},bind:function(){var t=this.node,e=this.parsedPath,r=e.objectName,n=e.propertyName,i=e.propertyIndex;if(t||(this.node=t=yn.findNode(this.rootNode,e.nodeName)||this.rootNode),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,t){if(r){var o=e.objectIndex;switch(r){case"materials":if(!t.material)return void console.error(" can not bind to material as node does not have a material",this);if(!t.material.materials)return void console.error(" can not bind to material.materials as node.material does not have a materials array",this);t=t.material.materials;break;case"bones":if(!t.skeleton)return void console.error(" can not bind to bones as node does not have a skeleton",this);for(t=t.skeleton.bones,r=0;r=r){var l=r++,p=e[l];for(n[p.uuid]=h,e[h]=p,n[u]=l,e[l]=c,c=0,u=o;c!==u;++c){var p=i[c],f=p[h];p[h]=p[l],p[l]=f}}}this.nCachedObjects_=r},uncache:function(t){for(var e=this._objects,r=e.length,n=this.nCachedObjects_,i=this._indicesByUUID,o=this._bindings,a=o.length,s=0,c=arguments.length;s!==c;++s){var u=arguments[s].uuid,h=i[u];if(void 0!==h)if(delete i[u],h(e=(t-i)*r)||0===r)return;this._startTime=null,e*=r}if(e*=this._updateTimeScale(t),r=this._updateTime(e),0<(t=this._updateWeight(t))){e=this._interpolants;for(var i=this._propertyBindings,o=0,a=e.length;o!==a;++o)e[o].evaluate(r),i[o].accumulate(n,t)}},_updateWeight:function(t){var e=0;if(this.enabled){var e=this.weight,r=this._weightInterpolant;if(null!==r){var n=r.evaluate(t)[0],e=e*n;t>r.parameterPositions[1]&&(this.stopFading(),0===n&&(this.enabled=!1))}}return this._effectiveWeight=e},_updateTimeScale:function(t){var e=0;if(!this.paused){var e=this.timeScale,r=this._timeScaleInterpolant;if(null!==r){var n=r.evaluate(t)[0],e=e*n;t>r.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e},_updateTime:function(t){var e=this.time+t;if(0===t)return e;var r=this._clip.duration,n=this.loop,i=this._loopCount;if(2200===n)t:{if(-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1)),e>=r)e=r;else{if(!(0>e))break t;e=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this._mixer.dispatchEvent({type:"finished",action:this,direction:0>t?-1:1})}else{if(n=2202===n,-1===i&&(0<=t?(i=0,this._setEndings(!0,0===this.repetitions,n)):this._setEndings(0===this.repetitions,!0,n)),e>=r||0>e){var o=Math.floor(e/r),e=e-r*o,i=i+Math.abs(o),a=this.repetitions-i;0>a?(this.clampWhenFinished?this.paused=!0:this.enabled=!1,e=0t,this._setEndings(t,!t,n)):this._setEndings(!1,!1,n),this._loopCount=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:o}))}if(n&&1==(1&i))return this.time=e,r-e}return this.time=e},_setEndings:function(t,e,r){var n=this._interpolantSettings;r?(n.endingStart=2401,n.endingEnd=2401):(n.endingStart=t?this.zeroSlopeAtStart?2401:2400:2402,n.endingEnd=e?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(t,e,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]=e,n[1]=i+t,o[1]=r,this}},Object.assign(xn.prototype,e.prototype,{clipAction:function(t,e){var r=e||this._root,n=r.uuid,i="string"==typeof t?Vr.findByName(r,t):t,r=null!==i?i.uuid:t,o=this._actionsByClip[r],a=null;if(void 0!==o){if(void 0!==(a=o.actionByRoot[n]))return a;a=o.knownActions[0],null===i&&(i=a._clip)}return null===i?null:(i=new _n(this,i,e),this._bindAction(i,a),this._addInactiveAction(i,r,n),i)},existingAction:function(t,e){var r=e||this._root,n=r.uuid,r="string"==typeof t?Vr.findByName(r,t):t,r=this._actionsByClip[r?r.uuid:t];return void 0!==r?r.actionByRoot[n]||null:null},stopAllAction:function(){for(var t=this._actions,e=this._nActiveActions,r=this._bindings,n=this._nActiveBindings,i=this._nActiveBindings=this._nActiveActions=0;i!==e;++i)t[i].reset();for(i=0;i!==n;++i)r[i].useCount=0;return this},update:function(t){t*=this.timeScale;for(var e=this._actions,r=this._nActiveActions,n=this.time+=t,i=Math.sign(t),o=this._accuIndex^=1,a=0;a!==r;++a){var s=e[a];s.enabled&&s._update(n,t,i,o)}for(t=this._bindings,e=this._nActiveBindings,a=0;a!==e;++a)t[a].apply(o);return this},getRoot:function(){return this._root},uncacheClip:function(t){var e=this._actions;t=t.uuid;var r=this._actionsByClip,n=r[t];if(void 0!==n){for(var n=n.knownActions,i=0,o=n.length;i!==o;++i){var a=n[i];this._deactivateAction(a);var s=a._cacheIndex,c=e[e.length-1];a._cacheIndex=null,a._byClipCacheIndex=null,c._cacheIndex=s,e[s]=c,e.pop(),this._removeInactiveBindingsForAction(a)}delete r[t]}},uncacheRoot:function(t){t=t.uuid;var e,r=this._actionsByClip;for(e in r){var n=r[e].actionByRoot[t];void 0!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}if(void 0!==(e=this._bindingsByRootAndName[t]))for(var i in e)t=e[i],t.restoreOriginalState(),this._removeInactiveBinding(t)},uncacheAction:function(t,e){var r=this.existingAction(t,e);null!==r&&(this._deactivateAction(r),this._removeInactiveAction(r))}}),Object.assign(xn.prototype,{_bindAction:function(t,e){var r=t._localRoot||this._root,n=t._clip.tracks,i=n.length,o=t._propertyBindings,a=t._interpolants,s=r.uuid,c=this._bindingsByRootAndName,u=c[s];for(void 0===u&&(u={},c[s]=u),c=0;c!==i;++c){var h=n[c],l=h.name,p=u[l];if(void 0===p){if(void 0!==(p=o[c])){null===p._cacheIndex&&(++p.referenceCount,this._addInactiveBinding(p,s,l));continue}p=new gn(yn.create(r,l,e&&e._propertyBindings[c].binding.parsedPath),h.ValueTypeName,h.getValueSize()),++p.referenceCount,this._addInactiveBinding(p,s,l)}o[c]=p,a[c].resultBuffer=p.buffer}},_activateAction:function(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){var e=(t._localRoot||this._root).uuid,r=t._clip.uuid,n=this._actionsByClip[r];this._bindAction(t,n&&n.knownActions[0]),this._addInactiveAction(t,r,e)}for(e=t._propertyBindings,r=0,n=e.length;r!==n;++r){var i=e[r];0==i.useCount++&&(this._lendBinding(i),i.saveOriginalState())}this._lendAction(t)}},_deactivateAction:function(t){if(this._isActiveAction(t)){for(var e=t._propertyBindings,r=0,n=e.length;r!==n;++r){var i=e[r];0==--i.useCount&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(t)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}},_isActiveAction:function(t){return null!==(t=t._cacheIndex)&&ta.end&&(a.end=i),e||(e=s)}}for(s in r)a=r[s],this.createAnimation(s,a.start,a.end,t);this.firstAnimation=e},Nn.prototype.setAnimationDirectionForward=function(t){(t=this.animationsMap[t])&&(t.direction=1,t.directionBackwards=!1)},Nn.prototype.setAnimationDirectionBackward=function(t){(t=this.animationsMap[t])&&(t.direction=-1,t.directionBackwards=!0)},Nn.prototype.setAnimationFPS=function(t,e){var r=this.animationsMap[t];r&&(r.fps=e,r.duration=(r.end-r.start)/r.fps)},Nn.prototype.setAnimationDuration=function(t,e){var r=this.animationsMap[t];r&&(r.duration=e,r.fps=(r.end-r.start)/r.duration)},Nn.prototype.setAnimationWeight=function(t,e){var r=this.animationsMap[t];r&&(r.weight=e)},Nn.prototype.setAnimationTime=function(t,e){var r=this.animationsMap[t];r&&(r.time=e)},Nn.prototype.getAnimationTime=function(t){var e=0;return(t=this.animationsMap[t])&&(e=t.time),e},Nn.prototype.getAnimationDuration=function(t){var e=-1;return(t=this.animationsMap[t])&&(e=t.duration),e},Nn.prototype.playAnimation=function(t){var e=this.animationsMap[t];e?(e.time=0,e.active=!0):console.warn("THREE.MorphBlendMesh: animation["+t+"] undefined in .playAnimation()")},Nn.prototype.stopAnimation=function(t){(t=this.animationsMap[t])&&(t.active=!1)},Nn.prototype.update=function(t){for(var e=0,r=this.animationsList.length;en.duration||0>n.time)&&(n.direction*=-1,n.time>n.duration&&(n.time=n.duration,n.directionBackwards=!0),0>n.time&&(n.time=0,n.directionBackwards=!1)):(n.time%=n.duration,0>n.time&&(n.time+=n.duration));var o=n.start+ri.clamp(Math.floor(n.time/i),0,n.length-1),a=n.weight;o!==n.currentFrame&&(this.morphTargetInfluences[n.lastFrame]=0,this.morphTargetInfluences[n.currentFrame]=1*a,this.morphTargetInfluences[o]=0,n.lastFrame=n.currentFrame,n.currentFrame=o),i=n.time%i/i,n.directionBackwards&&(i=1-i),n.currentFrame!==n.lastFrame?(this.morphTargetInfluences[n.currentFrame]=i*a,this.morphTargetInfluences[n.lastFrame]=(1-i)*a):this.morphTargetInfluences[n.currentFrame]=a}}},In.prototype=Object.create(ot.prototype),In.prototype.constructor=In,In.prototype.isImmediateRenderObject=!0,Dn.prototype=Object.create(fe.prototype),Dn.prototype.constructor=Dn,Dn.prototype.update=function(){var t=new c,e=new c,r=new J;return function(){var n=["a","b","c"];this.object.updateMatrixWorld(!0),r.getNormalMatrix(this.object.matrixWorld);var i=this.object.matrixWorld,o=this.geometry.attributes.position,a=this.object.geometry;if(a&&a.isGeometry)for(var s=a.vertices,c=a.faces,u=a=0,h=c.length;ur.y?this.quaternion.set(1,0,0,0):(e.set(r.z,0,-r.x).normalize(),t=Math.acos(r.y),this.quaternion.setFromAxisAngle(e,t))}}(),Xn.prototype.setLength=function(t,e,r){void 0===e&&(e=.2*t),void 0===r&&(r=.2*e),this.line.scale.set(1,Math.max(0,t-e),1),this.line.updateMatrix(),this.cone.scale.set(r,e,r),this.cone.position.y=t,this.cone.updateMatrix()},Xn.prototype.setColor=function(t){this.line.material.color.copy(t),this.cone.material.color.copy(t)},Yn.prototype=Object.create(fe.prototype),Yn.prototype.constructor=Yn;var ji=function(){function t(){}var e=new c,r=new t,n=new t,i=new t;return t.prototype.init=function(t,e,r,n){this.c0=t,this.c1=r,this.c2=-3*t+3*e-2*r-n,this.c3=2*t-2*e+r+n},t.prototype.initNonuniformCatmullRom=function(t,e,r,n,i,o,a){this.init(e,r,((e-t)/i-(r-t)/(i+o)+(r-e)/o)*o,((r-e)/o-(n-e)/(o+a)+(n-r)/a)*o)},t.prototype.initCatmullRom=function(t,e,r,n,i){this.init(e,r,i*(r-t),i*(n-e))},t.prototype.calc=function(t){var e=t*t;return this.c0+this.c1*t+this.c2*e+this.c3*e*t},Kr.create(function(t){this.points=t||[],this.closed=!1},function(t){var o,a,s=this.points;a=s.length,2>a&&console.log("duh, you need at least 2 points"),t*=a-(this.closed?0:1),o=Math.floor(t),t-=o,this.closed?o+=0o&&(o=1),1e-4>a&&(a=o),1e-4>p&&(p=o),r.initNonuniformCatmullRom(u.x,h.x,l.x,s.x,a,o,p),n.initNonuniformCatmullRom(u.y,h.y,l.y,s.y,a,o,p),i.initNonuniformCatmullRom(u.z,h.z,l.z,s.z,a,o,p)}else"catmullrom"===this.type&&(a=void 0!==this.tension?this.tension:.5,r.initCatmullRom(u.x,h.x,l.x,s.x,a),n.initCatmullRom(u.y,h.y,l.y,s.y,a),i.initCatmullRom(u.z,h.z,l.z,s.z,a));return new c(r.calc(t),n.calc(t),i.calc(t))})}(),Ri=Kr.create(function(t){console.warn("THREE.SplineCurve3 will be deprecated. Please use THREE.CatmullRomCurve3"),this.points=void 0===t?[]:t},function(t){var e=this.points;t*=e.length-1;var r=Math.floor(t);t-=r;var n=e[0==r?r:r-1],i=e[r],o=e[r>e.length-2?e.length-1:r+1],e=e[r>e.length-3?e.length-1:r+2],r=Ei.interpolate;return new c(r(n.x,i.x,o.x,e.x,t),r(n.y,i.y,o.y,e.y,t),r(n.z,i.z,o.z,e.z,t))}),Li=Kr.create(function(t,e,r,n){this.v0=t,this.v1=e,this.v2=r,this.v3=n},function(t){var e=yi.b3;return new c(e(t,this.v0.x,this.v1.x,this.v2.x,this.v3.x),e(t,this.v0.y,this.v1.y,this.v2.y,this.v3.y),e(t,this.v0.z,this.v1.z,this.v2.z,this.v3.z))}),Ni=Kr.create(function(t,e,r){this.v0=t,this.v1=e,this.v2=r},function(t){var e=yi.b2;return new c(e(t,this.v0.x,this.v1.x,this.v2.x),e(t,this.v0.y,this.v1.y,this.v2.y),e(t,this.v0.z,this.v1.z,this.v2.z))}),Ii=Kr.create(function(t,e){this.v1=t,this.v2=e},function(t){if(1===t)return this.v2.clone();var e=new c;return e.subVectors(this.v2,this.v1),e.multiplyScalar(t),e.add(this.v1),e});Kn.prototype=Object.create(Qr.prototype),Kn.prototype.constructor=Kn,Zn.prototype=Object.create(ji.prototype),$n.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},Object.assign(V.prototype,{center:function(t){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},size:function(t){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(t)}}),Object.assign(K.prototype,{center:function(t){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionSphere:function(t){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},size:function(t){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(t)}}),at.prototype.center=function(t){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(t)},ri.random16=function(){return console.warn("THREE.Math.random16() has been deprecated. Use Math.random() instead."),Math.random()},Object.assign(J.prototype,{flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},multiplyVector3:function(t){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},multiplyVector3Array:function(t){return console.warn("THREE.Matrix3: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead."),this.applyToVector3Array(t)},applyToBuffer:function(t,e,r){return console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(t)}}),Object.assign(u.prototype,{extractPosition:function(t){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(t)},flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},getPosition:function(){var t;return function(){return void 0===t&&(t=new c),console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),t.setFromMatrixColumn(this,3)}}(),setRotationFromQuaternion:function(t){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(t)},multiplyVector3:function(t){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) or vector.applyProjection( matrix ) instead."),t.applyProjection(this)},multiplyVector4:function(t){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector3Array:function(t){return console.warn("THREE.Matrix4: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead."),this.applyToVector3Array(t)},rotateAxis:function(t){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),t.transformDirection(this)},crossVector:function(t){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.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(t,e,r){return console.warn("THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(t)}}),Q.prototype.isIntersectionLine=function(t){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(t)},s.prototype.multiplyVector3=function(t){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),t.applyQuaternion(this)},Object.assign(rt.prototype,{isIntersectionBox:function(t){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionPlane:function(t){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(t)},isIntersectionSphere:function(t){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)}}),Object.assign(nn.prototype,{extrude:function(t){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new Be(this,t)},makeGeometry:function(t){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new Ke(this,t)}}),Object.assign(c.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(t){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(t)},getScaleFromMatrix:function(t){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(t)},getColumnFromMatrix:function(t,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,t)}}),xt.prototype.computeTangents=function(){console.warn("THREE.Geometry: .computeTangents() has been removed.")},Object.assign(ot.prototype,{getChildByName:function(t){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(t)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(t,e){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(e,t)}}),Object.defineProperties(ot.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(t){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=t}},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(se.prototype,{objects:{get:function(){return console.warn("THREE.LOD: .objects has been renamed to .levels."),this.levels}}}),Ct.prototype.setLens=function(t,e){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(wr.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(t){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(t){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(t){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=t}}}),Object.defineProperties(ht.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}}}),Object.assign(wt.prototype,{addIndex:function(t){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(t)},addDrawCall:function(t,e,r){void 0!==r&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(t,e)},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(wt.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(wn.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(q.prototype,{wrapAround:{get:function(){console.warn("THREE."+this.type+": .wrapAround has been removed.")},set:function(){console.warn("THREE."+this.type+": .wrapAround has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE."+this.type+": .wrapRGB has been removed."),new $}}}),Object.defineProperties(hr.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(X.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(t){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=t}}}),e.prototype=Object.assign(Object.create({constructor:e,apply:function(t){console.warn("THREE.EventDispatcher: .apply is deprecated, just inherit or Object.assign the prototype to mix-in."),Object.assign(t,this)}}),e.prototype),Object.assign(te.prototype,{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(t){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(t)},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(te.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){return this.shadowMap.cullFace},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapCullFace is now .shadowMap.cullFace."),this.shadowMap.cullFace=t}}}),Object.defineProperties(et.prototype,{cullFace:{get:function(){return this.renderReverseSided?2:1},set:function(t){t=1!==t,console.warn("WebGLRenderer: .shadowMap.cullFace is deprecated. Set .shadowMap.renderReverseSided to "+t+"."),this.renderReverseSided=t}}}),Object.defineProperties(o.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(t){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=t}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(t){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=t}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(t){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=t}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(t){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=t}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(t){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(t){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=t}}}),dn.prototype.load=function(t){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var e=this;return(new un).load(t,function(t){e.setBuffer(t)}),this},vn.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},t.WebGLRenderTargetCube=a,t.WebGLRenderTarget=o,t.WebGLRenderer=te,t.ShaderLib=fi,t.UniformsLib=pi,t.UniformsUtils=ui,t.ShaderChunk=hi,t.FogExp2=ee,t.Fog=re,t.Scene=ne,t.LensFlare=ie,t.Sprite=ae,t.LOD=se,t.SkinnedMesh=he,t.Skeleton=ce,t.Bone=ue,t.Mesh=St,t.LineSegments=fe,t.Line=pe,t.Points=me,t.Group=ve,t.VideoTexture=ge,t.DataTexture=G,t.CompressedTexture=ye,t.CubeTexture=h,t.CanvasTexture=be,t.DepthTexture=_e,t.Texture=n,t.CompressedTextureLoader=gr,t.BinaryTextureLoader=yr,t.DataTextureLoader=yr,t.CubeTextureLoader=_r,t.TextureLoader=xr,t.ObjectLoader=Yr,t.MaterialLoader=Hr,t.BufferGeometryLoader=Wr,t.DefaultLoadingManager=wi,t.LoadingManager=mr,t.JSONLoader=Xr,t.ImageLoader=br,t.FontLoader=cn,t.FileLoader=vr,t.Loader=qr,t.Cache=xi,t.AudioLoader=un,t.SpotLightShadow=Er,t.SpotLight=Tr,t.PointLight=Cr,t.RectAreaLight=hn,t.HemisphereLight=Sr,t.DirectionalLightShadow=Or,t.DirectionalLight=Pr,t.AmbientLight=Ar,t.LightShadow=Mr,t.Light=wr,t.StereoCamera=ln,t.PerspectiveCamera=Ct,t.OrthographicCamera=Ot,t.CubeCamera=pn,t.Camera=Tt,t.AudioListener=fn,t.PositionalAudio=mn,t.AudioContext=Oi,t.AudioAnalyser=vn,t.Audio=dn,t.VectorKeyframeTrack=Dr,t.StringKeyframeTrack=Br,t.QuaternionKeyframeTrack=Fr,t.NumberKeyframeTrack=Ur,t.ColorKeyframeTrack=$r,t.BooleanKeyframeTrack=zr,t.PropertyMixer=gn,t.PropertyBinding=yn,t.KeyframeTrack=Gr,t.AnimationUtils=Si,t.AnimationObjectGroup=bn,t.AnimationMixer=xn,t.AnimationClip=Vr,t.Uniform=wn,t.InstancedBufferGeometry=Sn,t.BufferGeometry=wt,t.GeometryIdCount=function(){return vi++},t.Geometry=xt,t.InterleavedBufferAttribute=Mn,t.InstancedInterleavedBuffer=Tn,t.InterleavedBuffer=En,t.InstancedBufferAttribute=Cn,t.Face3=ct,t.Object3D=ot,t.Raycaster=On,t.Layers=it,t.EventDispatcher=e,t.Clock=jn,t.QuaternionLinearInterpolant=kr,t.LinearInterpolant=Lr,t.DiscreteInterpolant=Nr,t.CubicInterpolant=Rr,t.Interpolant=jr,t.Triangle=st,t.Spline=function(t){function e(t,e,r,n,i,o,a){return t=.5*(r-t),n=.5*(n-e),(2*(e-r)+t+n)*a+(-3*(e-r)-2*t-n)*o+t*i+e}this.points=t;var r,n,i,o,a,s,u,h,l,p=[],f={x:0,y:0,z:0};this.initFromArray=function(t){this.points=[];for(var e=0;ethis.points.length-2?this.points.length-1:n+1,p[3]=n>this.points.length-3?this.points.length-1:n+2,s=this.points[p[0]],u=this.points[p[1]],h=this.points[p[2]],l=this.points[p[3]],o=i*i,a=i*o,f.x=e(s.x,u.x,h.x,l.x,i,o,a),f.y=e(s.y,u.y,h.y,l.y,i,o,a),f.z=e(s.z,u.z,h.z,l.z,i,o,a),f},this.getControlPointsArray=function(){var t,e,r=this.points.length,n=[];for(t=0;t=0&&o0?0:s-1;return arguments.length<3&&(i=r[a?a[c]:c],c+=t),e(r,n,i,a,c,s)}}function i(t){return function(e,r,n){r=S(r,n);for(var i=O(e),o=t>0?0:i-1;o>=0&&o0?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=e(f.call(n,a,s),x.isNaN),o>=0?o+a:-1;for(o=t>0?a:s-1;o>=0&&o=0&&e<=C};x.each=x.forEach=function(t,e,r){e=w(e,r);var n,i;if(P(t))for(n=0,i=t.length;n=0},x.invoke=function(t,e){var r=f.call(arguments,2),n=x.isFunction(e);return x.map(t,function(t){var i=n?e:t[e];return null==i?i:i.apply(t,r)})},x.pluck=function(t,e){return x.map(t,x.property(e))},x.where=function(t,e){return x.filter(t,x.matcher(e))},x.findWhere=function(t,e){return x.find(t,x.matcher(e))},x.max=function(t,e,r){var n,i,o=-(1/0),a=-(1/0);if(null==e&&null!=t){t=P(t)?t:x.values(t);for(var s=0,c=t.length;so&&(o=n)}else e=S(e,r),x.each(t,function(t,r,n){((i=e(t,r,n))>a||i===-(1/0)&&o===-(1/0))&&(o=t,a=i)});return o},x.min=function(t,e,r){var n,i,o=1/0,a=1/0;if(null==e&&null!=t){t=P(t)?t:x.values(t);for(var s=0,c=t.length;sn||void 0===r)return 1;if(re?(a&&(clearTimeout(a),a=null),s=u,o=t.apply(n,i),a||(n=i=null)):a||r.trailing===!1||(a=setTimeout(c,h)),o}},x.debounce=function(t,e,r){var n,i,o,a,s,c=function(){var u=x.now()-a;u=0?n=setTimeout(c,e-u):(n=null,r||(s=t.apply(o,i),n||(o=i=null)))};return function(){o=this,i=arguments,a=x.now();var u=r&&!n;return n||(n=setTimeout(c,e)),u&&(s=t.apply(o,i),o=i=null),s}},x.wrap=function(t,e){return x.partial(e,t)},x.negate=function(t){return function(){return!t.apply(this,arguments)}},x.compose=function(){var t=arguments,e=t.length-1;return function(){for(var r=e,n=t[e].apply(this,arguments);r--;)n=t[r].call(this,n);return n}},x.after=function(t,e){return function(){if(--t<1)return e.apply(this,arguments)}},x.before=function(t,e){var r;return function(){return--t>0&&(r=e.apply(this,arguments)),t<=1&&(e=null),r}},x.once=x.partial(x.before,2);var L=!{toString:null}.propertyIsEnumerable("toString"),N=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];x.keys=function(t){if(!x.isObject(t))return[];if(g)return g(t);var e=[];for(var r in t)x.has(t,r)&&e.push(r);return L&&a(t,e),e},x.allKeys=function(t){if(!x.isObject(t))return[];var e=[];for(var r in t)e.push(r);return L&&a(t,e),e},x.values=function(t){for(var e=x.keys(t),r=e.length,n=Array(r),i=0;i":">",'"':""","'":"'","`":"`"},k=x.invert(D),F=function(t){var e=function(e){return t[e]},r="(?:"+x.keys(t).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(t){return t=null==t?"":""+t,n.test(t)?t.replace(i,e):t}};x.escape=F(D),x.unescape=F(k),x.result=function(t,e,r){var n=null==t?void 0:t[e];return void 0===n&&(n=r),x.isFunction(n)?n.call(t):n};var U=0;x.uniqueId=function(t){var e=++U+"";return t?t+e:e},x.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var B={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},z=function(t){return"\\"+B[t]};x.template=function(t,e,r){!e&&r&&(e=r),e=x.defaults({},e,x.templateSettings);var n=RegExp([(e.escape||/(.)^/).source,(e.interpolate||/(.)^/).source,(e.evaluate||/(.)^/).source].join("|")+"|$","g"),i=0,o="__p+='";t.replace(n,function(e,r,n,a,s){return o+=t.slice(i,s).replace(/\\|'|\r|\n|\u2028|\u2029/g,z),i=s+e.length,r?o+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?o+="'+\n((__t=("+n+"))==null?'':__t)+\n'":a&&(o+="';\n"+a+"\n__p+='"),e}),o+="';\n",e.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(e.variable||"obj","_",o)}catch(t){throw t.source=o,t}var s=function(t){return a.call(this,t,x)},c=e.variable||"obj";return s.source="function("+c+"){\n"+o+"}",s},x.chain=function(t){var e=x(t);return e._chain=!0,e};var $=function(t,e){return t._chain?x(e).chain():e};x.mixin=function(t){x.each(x.functions(t),function(e){var r=x[e]=t[e];x.prototype[e]=function(){var t=[this._wrapped];return p.apply(t,arguments),$(this,r.apply(x,t))}})},x.mixin(x),x.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=u[t];x.prototype[t]=function(){var r=this._wrapped;return e.apply(r,arguments),"shift"!==t&&"splice"!==t||0!==r.length||delete r[0],$(this,r)}}),x.each(["concat","join","slice"],function(t){var e=u[t];x.prototype[t]=function(){return $(this,e.apply(this._wrapped,arguments))}}),x.prototype.value=function(){return this._wrapped},x.prototype.valueOf=x.prototype.toJSON=x.prototype.value,x.prototype.toString=function(){return""+this._wrapped},"function"==typeof t&&t.amd&&t("underscore",[],function(){return x})}).call(this)},{}],176:[function(t,e,r){function n(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=r,this.p2y=n}e.exports=n,n.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},n.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},n.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},n.prototype.solveCurveX=function(t,e){void 0===e&&(e=1e-6);var r,n,i,o,a;for(i=t,a=0;a<8;a++){if(o=this.sampleCurveX(i)-t,Math.abs(o)n)return n;for(;ro?r=i:n=i,i=.5*(n-r)+r}return i},n.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}},{}],177:[function(t,e,r){var n=t("./vdom/create-element.js");e.exports=n},{"./vdom/create-element.js":183}],178:[function(t,e,r){var n=t("./vtree/diff.js");e.exports=n},{"./vtree/diff.js":203}],179:[function(t,e,r){var n=t("./virtual-hyperscript/index.js");e.exports=n},{"./virtual-hyperscript/index.js":190}],180:[function(t,e,r){var n=t("./diff.js"),i=t("./patch.js"),o=t("./h.js"),a=t("./create-element.js"),s=t("./vnode/vnode.js"),c=t("./vnode/vtext.js");e.exports={diff:n,patch:i,h:o,create:a,VNode:s,VText:c}},{"./create-element.js":177,"./diff.js":178,"./h.js":179,"./patch.js":181,"./vnode/vnode.js":199,"./vnode/vtext.js":201}],181:[function(t,e,r){var n=t("./vdom/patch.js");e.exports=n},{"./vdom/patch.js":186}],182:[function(t,e,r){function n(t,e,r){for(var n in e){var a=e[n];void 0===a?i(t,n,a,r):c(a)?(i(t,n,a,r),a.hook&&a.hook(t,n,r?r[n]:void 0)):s(a)?o(t,e,r,n,a):t[n]=a}}function i(t,e,r,n){if(n){var i=n[e];if(c(i))i.unhook&&i.unhook(t,e,r);else if("attributes"===e)for(var o in i)t.removeAttribute(o);else if("style"===e)for(var a in i)t.style[a]="";else t[e]="string"==typeof i?"":null}}function o(t,e,r,n,i){var o=r?r[n]:void 0;if("attributes"!==n){if(o&&s(o)&&a(o)!==a(i))return void(t[n]=i);s(t[n])||(t[n]={});var c="style"===n?"":void 0;for(var u in i){var h=i[u];t[n][u]=void 0===h?c:h}}else for(var l in i){var p=i[l];void 0===p?t.removeAttribute(l):t.setAttribute(l,p)}}function a(t){return Object.getPrototypeOf?Object.getPrototypeOf(t):t.__proto__?t.__proto__:t.constructor?t.constructor.prototype:void 0}var s=t("is-object"),c=t("../vnode/is-vhook.js");e.exports=n},{"../vnode/is-vhook.js":194,"is-object":18}],183:[function(t,e,r){function n(t,e){var r=e?e.document||i:i,h=e?e.warn:null;if(t=u(t).a,c(t))return t.init();if(s(t))return r.createTextNode(t.text);if(!a(t))return h&&h("Item is not a valid virtual dom node",t),null;var l=null===t.namespace?r.createElement(t.tagName):r.createElementNS(t.namespace,t.tagName),p=t.properties;o(l,p);for(var f=t.children,d=0;d>0,i=t[n],o===a)return i>=e&&i<=r;if(ir))return!0;a=n-1}}return!1}function a(t,e){return t>e?1:-1}var s={};e.exports=n},{}],185:[function(t,e,r){function n(t,e,r){var n=t.type,u=t.vNode,f=t.patch;switch(n){case d.REMOVE:return i(e,u);case d.INSERT:return o(e,f,r);case d.VTEXT:return a(e,u,f,r);case d.WIDGET:return s(e,u,f,r);case d.VNODE:return c(e,u,f,r);case d.ORDER:return h(e,f),e;case d.PROPS:return p(e,f,u.properties),e;case d.THUNK:return l(e,r.patch(e,f,r));default:return e}}function i(t,e){var r=t.parentNode;return r&&r.removeChild(t),u(t,e),null}function o(t,e,r){var n=r.render(e,r);return t&&t.appendChild(n),t}function a(t,e,r,n){var i;if(3===t.nodeType)t.replaceData(0,t.length,r.text),i=t;else{var o=t.parentNode;i=n.render(r,n),o&&i!==t&&o.replaceChild(i,t)}return i}function s(t,e,r,n){var i,o=m(e,r);i=o?r.update(e,t)||t:n.render(r,n);var a=t.parentNode;return a&&i!==t&&a.replaceChild(i,t),o||u(t,e),i}function c(t,e,r,n){var i=t.parentNode,o=n.render(r,n);return i&&o!==t&&i.replaceChild(o,t),o}function u(t,e){"function"==typeof e.destroy&&f(e)&&e.destroy(t)}function h(t,e){for(var r,n,i,o=t.childNodes,a={},s=0;s=c++?null:o[i.to])}function l(t,e){return t&&e&&t!==e&&t.parentNode&&t.parentNode.replaceChild(e,t),e}var p=t("./apply-properties"),f=t("../vnode/is-widget.js"),d=t("../vnode/vpatch.js"),m=t("./update-widget");e.exports=n},{"../vnode/is-widget.js":197,"../vnode/vpatch.js":200,"./apply-properties":182,"./update-widget":187}],186:[function(t,e,r){function n(t,e,r){return r=r||{},r.patch=r.patch&&r.patch!==n?r.patch:i,r.render=r.render||u,r.patch(t,e,r)}function i(t,e,r){var n=a(e);if(0===n.length)return t;var i=h(t,e.a,n),c=t.ownerDocument;r.document||c===s||(r.document=c);for(var u=0;uh?u:h,f=0;f=i.length?e.length:i[c],g=0;g=v&&s.push(y)}for(var b,_=s.slice(),x=0,w=[],S=[],M=0;M>>0,u=c,h=[],l=0;l0){s.become(i),t._visitRemaining(e,l,i);break}i.visit(s,r,n)}else--u;return 0===u&&s.reject(new RangeError("any(): array must not be empty")),a}function i(e,r){function n(t){this.resolved||(h.push(t),0==--f&&(l=null,this.resolve(h)))}function i(t){this.resolved||(l.push(t),0==--o&&(h=null,this.reject(l)))}var o,a,s,c=t._defer(),u=c._handler,h=[],l=[],p=e.length>>>0,f=0;for(s=0;sf?u.reject(new RangeError("some(): array must contain at least "+r+" item(s), but had "+f)):0===f&&u.resolve(h),s=0;s2?v.call(t,p(e),arguments[2]):v.call(t,p(e))}function l(t,e){return arguments.length>2?g.call(t,p(e),arguments[2]):g.call(t,p(e))}function p(t){return function(e,r,n){return f(t,void 0,[e,r,n])}}var f=r(t),d=t.resolve,m=t.all,v=Array.prototype.reduce,g=Array.prototype.reduceRight,y=Array.prototype.slice;return t.any=n,t.some=i,t.settle=c,t.map=o,t.filter=a,t.reduce=h,t.reduceRight=l,t.prototype.spread=function(t){return this.then(m).then(function(e){return t.apply(this,e)})},t}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t(e)})},{"../apply":207,"../state":220}],209:[function(e,r,n){!function(t){"use strict";t(function(){function t(){throw new TypeError("catch predicate must be a function")}function e(t,e){return r(e)?t instanceof e:e(t)}function r(t){return t===Error||null!=t&&t.prototype instanceof Error}function n(t){return("object"==typeof t||"function"==typeof t)&&null!==t}function i(t){return t}return function(r){function o(t,r){return function(n){return e(n,r)?t.call(this,n):u(n)}}function a(t,e,r,i){var o=t.call(e);return n(o)?s(o,r,i):r(i)}function s(t,e,r){return c(t).then(function(){return e(r)})}var c=r.resolve,u=r.reject,h=r.prototype.catch;return r.prototype.done=function(t,e){this._handler.visit(this._handler.receiver,t,e)},r.prototype.catch=r.prototype.otherwise=function(e){return arguments.length<2?h.call(this,e):"function"!=typeof e?this.ensure(t):h.call(this,o(arguments[1],e))},r.prototype.finally=r.prototype.ensure=function(t){return"function"!=typeof t?this:this.then(function(e){return a(t,this,i,e)},function(e){return a(t,this,u,e)})},r.prototype.else=r.prototype.orElse=function(t){return this.then(void 0,function(){return t})},r.prototype.yield=function(t){return this.then(function(){return t})},r.prototype.tap=function(t){return this.then(t).yield(this)},r}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t()})},{}],210:[function(e,r,n){!function(t){"use strict";t(function(){return function(t){return t.prototype.fold=function(e,r){var n=this._beget();return this._handler.fold(function(r,n,i){t._handler(r).fold(function(t,r,n){n.resolve(e.call(this,r,t))},n,this,i)},r,n._handler.receiver,n._handler),n},t}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t()})},{}],211:[function(e,r,n){!function(t){"use strict";t(function(t){var e=t("../state").inspect;return function(t){return t.prototype.inspect=function(){return e(t._handler(this))},t}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t(e)})},{"../state":220}],212:[function(e,r,n){!function(t){"use strict";t(function(){return function(t){function e(t,e,n,i){return r(function(e){return[e,t(e)]},e,n,i)}function r(t,e,i,o){function a(o,a){return n(i(o)).then(function(){return r(t,e,i,a)})}return n(o).then(function(r){return n(e(r)).then(function(e){return e?r:n(t(r)).spread(a)})})}var n=t.resolve;return t.iterate=e,t.unfold=r,t}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t()})},{}],213:[function(e,r,n){!function(t){"use strict";t(function(){return function(t){return t.prototype.progress=function(t){return this.then(void 0,void 0,t)},t}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t()})},{}],214:[function(e,r,n){!function(t){"use strict";t(function(t){function e(t,e,n,i){return r.setTimer(function(){t(n,i,e)},e)}var r=t("../env"),n=t("../TimeoutError");return function(t){function i(t,r,n){e(o,t,r,n)}function o(t,e){e.resolve(t)}function a(t,e,r){var i=void 0===t?new n("timed out after "+r+"ms"):t;e.reject(i)}return t.prototype.delay=function(t){var e=this._beget();return this._handler.fold(i,t,void 0,e._handler),e},t.prototype.timeout=function(t,n){var i=this._beget(),o=i._handler,s=e(a,t,n,i._handler);return this._handler.visit(o,function(t){r.clearTimer(s),this.resolve(t)},function(t){r.clearTimer(s),this.reject(t)},o.notify),i},t}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t(e)})},{"../TimeoutError":206,"../env":217}],215:[function(e,r,n){!function(t){"use strict";t(function(t){function e(t){throw t}function r(){}var n=t("../env").setTimer,i=t("../format");return function(t){function o(t){t.handled||(f.push(t),h("Potentially unhandled rejection ["+t.id+"] "+i.formatError(t.value)))}function a(t){var e=f.indexOf(t);e>=0&&(f.splice(e,1),l("Handled previous rejection ["+t.id+"] "+i.formatObject(t.value)))}function s(t,e){p.push(t,e),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(t){u.error(t)}:function(t){u.log(t)},l=void 0!==u.info?function(t){u.info(t)}:function(t){u.log(t)}),t.onPotentiallyUnhandledRejection=function(t){s(o,t)},t.onPotentiallyUnhandledRejectionHandled=function(t){s(a,t)},t.onFatalRejection=function(t){s(e,t.value)};var p=[],f=[],d=null;return t}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t(e)})},{"../env":217,"../format":218}],216:[function(e,r,n){!function(t){"use strict";t(function(){return function(t){return t.prototype.with=t.prototype.withThis=function(t){var e=this._beget(),r=e._handler;return r.receiver=t,this._handler.chain(r,t),e},t}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t()})},{}],217:[function(e,r,n){(function(n){!function(t){"use strict";t(function(t){var e,r="undefined"!=typeof setTimeout&&setTimeout,i=function(t,e){return setTimeout(t,e)},o=function(t){return clearTimeout(t)},a=function(t){return r(t,0)};if(function(){return void 0!==n&&"[object process]"===Object.prototype.toString.call(n)}())a=function(t){return n.nextTick(t)};else if(e=function(){return"undefined"!=typeof MutationObserver&&MutationObserver||"undefined"!=typeof WebKitMutationObserver&&WebKitMutationObserver}())a=function(t){function e(){var t=r;r=void 0,t()}var r,n=document.createTextNode("");new t(e).observe(n,{characterData:!0});var i=0;return function(t){r=t,n.data=i^=1}}(e);else if(!r){var s=t,c=s("vertx");i=function(t,e){return c.setTimer(e,t)},o=c.cancelTimer,a=c.runOnLoop||c.runOnContext}return{setTimer:i,clearTimer:o,asap:a}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t(e)})}).call(this,e("_process"))},{_process:4}],218:[function(e,r,n){!function(t){"use strict";t(function(){function t(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)"}function e(t){var e=String(t);return"[object Object]"===e&&"undefined"!=typeof JSON&&(e=r(t,e)),e}function r(t,e){try{return JSON.stringify(t)}catch(t){return e}}return{formatError:t,formatObject:e,tryStringify:r}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t()})},{}],219:[function(e,r,n){(function(e){!function(t){"use strict";t(function(){return function(t){function r(t,e){this._handler=t===_?e:n(t)}function n(t){function e(t){i.resolve(t)}function r(t){i.reject(t)}function n(t){i.notify(t)}var i=new w;try{t(e,r,n)}catch(t){r(t)}return i}function i(t){return I(t)?t:new r(_,new S(g(t)))}function o(t){return new r(_,new S(new T(t)))}function a(){return et}function s(){return new r(_,new w)}function c(t,e){return new e(_,new w(t.receiver,t.join().context))}function u(t){return l(H,null,t)}function h(t,e){return l(B,t,e)}function l(t,e,n){function i(r,i,a){a.resolved||p(n,o,r,t(e,i,r),a)}function o(t,e,r){h[t]=e,0==--u&&r.become(new E(h))}for(var a,s="function"==typeof e?i:o,c=new w,u=n.length>>>0,h=new Array(u),l=0;l0?e(r,o.value,i):(i.become(o),f(t,r+1,o))}else e(r,n,i)}function f(t,e,r){for(var n=e;n0||"function"!=typeof e&&i<0)return new this.constructor(_,n);var o=this._beget(),a=o._handler;return n.chain(a,n.receiver,t,e,r),o},r.prototype.catch=function(t){return this.then(void 0,t)},r.prototype._beget=function(){return c(this._handler,this.constructor)},r.all=u,r.race=m,r._traverse=h,r._visitRemaining=f,_.prototype.when=_.prototype.become=_.prototype.notify=_.prototype.fail=_.prototype._unreport=_.prototype._report=W,_.prototype._state=0,_.prototype.state=function(){return this._state},_.prototype.join=function(){for(var t=this;void 0!==t.handler;)t=t.handler;return t},_.prototype.chain=function(t,e,r,n,i){this.when({resolver:t,receiver:e,fulfilled:r,rejected:n,progress:i})},_.prototype.visit=function(t,e,r,n){this.chain(J,t,e,r,n)},_.prototype.fold=function(t,e,r,n){this.when(new N(t,e,r,n))},V(_,x),x.prototype.become=function(t){t.fail()};var J=new x;V(_,w),w.prototype._state=0,w.prototype.resolve=function(t){this.become(g(t))},w.prototype.reject=function(t){this.resolved||this.become(new T(t))},w.prototype.join=function(){if(!this.resolved)return this;for(var t=this;void 0!==t.handler;)if((t=t.handler)===this)return this.handler=P();return t},w.prototype.run=function(){var t=this.consumers,e=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var r=0;r0?r(n.value):e(n.value)}return{pending:t,fulfilled:r,rejected:e,inspect:n}})}("function"==typeof t&&t.amd?t:function(t){r.exports=t()})},{}],221:[function(e,r,n){!function(t){"use strict";t(function(t){function e(t,e,r,n){var i=S.resolve(t);return arguments.length<2?i:i.then(e,r,n)}function r(t){return new S(t)}function n(t){return function(){for(var e=0,r=arguments.length,n=new Array(r);e0?2*Math.atan(.5*n.basicWidth/(o*n.focal)):0;return[t._spatial.degToRad(r.ca),a]}).distinctUntilChanged(function(e,r){return Math.abs(r[0]-e[0])2*Math.PI-Math.PI/90)return i.h("circle",{attributes:{cx:"0",cy:"0",fill:r,r:"1"},namespace:this._svgNamespace},[]);var n=t-e/2-Math.PI/2,o=n+e,a=Math.cos(n),s=Math.sin(n),c=Math.cos(o),u=Math.sin(o),h=e>=Math.PI?1:0,l="M 0 0 "+a+" "+s+" A 1 1 0 "+h+" 1 "+c+" "+u;return i.h("path",{attributes:{d:l,fill:r},namespace:this._svgNamespace},[])},e}(a.Component);c.componentName="bearing",r.BearingComponent=c,a.ComponentService.register(c),Object.defineProperty(r,"__esModule",{value:!0}),r.default=c},{"../Component":224,"../Geo":227,"rxjs/Observable":28,"virtual-dom":180}],240:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("rxjs/Observable");t("rxjs/add/observable/combineLatest"),t("rxjs/add/observable/from"),t("rxjs/add/observable/merge"),t("rxjs/add/observable/of"),t("rxjs/add/observable/zip"),t("rxjs/add/operator/catch"),t("rxjs/add/operator/combineLatest"),t("rxjs/add/operator/distinct"),t("rxjs/add/operator/expand"),t("rxjs/add/operator/filter"),t("rxjs/add/operator/map"),t("rxjs/add/operator/merge"),t("rxjs/add/operator/mergeMap"),t("rxjs/add/operator/mergeAll"),t("rxjs/add/operator/skip"),t("rxjs/add/operator/switchMap");var o=t("../Edge"),a=t("../Component"),s=function(t){function e(e,r,n){return t.call(this,e,r,n)||this}return n(e,t),e.prototype.setDepth=function(t){this.configure({depth:t})},e.prototype._activate=function(){var t=this;this._sequenceSubscription=i.Observable.combineLatest(this._navigator.stateService.currentNode$.switchMap(function(t){return t.sequenceEdges$}).filter(function(t){return t.cached}),this._configuration$).switchMap(function(e){var r=e[0],n=e[1],a=Math.max(0,Math.min(4,n.depth.sequence)),s=t._cache$(r.edges,o.EdgeDirection.Next,a),c=t._cache$(r.edges,o.EdgeDirection.Prev,a);return i.Observable.merge(s,c).catch(function(t,e){return console.error("Failed to cache sequence edges.",t),i.Observable.empty()})}).subscribe(function(){}),this._spatialSubscription=this._navigator.stateService.currentNode$.switchMap(function(t){return i.Observable.combineLatest(i.Observable.of(t),t.spatialEdges$.filter(function(t){return t.cached}))}).combineLatest(this._configuration$,function(t,e){return[t[0],t[1],e]}).switchMap(function(e){var r=e[0],n=e[1].edges,a=e[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=t._cache$(n,o.EdgeDirection.Pano,s),l=t._cache$(n,o.EdgeDirection.StepForward,c),p=t._cache$(n,o.EdgeDirection.StepBackward,c),f=t._cache$(n,o.EdgeDirection.StepLeft,c),d=t._cache$(n,o.EdgeDirection.StepRight,c),m=t._cache$(n,o.EdgeDirection.TurnLeft,u),v=t._cache$(n,o.EdgeDirection.TurnRight,u),g=t._cache$(n,o.EdgeDirection.TurnU,u);return i.Observable.merge(l,p,f,d,h,m,v,g).catch(function(t,e){return console.error("Failed to cache spatial edges.",t),i.Observable.empty()})}).subscribe(function(){})},e.prototype._deactivate=function(){this._sequenceSubscription.unsubscribe(),this._spatialSubscription.unsubscribe()},e.prototype._getDefaultConfiguration=function(){return{depth:{pano:1,sequence:2,step:1,turn:0}}},e.prototype._cache$=function(t,e,r){var n=this;return i.Observable.zip(i.Observable.of(t),i.Observable.of(r)).expand(function(t){var r=t[0],o=t[1],a=[];if(o>0)for(var s=0,c=r;s-1?t.sequenceEdges$:t.spatialEdges$).first(function(t){return t.cached}).map(function(t){return t.edges})},e}(a.Component);s.componentName="cache",r.CacheComponent=s,a.ComponentService.register(s),Object.defineProperty(r,"__esModule",{value:!0}),r.default=s},{"../Component":224,"../Edge":225,"rxjs/Observable":28,"rxjs/add/observable/combineLatest":37,"rxjs/add/observable/from":40,"rxjs/add/observable/merge":43,"rxjs/add/observable/of":44,"rxjs/add/observable/zip":47,"rxjs/add/operator/catch":51,"rxjs/add/operator/combineLatest":52,"rxjs/add/operator/distinct":56,"rxjs/add/operator/expand":59,"rxjs/add/operator/filter":60,"rxjs/add/operator/map":64,"rxjs/add/operator/merge":65,"rxjs/add/operator/mergeAll":66,"rxjs/add/operator/mergeMap":67,"rxjs/add/operator/skip":74,"rxjs/add/operator/switchMap":78}],241:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("rxjs/BehaviorSubject"),o=t("rxjs/Subject");t("rxjs/add/operator/publishReplay"),t("rxjs/add/operator/scan"),t("rxjs/add/operator/startWith");var a=t("../Utils"),s=function(t){function e(e,r,n){var a=t.call(this)||this;return a._activated$=new i.BehaviorSubject(!1),a._configurationSubject$=new o.Subject,a._activated=!1,a._container=r,a._name=e,a._navigator=n,a._configuration$=a._configurationSubject$.startWith(a.defaultConfiguration).scan(function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t}).publishReplay(1).refCount(),a._configuration$.subscribe(function(){}),a}return n(e,t),Object.defineProperty(e.prototype,"activated",{get:function(){return this._activated},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activated$",{get:function(){return this._activated$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"defaultConfiguration",{get:function(){return this._getDefaultConfiguration()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"configuration$",{get:function(){return this._configuration$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),e.prototype.activate=function(t){this._activated||(void 0!==t&&this._configurationSubject$.next(t),this._activated=!0,this._activate(),this._activated$.next(!0))},e.prototype.configure=function(t){this._configurationSubject$.next(t)},e.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))},e.prototype.resize=function(){},e}(a.EventEmitter);s.componentName="not_worthy",r.Component=s,Object.defineProperty(r,"__esModule",{value:!0}),r.default=s},{"../Utils":233,"rxjs/BehaviorSubject":25,"rxjs/Subject":33,"rxjs/add/operator/publishReplay":71,"rxjs/add/operator/scan":72,"rxjs/add/operator/startWith":77}],242:[function(t,e,r){"use strict";var n=t("underscore"),i=t("../Error"),o=function(){function t(e,r){this._components={},this._container=e,this._navigator=r;for(var i=0,o=n.values(t.registeredComponents);i0&&t.description?{name:e._name,vnode:e._getRouteAnnotationNode(t.description)}:{name:e._name,vnode:o.h("div",[])}}).subscribe(this._container.domRenderer.render$)},e.prototype._deactivate=function(){this._disposable.unsubscribe(),this._disposableDescription.unsubscribe()},e.prototype._getDefaultConfiguration=function(){return{}},e.prototype.play=function(){this.configure({playing:!0})},e.prototype.stop=function(){this.configure({playing:!1})},e.prototype._getRouteAnnotationNode=function(t){return o.h("div.RouteFrame",{},[o.h("p",{textContent:t},[])])},e}(s.Component);l.componentName="route",r.RouteComponent=l,s.ComponentService.register(l),Object.defineProperty(r,"__esModule",{value:!0}),r.default=l},{"../Component":224,"rxjs/Observable":28,"rxjs/add/observable/fromPromise":42,"rxjs/add/observable/of":44,"rxjs/add/operator/combineLatest":52,"rxjs/add/operator/distinct":56,"rxjs/add/operator/distinctUntilChanged":57,"rxjs/add/operator/filter":60,"rxjs/add/operator/map":64,"rxjs/add/operator/mergeMap":67,"rxjs/add/operator/pluck":69,"rxjs/add/operator/scan":72,underscore:175,"virtual-dom":180}],250:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("rxjs/Observable");t("rxjs/add/operator/buffer"),t("rxjs/add/operator/debounceTime"),t("rxjs/add/operator/filter"),t("rxjs/add/operator/map"),t("rxjs/add/operator/scan");var o=t("../Component"),a=function(t){function e(e,r,n){return t.call(this,e,r,n)||this}return n(e,t),e.prototype._activate=function(){var t=this;this._sequenceSubscription=this._navigator.stateService.currentNode$.scan(function(t,e){var r=e.sequenceKey;return t.report=[],r in t.reported||(t.report=[r],t.reported[r]=!0),t},{report:[],reported:{}}).filter(function(t){return t.report.length>0}).mergeMap(function(e){return t._navigator.apiV3.sequenceViewAdd$(e.report).catch(function(t,r){return console.error("Failed to report sequence stats ("+e.report+")",t),i.Observable.empty()})}).subscribe(function(){}),this._imageSubscription=this._navigator.stateService.currentNode$.map(function(t){return t.key}).buffer(this._navigator.stateService.currentNode$.debounceTime(5e3)).scan(function(t,e){t.report=[];for(var r=0,n=e;r0}).mergeMap(function(e){return t._navigator.apiV3.imageViewAdd$(e.report).catch(function(t,r){return console.error("Failed to report image stats ("+e.report+")",t),i.Observable.empty()})}).subscribe(function(){})},e.prototype._deactivate=function(){this._sequenceSubscription.unsubscribe(),this._imageSubscription.unsubscribe()},e.prototype._getDefaultConfiguration=function(){return{}},e}(o.Component);a.componentName="stats",r.StatsComponent=a,o.ComponentService.register(a),Object.defineProperty(r,"__esModule",{value:!0}),r.default=a},{"../Component":224,"rxjs/Observable":28,"rxjs/add/operator/buffer":48,"rxjs/add/operator/debounceTime":54,"rxjs/add/operator/filter":60,"rxjs/add/operator/map":64,"rxjs/add/operator/scan":72}],251:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("virtual-dom"),o=t("rxjs/Observable"),a=t("rxjs/Subject");t("rxjs/add/observable/combineLatest"),t("rxjs/add/operator/do"),t("rxjs/add/operator/distinctUntilChanged"),t("rxjs/add/operator/filter"),t("rxjs/add/operator/map"),t("rxjs/add/operator/share");var s=t("../../Component"),c=function(t){function e(e,r,n){var i=t.call(this,e,r,n)||this;return i._renderer=new s.DirectionDOMRenderer(i.defaultConfiguration,r.element),i._hoveredKeySubject$=new a.Subject,i._hoveredKey$=i._hoveredKeySubject$.share(),i}return n(e,t),Object.defineProperty(e.prototype,"hoveredKey$",{get:function(){return this._hoveredKey$},enumerable:!0,configurable:!0}),e.prototype.setHighlightKey=function(t){this.configure({highlightKey:t})},e.prototype.setMinWidth=function(t){this.configure({minWidth:t})},e.prototype.setMaxWidth=function(t){this.configure({maxWidth:t})},e.prototype.resize=function(){this._renderer.resize(this._container.element)},e.prototype._activate=function(){var t=this;this._configurationSubscription=this._configuration$.subscribe(function(e){t._renderer.setConfiguration(e)}),this._nodeSubscription=this._navigator.stateService.currentNode$.do(function(e){t._container.domRenderer.render$.next({name:t._name,vnode:i.h("div",{},[])}),t._renderer.setNode(e)}).withLatestFrom(this._configuration$).switchMap(function(e){var r=e[0],n=e[1];return r.spatialEdges$.withLatestFrom(n.distinguishSequence?t._navigator.graphService.cacheSequence$(r.sequenceKey).catch(function(t,e){return console.error("Failed to cache sequence ("+r.sequenceKey+")",t),o.Observable.empty()}):o.Observable.of(null))}).subscribe(function(e){t._renderer.setEdges(e[0],e[1])}),this._renderCameraSubscription=this._container.renderService.renderCameraFrame$.do(function(e){t._renderer.setRenderCamera(e)}).map(function(e){return t._renderer}).filter(function(t){return t.needsRender}).map(function(e){return{name:t._name,vnode:e.render(t._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(t,e,r,n){return t}).map(function(t){for(var e=t.getElementsByClassName("DirectionsPerspective"),r=0;re?t:e},t}();r.DirectionDOMCalculator=i,Object.defineProperty(r,"__esModule",{value:!0}),r.default=i},{"../../Geo":227}],253:[function(t,e,r){"use strict";var n=t("virtual-dom"),i=t("../../Component"),o=t("../../Edge"),a=t("../../Geo"),s=function(){function t(t,e){this._isEdge=!1,this._spatial=new a.Spatial,this._calculator=new i.DirectionDOMCalculator(t,e),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(t.prototype,"needsRender",{get:function(){return this._needsRender},enumerable:!0,configurable:!0}),t.prototype.render=function(t){this._needsRender=!1;var e=this._rotation,r=[],n=[];return this._node.pano?r=r.concat(this._createPanoArrows(t,e)):(r=r.concat(this._createPerspectiveToPanoArrows(t,e)),r=r.concat(this._createStepArrows(t,e)),n=n.concat(this._createTurnArrows(t))),this._getContainer(r,n,e)},t.prototype.setEdges=function(t,e){this._setEdges(t,e),this._setNeedsRender()},t.prototype.setNode=function(t){this._node=t,this._clearEdges(),this._setNeedsRender()},t.prototype.setRenderCamera=function(t){var e=t.rotation;Math.abs(e.phi-this._rotation.phi)-1?this._stepEdges.push(i):this._turnDirections.indexOf(a)>-1?this._turnEdges.push(i):i.data.direction===o.EdgeDirection.Pano&&this._panoEdges.push(i)}if(this._distinguishSequence&&null!=e)for(var s=this._panoEdges.concat(this._stepEdges).concat(this._turnEdges),c=0,u=s;c-1&&(u+="Sequence"),this._highlightKey===e&&(u+="Highlight");var h=n.h("div."+r,{},[]);return n.h("div."+u,c,[h])},t.prototype._createVNodeDisabled=function(t,e,r){return this._createVNode(t,e,r,this._calculator.outerRadius,"DirectionsArrowDisabled","DirectionsCircleDisabled")},t.prototype._createVNode=function(t,e,r,i,o,a,s,c){var u=this._calculator.angleToCoordinates(e-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(e,r.phi),f=this._calculator.shadowOffset,d=-f*p[1],m=f*p[0],v="drop-shadow("+d+"px "+m+"px 1px rgba(0,0,0,0.8))",g={style:{"-webkit-filter":v,filter:v}},y=n.h("div."+o,g,[]),b=-this._spatial.radToDeg(e-r.phi),_=c?"translate("+h+"px, "+l+"px) rotate("+b+"deg) translateZ(-0.01px)":"translate("+h+"px, "+l+"px) rotate("+b+"deg)",x={attributes:{"data-key":t},onclick:s,style:{height:this._calculator.stepCircleSizeCss,marginLeft:this._calculator.stepCircleMarginCss,marginTop:this._calculator.stepCircleMarginCss,transform:_,width:this._calculator.stepCircleSizeCss}};return this._sequenceEdgeKeys.indexOf(t)>-1&&(a+="Sequence"),this._highlightKey===t&&(a+="Highlight"),n.h("div."+a,x,[y])},t.prototype._getContainer=function(t,e,r){var i=this._isEdge?"rotateX(60deg)":"perspective("+this._calculator.containerWidthCss+") rotateX(60deg)",o={oncontextmenu:function(t){t.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,e.concat(t))},t}();r.DirectionDOMRenderer=s,Object.defineProperty(r,"__esModule",{value:!0}),r.default=s},{"../../Component":224,"../../Edge":225,"../../Geo":227,"virtual-dom":180}],254:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("rxjs/Observable"),o=t("rxjs/Subject");t("rxjs/add/operator/catch"),t("rxjs/add/operator/combineLatest"),t("rxjs/add/operator/debounceTime"),t("rxjs/add/operator/distinctUntilChanged"),t("rxjs/add/operator/filter"),t("rxjs/add/operator/map"),t("rxjs/add/operator/pairwise"),t("rxjs/add/operator/publish"),t("rxjs/add/operator/publishReplay"),t("rxjs/add/operator/scan"),t("rxjs/add/operator/skipWhile"),t("rxjs/add/operator/startWith"),t("rxjs/add/operator/switchMap"),t("rxjs/add/operator/takeUntil"),t("rxjs/add/operator/withLatestFrom");var a=t("../../Component"),s=t("../../Render"),c=t("../../Tiles"),u=t("../../Utils"),h=function(t){function e(e,r,n){var i=t.call(this,e,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(t,e){return e(t)},null).filter(function(t){return null!=t}).distinctUntilChanged(void 0,function(t){return t.frameId}),i._rendererCreator$.map(function(){return function(t){if(null!=t)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(t){return t.dispose(),null}}).subscribe(i._rendererOperation$),i}return n(e,t),e.prototype._activate=function(){var t=this;this._rendererSubscription=this._renderer$.map(function(e){var r={name:t._name,render:{frameId:e.frameId,needsRender:e.needsRender,render:e.render.bind(e),stage:s.GLRenderStage.Background}};return e.clearNeedsRender(),r}).subscribe(this._container.glRenderer.render$),this._rendererCreator$.next(null),this._stateSubscription=this._navigator.stateService.currentState$.map(function(t){return function(e){return e.updateFrame(t),e}}).subscribe(this._rendererOperation$) -;var e=this._navigator.stateService.currentState$.distinctUntilChanged(void 0,function(t){return t.state.currentNode.key}).combineLatest(this._configuration$).filter(function(t){return t[1].imageTiling===!0}).map(function(t){return t[0]}).withLatestFrom(this._container.glRenderer.webGLRenderer$,this._container.renderService.size$).map(function(e){var r=e[0].state,n=e[1],i=e[2],o=r.currentNode,a=r.currentTransform,s=Math.max(i.width,i.height)>1024?1024:512;return new c.TextureProvider(o.key,a.basicWidth,a.basicHeight,s,o.image,t._imageTileLoader,new c.ImageTileStore,n)}).publishReplay(1).refCount();this._textureProviderSubscription=e.subscribe(function(){}),this._setTextureProviderSubscription=e.map(function(t){return function(e){return e.setTextureProvider(t.key,t),e}}).subscribe(this._rendererOperation$),this._abortTextureProviderSubscription=e.pairwise().subscribe(function(t){t[0].abort()});var r=this._container.renderService.renderCameraFrame$.map(function(t){return[t.camera.position.clone(),t.camera.lookat.clone(),t.zoom.valueOf()]}).pairwise().skipWhile(function(t){return t[1][2]-t[0][2]<0||0===t[1][2]}).map(function(t){var e=t[0][0].equals(t[1][0]),r=t[0][1].equals(t[1][1]),n=t[0][2]===t[1][2];return e&&r&&n}).distinctUntilChanged().filter(function(t){return t}).switchMap(function(e){return t._container.renderService.renderCameraFrame$.first()}).withLatestFrom(this._container.renderService.size$,this._navigator.stateService.currentTransform$);this._setRegionOfInterestSubscription=e.switchMap(function(e){return r.map(function(r){return[t._roiCalculator.computeRegionOfInterest(r[0],r[1],r[2]),e]})}).filter(function(t){return!t[1].disposed}).subscribe(function(t){var e=t[0];t[1].setRegionOfInterest(e)});var n=e.switchMap(function(t){return t.hasTexture$}).startWith(!1).publishReplay(1).refCount();this._hasTextureSubscription=n.subscribe(function(){});var o=this._navigator.stateService.currentNode$.debounceTime(1e3).withLatestFrom(n).filter(function(t){return!t[1]}).map(function(t){return t[0]}).filter(function(t){return t.pano?u.Settings.maxImageSize>u.Settings.basePanoramaSize:u.Settings.maxImageSize>u.Settings.baseImageSize}).switchMap(function(t){var e=t.pano?u.Settings.basePanoramaSize:u.Settings.baseImageSize;return Math.max(t.image.width,t.image.height)>e?i.Observable.empty():t.cacheImage$(u.Settings.maxImageSize).map(function(t){return[t.image,t]}).takeUntil(n.filter(function(t){return t})).catch(function(e,r){return console.error("Failed to fetch high res image ("+t.key+")",e),i.Observable.empty()})}).publish().refCount();this._updateBackgroundSubscription=o.withLatestFrom(e).subscribe(function(t){t[0][1].key!==t[1].key||t[1].disposed||t[1].updateBackground(t[0][0])}),this._updateTextureImageSubscription=o.map(function(t){return function(e){return e.updateTextureImage(t[0],t[1]),e}}).subscribe(this._rendererOperation$)},e.prototype._deactivate=function(){this._rendererDisposer$.next(null),this._abortTextureProviderSubscription.unsubscribe(),this._hasTextureSubscription.unsubscribe(),this._rendererSubscription.unsubscribe(),this._setRegionOfInterestSubscription.unsubscribe(),this._setTextureProviderSubscription.unsubscribe(),this._stateSubscription.unsubscribe(),this._textureProviderSubscription.unsubscribe(),this._updateBackgroundSubscription.unsubscribe(),this._updateTextureImageSubscription.unsubscribe()},e.prototype._getDefaultConfiguration=function(){return{imageTiling:!1}},e}(a.Component);h.componentName="imagePlane",r.ImagePlaneComponent=h,a.ComponentService.register(h),Object.defineProperty(r,"__esModule",{value:!0}),r.default=h},{"../../Component":224,"../../Render":230,"../../Tiles":232,"../../Utils":233,"rxjs/Observable":28,"rxjs/Subject":33,"rxjs/add/operator/catch":51,"rxjs/add/operator/combineLatest":52,"rxjs/add/operator/debounceTime":54,"rxjs/add/operator/distinctUntilChanged":57,"rxjs/add/operator/filter":60,"rxjs/add/operator/map":64,"rxjs/add/operator/pairwise":68,"rxjs/add/operator/publish":70,"rxjs/add/operator/publishReplay":71,"rxjs/add/operator/scan":72,"rxjs/add/operator/skipWhile":76,"rxjs/add/operator/startWith":77,"rxjs/add/operator/switchMap":78,"rxjs/add/operator/takeUntil":80,"rxjs/add/operator/withLatestFrom":82}],255:[function(t,e,r){"use strict";var n=t("three"),i=t("../../Component"),o=function(){function t(t,e){this._imagePlaneDepth=null!=t?t:200,this._imageSphereRadius=null!=e?e:200}return t.prototype.createMesh=function(t,e){return t.pano?this._createImageSphere(t,e):this._createImagePlane(t,e)},t.prototype._createImageSphere=function(t,e){var r=this._createTexture(t.image),i=this._createSphereMaterialParameters(e,r),o=new n.ShaderMaterial(i);return this._useMesh(e,t)?new n.Mesh(this._getImageSphereGeo(e,t),o):new n.Mesh(this._getFlatImageSphereGeo(e),o)},t.prototype._createImagePlane=function(t,e){var r=this._createTexture(t.image),i=this._createPlaneMaterialParameters(e,r),o=new n.ShaderMaterial(i),a=this._useMesh(e,t)?this._getImagePlaneGeo(e,t):this._getFlatImagePlaneGeo(e);return new n.Mesh(a,o)},t.prototype._createSphereMaterialParameters=function(t,e){var r=t.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:t.rt},projectorTex:{type:"t",value:e},thetaLength:{type:"f",value:h},thetaShift:{type:"f",value:u}},vertexShader:i.ImagePlaneShaders.equirectangular.vertex}},t.prototype._createPlaneMaterialParameters=function(t,e){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:t.projectorMatrix()},projectorTex:{type:"t",value:e}},vertexShader:i.ImagePlaneShaders.perspective.vertex}},t.prototype._createTexture=function(t){var e=new n.Texture(t);return e.minFilter=n.LinearFilter,e.needsUpdate=!0,e},t.prototype._useMesh=function(t,e){return e.mesh.vertices.length&&t.scale>.01&&t.scale<50},t.prototype._getImageSphereGeo=function(t,e){for(var r=(new n.Matrix4).getInverse(t.srt),i=5*t.scale,o=this._imageSphereRadius*t.scale,a=e.mesh.vertices,s=a.length/3,c=new Float32Array(a.length),u=0;u 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}"},r.ImagePlaneShaders=n},{path:21}],259:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("virtual-dom"),o=t("rxjs/Observable"),a=t("rxjs/Subject");t("rxjs/add/observable/combineLatest"),t("rxjs/add/observable/fromEvent"),t("rxjs/add/observable/of"),t("rxjs/add/observable/zip"),t("rxjs/add/operator/distinctUntilChanged"),t("rxjs/add/operator/filter"),t("rxjs/add/operator/first"),t("rxjs/add/operator/map"),t("rxjs/add/operator/merge"),t("rxjs/add/operator/mergeMap"),t("rxjs/add/operator/scan"),t("rxjs/add/operator/switchMap"),t("rxjs/add/operator/withLatestFrom"),t("rxjs/add/operator/zip");var s=t("../../State"),c=t("../../Render"),u=t("../../Utils"),h=t("../../Component"),l=function(){function t(){this._imagePlaneFactory=new h.ImagePlaneFactory,this._imagePlaneScene=new h.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(t.prototype,"frameId",{get:function(){return this._frameId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"curtain",{get:function(){return this._curtain},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"glNeedsRender",{get:function(){return this._glNeedsRender},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"domNeedsRender",{get:function(){return this._domNeedsRender},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sliderVisible",{get:function(){return this._sliderVisible},set:function(t){this._sliderVisible=t,this._domNeedsRender=!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return null==this._currentKey||null==this._previousKey||this._currentPano},enumerable:!0,configurable:!0}),t.prototype.update=function(t){this._updateFrameId(t.id);var e=this._updateImagePlanes(t.state);this._domNeedsRender=e||this._domNeedsRender,e=this._updateCurtain(t.state.alpha)||e,this._glNeedsRender=e||this._glNeedsRender},t.prototype.updateTexture=function(t,e){var r=e.key===this._currentKey?this._imagePlaneScene.imagePlanes:e.key===this._previousKey?this._imagePlaneScene.imagePlanesOld:[];if(0!==r.length){this._glNeedsRender=!0;for(var n=0,i=r;nu.Settings.basePanoramaSize:u.Settings.maxImageSize>u.Settings.baseImageSize}).mergeMap(function(t){var e=t.pano?u.Settings.basePanoramaSize:u.Settings.baseImageSize;return Math.max(t.image.width,t.image.height)>e?o.Observable.empty():t.cacheImage$(u.Settings.maxImageSize).map(function(t){return[t.image,t]}).catch(function(e,r){return console.error("Failed to fetch high res slider image ("+t.key+")",e),o.Observable.empty()})}).map(function(t){var e=t[0],r=t[1];return function(t){return t.updateTexture(e,r),t}}).subscribe(this._sliderStateOperation$)},e.prototype._deactivate=function(){var t=this;this._navigator.stateService.state$.first().subscribe(function(e){e===s.State.Waiting&&t._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})},e.prototype._getDefaultConfiguration=function(){return{}},e.prototype._catchCacheNode$=function(t){return this._navigator.graphService.cacheNode$(t).catch(function(e,r){return console.error("Failed to cache slider node ("+t+")",e),o.Observable.empty()})},e}(h.Component);p.componentName="slider",r.SliderComponent=p,h.ComponentService.register(p),Object.defineProperty(r,"__esModule",{value:!0}),r.default=p},{"../../Component":224,"../../Render":230,"../../State":231,"../../Utils":233,"rxjs/Observable":28,"rxjs/Subject":33,"rxjs/add/observable/combineLatest":37,"rxjs/add/observable/fromEvent":41,"rxjs/add/observable/of":44,"rxjs/add/observable/zip":47,"rxjs/add/operator/distinctUntilChanged":57,"rxjs/add/operator/filter":60,"rxjs/add/operator/first":62,"rxjs/add/operator/map":64,"rxjs/add/operator/merge":65,"rxjs/add/operator/mergeMap":67,"rxjs/add/operator/scan":72,"rxjs/add/operator/switchMap":78,"rxjs/add/operator/withLatestFrom":82,"rxjs/add/operator/zip":83,"virtual-dom":180}],260:[function(t,e,r){"use strict";var n=t("./MarkerComponent");r.MarkerComponent=n.MarkerComponent;var i=t("./marker/SimpleMarker");r.SimpleMarker=i.SimpleMarker;var o=t("./marker/CircleMarker");r.CircleMarker=o.CircleMarker},{"./MarkerComponent":261,"./marker/CircleMarker":264,"./marker/SimpleMarker":266}],261:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("three"),o=t("when"),a=t("rxjs/Observable");t("rxjs/add/observable/combineLatest"),t("rxjs/add/operator/distinctUntilChanged"),t("rxjs/add/operator/map");var s=t("../../Component"),c=t("../../Render"),u=t("../../Graph"),h=t("../../Geo"),l=function(t){function e(e,r,n){var i=t.call(this,e,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(e,t),e.prototype.add=function(t){this._markerSet.add(t)},e.prototype.has=function(t){return this._markerSet.has(t)},e.prototype.get=function(t){return this._markerSet.get(t)},e.prototype.getAll=function(){return this._markerSet.getAll()},e.prototype.getMarkerIdAt=function(t){var e=this;return o.promise(function(r,n){e._container.renderService.renderCamera$.first().map(function(r){var n=e._viewportCoords.canvasToViewport(t[0],t[1],e._container.element);return e._markerScene.intersectObjects(n,r.perspective)}).subscribe(function(t){r(t)},function(t){n(t)})})},e.prototype.remove=function(t){this._markerSet.remove(t)},e.prototype.removeAll=function(){this._markerSet.removeAll()},e.prototype._activate=function(){var t=this,r=this._navigator.stateService.currentState$.map(function(e){return e.state.camera.position.z+t._relativeGroundAltitude}).distinctUntilChanged(function(t,e){return Math.abs(t-e)<.01}).publishReplay(1).refCount(),n=a.Observable.combineLatest(r,this._navigator.stateService.reference$).first().map(function(){}).publishReplay(1).refCount(),o=this._configuration$.map(function(t){return{visibleBBoxSize:Math.max(1,Math.min(200,t.visibleBBoxSize))}}),s=this._navigator.stateService.currentNode$.map(function(t){return t.latLon}).publishReplay(1).refCount(),u=a.Observable.combineLatest(o,s).map(function(e){var r=e[0],n=e[1];return t._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(t){var e=t[0],r=t[1];return e.search(r)});this._setChangedSubscription=n.switchMap(function(){return h.withLatestFrom(t._navigator.stateService.reference$,r)}).subscribe(function(e){for(var r=e[0],n=e[1],i=e[2],o=t._geoCoords,a=t._markerScene,s=a.markers,c=Object.assign({},s),u=0,h=r;ui.lat&&p.latLon.lati.lon&&p.latLon.lon50||a.lerpAltitude(h.id,r,Math.min(1,Math.max(0,1.2-1.2*d/50)))}}),this._renderSubscription=this._navigator.stateService.currentState$.map(function(e){var r=t._markerScene;return{name:t._name,render:{frameId:e.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(e){var r=e[0],n=e[1],i=t._viewportCoords.canvasToViewport(n.clientX,n.clientY,t._container.element);return t._markerScene.intersectObjects(i,r.perspective)}).publishReplay(1).refCount(),p=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragStart$).map(function(t){return!0}),f=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragEnd$).map(function(t){return!1}),d=a.Observable.merge(p,f).startWith(!1);this._dragEventSubscription=p.withLatestFrom(l).merge(a.Observable.combineLatest(f,a.Observable.of(null))).startWith([!1,null]).pairwise().subscribe(function(r){var n=r[0],i=r[1],o=i[0],a=o?e.dragstart:e.dragend,s=o?i[1]:n[1],c=t._markerScene.get(s),u={marker:c,target:t,type:a};t.fire(a,u)}),this._mouseClaimSubscription=a.Observable.combineLatest(this._container.mouseService.active$,l,d).map(function(t){var e=t[0],r=t[1],n=t[2];return!e&&null!=r||n}).distinctUntilChanged().subscribe(function(e){e?t._container.mouseService.claimMouse(t._name,1):t._container.mouseService.unclaimMouse(t._name)});var m=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragStart$).withLatestFrom(l,this._container.renderService.renderCamera$).map(function(e){var r=e[0],n=e[1],i=e[2],o=t._markerScene.get(n),a=t._viewportCoords.projectToCanvas(o.geometry.position.toArray(),t._container.element,i.perspective),s=a[0],c=a[1];return[o,[r.clientX-s,r.clientY-c],i]}).publishReplay(1).refCount();this._updateMarkerSubscription=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDrag$).withLatestFrom(m,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(t._markerScene.has(a.id)){ -var l=n.clientX-s[0],p=n.clientY-s[1],f=t._viewportCoords.canvasToViewport(l,p,t._container.element),d=f[0],m=f[1],v=new i.Vector3(d,m,1).unproject(c.perspective).sub(c.perspective.position).normalize(),g=Math.min(t._relativeGroundAltitude/v.z,h.visibleBBoxSize/2-.1);if(!(g<0)){var y=v.clone().multiplyScalar(g).add(c.perspective.position);y.z=c.perspective.position.z+t._relativeGroundAltitude;var b=t._geoCoords.enuToGeodetic(y.x,y.y,y.z,u.lat,u.lon,u.alt),_=b[0],x=b[1];t._markerScene.update(a.id,y.toArray(),{lat:_,lon:x}),t._markerSet.update(a);var w={marker:a,target:t,type:e.changed};t.fire(e.changed,w)}}})},e.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()},e.prototype._getDefaultConfiguration=function(){return{visibleBBoxSize:100}},e}(s.Component);l.componentName="marker",l.changed="changed",l.dragstart="dragstart",l.dragend="dragend",r.MarkerComponent=l,s.ComponentService.register(l),Object.defineProperty(r,"__esModule",{value:!0}),r.default=l},{"../../Component":224,"../../Geo":227,"../../Graph":228,"../../Render":230,"rxjs/Observable":28,"rxjs/add/observable/combineLatest":37,"rxjs/add/operator/distinctUntilChanged":57,"rxjs/add/operator/map":64,three:174,when:221}],262:[function(t,e,r){"use strict";var n=t("three"),i=function(){function t(t,e){this._needsRender=!1,this._interactiveObjects=[],this._markers={},this._objectMarkers={},this._raycaster=e?e:new n.Raycaster,this._scene=t?t:new n.Scene}return Object.defineProperty(t.prototype,"markers",{get:function(){return this._markers},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"needsRender",{get:function(){return this._needsRender},enumerable:!0,configurable:!0}),t.prototype.add=function(t,e){t.id in this._markers&&this._dispose(t.id),t.createGeometry(e),this._scene.add(t.geometry),this._markers[t.id]=t;for(var r=0,n=t.getInteractiveObjects();r0&&this._updated$.next(e),t.length>e.length&&this._indexChanged$.next(this)},t.prototype.has=function(t){return t in this._hash},t.prototype.get=function(t){return this.has(t)?this._hash[t].marker:void 0},t.prototype.getAll=function(){return this._index.all().map(function(t){return t.marker})},t.prototype.remove=function(t){for(var e=this._hash,r=this._index,n=!1,i=0,o=t;i0?t.touches[0]:null}).pairwise().filter(function(t){return null!=t[0]&&null!=t[1]});return o.Observable.merge(r,n)}).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$,this._navigator.stateService.currentCamera$).map(function(e){var r=e[0],n=e[1],o=e[2],a=e[3],s=a.clone(),c=r[0],u=r[1],h=u.clientX-c.clientX,l=u.clientY-c.clientY,p=t._container.element,f=t._viewportCoords.canvasPosition(u,p),d=f[0],m=f[1],v=t._viewportCoords.unprojectFromCanvas(d,m,p,n.perspective).sub(n.perspective.position),g=t._viewportCoords.unprojectFromCanvas(d-h,m,p,n.perspective).sub(n.perspective.position),y=t._viewportCoords.unprojectFromCanvas(d,m-l,p,n.perspective).sub(n.perspective.position),b=(h>0?1:-1)*g.angleTo(v),_=(l>0?-1:1)*y.angleTo(v),x=(new i.Quaternion).setFromUnitVectors(s.up,new i.Vector3(0,0,1)),w=x.clone().inverse(),S=new i.Vector3;S.copy(s.lookat).sub(s.position),S.applyQuaternion(x);var M=S.length(),E=Math.atan2(S.y,S.x);E+=b;var T=Math.atan2(Math.sqrt(S.x*S.x+S.y*S.y),S.z);T+=_,T=Math.max(.01,Math.min(Math.PI-.01,T)),S.x=Math.sin(T)*Math.cos(E),S.y=Math.sin(T)*Math.sin(E),S.z=Math.cos(T),S.applyQuaternion(w);var C=(new i.Vector3).copy(s.position).add(S.multiplyScalar(M)),O=o.projectBasic(C.toArray()),P=o.projectBasic(s.lookat.toArray()),A=O[0]-P[0],j=O[1]-P[1];Math.abs(A)>1?A=0:A>.5?A-=1:A<-.5&&(A+=1);var R=t._basicRotationThreshold;if(A=t._spatial.clamp(A,-R,R),j=t._spatial.clamp(j,-R,R),o.fullPano)return[A,j];var L=t._viewportCoords.getPixelDistances(t._container.element,o,n.perspective),N=t._forceCoeff;return L[0]>0&&j<0&&O[1]<.5&&(j/=Math.max(1,N*L[0])),L[1]>0&&A>0&&O[0]>.5&&(A/=Math.max(1,N*L[1])),L[2]>0&&j>0&&O[1]>.5&&(j/=Math.max(1,N*L[2])),L[3]>0&&A<0&&O[0]<.5&&(A/=Math.max(1,N*L[3])),[A,j]}).subscribe(function(e){t._navigator.stateService.rotateBasic(e)})},e.prototype._disable=function(){this._activeMouseSubscription.unsubscribe(),this._activeTouchSubscription.unsubscribe(),this._preventDefaultSubscription.unsubscribe(),this._rotateBasicSubscription.unsubscribe(),this._activeMouseSubscription=null,this._activeTouchSubscription=null,this._rotateBasicSubscription=null},e.prototype._getConfiguration=function(t){return{dragPan:t}},e}(a.MouseHandlerBase);r.DragPanHandler=s,Object.defineProperty(r,"__esModule",{value:!0}),r.default=s},{"../../Component":224,"rxjs/Observable":28,three:174}],269:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("rxjs/Observable");t("rxjs/add/observable/merge"),t("rxjs/add/operator/filter"),t("rxjs/add/operator/map"),t("rxjs/add/operator/withLatestFrom");var o=t("../../Component"),a=t("../../Geo"),s=function(t){function e(e,r,n){var i=t.call(this,e,r,n)||this;i._basicDistanceThreshold=.001,i._basicRotationThreshold=.05,i._bounceCoeff=.1;var s=new a.Spatial,c=new a.ViewportCoords;return i._spatial=s,i._viewportCoords=c,i._doubleClickZoomHandler=new o.DoubleClickZoomHandler(i,r,n,c),i._dragPanHandler=new o.DragPanHandler(i,r,n,c,s),i._scrollZoomHandler=new o.ScrollZoomHandler(i,r,n,c),i._touchZoomHandler=new o.TouchZoomHandler(i,r,n,c),i}return n(e,t),Object.defineProperty(e.prototype,"doubleClickZoom",{get:function(){return this._doubleClickZoomHandler},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dragPan",{get:function(){return this._dragPanHandler},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scrollZoom",{get:function(){return this._scrollZoomHandler},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"touchZoom",{get:function(){return this._touchZoomHandler},enumerable:!0,configurable:!0}),e.prototype._activate=function(){var t=this;this._configurationSubscription=this._configuration$.subscribe(function(e){e.doubleClickZoom?t._doubleClickZoomHandler.enable():t._doubleClickZoomHandler.disable(),e.dragPan?t._dragPanHandler.enable():t._dragPanHandler.disable(),e.scrollZoom?t._scrollZoomHandler.enable():t._scrollZoomHandler.disable(),e.touchZoom?t._touchZoomHandler.enable():t._touchZoomHandler.disable()});var e=this._navigator.stateService.currentState$.map(function(t){return t.state.alpha<1});this._bounceSubscription=i.Observable.combineLatest(e,this._navigator.stateService.inTranslation$,this._container.mouseService.active$,this._container.touchService.active$).map(function(t){return t[0]||t[1]||t[2]||t[3]}).distinctUntilChanged().switchMap(function(e){return e?i.Observable.empty():i.Observable.combineLatest(t._container.renderService.renderCamera$,t._navigator.stateService.currentTransform$.first())}).subscribe(function(e){var r=e[0],n=r.perspective,i=e[1],o=t._basicDistanceThreshold/Math.pow(2,r.zoom),a=t._viewportCoords.viewportToBasic(0,0,i,n);if(!(Math.abs(a[0]-.5)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=t._basicRotationThreshold;c=t._spatial.clamp(c,-l,l),u=t._spatial.clamp(u,-l,l),t._navigator.stateService.rotateBasicUnbounded([c,u])}}}),this._container.mouseService.claimMouse(this._name,0)},e.prototype._deactivate=function(){this._container.mouseService.unclaimMouse(this._name),this._bounceSubscription.unsubscribe(),this._configurationSubscription.unsubscribe(),this._doubleClickZoomHandler.disable(),this._dragPanHandler.disable(),this._scrollZoomHandler.disable(),this._touchZoomHandler.disable()},e.prototype._getDefaultConfiguration=function(){return{doubleClickZoom:!0,dragPan:!0,scrollZoom:!0,touchZoom:!0}},e}(o.Component);s.componentName="mouse",r.MouseComponent=s,o.ComponentService.register(s),Object.defineProperty(r,"__esModule",{value:!0}),r.default=s},{"../../Component":224,"../../Geo":227,"rxjs/Observable":28,"rxjs/add/observable/merge":43,"rxjs/add/operator/filter":60,"rxjs/add/operator/map":64,"rxjs/add/operator/withLatestFrom":82}],270:[function(t,e,r){"use strict";var n=function(){function t(t,e,r,n){this._component=t,this._container=e,this._navigator=r,this._viewportCoords=n,this._enabled=!1}return Object.defineProperty(t.prototype,"isEnabled",{get:function(){return this._enabled},enumerable:!0,configurable:!0}),t.prototype.enable=function(){!this._enabled&&this._component.activated&&(this._enable(),this._enabled=!0,this._component.configure(this._getConfiguration(!0)))},t.prototype.disable=function(){this._enabled&&(this._disable(),this._enabled=!1,this._component.activated&&this._component.configure(this._getConfiguration(!1)))},t}();r.MouseHandlerBase=n,Object.defineProperty(r,"__esModule",{value:!0}),r.default=n},{}],271:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../../Component"),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype._enable=function(){var t=this;this._preventDefaultSubscription=this._container.mouseService.mouseWheel$.subscribe(function(t){t.preventDefault()}),this._zoomSubscription=this._container.mouseService.filtered$(this._component.name,this._container.mouseService.mouseWheel$).withLatestFrom(this._navigator.stateService.currentState$,function(t,e){return[t,e]}).filter(function(t){var e=t[1].state;return e.currentNode.fullPano||e.nodesAhead<1}).map(function(t){return t[0]}).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$,function(t,e,r){return[t,e,r]}).subscribe(function(e){var r=e[0],n=e[1],i=e[2],o=t._container.element,a=t._viewportCoords.canvasPosition(r,o),s=a[0],c=a[1],u=t._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=t._viewportCoords.containerToCanvas(o),f=-3*l/p[1];t._navigator.stateService.zoomIn(f,h)})},e.prototype._disable=function(){this._preventDefaultSubscription.unsubscribe(),this._zoomSubscription.unsubscribe(),this._preventDefaultSubscription=null,this._zoomSubscription=null},e.prototype._getConfiguration=function(t){return{scrollZoom:t}},e}(i.MouseHandlerBase);r.ScrollZoomHandler=o,Object.defineProperty(r,"__esModule",{value:!0}),r.default=o},{"../../Component":224}],272:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("rxjs/Observable"),o=t("../../Component"),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype._enable=function(){var t=this;this._preventDefaultSubscription=this._container.touchService.pinch$.subscribe(function(t){t.originalEvent.preventDefault()});var e=this._container.touchService.pinchStart$.map(function(t){return!0}),r=this._container.touchService.pinchEnd$.map(function(t){return!1});this._activeSubscription=i.Observable.merge(e,r).subscribe(this._container.touchService.activate$),this._zoomSubscription=this._container.touchService.pinch$.withLatestFrom(this._navigator.stateService.currentState$).filter(function(t){var e=t[1].state;return e.currentNode.fullPano||e.nodesAhead<1}).map(function(t){return t[0]}).withLatestFrom(this._container.renderService.renderCamera$,this._navigator.stateService.currentTransform$).subscribe(function(e){var r=e[0],n=e[1],i=e[2],o=t._container.element,a=t._viewportCoords.canvasPosition(r,o),s=a[0],c=a[1],u=t._viewportCoords.unprojectFromCanvas(s,c,o,n.perspective),h=i.projectBasic(u.toArray()),l=t._viewportCoords.containerToCanvas(o),p=l[0],f=l[1],d=3*r.distanceChange/Math.min(p,f);t._navigator.stateService.zoomIn(d,h)})},e.prototype._disable=function(){this._activeSubscription.unsubscribe(),this._preventDefaultSubscription.unsubscribe(),this._zoomSubscription.unsubscribe(),this._preventDefaultSubscription=null,this._zoomSubscription=null},e.prototype._getConfiguration=function(t){return{touchZoom:t}},e}(o.MouseHandlerBase);r.TouchZoomHandler=a,Object.defineProperty(r,"__esModule",{value:!0}),r.default=a},{"../../Component":224,"rxjs/Observable":28}],273:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("rxjs/Observable"),o=t("rxjs/Subject");t("rxjs/add/observable/combineLatest"),t("rxjs/add/observable/of"),t("rxjs/add/operator/bufferCount"),t("rxjs/add/operator/concat"),t("rxjs/add/operator/distinctUntilChanged"),t("rxjs/add/operator/filter"),t("rxjs/add/operator/finally"),t("rxjs/add/operator/first"),t("rxjs/add/operator/map"),t("rxjs/add/operator/publishReplay"),t("rxjs/add/operator/scan"),t("rxjs/add/operator/share"),t("rxjs/add/operator/switchMap"),t("rxjs/add/operator/takeUntil"),t("rxjs/add/operator/withLatestFrom");var a=t("../../Component"),s=t("../../Edge"),c=function(t){function e(e,r,n){var i=t.call(this,e,r,n)||this;return i._nodesAhead=5,i._configurationOperation$=new o.Subject,i._sequenceDOMRenderer=new a.SequenceDOMRenderer(r.element),i._sequenceDOMInteraction=new a.SequenceDOMInteraction,i._containerWidth$=new o.Subject,i._hoveredKeySubject$=new o.Subject,i._hoveredKey$=i._hoveredKeySubject$.share(),i._edgeStatus$=i._navigator.stateService.currentNode$.switchMap(function(t){return t.sequenceEdges$}).publishReplay(1).refCount(),i}return n(e,t),Object.defineProperty(e.prototype,"hoveredKey$",{get:function(){return this._hoveredKey$},enumerable:!0,configurable:!0}),e.prototype.play=function(){this.configure({playing:!0})},e.prototype.stop=function(){this.configure({playing:!1})},e.prototype.setDirection=function(t){this.configure({direction:t})},e.prototype.setHighlightKey=function(t){this.configure({highlightKey:t})},e.prototype.setMaxWidth=function(t){this.configure({maxWidth:t})},e.prototype.setMinWidth=function(t){this.configure({minWidth:t})},e.prototype.setVisible=function(t){this.configure({visible:t})},e.prototype.resize=function(){var t=this;this._configuration$.first().map(function(e){return t._sequenceDOMRenderer.getContainerWidth(t._container.element,e)}).subscribe(function(e){t._containerWidth$.next(e)})},e.prototype._activate=function(){var t=this;this._renderSubscription=i.Observable.combineLatest(this._edgeStatus$,this._configuration$,this._containerWidth$).map(function(e){var r=e[0],n=e[1],i=e[2],o=t._sequenceDOMRenderer.render(r,n,i,t,t._sequenceDOMInteraction,t._navigator);return{name:t._name,vnode:o}}).subscribe(this._container.domRenderer.render$),this._containerWidthSubscription=this._configuration$.distinctUntilChanged(function(t,e){return t[0]===e[0]&&t[1]===e[1]},function(t){return[t.minWidth,t.maxWidth]}).map(function(e){return t._sequenceDOMRenderer.getContainerWidth(t._container.element,e)}).subscribe(this._containerWidth$),this._configurationSubscription=this._configurationOperation$.scan(function(t,e){return e(t)},{playing:!1}).finally(function(){null!=t._playingSubscription&&(t._navigator.stateService.cutNodes(),t._stop())}).subscribe(function(){}),this._configuration$.map(function(e){return function(r){return e.playing!==r.playing&&(t._navigator.stateService.cutNodes(),e.playing?t._play():t._stop()),r.playing=e.playing,r}}).subscribe(this._configurationOperation$),this._stopSubscription=this._configuration$.switchMap(function(e){var r=e.playing?t._edgeStatus$:i.Observable.empty(),n=i.Observable.of(e.direction);return i.Observable.combineLatest(r,n)}).map(function(t){var e=t[0],r=t[1];if(!e.cached)return!0;for(var n=0,i=e.edges;n-1?t[0].sequenceEdges$:t[0].spatialEdges$).filter(function(t){return t.cached}).zip(i.Observable.of(t[1]),function(t,e){return[t,e]})}).map(function(t){for(var e=t[1],r=0,n=t[0].edges;r1||o<0||o>1)throw new i.GeometryTagError("Basic coordinates must be on the interval [0, 1].");return r._point=e.slice(),r}return n(e,t),Object.defineProperty(e.prototype,"point",{get:function(){return this._point},enumerable:!0,configurable:!0}),e.prototype.getCentroid3d=function(t){return t.unprojectBasic(this._point,200)},e.prototype.setCentroid2d=function(t,e){var r=[Math.max(0,Math.min(1,t[0])),Math.max(0,Math.min(1,t[1]))];this._point[0]=r[0],this._point[1]=r[1],this._notifyChanged$.next(this)},e}(i.Geometry);r.PointGeometry=o},{"../../../Component":224}],286:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../../../Component"),o=function(t){function e(e,r){var n=t.call(this)||this,o=e.length;if(o<3)throw new i.GeometryTagError("A polygon must have three or more positions.");if(e[0][0]!==e[o-1][0]||e[0][1]!==e[o-1][1])throw new i.GeometryTagError("First and last positions must be equivalent.");n._polygon=[];for(var a=0,s=e;a1||c[1]<0||c[1]>1)throw new i.GeometryTagError("Basic coordinates of polygon must be on the interval [0, 1].");n._polygon.push(c.slice())}if(n._holes=[],null==r)return n;for(var u=0;u1||c[1]<0||c[1]>1)throw new i.GeometryTagError("Basic coordinates of hole must be on the interval [0, 1].");n._holes[u].push(c.slice())}}return n}return n(e,t),Object.defineProperty(e.prototype,"polygon",{get:function(){return this._polygon},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"holes",{get:function(){return this._holes},enumerable:!0,configurable:!0}),e.prototype.addVertex2d=function(t){var e=[Math.max(0,Math.min(1,t[0])),Math.max(0,Math.min(1,t[1]))];this._polygon.splice(this._polygon.length-1,0,e),this._notifyChanged$.next(this)},e.prototype.removeVertex2d=function(t){if(t<0||t>=this._polygon.length||this._polygon.length<4)throw new i.GeometryTagError("Index for removed vertex must be valid.");if(t>0&&te[3])throw new i.GeometryTagError("Basic Y coordinates values can not be inverted.");for(var n=0,o=e;n1)throw new i.GeometryTagError("Basic coordinates must be on the interval [0, 1].")}return r._rect=e.slice(0,4),r._rect[0]>r._rect[2]&&(r._inverted=!0),r}return n(e,t),Object.defineProperty(e.prototype,"rect",{get:function(){return this._rect},enumerable:!0,configurable:!0}),e.prototype.setVertex2d=function(t,e,r){var n=this._rect.slice(),i=[Math.max(0,Math.min(1,e[0])),Math.max(0,Math.min(1,e[1]))],o=[];if(0===t?(o[0]=i[0],o[1]=n[1],o[2]=n[2],o[3]=i[1]):1===t?(o[0]=i[0],o[1]=i[1],o[2]=n[2],o[3]=n[3]):2===t?(o[0]=n[0],o[1]=i[1],o[2]=i[0],o[3]=n[3]):3===t&&(o[0]=n[0],o[1]=n[1],o[2]=i[0],o[3]=i[1]),r.gpano){var a=t<2&&i[0]>.75&&n[0]<.25||t>=2&&this._inverted&&i[0]>.75&&n[2]<.25,s=t<2&&this._inverted&&i[0]<.25&&n[0]>.75||t>=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]);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)},e.prototype.setCentroid2d=function(t,e){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!=e.gpano&&e.gpano.CroppedAreaImageWidthPixels===e.gpano.FullPanoWidthPixels)u=this._inverted?t[0]+1-s:t[0]-s;else{var h=-n,l=1-i;u=Math.max(h,Math.min(l,t[0]-s))}var p=-o,f=1-a,d=Math.max(p,Math.min(f,t[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)},e.prototype.getPoints3d=function(t){return this._getPoints2d(t).map(function(e){return t.unprojectBasic(e,200)})},e.prototype.getVertex3d=function(t,e){return e.unprojectBasic(this._rectToVertices2d(this._rect)[t],200)},e.prototype.getVertices3d=function(t){return this._rectToVertices2d(this._rect).map(function(e){return t.unprojectBasic(e,200)})},e.prototype.getCentroid3d=function(t){var e=this._rect,r=e[0],n=this._inverted?e[2]+1:e[2],i=e[1],o=e[3],a=r+(n-r)/2,s=i+(o-i)/2;return t.unprojectBasic([a,s],200)},e.prototype.getTriangles3d=function(t){return this._triangulate(this._rectToVertices2d(this._rect),this.getVertices3d(t))},e.prototype.validate=function(t){var e=this._rect;return!(!this._inverted&&t[0].25||t[1]4?function(t){t.stopPropagation(),d.removeVertex2d(d.polygon.length-2),n._created$.next(n)}:s,f={onclick:g,style:{left:l[0],position:"absolute",top:l[1]}},y=d.polygon.length>4?"TagCompleter":"TagInteractor";o.push(i.h("div."+y,f,[]))}if(d.polygon.length>3){var b=this._geometry.getVertex3d(d.polygon.length-3,t),_=this._convertToCameraSpace(b,e);if(_.z<0){var h=this._projectToCanvas(_,r),l=h.map(function(t){return 100*t+"%"}),x=function(t){t.stopPropagation(),d.removeVertex2d(d.polygon.length-3)},f={onclick:x,style:{left:l[0],position:"absolute",top:l[1]}};o.push(i.h("div.TagInteractor",f,[]))}}var w=this._geometry.getVertices3d(t);w.splice(-2,2);for(var S=0,M=w;S0&&!r.gpano?n._createFill():null,n._holes=n._tag.lineWidth>=1?n._createHoles():[],n._outline=n._tag.lineWidth>=1?n._createOutline():null,n._glObjects=n._createGLObjects(),n._tag.geometry.changed$.subscribe(function(t){null!=n._fill&&n._updateFillGeometry(),n._holes.length>0&&n._updateHoleGeometries(),null!=n._outline&&n._updateOulineGeometry()}),n._tag.changed$.subscribe(function(t){var e=!1;null==n._fill?n._tag.fillOpacity>0&&!n._transform.gpano&&(n._fill=n._createFill(),e=!0):n._updateFillMaterial(),null==n._outline?n._tag.lineWidth>0&&(n._holes=n._createHoles(),n._outline=n._createOutline(),e=!0):(n._updateHoleMaterials(),n._updateOutlineMaterial()),e&&(n._glObjects=n._createGLObjects(),n._glObjectsChanged$.next(n))}),n}return n(e,t),e.prototype.dispose=function(){this._disposeFill(),this._disposeHoles(),this._disposeOutline()},e.prototype.getDOMObjects=function(t,e,r){var n=this,i=[];if(this._tag.geometry instanceof a.RectGeometry)if(null!=this._tag.icon){var s=this._tag.geometry.getVertex3d(this._tag.iconIndex,this._transform),c=this._convertToCameraSpace(s,e);if(c.z<0){var u=function(t){n._interact$.next({offsetX:0,offsetY:0,operation:a.TagOperation.None,tag:n._tag})};if(t.loaded){var h=this._getSpriteAlignment(this._tag.iconIndex,this._tag.iconAlignment),l=t.getDOMSprite(this._tag.icon,h[0],h[1]),p=function(t){t.stopPropagation(),n._tag.click$.next(n._tag)},f=this._projectToCanvas(c,r),d=f.map(function(t){return 100*t+"%"}),m={onclick:p,onmousedown:u,style:{left:d[0],pointerEvents:"all",position:"absolute",top:d[1]}};i.push(o.h("div.TagSymbol",m,[l]))}}}else if(null!=this._tag.text){var v=this._tag.geometry.getVertex3d(3,this._transform),g=this._convertToCameraSpace(v,e);if(g.z<0){var u=function(t){n._interact$.next({offsetX:0,offsetY:0,operation:a.TagOperation.None,tag:n._tag})},y=this._projectToCanvas(g,r),b=y.map(function(t){return 100*t+"%"}),m={onmousedown:u,style:{color:"#"+("000000"+this._tag.textColor.toString(16)).substr(-6),left:b[0],pointerEvents:"all",position:"absolute",top:b[1]},textContent:this._tag.text};i.push(o.h("span.TagSymbol",m,[]))}}if(!this._tag.editable)return i;var _="#"+("000000"+this._tag.lineColor.toString(16)).substr(-6);if(this._tag.geometry instanceof a.RectGeometry){var x=this._tag.geometry.getCentroid3d(this._transform),w=this._convertToCameraSpace(x,e);if(w.z<0){var u=this._interact(a.TagOperation.Centroid),S=this._projectToCanvas(w,r),M=S.map(function(t){return 100*t+"%"}),m={onmousedown:u,style:{background:_,left:M[0],position:"absolute",top:M[1]}};i.push(o.h("div.TagMover",m,[]))}}for(var E=this._tag.geometry.getVertices3d(this._transform),T=0;T0)){var u=this._interact(a.TagOperation.Vertex,T),P=this._projectToCanvas(O,r),A=P.map(function(t){return 100*t+"%"}),m={onmousedown:u,style:{background:_,left:A[0],position:"absolute",top:A[1]}};if(C&&(m.style.cursor=T%2==0?"nesw-resize":"nwse-resize"),i.push(o.h("div.TagResizer",m,[])),this._tag.indicateVertices){var j={style:{background:_,left:A[0],position:"absolute",top:A[1]}};i.push(o.h("div.TagVertex",j,[]))}}}}return i},e.prototype._createFill=function(){var t=this._tag.geometry.getTriangles3d(this._transform),e=new Float32Array(t),r=new i.BufferGeometry;r.addAttribute("position",new i.BufferAttribute(e,3)),r.computeBoundingSphere();var n=new i.MeshBasicMaterial({color:this._tag.fillColor,opacity:this._tag.fillOpacity,side:i.DoubleSide,transparent:!0});return new i.Mesh(r,n)},e.prototype._createGLObjects=function(){var t=[];null!=this._fill&&t.push(this._fill);for(var e=0,r=this._holes;e=1?1:0,t.transparent=this._tag.lineWidth<=0,t.needsUpdate=!0},e}(a.RenderTag);r.OutlineRenderTag=c},{"../../../Component":224,"../../../Viewer":234,three:174,"virtual-dom":180}],292:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("rxjs/Subject"),o=t("../../../Component"),a=function(t){function e(r,n,a){var s=t.call(this,r,n)||this;return s._editable=null!=a.editable&&a.editable,s._fillColor=null==a.fillColor?16777215:a.fillColor,s._fillOpacity=null==a.fillOpacity?0:a.fillOpacity,s._icon=void 0===a.icon?null:a.icon,s._iconAlignment=null==a.iconAlignment?o.Alignment.Outer:a.iconAlignment,s._iconIndex=null==a.iconIndex?3:a.iconIndex,s._indicateVertices=null==a.indicateVertices||a.indicateVertices,s._lineColor=null==a.lineColor?16777215:a.lineColor,s._lineWidth=null==a.lineWidth?1:a.lineWidth,s._text=void 0===a.text?null:a.text,s._textColor=null==a.textColor?16777215:a.textColor,s._click$=new i.Subject,s._click$.subscribe(function(t){s.fire(e.click,s)}),s}return n(e,t),Object.defineProperty(e.prototype,"click$",{get:function(){return this._click$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"editable",{get:function(){return this._editable},set:function(t){this._editable=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fillColor",{get:function(){return this._fillColor},set:function(t){this._fillColor=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fillOpacity",{get:function(){return this._fillOpacity},set:function(t){this._fillOpacity=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"geometry",{get:function(){return this._geometry},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"icon",{get:function(){return this._icon},set:function(t){this._icon=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iconAlignment",{get:function(){return this._iconAlignment},set:function(t){this._iconAlignment=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iconIndex",{get:function(){return this._iconIndex},set:function(t){this._iconIndex=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"indicateVertices",{get:function(){return this._indicateVertices},set:function(t){this._indicateVertices=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lineColor",{get:function(){return this._lineColor},set:function(t){this._lineColor=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lineWidth",{get:function(){return this._lineWidth},set:function(t){this._lineWidth=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"text",{get:function(){return this._text},set:function(t){this._text=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textColor",{get:function(){return this._textColor},set:function(t){this._textColor=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),e.prototype.setOptions=function(t){this._editable=null==t.editable?this._editable:t.editable,this._icon=void 0===t.icon?this._icon:t.icon,this._iconAlignment=null==t.iconAlignment?this._iconAlignment:t.iconAlignment,this._iconIndex=null==t.iconIndex?this._iconIndex:t.iconIndex,this._indicateVertices=null==t.indicateVertices?this._indicateVertices:t.indicateVertices,this._lineColor=null==t.lineColor?this._lineColor:t.lineColor,this._lineWidth=null==t.lineWidth?this._lineWidth:t.lineWidth,this._fillColor=null==t.fillColor?this._fillColor:t.fillColor,this._fillOpacity=null==t.fillOpacity?this._fillOpacity:t.fillOpacity,this._text=void 0===t.text?this._text:t.text,this._textColor=null==t.textColor?this._textColor:t.textColor,this._notifyChanged$.next(this)},e}(o.Tag);a.click="click",r.OutlineTag=a,Object.defineProperty(r,"__esModule",{value:!0}),r.default=a},{"../../../Component":224,"rxjs/Subject":33}],293:[function(t,e,r){"use strict";var n=t("three"),i=t("rxjs/Subject"),o=function(){function t(t,e){this._tag=t,this._transform=e,this._glObjects=[],this._glObjectsChanged$=new i.Subject,this._interact$=new i.Subject}return Object.defineProperty(t.prototype,"glObjects",{get:function(){return this._glObjects},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"glObjectsChanged$",{get:function(){return this._glObjectsChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"interact$",{get:function(){return this._interact$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"tag",{get:function(){return this._tag},enumerable:!0,configurable:!0}),t.prototype._projectToCanvas=function(t,e){var r=new n.Vector3(t.x,t.y,t.z).applyProjection(e);return[(r.x+1)/2,(1-r.y)/2]},t.prototype._convertToCameraSpace=function(t,e){return new n.Vector3(t[0],t[1],t[2]).applyMatrix4(e)},t}();r.RenderTag=o,Object.defineProperty(r,"__esModule",{value:!0}),r.default=o},{"rxjs/Subject":33,three:174}],294:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("virtual-dom"),o=t("../../../Component"),a=t("../../../Viewer"),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.dispose=function(){},e.prototype.getDOMObjects=function(t,e,r){var n=this,s=[],c=this._tag.geometry.getCentroid3d(this._transform),u=this._convertToCameraSpace(c,e);if(u.z<0){var h=this._projectToCanvas(u,r),l=h.map(function(t){return 100*t+"%"}),p=function(t){n._interact$.next({offsetX:0,offsetY:0,operation:o.TagOperation.None,tag:n._tag})};if(null!=this._tag.icon){if(t.loaded){var f=t.getDOMSprite(this._tag.icon,a.SpriteAlignment.Center,a.SpriteAlignment.End),d={onmousedown:p,style:{bottom:100*(1-h[1])+"%",left:l[0],pointerEvents:"all",position:"absolute",transform:"translate(0px, -8px)"}};s.push(i.h("div",d,[f]))}}else if(null!=this._tag.text){var d={onmousedown:p,style:{bottom:100*(1-h[1])+"%",color:"#"+("000000"+this._tag.textColor.toString(16)).substr(-6),left:l[0],pointerEvents:"all",position:"absolute",transform:"translate(-50%, -7px)"},textContent:this._tag.text};s.push(i.h("span.TagSymbol",d,[]))}var m=this._interact(o.TagOperation.Centroid),v="#"+("000000"+this._tag.color.toString(16)).substr(-6);if(this._tag.editable){var g={onmousedown:m,style:{background:v,left:l[0],pointerEvents:"all",position:"absolute",top:l[1]}};s.push(i.h("div.TagSpotInteractor",g,[]))}var y={style:{background:v,left:l[0],position:"absolute",top:l[1]}};s.push(i.h("div.TagVertex",y,[]))}return s},e.prototype._interact=function(t,e){var r=this;return function(n){var i=n.offsetX-n.target.offsetWidth/2,o=n.offsetY-n.target.offsetHeight/2;r._interact$.next({offsetX:i,offsetY:o,operation:t,tag:r._tag,vertexIndex:e})}},e}(o.RenderTag);r.SpotRenderTag=s},{"../../../Component":224,"../../../Viewer":234,"virtual-dom":180}],295:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../../../Component"),o=function(t){function e(e,r,n){var i=t.call(this,e,r)||this;return 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(e,t),Object.defineProperty(e.prototype,"color",{get:function(){return this._color},set:function(t){this._color=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"editable",{get:function(){return this._editable},set:function(t){this._editable=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"icon",{get:function(){return this._icon},set:function(t){this._icon=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"text",{get:function(){return this._text},set:function(t){this._text=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textColor",{get:function(){return this._textColor},set:function(t){this._textColor=t,this._notifyChanged$.next(this)},enumerable:!0,configurable:!0}),e.prototype.setOptions=function(t){this._color=null==t.color?this._color:t.color,this._editable=null==t.editable?this._editable:t.editable,this._icon=void 0===t.icon?this._icon:t.icon,this._text=void 0===t.text?this._text:t.text,this._textColor=null==t.textColor?this._textColor:t.textColor,this._notifyChanged$.next(this)},e}(i.Tag);r.SpotTag=o,Object.defineProperty(r,"__esModule",{value:!0}),r.default=o},{"../../../Component":224}],296:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("rxjs/Subject");t("rxjs/add/operator/map"),t("rxjs/add/operator/share");var o=t("../../../Utils"),a=function(t){function e(r,n){var o=t.call(this)||this;return o._id=r,o._geometry=n,o._notifyChanged$=new i.Subject,o._notifyChanged$.subscribe(function(t){o.fire(e.changed,o)}),o._geometry.changed$.subscribe(function(t){o.fire(e.geometrychanged,o)}),o}return n(e,t),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,"changed$",{get:function(){return this._notifyChanged$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"geometryChanged$",{get:function(){var t=this;return this._geometry.changed$.map(function(e){return t}).share()},enumerable:!0,configurable:!0}),e}(o.EventEmitter);a.changed="changed",a.geometrychanged="geometrychanged",r.Tag=a,Object.defineProperty(r,"__esModule",{value:!0}),r.default=a},{"../../../Utils":233,"rxjs/Subject":33,"rxjs/add/operator/map":64,"rxjs/add/operator/share":73}],297:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("./MapillaryError"),o=function(t){function e(e){var r=t.call(this,null!=e?e:"The argument is not valid.")||this;return r.name="ArgumentMapillaryError",r}return n(e,t),e}(i.MapillaryError);r.ArgumentMapillaryError=o,Object.defineProperty(r,"__esModule",{value:!0}),r.default=o},{"./MapillaryError":299}],298:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("./MapillaryError"),o=function(t){function e(e){var r=t.call(this,e)||this;return r.name="GraphMapillaryError",r}return n(e,t),e}(i.MapillaryError);r.GraphMapillaryError=o,Object.defineProperty(r,"__esModule",{value:!0}),r.default=o},{"./MapillaryError":299}],299:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=function(t){function e(e){var r=t.call(this,e)||this;return r.name="MapillaryError",r}return n(e,t),e}(Error);r.MapillaryError=i,Object.defineProperty(r,"__esModule",{value:!0}),r.default=i},{}],300:[function(t,e,r){"use strict";var n=t("three"),i=function(){function t(t){null!=t?(this._position=(new n.Vector3).fromArray(t.unprojectSfM([0,0],0)),this._lookat=(new n.Vector3).fromArray(t.unprojectSfM([0,0],10)),this._up=t.upVector(),this._focal=this._getFocal(t)):(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(t.prototype,"position",{get:function(){return this._position},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lookat",{get:function(){return this._lookat},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"up",{get:function(){return this._up},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"focal",{get:function(){return this._focal},set:function(t){this._focal=t},enumerable:!0,configurable:!0}),t.prototype.lerpCameras=function(t,e,r){this._position.subVectors(e.position,t.position).multiplyScalar(r).add(t.position),this._lookat.subVectors(e.lookat,t.lookat).multiplyScalar(r).add(t.lookat),this._up.subVectors(e.up,t.up).multiplyScalar(r).add(t.up),this._focal=(1-r)*t.focal+r*e.focal},t.prototype.copy=function(t){this._position.copy(t.position),this._lookat.copy(t.lookat),this._up.copy(t.up),this._focal=t.focal},t.prototype.clone=function(){var e=new t;return e.position.copy(this._position),e.lookat.copy(this._lookat),e.up.copy(this._up),e.focal=this._focal,e},t.prototype.diff=function(t){var e=this._position.distanceToSquared(t.position),r=this._lookat.distanceToSquared(t.lookat),n=this._up.distanceToSquared(t.up),i=100*Math.abs(this._focal-t.focal);return Math.max(e,r,n,i)},t.prototype._getFocal=function(t){if(null==t.gpano)return t.focal;var e=Math.PI*t.gpano.CroppedAreaImageHeightPixels/t.gpano.FullPanoHeightPixels,r=.5/Math.tan(e/2);return Math.min(1/(2*(Math.sqrt(2)-1)),Math.max(.5,r))},t}();r.Camera=i},{three:174}],301:[function(t,e,r){"use strict";var n=function(){function t(){this._wgs84a=6378137,this._wgs84b=6356752.31424518}return t.prototype.geodeticToEnu=function(t,e,r,n,i,o){var a=this.geodeticToEcef(t,e,r);return this.ecefToEnu(a[0],a[1],a[2],n,i,o)},t.prototype.enuToGeodetic=function(t,e,r,n,i,o){var a=this.enuToEcef(t,e,r,n,i,o);return this.ecefToGeodetic(a[0],a[1],a[2])},t.prototype.ecefToEnu=function(t,e,r,n,i,o){var a=this.geodeticToEcef(n,i,o),s=[t-a[0],e-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]]},t.prototype.enuToEcef=function(t,e,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*t-c*u*e+s*u*r+a[0],u*t-c*h*e+s*h*r+a[1],s*e+c*r+a[2]]},t.prototype.geodeticToEcef=function(t,e,r){var n=this._wgs84a,i=this._wgs84b;t=t*Math.PI/180,e=e*Math.PI/180;var o=Math.cos(t),a=Math.sin(t),s=Math.cos(e),c=Math.sin(e),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]},t.prototype.ecefToGeodetic=function(t,e,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(t*t+e*e),l=Math.atan2(r*n,h*i),p=Math.sin(l),f=Math.cos(l),d=Math.atan2(e,t),m=Math.atan2(r+u*u*i*p*p*p,h-c*c*n*f*f*f),v=Math.sin(m),g=Math.cos(m),y=n/Math.sqrt(1-c*c*v*v),b=h/g-y;return[180*m/Math.PI,180*d/Math.PI,b]},t}();r.GeoCoords=n,Object.defineProperty(r,"__esModule",{value:!0}),r.default=n},{}],302:[function(t,e,r){"use strict";var n=t("three"),i=function(){function t(){this._epsilon=1e-9}return t.prototype.azimuthalToBearing=function(t){return-t+Math.PI/2},t.prototype.degToRad=function(t){return Math.PI*t/180},t.prototype.radToDeg=function(t){return 180*t/Math.PI},t.prototype.rotationMatrix=function(t){var e=new n.Vector3(t[0],t[1],t[2]),r=e.length();return e.normalize(),(new n.Matrix4).makeRotationAxis(e,r)},t.prototype.rotate=function(t,e){var r=new n.Vector3(t[0],t[1],t[2]),i=this.rotationMatrix(e);return r.applyMatrix4(i),r},t.prototype.opticalCenter=function(t,e){var r=[-t[0],-t[1],-t[2]],n=[-e[0],-e[1],-e[2]];return this.rotate(n,r)},t.prototype.viewingDirection=function(t){var e=[-t[0],-t[1],-t[2]];return this.rotate([0,0,1],e)},t.prototype.wrap=function(t,e,r){if(rr||tr?t-=n:tr?r:t},t.prototype.angleBetweenVector2=function(t,e,r,n){var i=Math.atan2(n,r)-Math.atan2(e,t);return this.wrapAngle(i)},t.prototype.angleDifference=function(t,e){var r=e-t;return this.wrapAngle(r)},t.prototype.relativeRotationAngle=function(t,e){var r=this.rotationMatrix([-t[0],-t[1],-t[2]]),n=this.rotationMatrix(e),i=r.multiply(n),o=i.elements;return Math.acos((o[0]+o[5]+o[10]-1)/2)},t.prototype.angleToPlane=function(t,e){var r=(new n.Vector3).fromArray(t),i=r.length();if(i0?[t[0]*this._focal/t[2],t[1]*this._focal/t[2]]:[t[0]<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,t[1]<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY]},t.prototype._basicToSfm=function(t){var e,r;switch(this._orientation){case 1:e=t[0],r=t[1];break;case 3:e=1-t[0],r=1-t[1];break;case 6:e=t[1],r=1-t[0];break;case 8:e=1-t[1],r=t[0];break;default:e=t[0],r=t[1]}var n=this._width,i=this._height,o=Math.max(n,i);return[e*n/o-n/o/2,r*i/o-i/o/2]},t.prototype._sfmToBasic=function(t){var e,r,n=this._width,i=this._height,o=Math.max(n,i),a=(t[0]+n/o/2)/n*o,s=(t[1]+i/o/2)/i*o;switch(this._orientation){case 1:e=a,r=s;break;case 3:e=1-a,r=1-s;break;case 6:e=1-s,r=a;break;case 8:e=s,r=1-a;break;default:e=a,r=s}return[e,r]},t.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},t.prototype._getValue=function(t,e){return null!=t&&t>0?t:e},t.prototype._getRt=function(t,e){var r=new n.Vector3(t[0],t[1],t[2]),i=r.length();r.normalize();var o=new n.Matrix4;return o.makeRotationAxis(r,i),o.setPosition(new n.Vector3(e[0],e[1],e[2])),o},t.prototype._getSrt=function(t,e){var r=t.clone(),i=r.elements;return i[12]=e*i[12],i[13]=e*i[13],i[14]=e*i[14],r.scale(new n.Vector3(e,e,e)),r},t.prototype._normalizedToTextureMatrix=function(){var t=Math.max(this._width,this._height),e=t/this._width,r=t/this._height;switch(this._orientation){case 1:return(new n.Matrix4).set(e,0,0,.5,0,-r,0,.5,0,0,1,0,0,0,0,1);case 3:return(new n.Matrix4).set(-e,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,-e,0,0,.5,0,0,1,0,0,0,0,1);case 8:return(new n.Matrix4).set(0,r,0,.5,e,0,0,.5,0,0,1,0,0,0,0,1);default:return(new n.Matrix4).set(e,0,0,.5,0,-r,0,.5,0,0,1,0,0,0,0,1)}},t}();r.Transform=i},{three:174}],304:[function(t,e,r){"use strict";var n=t("three"),i=function(){function t(){this._unprojectDepth=200}return t.prototype.basicToCanvas=function(t,e,r,n,i){var o=n.unprojectBasic([t,e],this._unprojectDepth);return this.projectToCanvas(o,r,i)},t.prototype.basicToViewport=function(t,e,r,n){var i=r.unprojectBasic([t,e],this._unprojectDepth);return this.projectToViewport(i,n)},t.prototype.canvasPosition=function(t,e){var r=e.getBoundingClientRect();return[t.clientX-r.left-e.clientLeft,t.clientY-r.top-e.clientTop]},t.prototype.canvasToBasic=function(t,e,r,n,i){var o=this.unprojectFromCanvas(t,e,r,i).toArray();return n.projectBasic(o)},t.prototype.canvasToViewport=function(t,e,r){var n=this.containerToCanvas(r);return[2*t/n[0]-1,1-2*e/n[1]]},t.prototype.containerToCanvas=function(t){return[t.offsetWidth,t.offsetHeight]},t.prototype.getBasicDistances=function(t,e){var r=this.viewportToBasic(-1,1,t,e),n=this.viewportToBasic(1,1,t,e),i=this.viewportToBasic(1,-1,t,e),o=this.viewportToBasic(-1,-1,t,e),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]1&&o[1]>1&&(c=i[1]r[0]?-o[0]:-r[0]),[a,s,c,u]},t.prototype.getPixelDistances=function(t,e,r){var n=this.viewportToBasic(-1,1,e,r),i=this.viewportToBasic(1,1,e,r),o=this.viewportToBasic(1,-1,e,r),a=this.viewportToBasic(-1,-1,e,r),s=0,c=0,u=0,h=0,l=this.containerToCanvas(t),p=l[0],f=l[1];if(n[1]<0&&i[1]<0){var d=n[1]>i[1]?n[0]:i[0],m=this.basicToCanvas(d,0,t,e,r);s=m[1]>0?m[1]:0}if(i[0]>1&&o[0]>1){var v=i[0]1&&a[1]>1){var d=o[1]n[0]?a[1]:n[1],m=this.basicToCanvas(0,v,t,e,r);h=m[0]>0?m[0]:0}return[s,c,u,h]},t.prototype.insideElement=function(t,e){var r=e.getBoundingClientRect(),n=r.left+e.clientLeft,i=n+e.clientWidth,o=r.top+e.clientTop,a=o+e.clientHeight;return t.clientX>n&&t.clientXo&&t.clientY"===e||">="===e||"<"===e||"<="===e?this._compileComparisonOp(e,t[1],t[2],!0):"in"===e?this._compileInOp(t[1],t.slice(2)):"!in"===e?this._compileNegation(this._compileInOp(t[1],t.slice(2))):"all"===e?this._compileLogicalOp(t.slice(1),"&&"):"true")+")"},t.prototype._compare=function(t,e){return te?1:0},t.prototype._compileComparisonOp=function(t,e,r,n){var i=this._compilePropertyReference(e),o=JSON.stringify(r);return(n?"typeof "+i+"===typeof "+o+"&&":"")+i+t+o},t.prototype._compileInOp=function(t,e){var r=this._compare;return JSON.stringify(e.sort(r))+".indexOf("+this._compilePropertyReference(t)+")!==-1"},t.prototype._compileLogicalOp=function(t,e){var r=this._compile.bind(this);return t.map(r).join(e)},t.prototype._compileNegation=function(t){return"!("+t+")"},t.prototype._compilePropertyReference=function(t){return"node["+JSON.stringify(t)+"]"},t}();r.FilterCreator=n,Object.defineProperty(r,"__esModule",{value:!0}),r.default=n},{}],306:[function(t,e,r){"use strict";var n=t("rbush"),i=t("rxjs/Subject");t("rxjs/add/observable/from"),t("rxjs/add/operator/catch"),t("rxjs/add/operator/do"),t("rxjs/add/operator/finally"),t("rxjs/add/operator/map"),t("rxjs/add/operator/publish");var o=t("../Edge"),a=t("../Error"),s=t("../Graph"),c=function(){function t(t,e,r,a,c,u){this._apiV3=t,this._cachedNodes={},this._cachedNodeTiles={},this._cachedSpatialEdges={},this._cachedTiles={},this._cachingFill$={},this._cachingFull$={},this._cachingSequences$={},this._cachingSpatialArea$={},this._cachingTiles$={},this._changed$=new i.Subject,this._defaultAlt=2,this._edgeCalculator=null!=a?a:new o.EdgeCalculator,this._filterCreator=null!=c?c:new s.FilterCreator,this._filter=this._filterCreator.createFilter(void 0),this._graphCalculator=null!=r?r:new s.GraphCalculator,this._configuration=null!=u?u:{maxSequences:50,maxUnusedNodes:100,maxUnusedTiles:20},this._nodes={},this._nodeIndex=null!=e?e: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(t.prototype,"changed$",{get:function(){return this._changed$},enumerable:!0,configurable:!0}),t.prototype.cacheFill$=function(t){var e=this;if(t in this._cachingFull$)throw new a.GraphMapillaryError("Cannot fill node while caching full ("+t+").");if(!this.hasNode(t))throw new a.GraphMapillaryError("Cannot fill node that does not exist in graph ("+t+").");if(t in this._cachingFill$)return this._cachingFill$[t];var r=this.getNode(t);if(r.full)throw new a.GraphMapillaryError("Cannot fill node that is already full ("+t+").");return this._cachingFill$[t]=this._apiV3.imageByKeyFill$([t]).do(function(n){r.full||e._makeFull(r,n[t]),delete e._cachingFill$[t]}).map(function(t){return e}).finally(function(){t in e._cachingFill$&&delete e._cachingFill$[t],e._changed$.next(e)}).publish().refCount(),this._cachingFill$[t]},t.prototype.cacheFull$=function(t){var e=this;if(t in this._cachingFull$)return this._cachingFull$[t];if(this.hasNode(t))throw new a.GraphMapillaryError("Cannot cache full node that already exist in graph ("+t+").");return this._cachingFull$[t]=this._apiV3.imageByKeyFull$([t]).do(function(r){var n=r[t];if(e.hasNode(t)){var i=e.getNode(t);i.full||e._makeFull(i,n)}else{if(null==n.sequence||null==n.sequence.key)throw new a.GraphMapillaryError("Node has no sequence ("+t+").");var i=new s.Node(n);e._makeFull(i,n);var o=e._graphCalculator.encodeH(i.originalLatLon,e._tilePrecision);e._preStore(o,i),e._setNode(i),delete e._cachingFull$[t]}}).map(function(t){return e}).finally(function(){t in e._cachingFull$&&delete e._cachingFull$[t],e._changed$.next(e)}).publish().refCount(),this._cachingFull$[t]},t.prototype.cacheNodeSequence$=function(t){if(!this.hasNode(t))throw new a.GraphMapillaryError("Cannot cache sequence edges of node that does not exist in graph ("+t+").");var e=this.getNode(t);if(e.sequenceKey in this._sequences)throw new a.GraphMapillaryError("Sequence already cached ("+t+"), ("+e.sequenceKey+").");return this._cacheSequence$(e.sequenceKey)},t.prototype.cacheSequence$=function(t){if(t in this._sequences)throw new a.GraphMapillaryError("Sequence already cached ("+t+")");return this._cacheSequence$(t)},t.prototype.cacheSequenceEdges=function(t){var e=this.getNode(t);if(!(e.sequenceKey in this._sequences))throw new a.GraphMapillaryError("Sequence is not cached ("+t+"), ("+e.sequenceKey+")");var r=this._sequences[e.sequenceKey].sequence,n=this._edgeCalculator.computeSequenceEdges(e,r);e.cacheSequenceEdges(n)},t.prototype.cacheSpatialArea$=function(t){var e=this;if(!this.hasNode(t))throw new a.GraphMapillaryError("Cannot cache spatial area of node that does not exist in graph ("+t+").");if(t in this._cachedSpatialEdges)throw new a.GraphMapillaryError("Node already spatially cached ("+t+").");if(!(t in this._requiredSpatialArea))throw new a.GraphMapillaryError("Spatial area not determined ("+t+").");var r=this._requiredSpatialArea[t];if(0===Object.keys(r.cacheNodes).length)throw new a.GraphMapillaryError("Spatial nodes already cached ("+t+").");if(t in this._cachingSpatialArea$)return this._cachingSpatialArea$[t];for(var n=[];r.cacheKeys.length>0;)n.push(r.cacheKeys.splice(0,200));for(var i=n.length,o=[],s=this,c=0,u=n;c-1&&r.caching.splice(o,1),0===r.caching.length&&0===r.cache.length&&(delete e._requiredNodeTiles[t],e._cachedNodeTiles[t]=!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 e._requiredNodeTiles[t],e._cachedNodeTiles[t]=!0),i}).finally(function(){e._changed$.next(e)}).publish().refCount())}(h)}return i},t.prototype.initializeCache=function(t){if(t in this._cachedNodes)throw new a.GraphMapillaryError("Node already in cache ("+t+").");var e=this.getNode(t);e.initializeCache(new s.NodeCache);var r=(new Date).getTime();this._cachedNodes[t]={accessed:r,node:e},this._updateCachedTileAccess(t,r)},t.prototype.isCachingFill=function(t){return t in this._cachingFill$},t.prototype.isCachingFull=function(t){return t in this._cachingFull$},t.prototype.isCachingNodeSequence=function(t){return this.getNode(t).sequenceKey in this._cachingSequences$},t.prototype.isCachingSequence=function(t){return t in this._cachingSequences$},t.prototype.isCachingTiles=function(t){return t in this._requiredNodeTiles&&0===this._requiredNodeTiles[t].cache.length&&this._requiredNodeTiles[t].caching.length>0},t.prototype.hasInitializedCache=function(t){return t in this._cachedNodes},t.prototype.hasNode=function(t){var e=(new Date).getTime();return this._updateCachedNodeAccess(t,e),this._updateCachedTileAccess(t,e),t in this._nodes},t.prototype.hasNodeSequence=function(t){var e=this.getNode(t),r=e.sequenceKey,n=r in this._sequences;return n&&(this._sequences[r].accessed=(new Date).getTime()),n},t.prototype.hasSequence=function(t){var e=t in this._sequences;return e&&(this._sequences[t].accessed=(new Date).getTime()),e},t.prototype.hasSpatialArea=function(t){if(!this.hasNode(t))throw new a.GraphMapillaryError("Spatial area nodes cannot be determined if node not in graph ("+t+").");if(t in this._cachedSpatialEdges)return!0;if(t in this._requiredSpatialArea)return 0===Object.keys(this._requiredSpatialArea[t].cacheNodes).length;for(var e=this.getNode(t),r=this._graphCalculator.boundingBoxCorners(e.latLon,this._tileThreshold),n=this._nodeIndex.search({maxX:r[1].lat,maxY:r[1].lon,minX:r[0].lat,minY:r[0].lon}),i={all:{},cacheKeys:[],cacheNodes:{}},o=0,s=n;o0&&(this._requiredNodeTiles[t]=r)}return 0===r.cache.length&&0===r.caching.length},t.prototype.getNode=function(t){var e=(new Date).getTime();return this._updateCachedNodeAccess(t,e),this._updateCachedTileAccess(t,e),this._nodes[t]},t.prototype.getSequence=function(t){var e=this._sequences[t];return e.accessed=(new Date).getTime(),e.sequence},t.prototype.resetSpatialEdges=function(){for(var t=Object.keys(this._cachedSpatialEdges),e=0,r=t;e0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mergeCC",{get:function(){return this._fill.merge_cc},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mergeVersion",{get:function(){return this._fill.merge_version},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mesh",{get:function(){return this._cache.mesh},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"orientation",{get:function(){return this._fill.orientation},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"originalCA",{get:function(){return this._fill.ca},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"originalLatLon",{get:function(){return this._core.l},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pano",{get:function(){return null!=this._fill.gpano&&null!=this._fill.gpano.FullPanoWidthPixels},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"projectKey",{get:function(){return null!=this._fill.project?this._fill.project.key:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rotation",{get:function(){return this._fill.c_rotation},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scale",{get:function(){return this._fill.atomic_scale},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sequenceKey",{get:function(){return this._core.sequence.key},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sequenceEdges",{get:function(){return this._cache.sequenceEdges},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sequenceEdges$",{get:function(){return this._cache.sequenceEdges$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"spatialEdges",{get:function(){return this._cache.spatialEdges},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"spatialEdges$",{get:function(){return this._cache.spatialEdges$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"userKey",{get:function(){return this._fill.user.key},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"username",{get:function(){return this._fill.user.username},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"width",{get:function(){return this._fill.width},enumerable:!0,configurable:!0}),t.prototype.cacheAssets$=function(){var t=this;return this._cache.cacheAssets$(this.key,this.pano,this.merged).map(function(e){return t})},t.prototype.cacheImage$=function(t){var e=this;return this._cache.cacheImage$(this.key,t).map(function(t){return e})},t.prototype.cacheSequenceEdges=function(t){this._cache.cacheSequenceEdges(t)},t.prototype.cacheSpatialEdges=function(t){this._cache.cacheSpatialEdges(t)},t.prototype.dispose=function(){null!=this._cache&&(this._cache.dispose(),this._cache=null),this._core=null,this._fill=null},t.prototype.initializeCache=function(t){if(null!=this._cache)throw new Error("Node cache already initialized ("+this.key+").");this._cache=t},t.prototype.makeFull=function(t){if(null==t)throw new Error("Fill can not be null.");this._fill=t},t.prototype.resetSequenceEdges=function(){this._cache.resetSequenceEdges()},t.prototype.resetSpatialEdges=function(){this._cache.resetSpatialEdges()},t.prototype.uncache=function(){null!=this._cache&&(this._cache.dispose(),this._cache=null)},t}();r.Node=n,Object.defineProperty(r,"__esModule",{value:!0}),r.default=n},{"rxjs/add/observable/combineLatest":37,"rxjs/add/operator/map":64}],312:[function(t,e,r){(function(e){"use strict";var n=t("rxjs/Subject"),i=t("rxjs/Observable");t("rxjs/add/observable/combineLatest"),t("rxjs/add/operator/publishReplay");var o=t("../Graph"),a=t("../Utils"),s=function(){function t(){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(t.prototype,"image",{get:function(){return this._image},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"loadStatus",{get:function(){return this._loadStatus},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mesh",{get:function(){return this._mesh},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sequenceEdges",{get:function(){return this._sequenceEdges},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sequenceEdges$",{get:function(){return this._sequenceEdges$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"spatialEdges",{get:function(){return this._spatialEdges},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"spatialEdges$",{get:function(){return this._spatialEdges$},enumerable:!0,configurable:!0}),t.prototype.cacheAssets$=function(t,e,r){var n=this;if(null!=this._cachingAssets$)return this._cachingAssets$;var o=e?a.Settings.basePanoramaSize:a.Settings.baseImageSize;return this._cachingAssets$=i.Observable.combineLatest(this._cacheImage$(t,o),this._cacheMesh$(t,r),function(t,e){return n._loadStatus.loaded=0,n._loadStatus.total=0,e&&(n._mesh=e.object,n._loadStatus.loaded+=e.loaded.loaded,n._loadStatus.total+=e.loaded.total),t&&(n._image=t.object,n._loadStatus.loaded+=t.loaded.loaded,n._loadStatus.total+=t.loaded.total),n}).finally(function(){n._cachingAssets$=null}).publishReplay(1).refCount(),this._cachingAssets$},t.prototype.cacheImage$=function(t,e){var r=this;return null!=this._image&&e<=Math.max(this._image.width,this._image.height)?i.Observable.of(this):this._cacheImage$(t,e).first(function(t){return null!=t.object}).do(function(t){r._disposeImage(),r._image=t.object}).map(function(t){return r})},t.prototype.cacheSequenceEdges=function(t){this._sequenceEdges={cached:!0,edges:t},this._sequenceEdgesChanged$.next(this._sequenceEdges)},t.prototype.cacheSpatialEdges=function(t){this._spatialEdges={cached:!0,edges:t},this._spatialEdgesChanged$.next(this._spatialEdges)},t.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()},t.prototype.resetSequenceEdges=function(){this._sequenceEdges={cached:!1,edges:[]},this._sequenceEdgesChanged$.next(this._sequenceEdges)},t.prototype.resetSpatialEdges=function(){this._spatialEdges={cached:!1,edges:[]},this._spatialEdgesChanged$.next(this._spatialEdges)},t.prototype._cacheImage$=function(t,e){var r=this;return i.Observable.create(function(n){var i=new XMLHttpRequest;i.open("GET",a.Urls.thumbnail(t,e),!0),i.responseType="arraybuffer",i.timeout=15e3,i.onload=function(e){if(200!==i.status)return r._imageRequest=null,void n.error(new Error("Failed to fetch image ("+t+"). 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 ("+t+")"));n.next({loaded:{loaded:e.loaded,total:e.total},object:o}),n.complete()},o.onerror=function(e){r._imageRequest=null,n.error(new Error("Failed to load image ("+t+")"))};var a=new Blob([i.response]);o.src=window.URL.createObjectURL(a)},i.onprogress=function(t){r._disposed||n.next({loaded:{loaded:t.loaded,total:t.total},object:null})},i.onerror=function(e){r._imageRequest=null,n.error(new Error("Failed to fetch image ("+t+")"))},i.ontimeout=function(e){r._imageRequest=null,n.error(new Error("Image request timed out ("+t+")"))},i.onabort=function(e){r._imageRequest=null,n.error(new Error("Image request was aborted ("+t+")"))},r._imageRequest=i,i.send(null)})},t.prototype._cacheMesh$=function(t,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(t),!0),s.responseType="arraybuffer",s.timeout=15e3,s.onload=function(t){if(n._meshRequest=null,!n._disposed){var r=200===s.status?o.MeshReader.read(new e(s.response)):{faces:[],vertices:[]};i.next({loaded:{loaded:t.loaded,total:t.total},object:r}),i.complete()}},s.onprogress=function(t){n._disposed||i.next({loaded:{loaded:t.loaded,total:t.total},object:null})},s.onerror=function(e){n._meshRequest=null,console.error("Failed to cache mesh ("+t+")"),i.next(n._createEmptyMeshLoadStatus()),i.complete()},s.ontimeout=function(e){n._meshRequest=null,console.error("Mesh request timed out ("+t+")"),i.next(n._createEmptyMeshLoadStatus()),i.complete()},s.onabort=function(e){n._meshRequest=null,i.error(new Error("Mesh request was aborted ("+t+")"))},n._meshRequest=s,s.send(null)})},t.prototype._createEmptyMeshLoadStatus=function(){return{loaded:{loaded:0,total:0},object:{faces:[],vertices:[]}}},t.prototype._disposeImage=function(){null!=this._image&&window.URL.revokeObjectURL(this._image.src),this._image=null},t}();r.NodeCache=s,Object.defineProperty(r,"__esModule",{value:!0}),r.default=s}).call(this,t("buffer").Buffer)},{"../Graph":228,"../Utils":233,buffer:5,"rxjs/Observable":28,"rxjs/Subject":33,"rxjs/add/observable/combineLatest":37,"rxjs/add/operator/publishReplay":71}],313:[function(t,e,r){"use strict";var n=t("underscore"),i=function(){function t(t){this._key=t.key,this._keys=t.keys}return Object.defineProperty(t.prototype,"key",{get:function(){return this._key},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keys",{get:function(){return this._keys},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this._key=null,this._keys=null},t.prototype.findNextKey=function(t){var e=n.indexOf(this._keys,t);return e+1>=this._keys.length||e===-1?null:this._keys[e+1]},t.prototype.findPrevKey=function(t){var e=n.indexOf(this._keys,t);return 0===e||e===-1?null:this._keys[e-1]},t}();r.Sequence=i,Object.defineProperty(r,"__esModule",{value:!0}),r.default=i},{underscore:175}],314:[function(t,e,r){"use strict";var n=t("three"),i=t("../../Edge"),o=t("../../Error"),a=t("../../Geo"),s=function(){function t(t,e,r){this._spatial=new a.Spatial,this._geoCoords=new a.GeoCoords,this._settings=null!=t?t:new i.EdgeCalculatorSettings,this._directions=null!=e?e:new i.EdgeCalculatorDirections,this._coefficients=null!=r?r:new i.EdgeCalculatorCoefficients}return t.prototype.getPotentialEdges=function(t,e,r){if(!t.full)throw new o.ArgumentMapillaryError("Node has to be full.");if(!t.merged)return[];for(var i=this._spatial.viewingDirection(t.rotation),a=this._spatial.angleToPlane(i.toArray(),[0,0,1]),s=[],c=0,u=e;cthis._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]),b=y-a,_=this._spatial.relativeRotationAngle(t.rotation,h.rotation),x=this._spatial.angleBetweenVector2(1,0,p.x,p.y),w=null!=h.sequenceKey&&null!=t.sequenceKey&&h.sequenceKey===t.sequenceKey,S=null==h.mergeCC&&null==t.mergeCC||h.mergeCC===t.mergeCC,M=h.userKey===t.userKey,E={capturedAt:h.capturedAt,directionChange:g,distance:f,fullPano:h.fullPano,key:h.key,motionChange:d,rotation:_,sameMergeCC:S,sameSequence:w,sameUser:M,sequenceKey:h.sequenceKey,verticalDirectionChange:b,verticalMotion:m,worldMotionAzimuth:x};s.push(E)}}}return s},t.prototype.computeSequenceEdges=function(t,e){if(!t.full)throw new o.ArgumentMapillaryError("Node has to be full.");if(t.sequenceKey!==e.key)throw new o.ArgumentMapillaryError("Node and sequence does not correspond.");var r=[],n=e.findNextKey(t.key);null!=n&&r.push({data:{direction:i.EdgeDirection.Next,worldMotionAzimuth:Number.NaN},from:t.key,to:n});var a=e.findPrevKey(t.key);return null!=a&&r.push({data:{direction:i.EdgeDirection.Prev,worldMotionAzimuth:Number.NaN},from:t.key,to:a}),r},t.prototype.computeSimilarEdges=function(t,e){var r=this;if(!t.full)throw new o.ArgumentMapillaryError("Node has to be full.");for(var n=t.fullPano,a={},s=0,c=e;sthis._settings.similarMaxDirectionChange)continue;u.distance>this._settings.similarMaxDistance||u.sameUser&&Math.abs(u.capturedAt-t.capturedAt)this._settings.stepMaxDirectionChange)){var d=this._spatial.angleDifference(s.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(!s.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);ythis._settings.turnMaxDistance)){var p=a.direction!==i.EdgeDirection.TurnU&&l.distancethis._settings.turnMinRigDirectionChange,f=this._spatial.angleDifference(a.directionChange,l.directionChange),d=void 0;if(p&&l.directionChange*a.directionChange>0&&Math.abs(l.directionChange)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),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)}dthis._settings.panoMaxDistance))if(u.fullPano){if(u.distancethis._settings.panoMaxStepTurnChange)){a.push([l.direction,u]);break}}}for(var d=Math.PI/this._settings.panoMaxItems,m=[],v=[],g=0;gd)){for(var M=Number.MAX_VALUE,E=0,T=m;Ed)){for(var U=Number.MAX_VALUE,B=0,z=I;B0&&t.elementWidth>0&&t.elementHeight>0}).map(function(t){var e=t.elementWidth/t.elementHeight,r=t.imageAspect/e,n=0,i=0;return t.renderMode===a.RenderMode.Letterbox?t.imageAspect>e?n=t.elementHeight*(1-1/r)/2:i=t.elementWidth*(1-r)/2:t.imageAspect>e?i=-t.elementWidth*(r-1)/2:n=-t.elementHeight*(1/r-1)/2,{bottom:n,left:i,right:i,top:n}}),this._currentFrame$.filter(function(t){return null!=t.state.currentNode}).distinctUntilChanged(function(t,e){return t===e},function(t){return t.state.currentNode.key}).map(function(t){return t.state.currentTransform.basicAspect}).map(function(t){return function(e){return e.imageAspect=t,e}}).subscribe(this._adaptiveOperation$),this._renderAdaptive$.scan(function(t,e){return null==e.vnode?delete t[e.name]:t[e.name]=e.vnode,t},{}).combineLatest(this._offset$).map(function(t){var e=n.values(t[0]),r=t[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,e)}}).subscribe(this._render$),this._vNode$=this._render$.scan(function(t,e){return null==e.vnode?delete t[e.name]:t[e.name]=e.vnode,t},{}).map(function(t){var e=n.values(t);return i.h("div.domRenderer",e)}),this._vPatch$=this._vNode$.scan(function(t,e){return t.vpatch=i.diff(t.vnode,e),t.vnode=e,t},{vnode:i.h("div.domRenderer",[]),vpatch:null}).pluck("vpatch"),this._element$=this._vPatch$.scan(function(t,e){return i.patch(t,e)},s).publishReplay(1).refCount(),this._element$.subscribe(function(){}),this._renderService.size$.map(function(t){return function(e){return e.elementWidth=t.width,e.elementHeight=t.height,e}}).subscribe(this._adaptiveOperation$),this._renderService.renderMode$.map(function(t){return function(e){return e.renderMode=t,e}}).subscribe(this._adaptiveOperation$)}return Object.defineProperty(t.prototype,"element$",{get:function(){return this._element$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"render$",{get:function(){return this._render$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"renderAdaptive$",{get:function(){return this._renderAdaptive$},enumerable:!0,configurable:!0}),t.prototype.clear=function(t){this._renderAdaptive$.next({name:t,vnode:null}),this._render$.next({name:t,vnode:null})},t}();r.DOMRenderer=s,Object.defineProperty(r,"__esModule",{value:!0}),r.default=s},{"../Render":230,"rxjs/Subject":33,"rxjs/add/operator/combineLatest":52,"rxjs/add/operator/distinctUntilChanged":57,"rxjs/add/operator/filter":60,"rxjs/add/operator/map":64,"rxjs/add/operator/pluck":69,"rxjs/add/operator/scan":72,underscore:175,"virtual-dom":180}],320:[function(t,e,r){"use strict";var n;!function(t){t[t.Background=0]="Background",t[t.Foreground=1]="Foreground"}(n=r.GLRenderStage||(r.GLRenderStage={})),Object.defineProperty(r,"__esModule",{value:!0}),r.default=n},{}],321:[function(t,e,r){"use strict";var n=t("three"),i=t("rxjs/Observable"),o=t("rxjs/Subject");t("rxjs/add/observable/combineLatest"),t("rxjs/add/operator/distinctUntilChanged"),t("rxjs/add/operator/filter"),t("rxjs/add/operator/first"),t("rxjs/add/operator/map"),t("rxjs/add/operator/merge"),t("rxjs/add/operator/mergeMap"),t("rxjs/add/operator/scan"),t("rxjs/add/operator/share"),t("rxjs/add/operator/startWith");var a=t("../Render"),s=function(){function t(t,e){var r=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=e,this._renderer$=this._rendererOperation$.scan(function(t,e){return e(t)},{needsRender:!1,renderer:null}),this._renderCollection$=this._renderOperation$.scan(function(t,e){return e(t)},{}).share(),this._renderCamera$=this._renderCameraOperation$.scan(function(t,e){return e(t)},{frameId:-1,needsRender:!1,perspective:null}),this._eraser$=this._eraserOperation$.startWith(function(t){return t}).scan(function(t,e){return e(t)},{needsRender:!1}),i.Observable.combineLatest([this._renderer$,this._renderCollection$,this._renderCamera$,this._eraser$],function(t,e,r,n){return{camera:r,eraser:n,renderer:t,renders:Object.keys(e).map(function(t){return e[t]})}}).filter(function(t){for(var e=t.renderer.needsRender||t.camera.needsRender||t.eraser.needsRender,r=t.camera.frameId,n=0,i=t.renders;nr:t1e-9){var i=e.state.currentTransform,o=null!=e.state.previousTransform?e.state.previousTransform:e.state.currentTransform,a=null!=e.state.previousNode?e.state.previousNode:e.state.currentNode;r.currentAspect=i.basicAspect,r.currentPano=e.state.currentNode.pano,r.previousAspect=o.basicAspect,r.previousPano=a.pano,r.alpha=e.state.alpha,r.zoom=e.state.zoom,r.camera.copy(n),r.updatePerspective(n),r.updateRotation(n),r.updateProjection()}r.frameId=e.id}).map(function(t){return t[1]}).publishReplay(1).refCount(),this._renderCamera$=this._renderCameraFrame$.filter(function(t){return t.changed}).publishReplay(1).refCount(),this._bearing$=this._renderCamera$.map(function(t){var e=s._spatial.radToDeg(s._spatial.azimuthalToBearing(t.rotation.phi));return s._spatial.wrap(e,0,360)}).publishReplay(1).refCount(),this._size$.skip(1).map(function(t){return function(e){return e.perspective.aspect=t.width/t.height,e.updateProjection(),e}}).subscribe(this._renderCameraOperation$),this._renderMode$.skip(1).map(function(t){return function(e){return e.renderMode=t,e.updateProjection(),e}}).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(t.prototype,"bearing$",{get:function(){return this._bearing$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"element",{get:function(){return this._element},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"resize$",{get:function(){return this._resize$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"size$",{get:function(){return this._size$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"renderMode$",{get:function(){return this._renderMode$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"renderCameraFrame$",{get:function(){return this._renderCameraFrame$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"renderCamera$",{get:function(){return this._renderCamera$},enumerable:!0,configurable:!0}),t}();r.RenderService=s,Object.defineProperty(r,"__esModule",{value:!0}),r.default=s},{"../Geo":227,"../Render":230,"rxjs/BehaviorSubject":25,"rxjs/Subject":33,"rxjs/add/observable/combineLatest":37,"rxjs/add/operator/do":58,"rxjs/add/operator/filter":60,"rxjs/add/operator/map":64,"rxjs/add/operator/publishReplay":71,"rxjs/add/operator/scan":72,"rxjs/add/operator/skip":74,"rxjs/add/operator/startWith":77,"rxjs/add/operator/withLatestFrom":82}],325:[function(t,e,r){"use strict";var n;!function(t){t[t.Traversing=0]="Traversing",t[t.Waiting=1]="Waiting"}(n=r.State||(r.State={})),Object.defineProperty(r,"__esModule",{value:!0}),r.default=n},{}],326:[function(t,e,r){"use strict";var n=t("../State"),i=t("../Geo"),o=function(){function t(){this._state=new n.TraversingState({alpha:1,camera:new i.Camera,currentIndex:-1,reference:{alt:0,lat:0,lon:0},trajectory:[],zoom:0})}return t.prototype.traverse=function(){this._state=this._state.traverse()},t.prototype.wait=function(){this._state=this._state.wait()},Object.defineProperty(t.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(t.prototype,"reference",{get:function(){return this._state.reference},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"alpha",{get:function(){return this._state.alpha},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"camera",{get:function(){return this._state.camera},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"zoom",{get:function(){return this._state.zoom},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentNode",{get:function(){return this._state.currentNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previousNode",{get:function(){return this._state.previousNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentCamera",{get:function(){return this._state.currentCamera},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentTransform",{get:function(){return this._state.currentTransform},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previousTransform",{get:function(){return this._state.previousTransform},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"trajectory",{get:function(){return this._state.trajectory},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentIndex",{get:function(){return this._state.currentIndex},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lastNode",{get:function(){return this._state.trajectory[this._state.trajectory.length-1]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"nodesAhead",{get:function(){return this._state.trajectory.length-1-this._state.currentIndex},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"motionless",{get:function(){return this._state.motionless},enumerable:!0,configurable:!0}),t.prototype.getCenter=function(){return this._state.getCenter()},t.prototype.setCenter=function(t){this._state.setCenter(t)},t.prototype.setZoom=function(t){this._state.setZoom(t)},t.prototype.update=function(t){this._state.update(t)},t.prototype.append=function(t){this._state.append(t)},t.prototype.prepend=function(t){this._state.prepend(t)},t.prototype.remove=function(t){this._state.remove(t)},t.prototype.clear=function(){this._state.clear()},t.prototype.clearPrior=function(){this._state.clearPrior()},t.prototype.cut=function(){this._state.cut()},t.prototype.set=function(t){this._state.set(t)},t.prototype.rotate=function(t){this._state.rotate(t)},t.prototype.rotateBasic=function(t){this._state.rotateBasic(t)},t.prototype.rotateBasicUnbounded=function(t){this._state.rotateBasicUnbounded(t)},t.prototype.rotateToBasic=function(t){this._state.rotateToBasic(t)},t.prototype.move=function(t){this._state.move(t)},t.prototype.moveTo=function(t){this._state.moveTo(t)},t.prototype.zoomIn=function(t,e){this._state.zoomIn(t,e)},t}();r.StateContext=o},{"../Geo":227,"../State":231}],327:[function(t,e,r){"use strict";var n=t("rxjs/BehaviorSubject"),i=t("rxjs/Subject"),o=t("rxjs/util/AnimationFrame");t("rxjs/add/operator/bufferCount"),t("rxjs/add/operator/distinctUntilChanged"),t("rxjs/add/operator/do"),t("rxjs/add/operator/filter"),t("rxjs/add/operator/first"),t("rxjs/add/operator/map"),t("rxjs/add/operator/pairwise"),t("rxjs/add/operator/publishReplay"),t("rxjs/add/operator/scan"),t("rxjs/add/operator/startWith"),t("rxjs/add/operator/switchMap"),t("rxjs/add/operator/withLatestFrom");var a=t("../State"),s=function(){function t(){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(t){return t}),this._context$=this._contextOperation$.scan(function(t,e){return e(t)},new a.StateContext).publishReplay(1).refCount(),this._state$=this._context$.map(function(t){return t.state}).distinctUntilChanged().publishReplay(1).refCount(),this._fps$=this._start$.switchMap(function(){return t._frame$.bufferCount(1,t._fpsSampleRate).map(function(t){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(t,e,r){return[t,e,r]}).filter(function(t){return null!=t[2].currentNode}).do(function(t){t[2].update(t[1])}).map(function(t){return{fps:t[1],id:t[0],state:t[2]}}).share(),this._lastState$=this._currentState$.publishReplay(1).refCount();var e=this._currentState$.distinctUntilChanged(void 0,function(t){return t.state.currentNode.key}).publishReplay(1).refCount(),r=new i.Subject;e.subscribe(r),this._currentKey$=new n.BehaviorSubject(null),r.map(function(t){return t.state.currentNode.key}).subscribe(this._currentKey$),this._currentNode$=r.map(function(t){return t.state.currentNode}).publishReplay(1).refCount(),this._currentCamera$=r.map(function(t){return t.state.currentCamera}).publishReplay(1).refCount(),this._currentTransform$=r.map(function(t){return t.state.currentTransform}).publishReplay(1).refCount(),this._reference$=r.map(function(t){return t.state.reference}).distinctUntilChanged(function(t,e){return t.lat===e.lat&&t.lon===e.lon},function(t){return{lat:t.lat,lon:t.lon}}).publishReplay(1).refCount(),this._currentNodeExternal$=e.map(function(t){return t.state.currentNode}).publishReplay(1).refCount(),this._appendNode$.map(function(t){return function(e){return e.append([t]),e}}).subscribe(this._contextOperation$),this._inMotionOperation$=new i.Subject,e.map(function(t){return!0}).subscribe(this._inMotionOperation$),this._inMotionOperation$.distinctUntilChanged().filter(function(t){return t}).switchMap(function(e){return t._currentState$.filter(function(t){return 0===t.state.nodesAhead}).map(function(t){return[t.state.camera.clone(),t.state.zoom]}).pairwise().map(function(t){var e=t[0][0],r=t[1][0],n=t[0][1],i=t[1][1];return e.diff(r)>1e-5||Math.abs(n-i)>1e-5}).first(function(t){return!t})}).subscribe(this._inMotionOperation$),this._inMotion$=this._inMotionOperation$.distinctUntilChanged().publishReplay(1).refCount(),this._inTranslationOperation$=new i.Subject,e.map(function(t){return!0}).subscribe(this._inTranslationOperation$),this._inTranslationOperation$.distinctUntilChanged().filter(function(t){return t}).switchMap(function(e){return t._currentState$.filter(function(t){return 0===t.state.nodesAhead}).map(function(t){return t.state.camera.position.clone()}).pairwise().map(function(t){return 0!==t[0].distanceToSquared(t[1])}).first(function(t){return!t})}).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(t.prototype,"currentState$",{get:function(){return this._currentState$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentNode$",{get:function(){return this._currentNode$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentKey$",{get:function(){return this._currentKey$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentNodeExternal$",{get:function(){return this._currentNodeExternal$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentCamera$",{get:function(){return this._currentCamera$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentTransform$",{get:function(){return this._currentTransform$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"state$",{get:function(){return this._state$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"reference$",{get:function(){return this._reference$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inMotion$",{get:function(){return this._inMotion$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inTranslation$",{get:function(){return this._inTranslation$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"appendNode$",{get:function(){return this._appendNode$},enumerable:!0,configurable:!0}),t.prototype.traverse=function(){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(t){t.traverse()})},t.prototype.wait=function(){this._invokeContextOperation(function(t){t.wait()})},t.prototype.appendNodes=function(t){this._invokeContextOperation(function(e){e.append(t)})},t.prototype.prependNodes=function(t){this._invokeContextOperation(function(e){e.prepend(t)})},t.prototype.removeNodes=function(t){this._invokeContextOperation(function(e){e.remove(t)})},t.prototype.clearNodes=function(){this._invokeContextOperation(function(t){t.clear()})},t.prototype.clearPriorNodes=function(){this._invokeContextOperation(function(t){t.clearPrior()})},t.prototype.cutNodes=function(){this._invokeContextOperation(function(t){t.cut()})},t.prototype.setNodes=function(t){this._invokeContextOperation(function(e){e.set(t)})},t.prototype.rotate=function(t){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(e){e.rotate(t)})},t.prototype.rotateBasic=function(t){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(e){e.rotateBasic(t)})},t.prototype.rotateBasicUnbounded=function(t){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(e){e.rotateBasicUnbounded(t)})},t.prototype.rotateToBasic=function(t){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(e){e.rotateToBasic(t)})},t.prototype.move=function(t){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(e){e.move(t)})},t.prototype.moveTo=function(t){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(e){e.moveTo(t)})},t.prototype.zoomIn=function(t,e){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(r){r.zoomIn(t,e)})},t.prototype.getCenter=function(){return this._lastState$.first().map(function(t){return t.state.getCenter()})},t.prototype.getZoom=function(){return this._lastState$.first().map(function(t){return t.state.zoom})},t.prototype.setCenter=function(t){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(e){e.setCenter(t)})},t.prototype.setZoom=function(t){this._inMotionOperation$.next(!0),this._invokeContextOperation(function(e){e.setZoom(t)})},t.prototype.start=function(){null==this._frameId&&(this._start$.next(null),this._frameId=this._frameGenerator.requestAnimationFrame(this._frame.bind(this)),this._frame$.next(this._frameId))},t.prototype.stop=function(){null!=this._frameId&&(this._frameGenerator.cancelAnimationFrame(this._frameId),this._frameId=null)},t.prototype._invokeContextOperation=function(t){this._contextOperation$.next(function(e){return t(e),e})},t.prototype._frame=function(t){this._frameId=this._frameGenerator.requestAnimationFrame(this._frame.bind(this)),this._frame$.next(this._frameId)},t}();r.StateService=s},{"../State":231,"rxjs/BehaviorSubject":25,"rxjs/Subject":33,"rxjs/add/operator/bufferCount":49,"rxjs/add/operator/distinctUntilChanged":57,"rxjs/add/operator/do":58,"rxjs/add/operator/filter":60,"rxjs/add/operator/first":62,"rxjs/add/operator/map":64,"rxjs/add/operator/pairwise":68,"rxjs/add/operator/publishReplay":71,"rxjs/add/operator/scan":72,"rxjs/add/operator/startWith":77,"rxjs/add/operator/switchMap":78,"rxjs/add/operator/withLatestFrom":82,"rxjs/util/AnimationFrame":155}],328:[function(t,e,r){"use strict";var n=t("../../Error"),i=t("../../Geo"),o=function(){function t(t){this._spatial=new i.Spatial,this._geoCoords=new i.GeoCoords,this._referenceThreshold=.01,this._reference=t.reference,this._alpha=t.alpha,this._camera=t.camera.clone(),this._zoom=t.zoom,this._currentIndex=t.currentIndex,this._trajectory=t.trajectory.slice(),this._trajectoryTransforms=[],this._trajectoryCameras=[];for(var e=0,r=this._trajectory;e0?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(t.prototype,"reference",{get:function(){return this._reference},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"alpha",{get:function(){return this._getAlpha()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"camera",{get:function(){return this._camera},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"zoom",{get:function(){return this._zoom},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"trajectory",{get:function(){return this._trajectory},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentIndex",{get:function(){return this._currentIndex},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentNode",{get:function(){return this._currentNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previousNode",{get:function(){return this._previousNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentCamera",{get:function(){return this._currentCamera},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentTransform",{get:function(){return this._trajectoryTransforms.length>0?this._trajectoryTransforms[this.currentIndex]:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previousTransform",{get:function(){return this._trajectoryTransforms.length>1&&this.currentIndex>0?this._trajectoryTransforms[this.currentIndex-1]:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"motionless",{get:function(){return this._motionless},enumerable:!0,configurable:!0}),t.prototype.append=function(t){if(t.length<1)throw Error("Trajectory can not be empty");this._currentIndex<0?this.set(t):(this._trajectory=this._trajectory.concat(t),this._appendToTrajectories(t))},t.prototype.prepend=function(t){if(t.length<1)throw Error("Trajectory can not be empty");this._trajectory=t.slice().concat(this._trajectory),this._currentIndex+=t.length,this._setCurrentNode(),this._setReference(this._currentNode)?this._setTrajectories():this._prependToTrajectories(t),this._setCurrentCamera()},t.prototype.remove=function(t){if(t<0)throw Error("n must be a positive integer");if(this._currentIndex-10&&this.remove(this._currentIndex-1)},t.prototype.clear=function(){this.cut(),this._currentIndex>0&&this.remove(this._currentIndex-1)},t.prototype.cut=function(){for(;this._trajectory.length-1>this._currentIndex;)this._trajectory.pop(),this._trajectoryTransforms.pop(),this._trajectoryCameras.pop()},t.prototype.set=function(t){this._setTrajectory(t),this._setCurrentNode(),this._setReference(this._currentNode),this._setTrajectories(),this._setCurrentCamera()},t.prototype.getCenter=function(){return null!=this._currentNode?this.currentTransform.projectBasic(this._camera.lookat.toArray()):[.5,.5]},t.prototype._setCurrent=function(){this._setCurrentNode(),this._setReference(this._currentNode)&&this._setTrajectories(),this._setCurrentCamera()},t.prototype._setCurrentCamera=function(){this._currentCamera=this._trajectoryCameras[this._currentIndex].clone(),this._previousCamera=this._currentIndex>0?this._trajectoryCameras[this._currentIndex-1].clone():this._currentCamera.clone()},t.prototype._motionlessTransition=function(){return null!=this._currentNode&&null!=this._previousNode&&!(this._currentNode.merged&&this._previousNode.merged&&this._withinOriginalDistance()&&this._sameConnectedComponent())},t.prototype._setReference=function(t){return!(Math.abs(t.latLon.lat-this.reference.lat)0?this._trajectory[this._currentIndex]:null,this._previousNode=this._currentIndex>0?this._trajectory[this._currentIndex-1]:null},t.prototype._setTrajectory=function(t){if(t.length<1)throw new n.ArgumentMapillaryError("Trajectory can not be empty");null!=this._currentNode?(this._trajectory=[this._currentNode].concat(t),this._currentIndex=1):(this._trajectory=t.slice(),this._currentIndex=0)},t.prototype._setTrajectories=function(){this._trajectoryTransforms.length=0,this._trajectoryCameras.length=0,this._appendToTrajectories(this._trajectory)},t.prototype._appendToTrajectories=function(t){for(var e=0,r=t;et?this._phi:0,this._theta=Math.abs(this._theta)>t?this._theta:0},t.prototype.lengthSquared=function(){return this._phi*this._phi+this._theta*this._theta},t.prototype.reset=function(){this._phi=0,this._theta=0},t}(),c=function(t){function e(e){var r=t.call(this,e)||this;return r._adjustCameras(),r._motionless=r._motionlessTransition(),r._baseAlpha=r._alpha,r._animationSpeed=.025,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=e.zoom,r._minZoom=0,r._maxZoom=3,r._lookatDepth=10,r._desiredLookat=null,r._desiredCenter=null,r}return n(e,t),e.prototype.traverse=function(){throw new Error("Not implemented")},e.prototype.wait=function(){return new a.WaitingState(this)},e.prototype.append=function(e){var r=0===this._trajectory.length;r&&this._resetTransition(),t.prototype.append.call(this,e),r&&(this._setDesiredCenter(),this._setDesiredZoom())},e.prototype.prepend=function(e){var r=0===this._trajectory.length;r&&this._resetTransition(),t.prototype.prepend.call(this,e),r&&(this._setDesiredCenter(),this._setDesiredZoom())},e.prototype.set=function(e){t.prototype.set.call(this,e),this._desiredLookat=null,this._resetTransition(),this._clearRotation(),this._setDesiredCenter(),this._setDesiredZoom(),this._trajectory.length<3&&(this._useBezier=!0)},e.prototype.move=function(t){throw new Error("Not implemented")},e.prototype.moveTo=function(t){throw new Error("Not implemented")},e.prototype.rotate=function(t){null!=this._currentNode&&(this._desiredZoom=this._zoom,this._desiredLookat=null,this._requestedBasicRotation=null,null!=this._requestedRotationDelta?(this._requestedRotationDelta.phi=this._requestedRotationDelta.phi+t.phi,this._requestedRotationDelta.theta=this._requestedRotationDelta.theta+t.theta):this._requestedRotationDelta=new s(t.phi,t.theta))},e.prototype.rotateBasic=function(t){if(null!=this._currentNode)if(this._desiredZoom=this._zoom,this._desiredLookat=null,this._requestedRotationDelta=null,null!=this._requestedBasicRotation){this._requestedBasicRotation[0]+=t[0],this._requestedBasicRotation[1]+=t[1];var e=.05/Math.pow(2,this._zoom);this._requestedBasicRotation[0]=this._spatial.clamp(this._requestedBasicRotation[0],-e,e),this._requestedBasicRotation[1]=this._spatial.clamp(this._requestedBasicRotation[1],-e,e)}else this._requestedBasicRotation=t.slice()},e.prototype.rotateBasicUnbounded=function(t){null!=this._currentNode&&(null!=this._requestedBasicRotationUnbounded?(this._requestedBasicRotationUnbounded[0]+=t[0],this._requestedBasicRotationUnbounded[1]+=t[1]):this._requestedBasicRotationUnbounded=t.slice())},e.prototype.rotateToBasic=function(t){if(null!=this._currentNode){this._desiredZoom=this._zoom,this._desiredLookat=null,t[0]=this._spatial.clamp(t[0],0,1),t[1]=this._spatial.clamp(t[1],0,1);var e=this.currentTransform.unprojectBasic(t,this._lookatDepth);this._currentCamera.lookat.fromArray(e)}},e.prototype.zoomIn=function(t,e){if(null!=this._currentNode){this._desiredZoom=Math.max(this._minZoom,Math.min(this._maxZoom,this._desiredZoom+t));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=e[0],u=e[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))}},e.prototype.setCenter=function(t){this._desiredLookat=null,this._requestedRotationDelta=null,this._requestedBasicRotation=null,this._desiredZoom=this._zoom;var e=[this._spatial.clamp(t[0],0,1),this._spatial.clamp(t[1],0,1)];if(null==this._currentNode)return void(this._desiredCenter=e);this._desiredCenter=null;var r=(new i.Vector3).fromArray(this.currentTransform.unprojectBasic(e,this._lookatDepth)),n=null!=this.previousTransform?this.previousTransform:this.currentTransform,o=(new i.Vector3).fromArray(n.unprojectBasic(e,this._lookatDepth));this._currentCamera.lookat.copy(r),this._previousCamera.lookat.copy(o)},e.prototype.setZoom=function(t){this._desiredLookat=null,this._requestedRotationDelta=null,this._requestedBasicRotation=null,this._zoom=this._spatial.clamp(t,this._minZoom,this._maxZoom),this._desiredZoom=this._zoom},e.prototype.update=function(t){1===this._alpha&&this._currentIndex+this._alpha0?1:e<0?-1:0;0!==e&&(Math.abs(e)<.002?(this._zoom=this._desiredZoom,null!=this._desiredLookat&&(this._desiredLookat=null)):this._zoom+=r*Math.max(Math.abs(5*t*e),.002))},e.prototype._updateLookat=function(t){if(null!==this._desiredLookat){var e=this._desiredLookat.distanceToSquared(this._currentCamera.lookat);Math.abs(e)<1e-6?(this._currentCamera.lookat.copy(this._desiredLookat),this._desiredLookat=null):this._currentCamera.lookat.lerp(this._desiredLookat,5*t)}},e.prototype._updateRotation=function(){if(null!=this._requestedRotationDelta){var t=this._rotationDelta.lengthSquared();return this._requestedRotationDelta.lengthSquared()>t?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))},e.prototype._updateRotationBasic=function(){if(null!=this._requestedBasicRotation){var t=this._basicRotation[0],e=this._basicRotation[1],r=this._requestedBasicRotation[0],n=this._requestedBasicRotation[1];return Math.abs(r)>Math.abs(t)?this._basicRotation[0]=(1-this._rotationIncreaseAlpha)*t+this._rotationIncreaseAlpha*r:this._basicRotation[0]=(1-this._rotationDecreaseAlpha)*t+this._rotationDecreaseAlpha*r,Math.abs(n)>Math.abs(e)?this._basicRotation[1]=(1-this._rotationIncreaseAlpha)*e+this._rotationIncreaseAlpha*n:this._basicRotation[1]=(1-this._rotationDecreaseAlpha)*e+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])0||this._basicRotation[1]>0)&&(this._basicRotation=[0,0]))},e.prototype._setDesiredCenter=function(){if(null!=this._desiredCenter){var t=(new i.Vector3).fromArray(this.currentTransform.unprojectBasic(this._desiredCenter,this._lookatDepth)).sub(this._currentCamera.position);this._currentCamera.lookat.copy(this._currentCamera.position.clone().add(t)),this._previousCamera.lookat.copy(this._previousCamera.position.clone().add(t)),this._desiredCenter=null}},e.prototype._setDesiredZoom=function(){this._desiredZoom=this._currentNode.fullPano||null==this._previousNode?this._zoom:0},e}(a.StateBase);r.TraversingState=c},{"../../State":231,three:174,unitbezier:176}],330:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../../State"),o=function(t){function e(e){var r=t.call(this,e)||this;return r._adjustCameras(),r._motionless=r._motionlessTransition(),r}return n(e,t),e.prototype.traverse=function(){return new i.TraversingState(this)},e.prototype.wait=function(){throw new Error("Not implemented")},e.prototype.prepend=function(e){t.prototype.prepend.call(this,e),this._motionless=this._motionlessTransition()},e.prototype.set=function(e){t.prototype.set.call(this,e),this._motionless=this._motionlessTransition()},e.prototype.rotate=function(t){},e.prototype.rotateBasic=function(t){},e.prototype.rotateBasicUnbounded=function(t){},e.prototype.rotateToBasic=function(t){},e.prototype.zoomIn=function(t,e){},e.prototype.move=function(t){this._alpha=Math.max(0,Math.min(1,this._alpha+t))},e.prototype.moveTo=function(t){this._alpha=Math.max(0,Math.min(1,t))},e.prototype.update=function(t){this._camera.lerpCameras(this._previousCamera,this._currentCamera,this.alpha)},e.prototype.setCenter=function(t){},e.prototype.setZoom=function(t){},e.prototype._getAlpha=function(){return this._motionless?Math.round(this._alpha):this._alpha},e.prototype._setCurrentCamera=function(){t.prototype._setCurrentCamera.call(this),this._adjustCameras()},e.prototype._adjustCameras=function(){if(null!=this._previousNode){if(this._currentNode.fullPano){var t=this._camera.lookat.clone().sub(this._camera.position);this._currentCamera.lookat.copy(t.clone().add(this._currentCamera.position))}if(this._previousNode.fullPano){var t=this._currentCamera.lookat.clone().sub(this._currentCamera.position);this._previousCamera.lookat.copy(t.clone().add(this._previousCamera.position))}}},e}(i.StateBase);r.WaitingState=o},{"../../State":231}],331:[function(t,e,r){"use strict";var n=t("rxjs/Observable"),i=function(){function t(t,e,r){this._scheme=t,this._host=e,this._origin=null!=r?"?origin="+r:""}return t.prototype.getTile=function(t,e,r,i,o,a,s){var c="/"+t+"/"+e+","+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,h.open("GET",u,!0),h.responseType="arraybuffer",h.timeout=15e3,h.onload=function(a){if(200!==h.status)return void n.error(new Error("Failed to fetch tile ("+t+": "+e+","+r+","+i+","+o+"). Status: "+h.status+", "+h.statusText));var s=new Image;s.crossOrigin="Anonymous",s.onload=function(t){n.next(s),n.complete()},s.onerror=function(a){n.error(new Error("Failed to load tile image ("+t+": "+e+","+r+","+i+","+o+")"))};var c=new Blob([h.response]);s.src=window.URL.createObjectURL(c)},h.onerror=function(a){n.error(new Error("Failed to fetch tile ("+t+": "+e+","+r+","+i+","+o+")"))},h.ontimeout=function(a){n.error(new Error("Tile request timed out ("+t+": "+e+","+r+","+i+","+o+")"))},h.onabort=function(a){n.error(new Error("Tile request was aborted ("+t+": "+e+","+r+","+i+","+o+")"))},h.send(null)}),function(){null!=h&&h.abort()}]},t}();r.ImageTileLoader=i,Object.defineProperty(r,"__esModule",{value:!0}),r.default=i},{"rxjs/Observable":28}],332:[function(t,e,r){"use strict";var n=function(){function t(){this._images={}}return t.prototype.addImage=function(t,e,r){r in this._images||(this._images[r]={}),this._images[r][e]=t},t.prototype.dispose=function(){for(var t=0,e=Object.keys(this._images);te&&(e=i,r=n)}return t[0]+1-t[t.length-1]>e?[t[0],t[t.length-1]]:[t[r+1],t[r]]},t.prototype._clipBoundingBox=function(t){t.minX=Math.max(0,Math.min(1,t.minX)),t.maxX=Math.max(0,Math.min(1,t.maxX)),t.minY=Math.max(0,Math.min(1,t.minY)),t.maxY=Math.max(0,Math.min(1,t.maxY))},t.prototype._sign=function(t){return t>0?1:t<0?-1:0},t}();r.RegionOfInterestCalculator=i,Object.defineProperty(r,"__esModule",{value:!0}),r.default=i},{"../Geo":227}],334:[function(t,e,r){"use strict";var n=t("three"),i=t("rxjs/Subject"),o=function(){function t(t,e,r,n,o,a,s,c){this._disposed=!1,this._key=t,(e<=0||r<=0)&&console.warn("Original image size ("+e+", "+r+") is invalid ("+t+"). Tiles will not be loaded."),this._width=e,this._height=r,this._maxLevel=Math.ceil(Math.log(Math.max(r,e))/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(t.prototype,"disposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasTexture$",{get:function(){return this._has$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"key",{get:function(){return this._key},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"textureUpdated$",{get:function(){return this._updated$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"textureCreated$",{get:function(){return this._created$},enumerable:!0,configurable:!0}),t.prototype.abort=function(){for(var t in this._tileSubscriptions)this._tileSubscriptions.hasOwnProperty(t)&&this._tileSubscriptions[t].unsubscribe();this._tileSubscriptions={};for(var e=0,r=this._abortFunctions;ed?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)}},t.prototype.updateBackground=function(t){this._background=t},t.prototype._fetchTile=function(t,e,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(t),f=h.subscribe(function(a){c._renderToTarget(r,n,i,o,a),c._removeFromDictionary(p,c._tileSubscriptions),c._removeFromArray(l,c._abortFunctions),c._setTileRendered(t,c._currentLevel),c._imageTileStore.addImage(a,p,e),c._updated$.next(!0)},function(t){c._removeFromDictionary(p,c._tileSubscriptions),c._removeFromArray(l,c._abortFunctions),console.error(t)});f.closed||(this._tileSubscriptions[p]=f)},t.prototype._fetchTiles=function(t){for(var e=this._tileSize*Math.pow(2,this._maxLevel-this._currentLevel),r=0,n=t;rthis._width?this._width-a:e,u=s+e>this._height?this._height-s:e;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/e*this._tileSize),l=Math.floor(u/e*this._tileSize);this._fetchTile(i,this._currentLevel,a,s,c,u,h,l)}}}},t.prototype._getTileCoords=function(t){var e=this._tileSize*Math.pow(2,this._maxLevel-this._currentLevel),r=Math.ceil(this._width/e)-1,n=Math.ceil(this._height/e)-1;return[Math.min(Math.floor(this._width*t[0]/e),r),Math.min(Math.floor(this._height*t[1]/e),n)]},t.prototype._getTiles=function(t,e){var r=[];if(t[0]>e[0]){for(var n=this._tileSize*Math.pow(2,this._maxLevel-this._currentLevel),i=Math.ceil(this._width/n)-1,o=t[0];o<=i;o++)r.push(o);for(var o=0;o<=e[0];o++)r.push(o)}else for(var o=t[0];o<=e[0];o++)r.push(o);for(var a=[],s=0,c=r;s=f&&l[0]<=d&&l[1]>=m&&l[1]<=v){var p=this._renderedTiles[o].indexOf(l);this._renderedTiles[o].splice(p,1)}}0===this._renderedTiles[o].length&&delete this._renderedTiles[o]}this._renderedTiles[e].push(t),this._renderedCurrentLevelTiles[this._tileKey(t)]=!0},t.prototype._tileKey=function(t){return t[0]+"-"+t[1]},t}();r.TextureProvider=o,Object.defineProperty(r,"__esModule",{value:!0}),r.default=o},{"rxjs/Subject":33,three:174}],335:[function(t,e,r){"use strict";var n=function(){function t(){this._events={}}return t.prototype.on=function(t,e){this._events[t]=this._events[t]||[],this._events[t].push(e)},t.prototype.off=function(t,e){if(!t)return void(this._events={});if(this._listens(t))delete this._events[t];else{var r=this._events[t].indexOf(e);r>=0&&this._events[t].splice(r,1),this._events[t].length&&delete this._events[t]}},t.prototype.fire=function(t,e){if(this._listens(t))for(var r=0,n=this._events[t];rr&&(r=t[n],e=n);return e}).publishReplay(1).refCount(),this._mouseOwner$.subscribe(function(){})}return Object.defineProperty(t.prototype,"active$",{get:function(){return this._active$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activate$",{get:function(){return this._activeSubject$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"documentCanvasMouseDown$",{get:function(){return this._documentCanvasMouseDown$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"documentCanvasMouseMove$",{get:function(){return this._documentCanvasMouseMove$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"documentCanvasMouseDragStart$",{get:function(){return this._documentCanvasMouseDragStart$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"documentCanvasMouseDrag$",{get:function(){return this._documentCanvasMouseDrag$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"documentCanvasMouseDragEnd$",{get:function(){return this._documentCanvasMouseDragEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"documentMouseMove$",{get:function(){return this._documentMouseMove$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"documentMouseUp$",{get:function(){return this._documentMouseUp$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mouseOwner$",{get:function(){return this._mouseOwner$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mouseDown$",{get:function(){return this._mouseDown$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mouseMove$",{get:function(){return this._mouseMove$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mouseLeave$",{get:function(){return this._mouseLeave$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mouseOut$",{get:function(){return this._mouseOut$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mouseOver$",{get:function(){return this._mouseOver$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mouseUp$",{get:function(){return this._mouseUp$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"click$",{get:function(){return this._click$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dblClick$",{get:function(){return this._dblClick$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"contextMenu$",{get:function(){return this._consistentContextMenu$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mouseWheel$",{get:function(){return this._mouseWheel$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mouseDragStart$",{get:function(){return this._mouseDragStart$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mouseDrag$",{get:function(){return this._mouseDrag$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mouseDragEnd$",{get:function(){return this._mouseDragEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"staticClick$",{get:function(){return this._staticClick$},enumerable:!0,configurable:!0}),t.prototype.claimMouse=function(t,e){this._claimMouse$.next({name:t,zindex:e})},t.prototype.unclaimMouse=function(t){this._claimMouse$.next({name:t,zindex:null})},t.prototype.filtered$=function(t,e){return e.withLatestFrom(this.mouseOwner$,function(t,e){return[t,e]}).filter(function(e){return e[1]===t}).map(function(t){return t[0]})},t}();r.MouseService=s,Object.defineProperty(r,"__esModule",{value:!0}),r.default=s},{"../Geo":227,"rxjs/BehaviorSubject":25,"rxjs/Observable":28,"rxjs/Subject":33,"rxjs/add/observable/fromEvent":41,"rxjs/add/operator/distinctUntilChanged":57,"rxjs/add/operator/filter":60,"rxjs/add/operator/map":64,"rxjs/add/operator/merge":65,"rxjs/add/operator/mergeMap":67,"rxjs/add/operator/publishReplay":71,"rxjs/add/operator/scan":72,"rxjs/add/operator/switchMap":78,"rxjs/add/operator/withLatestFrom":82}],344:[function(t,e,r){"use strict";var n=t("rxjs/BehaviorSubject"),i=t("rxjs/Observable");t("rxjs/add/observable/throw"),t("rxjs/add/operator/do"),t("rxjs/add/operator/finally"),t("rxjs/add/operator/first"),t("rxjs/add/operator/map"),t("rxjs/add/operator/mergeMap");var o=t("../API"),a=t("../Graph"),s=t("../Edge"),c=t("../State"),u=t("../Viewer"),h=function(){function t(t,e,r,i,s,h,l,p){this._apiV3=null!=r?r:new o.APIv3(t,e),this._imageLoadingService=null!=s?s:new a.ImageLoadingService,this._graphService=null!=i?i:new a.GraphService(new a.Graph(this.apiV3),this._imageLoadingService),this._loadingService=null!=h?h:new u.LoadingService,this._loadingName="navigator",this._stateService=null!=l?l:new c.StateService,this._cacheService=null!=p?p:new u.CacheService(this._graphService,this._stateService),this._cacheService.start(),this._keyRequested$=new n.BehaviorSubject(null),this._movedToKey$=new n.BehaviorSubject(null),this._dirRequested$=new n.BehaviorSubject(null),this._latLonRequested$=new n.BehaviorSubject(null)}return Object.defineProperty(t.prototype,"apiV3",{get:function(){return this._apiV3},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"graphService",{get:function(){return this._graphService},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"imageLoadingService",{get:function(){return this._imageLoadingService},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keyRequested$",{get:function(){return this._keyRequested$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"loadingService",{get:function(){return this._loadingService},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"movedToKey$",{get:function(){return this._movedToKey$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"stateService",{get:function(){return this._stateService},enumerable:!0,configurable:!0}),t.prototype.moveToKey$=function(t){var e=this;return this.loadingService.startLoading(this._loadingName),this._keyRequested$.next(t),this._graphService.cacheNode$(t).do(function(t){e.stateService.setNodes([t]),e._movedToKey$.next(t.key)}).finally(function(){e.loadingService.stopLoading(e._loadingName)})},t.prototype.moveDir$=function(t){var e=this;return this.loadingService.startLoading(this._loadingName),this._dirRequested$.next(t),this.stateService.currentNode$.first().mergeMap(function(e){return([s.EdgeDirection.Next,s.EdgeDirection.Prev].indexOf(t)>-1?e.sequenceEdges$:e.spatialEdges$).first().map(function(e){for(var r=0,n=e.edges;r1||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:[a,s]}},t}();r.Projection=o,Object.defineProperty(r,"__esModule",{value:!0}),r.default=o},{"../Geo":227,three:174}],347:[function(t,e,r){"use strict";var n;!function(t){t[t.Center=0]="Center",t[t.Start=1]="Start",t[t.End=2]="End"}(n=r.SpriteAlignment||(r.SpriteAlignment={})),Object.defineProperty(r,"__esModule",{value:!0}),r.default=n},{}],348:[function(t,e,r){"use strict";var n=t("three"),i=t("virtual-dom"),o=t("rxjs/Subject");t("rxjs/add/operator/publishReplay"),t("rxjs/add/operator/scan"),t("rxjs/add/operator/startWith");var a=t("../Viewer"),s=function(){function t(){}return Object.defineProperty(t.prototype,"json",{set:function(t){this._json=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"image",{set:function(t){this._image=t,this._texture=new n.Texture(this._image),this._texture.minFilter=n.NearestFilter},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"loaded",{get:function(){return!(!this._image||!this._json)},enumerable:!0,configurable:!0}),t.prototype.getGLSprite=function(t){if(!this.loaded)throw new Error("Sprites cannot be retrieved before the atlas is loaded.");var e=this._json[t];if(!e)return console.warn("Sprite with key"+t+"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=e.x/i,r.offset.y=(o-e.y-e.height)/o,r.repeat.x=e.width/i,r.repeat.y=e.height/o;var a=new n.SpriteMaterial({map:r});return new n.Sprite(a)},t.prototype.getDOMSprite=function(t,e,r){if(!this.loaded)throw new Error("Sprites cannot be retrieved before the atlas is loaded.");null==e&&(e=a.SpriteAlignment.Start),null==r&&(r=a.SpriteAlignment.Start);var n=this._json[t];if(!n)return console.warn("Sprite with key"+t+"does not exist in sprite definition."),i.h("div",{},[]);var o=n.y,s=n.x+n.width,c=n.y+n.height,u=n.x,h=-n.x,l=-n.y,p=this._image.height,f=this._image.width;switch(e){case a.SpriteAlignment.Center:h-=n.width/2;break;case a.SpriteAlignment.End:h-=n.width;break;case a.SpriteAlignment.Start:}switch(r){case a.SpriteAlignment.Center:l-=n.height/2;break;case a.SpriteAlignment.End:l-=n.height;break;case a.SpriteAlignment.Start:}var d=1/n.pixelRatio;o*=d,s*=d,c*=d,u*=d,h*=d,l*=d,p*=d,f*=d;var m={src:this._image.src,style:{clip:"rect("+o+"px, "+s+"px, "+c+"px, "+u+"px)",height:p+"px",left:h+"px",position:"absolute",top:l+"px",width:f+"px"}};return i.h("img",m,[])},t}(),c=function(){function t(t){var e=this;if(this._retina=window.devicePixelRatio>1,this._spriteAtlasOperation$=new o.Subject,this._spriteAtlas$=this._spriteAtlasOperation$.startWith(function(t){return t}).scan(function(t,e){return e(t)},new s).publishReplay(1).refCount(),this._spriteAtlas$.subscribe(function(){}),null!=t){var r=this._retina?"@2x":"",n=new XMLHttpRequest;n.open("GET",t+r+".png",!0),n.responseType="arraybuffer",n.onload=function(){var t=new Image;t.onload=function(){e._spriteAtlasOperation$.next(function(e){return e.image=t,e})};var r=new Blob([n.response]);t.src=window.URL.createObjectURL(r)},n.onerror=function(e){console.error(new Error("Failed to fetch sprite sheet ("+t+r+".png)"))},n.send();var i=new XMLHttpRequest;i.open("GET",t+r+".json",!0),i.responseType="text",i.onload=function(){var t=JSON.parse(i.response);e._spriteAtlasOperation$.next(function(e){return e.json=t,e})},i.onerror=function(e){console.error(new Error("Failed to fetch sheet ("+t+r+".json)"))},i.send()}}return Object.defineProperty(t.prototype,"spriteAtlas$",{get:function(){return this._spriteAtlas$},enumerable:!0,configurable:!0}),t}();r.SpriteService=c,Object.defineProperty(r,"__esModule",{value:!0}),r.default=c},{"../Viewer":234,"rxjs/Subject":33,"rxjs/add/operator/publishReplay":71,"rxjs/add/operator/scan":72,"rxjs/add/operator/startWith":77,three:174,"virtual-dom":180}],349:[function(t,e,r){"use strict";var n=t("rxjs/BehaviorSubject"),i=t("rxjs/Observable"),o=t("rxjs/Subject");t("rxjs/add/observable/timer"),t("rxjs/add/operator/bufferWhen"),t("rxjs/add/operator/filter"),t("rxjs/add/operator/map"),t("rxjs/add/operator/merge"),t("rxjs/add/operator/scan"),t("rxjs/add/operator/switchMap");var a=function(){function t(t){var e=this;this._element=t,this._activeSubject$=new n.BehaviorSubject(!1),this._active$=this._activeSubject$.distinctUntilChanged().publishReplay(1).refCount(),this._touchStart$=i.Observable.fromEvent(t,"touchstart"),this._touchMove$=i.Observable.fromEvent(t,"touchmove"),this._touchEnd$=i.Observable.fromEvent(t,"touchend"),this._touchCancel$=i.Observable.fromEvent(t,"touchcancel");var r=this._touchStart$.filter(function(t){return 1===t.touches.length&&1===t.targetTouches.length}).share();this._doubleTap$=r.bufferWhen(function(){return r.first().switchMap(function(t){return i.Observable.timer(300).merge(r).take(1)})}).filter(function(t){return 2===t.length}).map(function(t){return t[t.length-1]}).share(),this._doubleTap$.subscribe(function(t){t.preventDefault()}),this._singleTouchMove$=this._touchMove$.filter(function(t){return 1===t.touches.length&&1===t.targetTouches.length}).share();var a=i.Observable.merge(this._touchStart$,this._touchEnd$,this._touchCancel$).filter(function(t){return 1===t.touches.length&&1===t.targetTouches.length}),s=i.Observable.merge(this._touchStart$,this._touchEnd$,this._touchCancel$).filter(function(t){return t.touches.length>=1}),c=i.Observable.merge(this._touchEnd$,this._touchCancel$).filter(function(t){return 0===t.touches.length});this._singleTouchDragStart$=a.mergeMap(function(t){return e._singleTouchMove$.takeUntil(i.Observable.merge(c,s)).take(1)}),this._singleTouchDragEnd$=a.mergeMap(function(t){return i.Observable.merge(c,s).first()}),this._singleTouchDrag$=a.switchMap(function(t){return e._singleTouchMove$.skip(1).takeUntil(i.Observable.merge(s,c))});var u=i.Observable.merge(this._touchStart$,this._touchEnd$,this._touchCancel$);this._pinchStart$=u.filter(function(t){return 2===t.touches.length&&2===t.targetTouches.length}),this._pinchEnd$=u.filter(function(t){return 2!==t.touches.length||2!==t.targetTouches.length}),this._pinchOperation$=new o.Subject,this._pinch$=this._pinchOperation$.scan(function(t,e){return e(t)},{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(t){return 2===t.touches.length&&2===t.targetTouches.length}).map(function(t){return function(e){var r=t.touches[0],n=t.touches[1],i=Math.min(r.clientX,n.clientX),o=Math.max(r.clientX,n.clientX),a=Math.min(r.clientY,n.clientY),s=Math.max(r.clientY,n.clientY),c=i+(o-i)/2,u=a+(s-a)/2,h=c+r.pageX-r.clientX,l=u+r.pageY-r.clientY,p=c+r.screenX-r.clientX,f=u+r.screenY-r.clientY,d=Math.abs(r.clientX-n.clientX),m=Math.abs(r.clientY-n.clientY),v=Math.sqrt(d*d+m*m),g=v-e.distance;return{changeX:d-e.distanceX,changeY:m-e.distanceY,clientX:c,clientY:u,distance:v,distanceChange:g,distanceX:d,distanceY:m,originalEvent:t,pageX:h,pageY:l,screenX:p,screenY:f,touch1:r,touch2:n}}}).subscribe(this._pinchOperation$),this._pinchChange$=this._pinchStart$.switchMap(function(t){return e._pinch$.skip(1).takeUntil(e._pinchEnd$)})}return Object.defineProperty(t.prototype,"active$",{get:function(){return this._active$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activate$",{get:function(){return this._activeSubject$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"doubleTap$",{get:function(){return this._doubleTap$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touchStart$",{get:function(){return this._touchStart$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touchMove$",{get:function(){return this._touchMove$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touchEnd$",{get:function(){return this._touchEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touchCancel$",{get:function(){return this._touchCancel$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"singleTouchDragStart$",{get:function(){return this._singleTouchDragStart$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"singleTouchDrag$",{get:function(){return this._singleTouchDrag$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"singleTouchDragEnd$",{get:function(){return this._singleTouchDragEnd$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pinch$",{get:function(){return this._pinchChange$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pinchStart$",{get:function(){return this._pinchStart$},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pinchEnd$",{get:function(){return this._pinchEnd$},enumerable:!0,configurable:!0}),t}();r.TouchService=a},{"rxjs/BehaviorSubject":25,"rxjs/Observable":28,"rxjs/Subject":33,"rxjs/add/observable/timer":46,"rxjs/add/operator/bufferWhen":50,"rxjs/add/operator/filter":60,"rxjs/add/operator/map":64,"rxjs/add/operator/merge":65,"rxjs/add/operator/scan":72,"rxjs/add/operator/switchMap":78}],350:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("when"),o=t("../Viewer"),a=t("../Utils"),s=function(t){function e(e,r,n,i,s){var c=t.call(this)||this;return i=null!=i?i:{},a.Settings.setOptions(i),c._navigator=new o.Navigator(r,s),c._container=new o.Container(e,c._navigator.stateService,i),c._observer=new o.Observer(c,c._navigator,c._container),c._componentController=new o.ComponentController(c._container,c._navigator,c._observer,n,i.component),c}return n(e,t),e.prototype.activateComponent=function(t){this._componentController.activate(t)},e.prototype.activateCover=function(){this._componentController.activateCover()},e.prototype.deactivateComponent=function(t){this._componentController.deactivate(t)},e.prototype.deactivateCover=function(){this._componentController.deactivateCover()},e.prototype.getBearing=function(){var t=this;return i.promise(function(e,r){t._container.renderService.bearing$.first().subscribe(function(t){e(t)},function(t){r(t)})})},e.prototype.getCenter=function(){var t=this;return i.promise(function(e,r){t._navigator.stateService.getCenter().subscribe(function(t){e(t)},function(t){r(t)})})},e.prototype.getComponent=function(t){return this._componentController.get(t)},e.prototype.getZoom=function(){var t=this;return i.promise(function(e,r){t._navigator.stateService.getZoom().subscribe(function(t){e(t)},function(t){r(t)})})},e.prototype.moveCloseTo=function(t,e){var r=this;return i.promise(function(n,i){r._navigator.moveCloseTo$(t,e).subscribe(function(t){n(t)},function(t){i(t)})})},e.prototype.moveDir=function(t){var e=this;return i.promise(function(r,n){e._navigator.moveDir$(t).subscribe(function(t){r(t)},function(t){n(t)})})},e.prototype.moveToKey=function(t){var e=this;return i.promise(function(r,n){e._navigator.moveToKey$(t).subscribe(function(t){r(t)},function(t){n(t)})})},e.prototype.resize=function(){this._container.renderService.resize$.next(null),this._componentController.resize()},e.prototype.setAuthToken=function(t){var e=this;return i.promise(function(r,n){e._navigator.setToken$(t).subscribe(function(){r(void 0)},function(t){n(t)})})},e.prototype.setCenter=function(t){this._navigator.stateService.setCenter(t)},e.prototype.setFilter=function(t){var e=this;return i.promise(function(r,n){e._navigator.setFilter$(t).subscribe(function(){r(void 0)},function(t){n(t)})})},e.prototype.setRenderMode=function(t){this._container.renderService.renderMode$.next(t)},e.prototype.setZoom=function(t){this._navigator.stateService.setZoom(t)},e.prototype.unproject=function(t){var e=this;return i.promise(function(r,n){e._observer.unproject$(t).subscribe(function(t){r(t)},function(t){n(t)})})},e}(a.EventEmitter);s.bearingchanged="bearingchanged",s.click="click",s.contextmenu="contextmenu",s.dblclick="dblclick",s.loadingchanged="loadingchanged",s.mousedown="mousedown",s.mousemove="mousemove",s.mouseout="mouseout",s.mouseover="mouseover",s.mouseup="mouseup",s.moveend="moveend",s.movestart="movestart",s.nodechanged="nodechanged",s.sequenceedgeschanged="sequenceedgeschanged",s.spatialedgeschanged="spatialedgeschanged",r.Viewer=s},{"../Utils":233,"../Viewer":234,when:221}]},{},[229])(229)}); +!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;ac)&&(c=p[0]),(!l||p[1]>h)&&(h=p[1])}var f=c-n,d=h-a,m=Math.min(f,d),v=m/2,g=new u(null,i);if(0===m)return[n,a];for(var y=n;y_.d&&(_=x);for(var w=g.length;g.length;){var S=g.pop();S.d>_.d&&(_=S,r&&console.log("found best %d after %d probes",Math.round(1e4*S.d)/1e4,w)),S.max-_.d<=t||(v=S.h/2,g.push(new o(S.x-v,S.y-v,v,e)),g.push(new o(S.x+v,S.y-v,v,e)),g.push(new o(S.x-v,S.y+v,v,e)),g.push(new o(S.x+v,S.y+v,v,e)),w+=4)}return r&&(console.log("num probes: "+w),console.log("best distance: "+_.d)),[_.x,_.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=a(e,t,n),this.max=this.d+this.h*Math.SQRT2}function a(e,t,r){for(var n=!1,i=1/0,o=0;ot!=p[1]>t&&e<(p[0]-l[0])*(t-l[1])/(p[1]-l[1])+l[0]&&(n=!n),i=Math.min(i,c(e,t,l,p))}return(n?1:-1)*Math.sqrt(i)}function s(e){for(var t=0,r=0,n=0,i=e[0],a=0,s=i.length,c=s-1;a1?(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}var u=e("tinyqueue");t.exports=n,t.exports.default=n},{tinyqueue:181}],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)n)return n;for(;ro?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;a0?u-4:u;var h=0;for(t=0;t>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;cu?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>>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;t1&&s.index=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(l===setTimeout)return setTimeout(e,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function a(e){if(p===clearTimeout)return clearTimeout(e);if((p===i||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{return p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}function s(){v&&d&&(v=!1,d.length?m=d.concat(m):g=-1,m.length&&c())}function c(){if(!v){var e=o(s);v=!0;for(var t=m.length;t;){for(d=m,m=[];++g1)for(var r=1;rX)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 c(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 e instanceof ArrayBuffer?l(e,t,r):"string"==typeof e?u(e,t):p(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,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)}function c(e){return a(e),n(e<0?0:0|f(e))}function u(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!i.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var r=0|d(e,t),o=n(r),a=o.write(e,t);return a!==r&&(o=o.slice(0,a)),o}function h(e){for(var t=e.length<0?0:0|f(e.length),r=n(t),i=0;i=X)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+X.toString(16)+" bytes");return 0|e}function d(e,t){if(i.isBuffer(e))return e.length;if(G(e)||e instanceof ArrayBuffer)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 F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return $(e).length;default:if(n)return F(e).length;t=(""+t).toLowerCase(),n=!0}}function m(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 j(this,t,r);case"utf8":case"utf-8":return C(this,t,r);case"ascii":return O(this,t,r);case"latin1":case"binary":return P(this,t,r);case"base64":return E(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function v(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function g(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,H(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:y(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):y(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function y(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;us&&(r=s-c),u=r;u>=0;u--){for(var l=!0,p=0;pi&&(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;a239?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 T(n)}function T(e){var t=e.length;if(t<=Y)return String.fromCharCode.apply(String,e);for(var r="",n=0;nn)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,r,n,o,a){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function N(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 I(e,t,r,n,i){return t=+t,r>>>=0,i||N(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),W.write(e,t,r,n,23,4),r+4}function D(e,t,r,n,i){return t=+t,r>>>=0,i||N(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),W.write(e,t,r,n,52,8),r+8}function k(e){if((e=e.trim().replace(K,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}function B(e){return e<16?"0"+e.toString(16):e.toString(16)}function F(e,t){t=t||1/0;for(var r,n=e.length,i=null,o=[],a=0;a55295&&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 U(e){for(var t=[],r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function $(e){return q.toByteArray(k(e))}function V(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function G(e){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(e)}function H(e){return e!==e}var q=e("base64-js"),W=e("ieee754");r.Buffer=i,r.SlowBuffer=function(e){return+e!=e&&(e=0),i.alloc(+e)},r.INSPECT_MAX_BYTES=50;var X=2147483647;r.kMaxLength=X,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}}(),i.TYPED_ARRAY_SUPPORT||"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 s(e,t,r)},i.allocUnsafe=function(e){return c(e)},i.allocUnsafeSlow=function(e){return c(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);o0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(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>>=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 b(this,e,t,r);case"utf8":case"utf-8":return _(this,e,t,r);case"ascii":return x(this,e,t,r);case"latin1":case"binary":return w(this,e,t,r);case"base64":return S(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(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 Y=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>>=0,t>>>=0,r||R(e,t,this.length);for(var n=this[e],i=1,o=0;++o>>=0,t>>>=0,r||R(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||R(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return e>>>=0,t||R(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return e>>>=0,t||R(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return e>>>=0,t||R(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||R(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||R(e,t,this.length);for(var n=this[e],i=1,o=0;++o=i&&(n-=Math.pow(2,8*t)),n},i.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||R(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||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){e>>>=0,t||R(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||R(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||R(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||R(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||R(e,4,this.length),W.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return e>>>=0,t||R(e,4,this.length),W.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return e>>>=0,t||R(e,8,this.length),W.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return e>>>=0,t||R(e,8,this.length),W.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||L(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o>>=0,r>>>=0,n||L(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||L(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||L(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||L(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||L(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||L(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);L(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>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);L(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||L(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||L(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||L(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||L(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||L(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 I(this,e,t,!0,r)},i.prototype.writeFloatBE=function(e,t,r){return I(this,e,t,!1,r)},i.prototype.writeDoubleLE=function(e,t,r){return D(this,e,t,!0,r)},i.prototype.writeDoubleBE=function(e,t,r){return D(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=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=0;--i)e[i+t]=this[i+r];else if(o<1e3)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;a80*r){u=p=e[0],h=f=e[1];for(var g=r;gp&&(p=d),m>f&&(f=m);v=Math.max(p-u,f-h)}return a(s,c,r,u,h,v),c}function i(e,t,r,n,i){var o,a;if(i===A(e,t,r,n)>0)for(o=t;o=t;o-=n)a=O(o,e[o],e[o+1],a);return a&&w(a,a.next)&&(P(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||!w(n,n.next)&&0!==x(n.prev,n,n.next))n=n.next;else{if(P(n),(n=t=n.prev)===n.next)return null;r=!0}}while(r||n!==t);return t}function a(e,t,r,n,i,l,p){if(e){!p&&l&&m(e,n,i,l);for(var f,d,v=e;e.prev!==e.next;)if(f=e.prev,d=e.next,l?c(e,n,i,l):s(e))t.push(f.i/r),t.push(e.i/r),t.push(d.i/r),P(e),e=d.next,v=d.next;else if((e=d)===v){p?1===p?a(e=u(e,t,r),t,r,n,i,l,2):2===p&&h(e,t,r,n,i,l):a(o(e),t,r,n,i,l,1);break}}}function s(e){var t=e.prev,r=e,n=e.next;if(x(t,r,n)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(b(t.x,t.y,r.x,r.y,n.x,n.y,i.x,i.y)&&x(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function c(e,t,r,n){var i=e.prev,o=e,a=e.next;if(x(i,o,a)>=0)return!1;for(var s=i.xo.x?i.x>a.x?i.x:a.x:o.x>a.x?o.x:a.x,h=i.y>o.y?i.y>a.y?i.y:a.y:o.y>a.y?o.y:a.y,l=g(s,c,t,r,n),p=g(u,h,t,r,n),f=e.nextZ;f&&f.z<=p;){if(f!==e.prev&&f!==e.next&&b(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&x(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(f=e.prevZ;f&&f.z>=l;){if(f!==e.prev&&f!==e.next&&b(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&x(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}function u(e,t,r){var n=e;do{var i=n.prev,o=n.next.next;!w(i,o)&&S(i,n,n.next,o)&&E(i,o)&&E(o,i)&&(t.push(i.i/r),t.push(n.i/r),t.push(o.i/r),P(n),P(n.next),n=e=o),n=n.next}while(n!==e);return n}function h(e,t,r,n,i,s){var c=e;do{for(var u=c.next.next;u!==c.prev;){if(c.i!==u.i&&_(c,u)){var h=T(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)}function l(e,t,r,n){var a,s,c,u=[];for(a=0,s=t.length;a=n.next.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.x&&n.x>=h&&b(or.x)&&E(n,e)&&(r=n,p=c),n=n.next;return r}function m(e,t,r,n){var i=e;do{null===i.z&&(i.z=g(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,v(i)}function v(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;t0||c>0&&n;)0===s?(i=n,n=n.nextZ,c--):0!==c&&n?r.z<=n.z?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,c--):(i=r,r=r.nextZ,s--),o?o.nextZ=i:e=i,i.prevZ=o,o=i;r=n}o.nextZ=null,u*=2}while(a>1);return e}function g(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 y(e){var t=e,r=e;do{t.x=0&&(e-a)*(n-s)-(r-a)*(t-s)>=0&&(r-a)*(o-s)-(i-a)*(n-s)>=0}function _(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!M(e,t)&&E(e,t)&&E(t,e)&&C(e,t)}function x(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function w(e,t){return e.x===t.x&&e.y===t.y}function S(e,t,r,n){return!!(w(e,t)&&w(r,n)||w(e,n)&&w(r,t))||x(e,t,r)>0!=x(e,t,n)>0&&x(r,n,e)>0!=x(r,n,t)>0}function M(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&&S(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function E(e,t){return x(e.prev,e,e.next)<0?x(e,t,e.next)>=0&&x(e,e.prev,t)>=0:x(e,t,e.prev)<0||x(e,e.next,t)<0}function C(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&&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}function T(e,t){var r=new j(e.i,e.x,e.y),n=new j(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 O(e,t,r,n){var i=new j(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 P(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 j(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 A(e,t,r,n){for(var i=0,o=t,a=r-n;o0&&(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){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);return t.headers["Content-Type"]="application/x-www-form-urlencoded",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);return s.headers["Content-Type"]="application/x-www-form-urlencoded",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){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&&a<=399){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("./getXMLHttpRequest"),c=e("./getCORSRequest"),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():s()}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,a(n,i,"timeout error",e))},i.send(d.data)}catch(e){n.onError(e)}return function(){h||4===i.readyState||(h=!0,i.abort())}})}},{"./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;s1&&!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);++t0){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,n.prototype.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 f,d,m=r,v=h,g=u,y=0;;){if(0===y&&g[s]?(y=v.length,d=g[s]):(f=v[y++],d=m[f]),d){var b=d.$type,_=b&&d.value||d;if(yw;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:[]},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=a.length;h>u;u++)e(r,f,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_;){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(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: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){function n(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))}var i=e(30).fastCopy;t.exports=function(e,t,r,o,a,s,c){o.requestedMissingPaths||(o.requestedMissingPaths=[],o.optimizedMissingPaths=[]),n(0,rv;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),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]||(s(e,t),a(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 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||tr;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,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=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,d[l]=E);var O=_,P=C;if(T){var j=T.$type,A=j&&T.value||T;if(Sw;++w)O[w]=L[w]}}e(t,r,T,h,S,p,f,d,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)}"function"==typeof Promise?n.Promise=Promise:n.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 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,a,f,d,m,!1,s,u,h,l,p),_=v[0],x=v[1];_&&(m?n(d,t+1,r,x,_,s,u,h,l,p):C(_,x,f,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 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,a,c,l);if(r=x[0],w(r))return x;g=x[1]}while(y++d,!0,r,n,i);if(t=y[0],b(t))return y;f=y[1]}while(d++=l){var x=e[a];for(g=x;d>=_&&g;)x=x[c],y=g.$size||0,d-=y,!0===b&&h(g,y,e,f),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(){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)))}}function i(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}var o=e(59),a=e(60),s=0,c=e(57).GetRequest,u=e(76),h=e(78),l=e(119),p=[],f=function(e,t){this.sent=!1,this.scheduled=!1,this.requestQueue=t,this.id=++s,this.type=c,this._scheduler=e,this._pathMap={},this._optimizedPaths=[],this._requestedPaths=[],this._callbacks=[],this._count=0,this._disposable=null,this._collapsed=null,this._disposed=!1};f.prototype={batch:function(e,t,r){var i=this,o=i._optimizedPaths,s=i._requestedPaths,c=i._callbacks,u=o.length;return o[u]=t,s[u]=e,c[u]=r,++i._count,i.scheduled||(i.scheduled=!0,i._disposable=i._scheduler.schedule(function(){a(i,o,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 i,a,s=this,c=o(e,t,s._pathMap);c?(a=c[2],i=c[1]):(a=e,i=t);var u=!1,h=!1;if(i.lengtho){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 f=void 0;for(f in c)break;void 0===f&&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-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=a(m),g=p[d],y=a(g);if(s(m)&&s(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 a,s,c,u=this,h=[],l=0,p=u._requests,f=t,d=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(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),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 f=t[l],d=r[f.length];d&&n(d,f,0)?(!h&&l>0&&(a=i(e,0,l),o=i(t,0,l)),s[++c]=e[l],h=!0):h&&(o[++u]=f,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 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||o)}function i(e){return a.Observable.defer(function(){return e})}function o(e){function t(e){return b.concat(e)}var r=this.args,n=this.model,o=l.fromPath(r[0]),u=r[1]||[],f=(r[2]||[]).map(l.fromPath),d=(r[3]||[]).map(l.fromPath),m=n._clone({_path:[]}),v=m.withoutDataSource(),g=n._path,y=g.concat(o),b=y.slice(0,-1),_=i(n.withoutDataSource().get(o)).map(function(e){for(var t=e.json,r=-1,n=o.length;t&&++r0?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=e.envelope,a=e.results,c=a.values,u=a.references,h=a.invalidations,l=c.map(n).map(t),p=u.reduce(r,[]),f=d.map(t),v=p.concat(f);return(v.length>0?i(m.get.apply(m,l.concat(v))._toJSONG()):s.return(o)).doAction(function(e){e.invalidated=h})});return s.return(h)}return s.empty()}).defaultIfEmpty(function(e){return e&&"object"==typeof e?a.Observable.defer(function(){var t;try{t=e.call(y,u,f,d)}catch(e){t=s.throw(new h(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 c;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}var a=e(159)&&e(158),s=a.Observable,c=a.CompositeDisposable,u=e(64),h=e(9),l=e(134),p=e(120);n.create=u.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),a=e(134),s=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=[{}],s=[],c=this.args,h=-1,m=c.length;++h0&&(0,t["_"+r+c+"AsJSON"])(t,u)}return e.onCompleted(),o.empty}var o=e(159).Disposable,a=e(62);n.create=a.create,(n.prototype=Object.create(a.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){f.call(this,e||i)}function i(e){return this.isCompleted?a.call(this,e):o.call(this,e)}function o(e){if(this.subscribeCount++>this.subscribeLimit)return e.onError("Loop kill switch thrown."),l.empty;for(var t=[],r=[],n=this.model,i=this.isMaster,o=n._root,u=this.outputFormat,h=o.errorSelector,p=this.method,f=this.groups,d=-1,v=f.length;++d0){var _=(0,n["_"+p+y+u])(n,b,null,h);r.push.apply(r,_[1]),"PathValues"===y?t.push.apply(t,b.map(s)):"JSONGs"===y?t.push.apply(t,m(b,c)):t.push.apply(t,_[0])}}return this.requestedPaths=t,i?(this.isCompleted=!0,a.call(this,e)):void e.onError({method:p,optimizedPaths:r,invokeSourceRequest:!0})}function a(e){var t=new p(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 c(e){return e.paths}var u=e(159),h=u.Observable,l=u.Disposable,p=e(67),f=e(62),d=e(9),m=e(82),v=new Array(0);n.create=f.create,(n.prototype=Object.create(f.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=v,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 h.empty();if("E"===e.kind){var t=e.exception;if(d.is(t))return h.throw(e.exception)}return r})}else i=h.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 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(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,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];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,d,m,v,g,b,_){for(var x={},w=tx,!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++=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(_++S,!0,n,i,a,h,f,d,g);if(r=E[0],y(r))return i.index=S,E;w=E[1]}while(S++o&&(o=0),r>0&&o>r&&(o=r);for(var a=new Array(o);++iL)return}if(O&&A&&!P)return d(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=f(t,O,t.value),e=g(e,-t.$size,M,w),t=d(t,e,b,w));else{var N=!0;!O&&j||(N=c(r)-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,f=t;if(f?(p=s(p),l=u(p),p.$type=f):(p=n(r),f=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 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=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(;cu){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){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);return r.headers["Content-Type"]="application/x-www-form-urlencoded",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);return c.headers["Content-Type"]="application/x-www-form-urlencoded",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,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():s()}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,a(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){var n={token:"token",dotSeparator:".",commaSeparator:",",openingBracket:"[",closingBracket:"]",openingBrace:"{",closingBrace:"}",escape:"\\",space:" ",colon:":",quote:"quote",unknown:"unknown"};t.exports=n},{}],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,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),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&&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,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,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: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:f,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 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),a=".",s=",",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,a=!0;a&&in&&(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{if(t.loaded&&t.rangeOffset>t.to&&(++t.arrayOffset,t.loaded=!1),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===p}function i(e,t,r){var n,o,a,s,l,p,f,d,m,v,g,y,b,_,x=u(String(t)),w=Object.create(null),S=[],M=-1,E=0,C=[],T=0;if(s=[],l=-1,r-1>t){for(p=c(e,s);++l0)for(f=o.sets,d=-1,m=f.length,b=s[0];++d1&&s||b;++g1?[s]:s;++l0;++t<=r;){var i=e[t];if(!h(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}function s(e,t){return e-t}function c(e,t,r){var n=0;for(var i in e)t[n++]=i;return n>1&&t.sort(r),n}function u(e){for(var t=5381,r=-1,n=e.length;++r=0}var l=Array.isArray,p="object";t.exports=function(e){var t,r=[],a=0;for(var s in e)if(h(s)&&n(t=e[s]))for(var c=i(t,0,parseInt(s,10)).sets,u=-1,l=c.length;++u1)for(var r=1;r0?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(){try{return f.apply(this,arguments)}catch(e){return I.e=e,I}}function o(e){if(!M(e))throw new TypeError("fn must be a function");return f=e,i}function a(e,t,r){return new g(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 s(e){if(0===e.length)throw new R;return e[0]}function c(e,t,r,n){if(0>t)throw new N;return new g(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 N)})},e)}function u(e,t,r){return new g(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 h(e,t,r){return new g(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 l(e,t,r){return new g(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 p(e,t,r,i){var o=A(t,r,3);return new g(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 f,d=r.Observable,m=d.prototype,v=r.CompositeDisposable,g=r.AnonymousObservable,y=r.Disposable.empty,b=(r.internals.isEqual,r.helpers),_=b.not,x=b.defaultComparer,w=b.identity,S=b.defaultSubComparer,M=b.isFunction,E=b.isPromise,C=b.isArrayLike,T=b.isIterable,O=r.internals.inherits,P=d.fromPromise,j=d.from,A=r.internals.bindCallback,R=r.EmptyError,L=r.ObservableBase,N=r.ArgumentOutOfRangeError,I={e:{}};m.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 g(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 R),i.onCompleted()})},n)};var D=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 O(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=o(this.acc)(this.result,e):(this.result=this.hasSeed?o(this.acc)(this.seed,e):e,this.hasAccumulation=!0),this.result===I&&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}(L);return m.reduce=function(e){var t=!1;if(2===arguments.length){t=!0;var r=arguments[1]}return new D(this,e,t,r)},m.some=function(e,t){var r=this;return e?r.filter(e,t).some():new g(function(e){return r.subscribe(function(){e.onNext(!0),e.onCompleted()},function(t){e.onError(t)},function(){e.onNext(!1),e.onCompleted()})},r)},m.any=function(){return this.some.apply(this,arguments)},m.isEmpty=function(){return this.any().map(_)},m.every=function(e,t){return this.filter(function(t){return!e(t)},t).some().map(_)},m.all=function(){return this.every.apply(this,arguments)},m.includes=function(e,t){function r(e,t){return 0===e&&0===t||e===t||isNaN(e)&&isNaN(t)}var n=this;return new g(function(i){var o=0,a=+t||0;return Math.abs(a)===1/0&&(a=0),0>a?(i.onNext(!1),i.onCompleted(),y):n.subscribe(function(t){o++>=a&&r(t,e)&&(i.onNext(!0),i.onCompleted())},function(e){i.onError(e)},function(){i.onNext(!1),i.onCompleted()})},this)},m.contains=function(e,t){m.includes(e,t)},m.count=function(e,t){return e?this.filter(e,t).count():this.reduce(function(e){return e+1},0)},m.indexOf=function(e,t){var r=this;return new g(function(n){var i=0,o=+t||0;return Math.abs(o)===1/0&&(o=0),0>o?(n.onNext(-1),n.onCompleted(),y):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)},m.sum=function(e,t){return e&&M(e)?this.map(e,t).sum():this.reduce(function(e,t){return e+t},0)},m.minBy=function(e,t){return t||(t=S),a(this,e,function(e,r){return-1*t(e,r)})},m.min=function(e){return this.minBy(w,e).map(function(e){return s(e)})},m.maxBy=function(e,t){return t||(t=S),a(this,e,t)},m.max=function(e){return this.maxBy(w,e).map(function(e){return s(e)})},m.average=function(e,t){return e&&M(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})},m.sequenceEqual=function(e,t){var r=this;return t||(t=x),new g(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()))});(C(e)||T(e))&&(e=j(e)),E(e)&&(e=P(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 v(c,u)},r)},m.elementAt=function(e){return c(this,e,!1)},m.elementAtOrDefault=function(e,t){return c(this,e,!0,t)},m.single=function(e,t){return e&&M(e)?this.where(e,t).single():u(this,!1)},m.singleOrDefault=function(e,t,r){return e&&M(e)?this.filter(e,r).singleOrDefault(null,t):u(this,!0,t)},m.first=function(e,t){return e?this.where(e,t).first():h(this,!1)},m.firstOrDefault=function(e,t,r){return e?this.where(e).firstOrDefault(null,t):h(this,!0,t)},m.last=function(e,t){return e?this.where(e,t).last():l(this,!1)},m.lastOrDefault=function(e,t,r){return e?this.where(e,r).lastOrDefault(null,t):l(this,!0,t)},m.find=function(e,t){return p(this,e,t,!1)},m.findIndex=function(e,t){return p(this,e,t,!0)},m.toSet=function(){if(void 0===e.Set)throw new TypeError;var t=this;return new g(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)},m.toMap=function(t,r){if(void 0===e.Map)throw new TypeError;var n=this;return new g(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(ce&&t.stack&&"object"==typeof e&&null!==e&&e.stack&&-1===e.stack.indexOf(le)){for(var r=[],n=t;n;n=n.source)n.stack&&r.unshift(n.stack);r.unshift(e.stack);var i=r.join("\n"+le+"\n");e.stack=c(i)}}function c(e){for(var t=e.split("\n"),r=[],n=0,i=t.length;i>n;n++){var o=t[n];u(o)||h(o)||!o||r.push(o)}return r.join("\n")}function u(e){var t=p(e);if(!t)return!1;var r=t[0],n=t[1];return r===ue&&n>=he&&Ar>=n}function h(e){return-1!==e.indexOf("(module.js:")||-1!==e.indexOf("(node.js:")}function l(){if(ce)try{throw new Error}catch(r){var e=r.stack.split("\n"),t=p(e[0].indexOf("@")>0?e[1]:e[2]);if(!t)return;return ue=t[0],t[1]}}function p(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 f(e){var t=[];if(!Ve(e))return t;$e.nonEnumArgs&&e.length&&Ge(e)&&(e=We.call(e));var r=$e.enumPrototypes&&"function"==typeof e,n=$e.enumErrorProps&&(e===ke||e instanceof Error);for(var i in e)r&&"prototype"==i||n&&("message"==i||"name"==i)||t.push(i);if($e.nonEnumShadows&&e!==Be){var o=e.constructor,a=-1,s=Me;if(e===(o&&o.prototype))var c=e===Fe?Le:e===ke?Pe:Ne.call(e),u=ze[c];for(;++a-1:void 0});return r.pop(),n.pop(),f}function y(e,t){for(var r=new Array(e),n=0;e>n;n++)r[n]=t();return r}function b(){try{return He.apply(this,arguments)}catch(e){return Ze.e=e,Ze}}function _(e){if(!se(e))throw new TypeError("fn must be a function");return He=e,b}function x(e){throw e}function w(e,t){this.id=e,this.value=t}function S(e,t){this.scheduler=e,this.disposable=t,this.isDisposed=!1}function M(e,t){t.isDisposed||(t.isDisposed=!0,t.disposable.dispose())}function E(e){this._s=s}function C(e){this._s=s,this._l=s.length,this._i=0}function T(e){this._a=e}function O(e){this._a=e,this._l=R(e),this._i=0}function P(e){return"number"==typeof e&&X.isFinite(e)}function j(e){var t=e[ye];if(!t&&"string"==typeof e)return new E(e)[ye]();if(!t&&e.length!==i)return new T(e)[ye]();if(!t)throw new TypeError("Object is not iterable");return e[ye]()}function A(e){var t=+e;return 0===t?t:isNaN(t)?t:0>t?-1:1}function R(e){var t=+e.length;return isNaN(t)?0:0!==t&&P(t)?0>=(t=A(t)*Math.floor(Math.abs(t)))?0:t>Yt?Yt:t:t}function L(e,t){this.observer=e,this.parent=t}function N(e,t){return ft(e)||(e=gt),new Zt(t,e)}function I(e,t){this.observer=e,this.parent=t}function D(e,t){this.observer=e,this.parent=t}function k(e,t){return new Cr(function(r){var n=new st,i=new ct;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)}ae(n)&&(n=Vt(n));var o=new st;i.setDisposable(o),o.setDisposable(n.subscribe(r))},function(e){r.onCompleted(e)})),i},e)}function B(){return!1}function F(e,t){var r=this;return new Cr(function(n){var i=0,o=e.length;return r.subscribe(function(r){if(o>i){var a=e[i++],s=_(t)(r,a);if(s===Ze)return n.onError(s.e);n.onNext(s)}else n.onCompleted()},function(e){n.onError(e)},function(){n.onCompleted()})},r)}function B(){return!1}function U(){return[]}function B(){return!1}function z(){return[]}function $(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 V(e,t,r){var n=we(t,r,3);return e.map(function(t,r){var i=n(t,r,e);return ae(i)&&(i=Vt(i)),(xe(i)||_e(i))&&(i=Kt(i)),i}).concatAll()}function G(e,t,r){for(var n=0,i=e.length;i>n;n++)if(r(e[n],t))return n;return-1}function H(e){this.comparer=e,this.set=[]}function q(e,t,r){var n=we(t,r,3);return e.map(function(t,r){var i=n(t,r,e);return ae(i)&&(i=Vt(i)),(xe(i)||_e(i))&&(i=Kt(i)),i}).mergeAll()}var W={boolean:!1,function:!0,object:!0,number:!1,string:!1,undefined:!1},X=W[typeof window]&&window||this,Y=W[typeof r]&&r&&!r.nodeType&&r,K=W[typeof t]&&t&&!t.nodeType&&t,Z=K&&K.exports===Y&&Y,J=W[typeof n]&&n;!J||J.global!==J&&J.window!==J||(X=J);var Q={internals:{},config:{Promise:X.Promise},helpers:{}},ee=Q.helpers.noop=function(){},te=(Q.helpers.notDefined=function(e){return void 0===e},Q.helpers.identity=function(e){return e}),re=(Q.helpers.pluck=function(e){return function(t){return t[e]}},Q.helpers.just=function(e){return function(){return e}},Q.helpers.defaultNow=Date.now),ne=Q.helpers.defaultComparer=function(e,t){return qe(e,t)},ie=Q.helpers.defaultSubComparer=function(e,t){return e>t?1:t>e?-1:0},oe=(Q.helpers.defaultKeySerializer=function(e){return e.toString()},Q.helpers.defaultError=function(e){throw e}),ae=Q.helpers.isPromise=function(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then},se=(Q.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},Q.helpers.not=function(e){return!e},Q.helpers.isFunction=function(){var e=function(e){return"function"==typeof e||!1};return e(/x/)&&(e=function(e){return"function"==typeof e&&"[object Function]"==Ne.call(e)}),e}());Q.config.longStackSupport=!1;var ce=!1;try{throw new Error}catch(e){ce=!!e.stack}var ue,he=l(),le="From previous event:";(Q.EmptyError=function(){this.message="Sequence contains no elements.",Error.call(this)}).prototype=Error.prototype;var pe=Q.ObjectDisposedError=function(){this.message="Object has been disposed",Error.call(this)};pe.prototype=Error.prototype;var fe=Q.ArgumentOutOfRangeError=function(){this.message="Argument out of range",Error.call(this)};fe.prototype=Error.prototype;var de=Q.NotSupportedError=function(e){this.message=e||"This operation is not supported",Error.call(this)};de.prototype=Error.prototype;var me=Q.NotImplementedError=function(e){this.message=e||"This operation is not implemented",Error.call(this)};me.prototype=Error.prototype;var ve=Q.helpers.notImplemented=function(){throw new me},ge=Q.helpers.notSupported=function(){throw new de},ye="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";X.Set&&"function"==typeof(new X.Set)["@@iterator"]&&(ye="@@iterator");var be=Q.doneEnumerator={done:!0,value:i},_e=Q.helpers.isIterable=function(e){return e[ye]!==i},xe=Q.helpers.isArrayLike=function(e){return e&&e.length!==i};Q.helpers.iterator=ye;var we=Q.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)}},Se=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Me=Se.length,Ee="[object Arguments]",Ce="[object Array]",Te="[object Boolean]",Oe="[object Date]",Pe="[object Error]",je="[object Number]",Ae="[object Object]",Re="[object RegExp]",Le="[object String]",Ne=Object.prototype.toString,Ie=Object.prototype.hasOwnProperty,De=Ne.call(arguments)==Ee,ke=Error.prototype,Be=Object.prototype,Fe=String.prototype,Ue=Be.propertyIsEnumerable;try{!(Ne.call(document)==Ae&&!({toString:0}+""))}catch(e){!0}var ze={};ze[Ce]=ze[Oe]=ze[je]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},ze[Te]=ze[Le]={constructor:!0,toString:!0,valueOf:!0},ze[Pe]=ze["[object Function]"]=ze[Re]={constructor:!0,toString:!0},ze[Ae]={constructor:!0};var $e={};!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);$e.enumErrorProps=Ue.call(ke,"message")||Ue.call(ke,"name"),$e.enumPrototypes=Ue.call(e,"prototype"),$e.nonEnumArgs=0!=r,$e.nonEnumShadows=!/valueOf/.test(t)}(1);var Ve=Q.internals.isObject=function(e){var t=typeof e;return e&&("function"==t||"object"==t)||!1},Ge=function(e){return!(!e||"object"!=typeof e)&&Ne.call(e)==Ee};De||(Ge=function(e){return!(!e||"object"!=typeof e)&&Ie.call(e,"callee")});var He,qe=Q.internals.isEqual=function(e,t){return g(e,t,[],[])},We=Array.prototype.slice,Xe=this.inherits=Q.internals.inherits=function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r},Ye=Q.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]}},Ke=Q.internals.addRef=function(e,t){return new Cr(function(r){return new et(t.getDisposable(),e.subscribe(r))})},Ze={e:{}};w.prototype.compareTo=function(e){var t=this.value.compareTo(e.value);return 0===t&&(t=this.id-e.id),t};var Je=Q.internals.PriorityQueue=function(e){this.items=new Array(e),this.length=0},Qe=Je.prototype;Qe.isHigherPriority=function(e,t){return this.items[e].compareTo(this.items[t])<0},Qe.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)}}},Qe.heapify=function(e){if(+e||(e=0),!(e>=this.length||0>e)){var t=2*e+1,r=2*e+2,n=e;if(te;e++)r[e]=arguments[e];for(e=0;t>e;e++)if(!ot(r[e]))throw new TypeError("Not a disposable");this.disposables=r,this.isDisposed=!1,this.length=r.length},tt=et.prototype;tt.add=function(e){this.isDisposed?e.dispose():(this.disposables.push(e),this.length++)},tt.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},tt.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 rt=Q.Disposable=function(e){this.isDisposed=!1,this.action=e||ee};rt.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var nt=rt.create=function(e){return new rt(e)},it=rt.empty={dispose:ee},ot=rt.isDisposable=function(e){return e&&se(e.dispose)},at=rt.checkDisposed=function(e){if(e.isDisposed)throw new pe},st=Q.SingleAssignmentDisposable=function(){this.isDisposed=!1,this.current=null};st.prototype.getDisposable=function(){return this.current},st.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()},st.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var e=this.current;this.current=null}e&&e.dispose()};var ct=Q.SerialDisposable=function(){this.isDisposed=!1,this.current=null};ct.prototype.getDisposable=function(){return this.current},ct.prototype.setDisposable=function(e){var t=this.isDisposed;if(!t){var r=this.current;this.current=e}r&&r.dispose(),t&&e&&e.dispose()},ct.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var e=this.current;this.current=null}e&&e.dispose()};var ut=Q.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,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?it:new e(this)},t}();S.prototype.dispose=function(){this.scheduler.scheduleWithState(this,M)};var ht=Q.internals.ScheduledItem=function(e,t,r,n,i){this.scheduler=e,this.state=t,this.action=r,this.dueTime=n,this.comparer=i||ie,this.disposable=new st};ht.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},ht.prototype.compareTo=function(e){return this.comparer(this.dueTime,e.dueTime)},ht.prototype.isCancelled=function(){return this.disposable.isDisposed},ht.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var lt=Q.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(),it}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=re,e.normalize=function(e){return 0>e&&(e=0),e},e}(),pt=lt.normalize,ft=lt.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),it});i||(o.add(a),n=!0)})}var n=t[0],i=t[1],o=new et;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),it});s||(a.add(c),o=!0)})}var i=t[0],o=t[1],a=new et;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")})}}(lt.prototype),lt.prototype,lt.prototype.schedulePeriodic=function(e,t){return this.schedulePeriodicWithState(null,e,t)},lt.prototype.schedulePeriodicWithState=function(e,t,r){if(void 0===X.setInterval)throw new de;t=pt(t);var n=e,i=X.setInterval(function(){n=r(n)},t);return nt(function(){X.clearInterval(i)})},function(e){e.catchError=e.catch=function(e){return new xt(this,e)}}(lt.prototype);var dt,mt,vt=(Q.internals.SchedulePeriodicRecursive=function(){function e(e,t){t(0,this._period);try{this._state=this._action(this._state)}catch(e){throw this._cancel.dispose(),e}}function t(e,t,r,n){this._scheduler=e,this._state=t,this._period=r,this._action=n}return t.prototype.start=function(){var t=new st;return this._cancel=t,t.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,e.bind(this))),t},t}(),lt.immediate=function(){return new lt(re,function(e,t){return t(this,e)},ge,ge)}()),gt=lt.currentThread=function(){function e(){for(;t.length>0;){var e=t.dequeue();!e.isCancelled()&&e.invoke()}}var t,r=new lt(re,function(r,n){var i=new ht(this,r,n,this.now());if(t)t.enqueue(i);else{(t=new Je(4)).enqueue(i);var o=_(e)();if(t=null,o===Ze)return x(o.e)}return i.disposable},ge,ge);return r.scheduleRequired=function(){return!t},r}(),yt=function(){var e,t=ee;if(X.setTimeout)e=X.setTimeout,t=X.clearTimeout;else{if(!X.WScript)throw new de;e=function(e,t){X.WScript.Sleep(t),e()}}return{setTimeout:e,clearTimeout:t}}(),bt=yt.setTimeout,_t=yt.clearTimeout;!function(){function t(e){if(o)bt(function(){t(e)},0);else{var r=i[e];if(r){o=!0;var n=_(r)();if(mt(e),o=!1,n===Ze)return x(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;mt=function(e){delete i[e]};var a=RegExp("^"+String(Ne).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),s="function"==typeof(s=J&&Z&&J.setImmediate)&&!a.test(s)&&s;if(se(s))dt=function(e){var r=n++;return i[r]=e,s(function(){t(r)}),r};else if(void 0!==e&&"[object process]"==={}.toString.call(e))dt=function(r){var o=n++;return i[o]=r,e.nextTick(function(){t(o)}),o};else if(function(){if(!X.postMessage||X.importScripts)return!1;var e=!1,t=X.onmessage;return X.onmessage=function(){e=!0},X.postMessage("","*"),X.onmessage=t,e}()){var c="ms.rx.schedule"+Math.random();X.addEventListener?X.addEventListener("message",r,!1):X.attachEvent?X.attachEvent("onmessage",r):X.onmessage=r,dt=function(e){var t=n++;return i[t]=e,X.postMessage(c+currentId,"*"),t}}else if(X.MessageChannel){var u=new X.MessageChannel;u.port1.onmessage=function(e){t(e.data)},dt=function(e){var t=n++;return i[t]=e,u.port2.postMessage(t),t}}else dt="document"in X&&"onreadystatechange"in X.document.createElement("script")?function(e){var r=X.document.createElement("script"),o=n++;return i[o]=e,r.onreadystatechange=function(){t(o),r.onreadystatechange=null,r.parentNode.removeChild(r),r=null},X.document.documentElement.appendChild(r),o}:function(e){var r=n++;return i[r]=e,bt(function(){t(r)},0),r}}();var xt=(lt.timeout=lt.default=function(){return new lt(re,function(e,t){var r=this,n=new st,i=dt(function(){!n.isDisposed&&n.setDisposable(t(r,e))});return new et(n,nt(function(){mt(i)}))},function(e,t,r){var n=this,i=lt.normalize(t),o=new st;if(0===i)return n.scheduleWithState(e,r);var a=bt(function(){!o.isDisposed&&o.setDisposable(r(n,e))},i);return new et(o,nt(function(){_t(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 Xe(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 it}}},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 st;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}(lt)),wt=Q.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 ft(e)||(e=vt),new Cr(function(r){return e.scheduleWithState(t,function(e,t){t._acceptObservable(r),"N"===t.kind&&r.onCompleted()})})},e}(),St=wt.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 wt("N",n,null,e,t,r)}}(),Mt=wt.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 wt("E",null,n,e,t,r)}}(),Et=wt.createOnCompleted=function(){function e(e,t,r){return r()}function t(e){return e.onCompleted()}function r(){return"OnCompleted()"}return function(){return new wt("C",null,null,e,t,r)}}(),Ct=Q.Observer=function(){};Ct.prototype.toNotifier=function(){var e=this;return function(t){return t.accept(e)}},Ct.prototype.asObserver=function(){return new jt(this.onNext.bind(this),this.onError.bind(this),this.onCompleted.bind(this))},Ct.prototype.checked=function(){return new At(this)};var Tt=Ct.create=function(e,t,r){return e||(e=ee),t||(t=oe),r||(r=ee),new jt(e,t,r)};Ct.fromNotifier=function(e,t){return new jt(function(r){return e.call(t,St(r))},function(r){return e.call(t,Mt(r))},function(){return e.call(t,Et())})},Ct.prototype.notifyOn=function(e){return new Rt(e,this)},Ct.prototype.makeSafe=function(e){return new AnonymousSafeObserver(this._onNext,this._onError,this._onCompleted,e)};var Ot,Pt=Q.internals.AbstractObserver=function(e){function t(){this.isStopped=!1,e.call(this)}return Xe(t,e),t.prototype.next=ve,t.prototype.error=ve,t.prototype.completed=ve,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}(Ct),jt=Q.AnonymousObserver=function(e){function t(t,r,n){e.call(this),this._onNext=t,this._onError=r,this._onCompleted=n}return Xe(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}(Pt),At=function(e){function t(t){e.call(this),this._observer=t,this._state=0}Xe(t,e);var r=t.prototype;return r.onNext=function(e){this.checkAccess();var t=_(this._observer.onNext).call(this._observer,e);this._state=0,t===Ze&&x(t.e)},r.onError=function(e){this.checkAccess();var t=_(this._observer.onError).call(this._observer,e);this._state=2,t===Ze&&x(t.e)},r.onCompleted=function(){this.checkAccess();var e=_(this._observer.onCompleted).call(this._observer);this._state=2,e===Ze&&x(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}(Ct),Rt=function(e){function t(t,r,n){e.call(this,t,r),this._cancel=n}return Xe(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}(Q.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 ct}return Xe(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}(Pt)),Lt=Q.Observable=function(){function e(e){if(Q.config.longStackSupport&&ce){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 Ot=e.prototype,Ot.subscribe=Ot.forEach=function(e,t,r){return this._subscribe("object"==typeof e?e:Tt(e,t,r))},Ot.subscribeOnNext=function(e,t){return this._subscribe(Tt(void 0!==t?function(r){e.call(t,r)}:e))},Ot.subscribeOnError=function(e,t){return this._subscribe(Tt(null,void 0!==t?function(r){e.call(t,r)}:e))},Ot.subscribeOnCompleted=function(e,t){return this._subscribe(Tt(null,null,void 0!==t?function(){e.call(t)}:e))},e}(),Nt=Q.ObservableBase=function(e){function t(e){return e&&se(e.dispose)?e:se(e)?nt(e):it}function r(e,r){var n=r[0],i=r[1],o=_(i.subscribeCore).call(i,n);return o!==Ze||n.fail(Ze.e)?void n.setDisposable(t(o)):x(Ze.e)}function n(e){var t=new Tr(e),n=[t,this];return gt.scheduleRequired()?gt.scheduleWithState(n,r):r(null,n),t}function i(){e.call(this,n)}return Xe(i,e),i.prototype.subscribeCore=ve,i}(Lt),It=Q.internals.Enumerable=function(){},Dt=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 Xe(t,e),t.prototype.subscribeCore=function(e){var t,n=new ct,i=vt.scheduleRecursiveWithState(this.sources[ye](),function(i,o){if(!t){var a=_(i.next).call(i);if(a===Ze)return e.onError(a.e);if(a.done)return e.onCompleted();var s=a.value;ae(s)&&(s=Vt(s));var c=new st;n.setDisposable(c),c.setDisposable(s.subscribe(new r(e,o,i)))}});return new et(n,i,nt(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}(Nt);It.prototype.concat=function(){return new Dt(this)};var kt=function(e){function t(t){this.sources=t,e.call(this)}return Xe(t,e),t.prototype.subscribeCore=function(e){var t,r=this.sources[ye](),n=new ct,i=vt.scheduleRecursiveWithState(null,function(i,o){if(!t){var a=_(r.next).call(r);if(a===Ze)return e.onError(a.e);if(a.done)return null!==i?e.onError(i):e.onCompleted();var s=a.value;ae(s)&&(s=Vt(s));var c=new st;n.setDisposable(c),c.setDisposable(s.subscribe(function(t){e.onNext(t)},o,function(){e.onCompleted()}))}});return new et(n,i,nt(function(){t=!0}))},t}(Nt);It.prototype.catchError=function(){return new kt(this)},It.prototype.catchErrorWhen=function(e){var t=this;return new Cr(function(r){var n,i=new Pr,o=new Pr,a=e(i).subscribe(o),s=t[ye](),c=new ct,u=vt.scheduleRecursive(function(e){if(!n){var t=_(s.next).call(s);if(t===Ze)return r.onError(t.e);if(t.done)return void r.onCompleted();var a=t.value;ae(a)&&(a=Vt(a));var u=new st,h=new st;c.setDisposable(new et(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 et(a,c,u,nt(function(){n=!0}))})};var Bt=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 Xe(t,It),t.prototype[ye]=function(){return new r(this)},r.prototype.next=function(){return 0===this.l?be:(this.l>0&&this.l--,{done:!1,value:this.v})},t}(),Ft=It.repeat=function(e,t){return new Bt(e,t)},Ut=function(e){function t(e,t,r){this.s=e,this.fn=t?we(t,r,3):null}function r(e){this.i=-1,this.s=e.s,this.l=this.s.length,this.fn=e.fn}return Xe(t,It),t.prototype[ye]=function(){return new r(this)},r.prototype.next=function(){return++this.in?(e.onNext(t[n]),i(n+1)):e.onCompleted()})};var Jt=Lt.fromArray=function(e,t){return ft(t)||(t=gt),new Zt(e,t)};Lt.generate=function(e,t,r,n,i){return ft(i)||(i=gt),new Cr(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 Qt=function(e){function t(){e.call(this)}return Xe(t,e),t.prototype.subscribeCore=function(e){return it},t}(Nt),er=Lt.never=function(){return new Qt};Lt.of=function(){for(var e=arguments.length,t=new Array(e),r=0;e>r;r++)t[r]=arguments[r];return new Zt(t,gt)},Lt.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 Zt(r,e)};var tr=function(e){function t(t,r){this.obj=t,this.keys=Object.keys(t),this.scheduler=r,e.call(this)}return Xe(t,e),t.prototype.subscribeCore=function(e){return new I(e,this).run()},t}(Nt);I.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()})},Lt.pairs=function(e,t){return t||(t=gt),new tr(e,t)};var rr=function(e){function t(t,r,n){this.start=t,this.rangeCount=r,this.scheduler=n,e.call(this)}return Xe(t,e),t.prototype.subscribeCore=function(e){return new nr(e,this).run()},t}(Nt),nr=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}();Lt.range=function(e,t,r){return ft(r)||(r=gt),new rr(e,t,r)};var ir=function(e){function t(t,r,n){this.value=t,this.repeatCount=null==r?-1:r,this.scheduler=n,e.call(this)}return Xe(t,e),t.prototype.subscribeCore=function(e){return new D(e,this).run()},t}(Nt);D.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)})},Lt.repeat=function(e,t,r){return ft(r)||(r=gt),new ir(e,t,r)};var or=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 Xe(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}(Nt),ar=(Lt.return=Lt.just=Lt.returnValue=function(e,t){return ft(t)||(t=vt),new or(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 Xe(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}(Nt)),sr=Lt.throw=Lt.throwError=Lt.throwException=function(e,t){return ft(t)||(t=vt),new ar(e,t)};Lt.using=function(e,t){return new Cr(function(r){var n,i,o=it;try{(n=e())&&(o=n),i=t(n)}catch(e){return new et(sr(e).subscribe(r),o)}return new et(i.subscribe(r),o)})},Ot.amb=function(e){var t=this;return new Cr(function(r){function n(){o||(o=a,u.dispose())}function i(){o||(o=s,c.dispose())}var o,a="L",s="R",c=new st,u=new st;return ae(e)&&(e=Vt(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 et(c,u)})},Lt.amb=function(){var e=er(),t=[];if(Array.isArray(arguments[0]))t=arguments[0];else for(var r=0,n=arguments.length;n>r;r++)t.push(arguments[r]);for(var r=0,n=t.length;n>r;r++)e=function(e,t){return e.amb(t)}(e,t[r]);return e},Ot.catch=Ot.catchError=Ot.catchException=function(e){return"function"==typeof e?k(this,e):cr([this,e])};var cr=Lt.catchError=Lt.catch=Lt.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 zt(e).catchError()};Ot.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),ur.apply(this,t)};var ur=Lt.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 Cr(function(e){function r(t){if(s[t]=!0,c||(c=s.every(te))){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(te)&&e.onCompleted()}function i(t){u[t]=!0,u.every(te)&&e.onCompleted()}for(var o=t.length,a=function(){return!1},s=y(o,a),c=!1,u=y(o,a),h=new Array(o),l=new Array(o),p=0;o>p;p++)!function(n){var o=t[n],a=new st;ae(o)&&(o=Vt(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 et(l)},this)};Ot.concat=function(){for(var e=[],t=0,r=arguments.length;r>t;t++)e.push(arguments[t]);return e.unshift(this),lr.apply(null,e)};var hr=function(e){function t(t){this.sources=t,e.call(this)}function r(e,t){this.sources=e,this.o=t}return Xe(t,e),t.prototype.subscribeCore=function(e){return new r(this.sources,e).run()},r.prototype.run=function(){var e,t=new ct,r=this.sources,n=r.length,i=this.o,o=vt.scheduleRecursiveWithState(0,function(o,a){if(!e){if(o===n)return i.onCompleted();var s=r[o];ae(s)&&(s=Vt(s));var c=new st;t.setDisposable(c),c.setDisposable(s.subscribe(function(e){i.onNext(e)},function(e){i.onError(e)},function(){a(o+1)}))}});return new et(t,o,nt(function(){e=!0}))},t}(Nt),lr=Lt.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 hr(e)};Ot.concatAll=Ot.concatObservable=function(){return this.merge(1)};var pr=function(e){function t(t,r){this.source=t,this.maxConcurrent=r,e.call(this)}return Xe(t,e),t.prototype.subscribeCore=function(e){var t=new et;return t.add(this.source.subscribe(new fr(e,this.maxConcurrent,t))),t},t}(Nt),fr=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 st;this.g.add(r),ae(e)&&(e=Vt(e)),r.setDisposable(e.subscribe(new t(this,r)))},e.prototype.onNext=function(e){this.isStopped||(this.activeCount0?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}();Ot.merge=function(e){return"number"!=typeof e?dr(this,e):new pr(this,e)};var dr=Lt.merge=function(){var e,t,r=[],n=arguments.length;if(arguments[0])if(ft(arguments[0]))for(e=arguments[0],t=1;n>t;t++)r.push(arguments[t]);else for(e=vt,t=0;n>t;t++)r.push(arguments[t]);else for(e=vt,t=1;n>t;t++)r.push(arguments[t]);return Array.isArray(r[0])&&(r=r[0]),N(e,r).mergeAll()},mr=Q.CompositeError=function(e){this.name="NotImplementedError",this.innerErrors=e,this.message="This contains multiple errors. Check the innerErrors",Error.call(this)};mr.prototype=Error.prototype,Lt.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=N(null,e);return new Cr(function(e){function t(){0===a.length?e.onCompleted():1===a.length?e.onError(a[0]):e.onError(new mr(a))}var r=new et,i=new st,o=!1,a=[];return r.add(i),i.setDisposable(n.subscribe(function(n){var i=new st;r.add(i),ae(n)&&(n=Vt(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 vr=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 Xe(t,e),t.prototype.subscribeCore=function(e){var t=new et,n=new st;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 st;this.g.add(t),ae(e)&&(e=Vt(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}(Nt);Ot.mergeAll=Ot.mergeObservable=function(){return new vr(this)},Ot.onErrorResumeNext=function(e){if(!e)throw new Error("Second observable is required");return gr([this,e])};var gr=Lt.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 Cr(function(t){var r=0,n=new ct,i=vt.scheduleRecursive(function(i){var o,a;rr;r++)t[r]=arguments[r];var n=t.pop(),i=this;return Array.isArray(t[0])&&(t=t[0]),new Cr(function(e){for(var r=t.length,o=y(r,B),a=!1,s=new Array(r),c=new Array(r+1),u=0;r>u;u++)!function(r){var n=t[r],i=new st;ae(n)&&(n=Vt(n)),i.setDisposable(n.subscribe(function(e){s[r]=e,o[r]=!0,a=o.every(te)},function(t){e.onError(t)},ee)),c[r]=i}(u);var h=new st;return h.setDisposable(i.subscribe(function(t){var r=[t].concat(s);if(a){var i=_(n).apply(null,r);return i===Ze?e.onError(i.e):void e.onNext(i)}},function(t){e.onError(t)},function(){e.onCompleted()})),c[r]=h,new et(c)},this)},Ot.zip=function(){if(Array.isArray(arguments[0]))return F.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 Cr(function(e){for(var r=t.length,o=y(r,U),a=y(r,B),s=new Array(r),c=0;r>c;c++)!function(r){var c=t[r],u=new st;ae(c)&&(c=Vt(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=_(i).apply(n,s);if(c===Ze)return e.onError(c.e);e.onNext(c)}else a.filter(function(e,t){return t!==r}).every(te)&&e.onCompleted()},function(t){e.onError(t)},function(){a[r]=!0,a.every(te)&&e.onCompleted()})),s[r]=u}(c);return new et(s)},n)},Lt.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)},Lt.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 Cr(function(t){for(var r=e.length,n=y(r,z),i=y(r,B),o=new Array(r),a=0;r>a;a++)!function(r){o[r]=new st,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(te))return t.onCompleted()},function(e){t.onError(e)},function(){i[r]=!0,i.every(te)&&t.onCompleted()}))}(a);return new et(o)})},Ot.asObservable=function(){var e=this;return new Cr(function(t){return e.subscribe(t)},e)},Ot.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})},Ot.dematerialize=function(){var e=this;return new Cr(function(t){return e.subscribe(function(e){return e.accept(t)},function(e){t.onError(e)},function(){t.onCompleted()})},this)},Ot.distinctUntilChanged=function(e,t){var r=this;return t||(t=ne),new Cr(function(n){var i,o=!1;return r.subscribe(function(r){var a=r;if(e&&(a=_(e)(r))===Ze)return n.onError(a.e);if(o){var s=_(t)(i,a);if(s===Ze)return n.onError(s.e)}o&&s||(o=!0,i=a,n.onNext(r))},function(e){n.onError(e)},function(){n.onCompleted()})},this)};var _r=function(e){function t(t,r,n,i){this.source=t,this.t=!r||se(r)?Tt(r||ee,n||ee,i||ee):r,e.call(this)}function r(e,t){this.o=e,this.t=t,this.isStopped=!1}return Xe(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=_(this.t.onNext).call(this.t,e);t===Ze&&this.o.onError(t.e),this.o.onNext(e)}},r.prototype.onError=function(e){if(!this.isStopped){this.isStopped=!0;var t=_(this.t.onError).call(this.t,e);if(t===Ze)return this.o.onError(t.e);this.o.onError(e)}},r.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=!0;var e=_(this.t.onCompleted).call(this.t);if(e===Ze)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}(Nt);Ot.do=Ot.tap=Ot.doAction=function(e,t,r){return new _r(this,e,t,r)},Ot.doOnNext=Ot.tapOnNext=function(e,t){return this.tap(void 0!==t?function(r){e.call(t,r)}:e)},Ot.doOnError=Ot.tapOnError=function(e,t){return this.tap(ee,void 0!==t?function(r){e.call(t,r)}:e)},Ot.doOnCompleted=Ot.tapOnCompleted=function(e,t){return this.tap(ee,null,void 0!==t?function(){e.call(t)}:e)},Ot.finally=Ot.ensure=function(e){var t=this;return new Cr(function(r){var n;try{n=t.subscribe(r)}catch(t){throw e(),t}return nt(function(){try{n.dispose()}catch(e){throw e}finally{e()}})},this)},Ot.finallyAction=function(e){return this.ensure(e)};var xr=function(e){function t(t){this.source=t,e.call(this)}function r(e){this.o=e,this.isStopped=!1}return Xe(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new r(e))},r.prototype.onNext=ee,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}(Nt);Ot.ignoreElements=function(){return new xr(this)},Ot.materialize=function(){var e=this;return new Cr(function(t){return e.subscribe(function(e){t.onNext(St(e))},function(e){t.onNext(Mt(e)),t.onCompleted()},function(){t.onNext(Et()),t.onCompleted()})},e)},Ot.repeat=function(e){return Ft(this,e).concat()},Ot.retry=function(e){return Ft(this,e).catchError()},Ot.retryWhen=function(e){return Ft(this).catchErrorWhen(e)};var wr=function(e){function t(t,r,n,i){this.source=t,this.accumulator=r,this.hasSeed=n,this.seed=i,e.call(this)}return Xe(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new $(e,this))},t}(Nt);$.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)}},$.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.observer.onError(e))},$.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,!this.hasValue&&this.hasSeed&&this.observer.onNext(this.seed),this.observer.onCompleted())},$.prototype.dispose=function(){this.isStopped=!0},$.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.observer.onError(e),!0)},Ot.scan=function(){var e,t,r=!1;return 2===arguments.length?(r=!0,e=arguments[0],t=arguments[1]):t=arguments[0],new wr(this,t,r,e)},Ot.skipLast=function(e){if(0>e)throw new fe;var t=this;return new Cr(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)},Ot.startWith=function(){var e,t=0;arguments.length&&ft(arguments[0])?(e=arguments[0],t=1):e=vt;for(var r=[],n=t,i=arguments.length;i>n;n++)r.push(arguments[n]);return zt([Jt(r,e),this]).concat()},Ot.takeLast=function(e){if(0>e)throw new fe;var t=this;return new Cr(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)},Ot.takeLastBuffer=function(e){var t=this;return new Cr(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)},Ot.windowWithCount=function(e,t){var r=this;if(+e||(e=0),Math.abs(e)===1/0&&(e=0),0>=e)throw new fe;if(null==t&&(t=e),+t||(t=0),Math.abs(t)===1/0&&(t=0),0>=t)throw new fe;return new Cr(function(n){function i(){var e=new Pr;c.push(e),n.onNext(Ke(e,a))}var o=new st,a=new ut(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)},Ot.selectConcat=Ot.concatMap=function(e,t,r){return se(e)&&se(t)?this.concatMap(function(r,n){var i=e(r,n);return ae(i)&&(i=Vt(i)),(xe(i)||_e(i))&&(i=Kt(i)),i.map(function(e,i){return t(r,e,n,i)})}):se(e)?V(this,e,r):V(this,function(){return e})},Ot.concatMapObserver=Ot.selectConcatObserver=function(e,t,r,n){var i=this,o=we(e,n,2),a=we(t,n,1),s=we(r,n,0);return new Cr(function(e){var t=0;return i.subscribe(function(r){var n;try{n=o(r,t++)}catch(t){return void e.onError(t)}ae(n)&&(n=Vt(n)),e.onNext(n)},function(t){var r;try{r=a(t)}catch(t){return void e.onError(t)}ae(r)&&(r=Vt(r)),e.onNext(r),e.onCompleted()},function(){var t;try{t=s()}catch(t){return void e.onError(t)}ae(t)&&(t=Vt(t)),e.onNext(t),e.onCompleted()})},this).concatAll()},Ot.defaultIfEmpty=function(e){var t=this;return e===i&&(e=null),new Cr(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)},H.prototype.push=function(e){var t=-1===G(this.set,e,this.comparer);return t&&this.set.push(e),t},Ot.distinct=function(e,t){var r=this;return t||(t=ne),new Cr(function(n){var i=new H(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 Sr=function(e){function t(t,r,n){this.source=t,this.selector=we(r,n,3),e.call(this)}function r(e,t){return function(r,n,i){return e.call(this,t.selector(r,n,i),n,i)}}function n(e,t,r){this.o=e,this.selector=t,this.source=r,this.i=0,this.isStopped=!1}return Xe(t,e),t.prototype.internalMap=function(e,n){return new t(this.source,r(e,this),n)},t.prototype.subscribeCore=function(e){return this.source.subscribe(new n(e,this.selector,this))},n.prototype.onNext=function(e){if(!this.isStopped){var t=_(this.selector)(e,this.i++,this.source);return t===Ze?this.o.onError(t.e):void this.o.onNext(t)}},n.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},n.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},n.prototype.dispose=function(){this.isStopped=!0},n.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(Nt);Ot.map=Ot.select=function(e,t){var r="function"==typeof e?e:function(){return e};return this instanceof Sr?this.internalMap(r,t):new Sr(this,r,t)},Ot.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})},Ot.flatMapObserver=Ot.selectManyObserver=function(e,t,r,n){var i=this;return new Cr(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)}ae(r)&&(r=Vt(r)),o.onNext(r)},function(e){var r;try{r=t.call(n,e)}catch(e){return void o.onError(e)}ae(r)&&(r=Vt(r)),o.onNext(r),o.onCompleted()},function(){var e;try{e=r.call(n)}catch(e){return void o.onError(e)}ae(e)&&(e=Vt(e)),o.onNext(e),o.onCompleted()})},i).mergeAll()},Ot.selectMany=Ot.flatMap=function(e,t,r){return se(e)&&se(t)?this.flatMap(function(r,n){var i=e(r,n);return ae(i)&&(i=Vt(i)),(xe(i)||_e(i))&&(i=Kt(i)),i.map(function(e,i){return t(r,e,n,i)})},r):se(e)?q(this,e,r):q(this,function(){return e})},Ot.selectSwitch=Ot.flatMapLatest=Ot.switchMap=function(e,t){return this.select(e,t).switchLatest()};var Mr=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 Xe(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}(Nt);Ot.skip=function(e){if(0>e)throw new fe;return new Mr(this,e)},Ot.skipWhile=function(e,t){var r=this,n=we(e,t,3);return new Cr(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)},Ot.take=function(e,t){if(0>e)throw new fe;if(0===e)return qt(t);var r=this;return new Cr(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)},Ot.takeWhile=function(e,t){var r=this,n=we(e,t,3);return new Cr(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 Er=function(e){function t(t,r,n){this.source=t,this.predicate=we(r,n,3),e.call(this)}function r(e,t){return function(r,n,i){return t.predicate(r,n,i)&&e.call(this,r,n,i)}}function n(e,t,r){this.o=e,this.predicate=t,this.source=r,this.i=0,this.isStopped=!1}return Xe(t,e),t.prototype.subscribeCore=function(e){return this.source.subscribe(new n(e,this.predicate,this))},t.prototype.internalFilter=function(e,n){return new t(this.source,r(e,this),n)},n.prototype.onNext=function(e){if(!this.isStopped){var t=_(this.predicate)(e,this.i++,this.source);return t===Ze?this.o.onError(t.e):void(t&&this.o.onNext(e))}},n.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.o.onError(e))},n.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},n.prototype.dispose=function(){this.isStopped=!0},n.prototype.fail=function(e){return!this.isStopped&&(this.isStopped=!0,this.o.onError(e),!0)},t}(Nt);Ot.filter=Ot.where=function(e,t){return this instanceof Er?this.internalFilter(e,t):new Er(this,e,t)},Ot.transduce=function(e){function t(e){return{"@@transducer/init":function(){return e},"@@transducer/step":function(e,t){return e.onNext(t)},"@@transducer/result":function(e){return e.onCompleted()}}}var r=this;return new Cr(function(n){var i=e(t(n));return r.subscribe(function(e){try{i["@@transducer/step"](n,e)}catch(e){n.onError(e)}},function(e){n.onError(e)},function(){i["@@transducer/result"](n)})},r)};var Cr=Q.AnonymousObservable=function(e){function t(e){return e&&se(e.dispose)?e:se(e)?nt(e):it}function r(e,r){var n=r[0],i=_(r[1])(n);return i!==Ze||n.fail(Ze.e)?void n.setDisposable(t(i)):x(Ze.e)}function n(t,n){this.source=n,e.call(this,function(e){var n=new Tr(e),i=[n,t];return gt.scheduleRequired()?gt.scheduleWithState(i,r):r(null,i),n})}return Xe(n,e),n}(Lt),Tr=function(e){function t(t){e.call(this),this.observer=t,this.m=new st}Xe(t,e);var r=t.prototype;return r.next=function(e){var t=_(this.observer.onNext).call(this.observer,e);t===Ze&&(this.dispose(),x(t.e))},r.error=function(e){var t=_(this.observer.onError).call(this.observer,e);this.dispose(),t===Ze&&x(t.e)},r.completed=function(){var e=_(this.observer.onCompleted).call(this.observer);this.dispose(),e===Ze&&x(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}(Pt),Or=function(e,t){this.subject=e,this.observer=t};Or.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 Pr=Q.Subject=function(e){function t(e){return at(this),this.isStopped?this.hasError?(e.onError(this.error),it):(e.onCompleted(),it):(this.observers.push(e),new Or(this,e))}function r(){e.call(this,t),this.isDisposed=!1,this.isStopped=!1,this.observers=[],this.hasError=!1}return Xe(r,e),Ye(r.prototype,Ct.prototype,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(at(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(at(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(at(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 jr(e,t)},r}(Lt),jr=(Q.AsyncSubject=function(e){function t(e){return at(this),this.isStopped?(this.hasError?e.onError(this.error):this.hasValue?(e.onNext(this.value),e.onCompleted()):e.onCompleted(),it):(this.observers.push(e),new Or(this,e))}function r(){e.call(this,t),this.isDisposed=!1,this.isStopped=!1,this.hasValue=!1,this.observers=[],this.hasError=!1}return Xe(r,e),Ye(r.prototype,Ct,{hasObservers:function(){return at(this),this.observers.length>0},onCompleted:function(){var e;if(at(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(at(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){at(this),this.isStopped||(this.value=e,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),r}(Lt),Q.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 Xe(r,e),Ye(r.prototype,Ct.prototype,{onCompleted:function(){this.observer.onCompleted()},onError:function(e){this.observer.onError(e)},onNext:function(e){this.observer.onNext(e)}}),r}(Lt));Y&&K?Z?(K.exports=Q).Rx=Q:Y.Rx=Q:X.Rx=Q;var Ar=l()}).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<>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+=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*(f?-1:1);a+=Math.pow(2,n),o-=u}return(f?-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<>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?(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+f]=255&s,f+=d,s/=256,i-=8);for(a=a<0;e[r+f]=255&a,f+=d,a/=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),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,f=-180,d=180;h.length=m?(s=2*s+1,f=m):(s*=2,d=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=0;h--){var l=u>>h&1;if(t){var p=(o+a)/2;1==l?o=p:a=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: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={n:["p0r21436x8zb9dcf5h7kjnmqesgutwvy","bc01fg45238967deuvhjyznpkmstqrwx"],s:["14365h7k9dcfesgujnmqp0r2twvyx8zb","238967debc01fg45kmstqrwxuvhjyznp"],e:["bc01fg45238967deuvhjyznpkmstqrwx","p0r21436x8zb9dcf5h7kjnmqesgutwvy"],w:["238967debc01fg45kmstqrwxuvhjyznp","14365h7k9dcfesgujnmqp0r2twvyx8zb"]},i={n:["prxz","bcfguvyz"],s:["028b","0145hjnp"],e:["bcfguvyz","prxz"],w:["0145hjnp","028b"]},o=e.slice(-1),a=e.slice(0,-1),s=e.length%2;return-1!=i[t][s].indexOf(o)&&""!==a&&(a=n.adjacent(a,t)),a+n.base32.charAt(r[t][s].indexOf(o))},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=-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=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>4,i<128)return a(e,n,t);if(i=o[r.pos++],n|=(127&i)<<3,i<128)return a(e,n,t);if(i=o[r.pos++],n|=(127&i)<<10,i<128)return a(e,n,t);if(i=o[r.pos++],n|=(127&i)<<17,i<128)return a(e,n,t);if(i=o[r.pos++],n|=(127&i)<<24,i<128)return a(e,n,t);if(i=o[r.pos++],n|=(1&i)<<31,i<128)return a(e,n,t);throw new Error("Expected varint not more than 10 bytes")}function o(e){return e.type===n.Bytes?e.readVarint()+e.pos:e.pos+1}function a(e,t,r){return r?4294967296*t+(e>>>0):4294967296*(t>>>0)+(e>>>0)}function s(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),c(r,n,t),u(n,t)}function c(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}function u(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)))))}function h(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 l(e,t){for(var r=0;r>>8,e[r+2]=t>>>16,e[r+3]=t>>>24}function w(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+(e[t+3]<<24)}function S(e,t,r){for(var n="",i=t;i239?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}function M(e,t,r){for(var n,i,o=0;o55295&&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}t.exports=n;var E=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>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=_(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=w(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=_(this.buf,this.pos)+4294967296*_(this.buf,this.pos+4);return this.pos+=8,e},readSFixed64:function(){var e=_(this.buf,this.pos)+4294967296*w(this.buf,this.pos+4);return this.pos+=8,e},readFloat:function(){var e=E.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=E.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,i(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=S(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=o(this);for(e=e||[];this.pos127;);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;t268435455||e<0?s(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);var t=++this.pos;this.pos=M(this.buf,e,this.pos);var r=this.pos-t;r>=128&&h(t,r,this),this.pos=t-1,this.writeVarint(r),this.pos+=r},writeFloat:function(e){this.realloc(4),E.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),E.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=128&&h(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,l,t)},writePackedSVarint:function(e,t){this.writeMessage(e,p,t)},writePackedBoolean:function(e,t){this.writeMessage(e,m,t)},writePackedFloat:function(e,t){this.writeMessage(e,f,t)},writePackedDouble:function(e,t){this.writeMessage(e,d,t)},writePackedFixed32:function(e,t){this.writeMessage(e,v,t)},writePackedSFixed32:function(e,t){this.writeMessage(e,g,t)},writePackedFixed64:function(e,t){this.writeMessage(e,y,t)},writePackedSFixed64:function(e,t){this.writeMessage(e,b,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,a,s){for(r=r||0,a=a||e.length-1,s=s||o;a>r;){if(a-r>600){var c=a-r+1,u=t-r+1,h=Math.log(c),l=.5*Math.exp(2*h/3),p=.5*Math.sqrt(h*l*(c-l)/c)*(u-c/2<0?-1:1);n(e,t,Math.max(r,Math.floor(t-u*l/c+p)),Math.min(a,Math.floor(t+(c-u)*l/c+p)),s)}var f=e[t],d=r,m=a;for(i(e,r,t),s(e[a],f)>0&&i(e,r,a);d0;)m--}0===s(e[r],f)?i(e,r,m):i(e,++m,a),m<=t&&(r=m+1),t<=m&&(a=m-1)}}function i(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function o(e,t){return et?1:0}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,r){if(!r)return t.indexOf(e);for(var n=0;n=e.minX&&t.maxY>=e.minY}function v(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function g(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,y(e,o,t,r,i),a.push(t,o,o,r))}t.exports=n;var y=e("quickselect");n.prototype={all:function(){return this._all(this.data,[])},search:function(e){var t=this.data,r=[],n=this.toBBox;if(!m(e,t))return r;for(var i,o,a,s,c=[];t;){for(i=0,o=t.children.length;i=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,i=this._minEntries;this._chooseSplitAxis(r,i,n);var a=this._chooseSplitIndex(r,i,n),s=v(r.children.splice(a,r.children.length-a));s.height=r.height,s.leaf=r.leaf,o(r,this.toBBox),o(s,this.toBBox),t?e[t-1].children.push(s):this._splitRoot(r,s)},_splitRoot:function(e,t){this.data=v([e,t]),this.data.height=e.height+1,this.data.leaf=!1,o(this.data,this.toBBox)},_chooseSplitIndex:function(e,t,r){var n,i,o,s,c,u,l,p;for(u=l=1/0,n=t;n<=r-t;n++)s=f(i=a(e,0,n,this.toBBox),o=a(e,n,r,this.toBBox)),c=h(i)+h(o),s=t;i--)o=e.children[i],s(h,e.leaf?c(o):o),p+=l(h);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():o(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":164}],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=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.create=function(t){return new e(t)},e}();r.Observable=a},{"./symbol/observable":159,"./util/root":176,"./util/toSubscriber":178}],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("./operator/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;ot&&(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,"./operator/observeOn":131,"./scheduler/queue":157,"./util/ObjectUnsubscribedError":164}],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=n?i.complete():(i.next(t[r]),e.index=r+1,this.schedule(e)))},t.prototype._subscribe=function(e){var r=this,n=r.arrayLike,i=r.scheduler,o=n.length;if(i)return i.schedule(t.dispatch,0,{arrayLike:n,index:0,length:o,subscriber:e});for(var a=0;a1?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;o1)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}],90:[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":177}],91:[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}],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=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}],93:[function(e,t,r){"use strict";function n(e){return!!e&&"function"==typeof e.addListener&&"function"==typeof e.removeListener}function i(e){return!!e&&"function"==typeof e.on&&"function"==typeof e.off}function o(e){return!!e&&"[object NodeList]"===d.call(e)}function a(e){return!!e&&"[object HTMLCollection]"===d.call(e)}function s(e){return!!e&&"function"==typeof e.addEventListener&&"function"==typeof e.removeEventListener}var c=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)},u=e("../Observable"),h=e("../util/tryCatch"),l=e("../util/isFunction"),p=e("../util/errorObject"),f=e("../Subscription"),d=Object.prototype.toString,m=function(e){function t(t,r,n,i){e.call(this),this.sourceObj=t,this.eventName=r,this.selector=n,this.options=i}return c(t,e),t.create=function(e,r,n,i){return l.isFunction(n)&&(i=n,n=void 0),new t(e,r,i,n)},t.setupSubscription=function(e,r,c,u,h){var l;if(o(e)||a(e))for(var p=0,d=e.length;pd?d:t:t}function o(e){return"number"==typeof e&&c.root.isFinite(e)}function a(e){var t=+e;return 0===t?t:isNaN(t)?t:t<0?-1:1}var s=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)},c=e("../util/root"),u=e("../Observable"),h=e("../symbol/iterator"),l=function(e){function t(t,r){if(e.call(this),this.scheduler=r,null==t)throw new Error("iterator cannot be null.");this.iterator=n(t)}return s(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,n=r.iterator,i=r.scheduler;if(i)return i.schedule(t.dispatch,0,{index:0,iterator:n,subscriber:e});for(;;){var o=n.next();if(o.done){e.complete();break}if(e.next(o.value),e.closed){"function"==typeof n.return&&n.return();break}}},t}(u.Observable);r.IteratorObservable=l;var p=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[h.iterator]=function(){return this},e.prototype.next=function(){return this.idx0&&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,r=t.bufferSize,n=t.startBufferEvery,i=t.buffers,o=t.count;this.count++,o%n==0&&i.push([]);for(var a=i.length;a--;){var s=i[a];s.push(e),s.length===r&&(i.splice(a,1),this.destination.next(s))}},t.prototype._complete=function(){for(var t=this,r=t.buffers,n=t.destination;r.length>0;){var i=r.shift();i.length>0&&n.next(i)}e.prototype._complete.call(this)},t}(i.Subscriber)},{"../Subscriber":36}],112:[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 this.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":167,"../util/subscribeToResult":177,"../util/tryCatch":179}],113:[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._catch=function(e){var t=new a(e),r=this.lift(t);return t.caught=r};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":177}],114:[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;t0&&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":156,"../util/isDate":170}],118:[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 this.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":165,"../util/subscribeToResult":177}],119:[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 this.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":167,"../util/tryCatch":179}],120:[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._do=function(e,t,r){return this.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}],121:[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,this.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,n0&&this._next(t.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},t}(a.OuterSubscriber);r.ExpandSubscriber=u},{"../OuterSubscriber":31,"../util/errorObject":167,"../util/subscribeToResult":177,"../util/tryCatch":179}],122:[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 this.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,this.predicate=r}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}],123:[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._finally=function(e){return this.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}],124:[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 this.lift(new a(e,t,r,this))};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":163}],125:[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 this.lift(new a(e,t,r,this))};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":163}],126:[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){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return this.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}],127:[function(e,t,r){"use strict";function n(){for(var e=[],t=0;t1&&"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]:new o.ArrayObservable(e,n).lift(new a.MergeAllOperator(r))}var i=e("../Observable"),o=e("../observable/ArrayObservable"),a=e("./mergeAll"),s=e("../util/isScheduler");r.merge=function(){for(var e=[],t=0;t0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(i.OuterSubscriber);r.MergeAllSubscriber=s},{"../OuterSubscriber":31,"../util/subscribeToResult":177}],129:[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),"number"==typeof t&&(r=t,t=null),this.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.active0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(o.OuterSubscriber);r.MergeMapSubscriber=s},{"../OuterSubscriber":31,"../util/subscribeToResult":177}],130:[function(e,t,r){"use strict";var n=e("../observable/ConnectableObservable");r.multicast=function(e,t){var r;if(r="function"==typeof e?e:function(){return e},"function"==typeof t)return this.lift(new i(r,t));var o=Object.create(this,n.connectableObservableDescriptor);return o.source=this,o.subjectFactory=r,o};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":89}],131:[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),this.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}],132:[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 this.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}],133:[function(e,t,r){"use strict";function n(e,t){return function(r){for(var n=r,i=0;i=2&&(r=!0),this.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}],138:[function(e,t,r){"use strict";function n(){return new o.Subject}var i=e("./multicast"),o=e("../Subject");r.share=function(){return i.multicast.call(this,n).refCount()}},{"../Subject":34,"./multicast":130}],139:[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 this.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}],140:[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 this.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":177}],141:[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 this.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}],142:[function(e,t,r){"use strict";var n=e("../observable/ArrayObservable"),i=e("../observable/ScalarObservable"),o=e("../observable/EmptyObservable"),a=e("./concat"),s=e("../util/isScheduler");r.startWith=function(){for(var e=[],t=0;t1?a.concatStatic(new n.ArrayObservable(e,r),this):a.concatStatic(new o.EmptyObservable(r),this)}},{"../observable/ArrayObservable":88,"../observable/EmptyObservable":91,"../observable/ScalarObservable":97,"../util/isScheduler":175,"./concat":115}],143:[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 this.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":177}],144:[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 0===e?new a.EmptyObservable:this.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":91,"../util/ArgumentOutOfRangeError":162}],145:[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 this.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":177}],146:[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 this.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}],147:[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),this.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,t=e.throttled;e._trailingValue,e._hasTrailingValue,e._trailing;this._trailingValue=null,this._hasTrailingValue=!1,t&&(this.remove(t),this.throttled=null,t.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":177}],148:[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),this.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":156,"./throttle":147}],149:[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;t0){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":177}],150:[function(e,t,r){"use strict";function n(){for(var e=[],t=0;tthis.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":88,"../symbol/iterator":158,"../util/isArray":168,"../util/subscribeToResult":177}],151:[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}],152:[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":176,"./Action":151}],153:[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}],154:[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":152}],155:[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":153}],156:[function(e,t,r){"use strict";var n=e("./AsyncAction"),i=e("./AsyncScheduler");r.async=new i.AsyncScheduler(n.AsyncAction)},{"./AsyncAction":152,"./AsyncScheduler":153}],157:[function(e,t,r){"use strict";var n=e("./QueueAction"),i=e("./QueueScheduler");r.queue=new i.QueueScheduler(n.QueueAction)},{"./QueueAction":154,"./QueueScheduler":155}],158:[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=0}},{"../util/isArray":168}],173:[function(e,t,r){"use strict";r.isObject=function(e){return null!=e&&"object"==typeof e}},{}],174:[function(e,t,r){"use strict";r.isPromise=function(e){return e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}},{}],175:[function(e,t,r){"use strict";r.isScheduler=function(e){return e&&"function"==typeof e.schedule}},{}],176:[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=void 0!==e&&e,o=t||i||n;r.root=o,function(){if(!o)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:{})},{}],177:[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):t.subscribe(p);if(i.isArrayLike(t)){for(var f=0,d=t.length;f=n||0 0 ) {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat fogFactor = 0.0;\nif ( fogType == 1 ) {\nfogFactor = smoothstep( fogNear, fogFar, depth );\n} else {\nconst float LOG2 = 1.442695;\nfogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n}\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}\n}"].join("\n")),T.compileShader(L),T.compileShader(N),T.attachShader(R,L),T.attachShader(R,N),T.linkProgram(R),E=R,x=T.getAttribLocation(E,"position"),w=T.getAttribLocation(E,"uv"),i=T.getUniformLocation(E,"uvOffset"),o=T.getUniformLocation(E,"uvScale"),a=T.getUniformLocation(E,"rotation"),u=T.getUniformLocation(E,"scale"),h=T.getUniformLocation(E,"color"),l=T.getUniformLocation(E,"map"),p=T.getUniformLocation(E,"opacity"),f=T.getUniformLocation(E,"modelViewMatrix"),d=T.getUniformLocation(E,"projectionMatrix"),m=T.getUniformLocation(E,"fogType"),v=T.getUniformLocation(E,"fogDensity"),g=T.getUniformLocation(E,"fogNear"),y=T.getUniformLocation(E,"fogFar"),b=T.getUniformLocation(E,"fogColor"),_=T.getUniformLocation(E,"alphaTest"),(R=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")).width=8,R.height=8,(L=R.getContext("2d")).fillStyle="white",L.fillRect(0,0,8,8),(C=new n(R)).needsUpdate=!0}T.useProgram(E),O.initAttributes(),O.enableAttribute(x),O.enableAttribute(w),O.disableUnusedAttributes(),O.disable(T.CULL_FACE),O.enable(T.BLEND),T.bindBuffer(T.ARRAY_BUFFER,S),T.vertexAttribPointer(x,2,T.FLOAT,!1,16,0),T.vertexAttribPointer(w,2,T.FLOAT,!1,16,8),T.bindBuffer(T.ELEMENT_ARRAY_BUFFER,M),T.uniformMatrix4fv(d,!1,c.projectionMatrix.elements),O.activeTexture(T.TEXTURE0),T.uniform1i(l,0),L=R=0,(N=s.fog)?(T.uniform3f(b,N.color.r,N.color.g,N.color.b),N.isFog?(T.uniform1f(g,N.near),T.uniform1f(y,N.far),T.uniform1i(m,1),L=R=1):N.isFogExp2&&(T.uniform1f(v,N.density),T.uniform1i(m,2),L=R=2)):(T.uniform1i(m,0),L=R=0);for(var N=0,I=t.length;Nt&&(t=e[r]);return t}function Se(){Object.defineProperty(this,"id",{value:ki++}),this.uuid=xi.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 Me(e,t,r,n,i,o){he.call(this),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:r,widthSegments:n,heightSegments:i,depthSegments:o},this.fromBufferGeometry(new Ee(e,t,r,n,i,o)),this.mergeVertices()}function Ee(e,t,r,n,i,o){function a(e,t,r,n,i,o,a,m,v,g,y){var b=o/v,_=a/g,x=o/2,w=a/2,S=m/2;a=v+1;var M,E,C=g+1,T=o=0,O=new c;for(E=0;E/gm,function(e,t){var r=Li[t];if(void 0===r)throw Error("Can not resolve #include <"+t+">");return Qe(r)})}function et(e){return e.replace(/for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,function(e,t,r,n){for(e="",t=parseInt(t);tt||e.height>t){var r=t/Math.max(e.width,e.height),n=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return n.width=Math.floor(e.width*r),n.height=Math.floor(e.height*r),n.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,n.width,n.height),console.warn("THREE.WebGLRenderer: image is too big ("+e.width+"x"+e.height+"). Resized to "+n.width+"x"+n.height,e),n}return e}function c(e){return xi.isPowerOfTwo(e.width)&&xi.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 f(t,h){var p=n.get(t);if(0g;g++)v[g]=f||m?m?t.image[g].image:t.image[g]:s(t.image[g],i.maxCubemapSize);var y=c(v[0]),b=o(t.format),_=o(t.type);for(d(e.TEXTURE_CUBE_MAP,t,y),g=0;6>g;g++)if(f)for(var x,w=v[g].mipmaps,S=0,M=w.length;Sl;l++)i.__webglFramebuffer[l]=e.createFramebuffer()}else i.__webglFramebuffer=e.createFramebuffer();if(s){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))}}function it(){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={}}}}function ot(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=ge.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+e+" texture units while this GPU supports only "+ge.maxTextures),X+=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),_e.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),_e.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?_e.setTextureCube(t,r):_e.setTextureCubeDynamic(t,r)}}(),this.getRenderTarget=function(){return D},this.setRenderTarget=function(e){(D=e)&&void 0===be.get(e).__webglFramebuffer&&_e.setupRenderTarget(e);var t,r=e&&e.isWebGLRenderTargetCube;e?(t=be.get(e),t=r?t.__webglFramebuffer[e.activeCubeFace]:t.__webglFramebuffer,V.copy(e.scissor),G=e.scissorTest,W.copy(e.viewport)):(t=null,V.copy(J).multiplyScalar(Z),G=Q,W.copy(ne).multiplyScalar(Z)),k!==t&&(me.bindFramebuffer(me.FRAMEBUFFER,t),k=t),ye.scissor(V),ye.setScissorTest(G),ye.viewport(W),r&&(r=be.get(e.texture),me.framebufferTexture2D(me.FRAMEBUFFER,me.COLOR_ATTACHMENT0,me.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=be.get(e).__webglFramebuffer;if(a){var s=!1;a!==k&&(me.bindFramebuffer(me.FRAMEBUFFER,a),s=!0);try{var c=e.texture,u=c.format,h=c.type;1023!==u&&_(u)!==me.getParameter(me.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===h||_(h)===me.getParameter(me.IMPLEMENTATION_COLOR_READ_TYPE)||1015===h&&(ve.get("OES_texture_float")||ve.get("WEBGL_color_buffer_float"))||1016===h&&ve.get("EXT_color_buffer_half_float")?me.checkFramebufferStatus(me.FRAMEBUFFER)===me.FRAMEBUFFER_COMPLETE?0<=t&&t<=e.width-n&&0<=r&&r<=e.height-i&&me.readPixels(t,r,n,i,_(u),_(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&&me.bindFramebuffer(me.FRAMEBUFFER,k)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")}}function pt(e,t){this.name="",this.color=new V(e),this.density=void 0!==t?t:25e-5}function ft(e,t,r){this.name="",this.color=new V(e),this.near=void 0!==t?t:1,this.far=void 0!==r?r:1e3}function dt(){oe.call(this),this.type="Scene",this.overrideMaterial=this.fog=this.background=null,this.autoUpdate=!0}function mt(e,t,r,n,i){oe.call(this),this.lensFlares=[],this.positionScreen=new c,this.customUpdateCallback=void 0,void 0!==e&&this.add(e,t,r,n,i)}function vt(e){W.call(this),this.type="SpriteMaterial",this.color=new V(16777215),this.map=null,this.rotation=0,this.lights=this.fog=!1,this.setValues(e)}function gt(e){oe.call(this),this.type="Sprite",this.material=void 0!==e?e:new vt}function yt(){oe.call(this),this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function bt(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{console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[];for(var r=0,n=this.bones.length;r=e.HAVE_CURRENT_DATA&&(l.needsUpdate=!0)}n.call(this,e,t,r,i,o,a,s,c,u),this.generateMipmaps=!1;var l=this;h()}function jt(e,t,r,i,o,a,s,c,u,h,l,p){n.call(this,null,a,s,c,u,h,i,o,l,p),this.image={width:t,height:r},this.mipmaps=e,this.generateMipmaps=this.flipY=!1}function At(e,t,r,i,o,a,s,c,u){n.call(this,e,t,r,i,o,a,s,c,u),this.needsUpdate=!0}function Rt(e,t,r,i,o,a,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),n.call(this,null,i,o,a,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 Lt(e){Se.call(this),this.type="WireframeGeometry";var t,r,n,i,o,a,s=[],u=[0,0],h={},l=["a","b","c"];if(e&&e.isGeometry){var p=e.faces;for(t=0,n=p.length;tr;r++)o=f[l[r]],a=f[l[(r+1)%3]],u[0]=Math.min(o,a),u[1]=Math.max(o,a),o=u[0]+","+u[1],void 0===h[o]&&(h[o]={index1:u[0],index2:u[1]})}for(o in h)t=h[o],l=e.vertices[t.index1],s.push(l.x,l.y,l.z),l=e.vertices[t.index2],s.push(l.x,l.y,l.z)}else if(e&&e.isBufferGeometry){var d,l=new c;if(null!==e.index){for(p=e.attributes.position,f=e.index,0===(d=e.groups).length&&(d=[{start:0,count:f.count,materialIndex:0}]),e=0,i=d.length;er;r++)o=f.getX(t+r),a=f.getX(t+(r+1)%3),u[0]=Math.min(o,a),u[1]=Math.max(o,a),o=u[0]+","+u[1],void 0===h[o]&&(h[o]={index1:u[0],index2:u[1]});for(o in h)t=h[o],l.fromBufferAttribute(p,t.index1),s.push(l.x,l.y,l.z),l.fromBufferAttribute(p,t.index2),s.push(l.x,l.y,l.z)}else for(p=e.attributes.position,t=0,n=p.count/3;tr;r++)h=3*t+r,l.fromBufferAttribute(p,h),s.push(l.x,l.y,l.z),h=3*t+(r+1)%3,l.fromBufferAttribute(p,h),s.push(l.x,l.y,l.z)}this.addAttribute("position",new be(s,3))}function Nt(e,t,r){he.call(this),this.type="ParametricGeometry",this.parameters={func:e,slices:t,stacks:r},this.fromBufferGeometry(new It(e,t,r)),this.mergeVertices()}function It(e,t,r){Se.call(this),this.type="ParametricBufferGeometry",this.parameters={func:e,slices:t,stacks:r};var n,i,o=[],a=[],s=[],u=[],h=new c,l=new c,p=new c,f=new c,d=new c,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(),s.push(h.x,h.y,h.z),u.push(g,v)}}for(n=0;nn&&1===e.x&&(h[t]=e.x-1),0===r.x&&0===r.z&&(h[t]=n/2/Math.PI+.5)}Se.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 c,n=new c,i=new c,s=0;so&&(.2>t&&(h[e+0]+=1),.2>n&&(h[e+2]+=1),.2>i&&(h[e+4]+=1))}(),this.addAttribute("position",new be(u,3)),this.addAttribute("normal",new be(u.slice(),3)),this.addAttribute("uv",new be(h,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}function Bt(e,t){he.call(this),this.type="TetrahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Ft(e,t)),this.mergeVertices()}function Ft(e,t){kt.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 Ut(e,t){he.call(this),this.type="OctahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new zt(e,t)),this.mergeVertices()}function zt(e,t){kt.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 $t(e,t){he.call(this),this.type="IcosahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Vt(e,t)),this.mergeVertices()}function Vt(e,t){var r=(1+Math.sqrt(5))/2;kt.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 Gt(e,t){he.call(this),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Ht(e,t)),this.mergeVertices()}function Ht(e,t){var r=(1+Math.sqrt(5))/2,n=1/r;kt.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 qt(e,t,r,n,i,o){he.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 Wt(e,t,r,n,i),this.tangents=e.tangents,this.normals=e.normals,this.binormals=e.binormals,this.fromBufferGeometry(e),this.mergeVertices()}function Wt(e,t,n,i,o){function a(r){var o=e.getPointAt(r/t),a=s.normals[r];for(r=s.binormals[r],h=0;h<=i;h++){var c=h/i*Math.PI*2,u=Math.sin(c),c=-Math.cos(c);p.x=c*a.x+u*r.x,p.y=c*a.y+u*r.y,p.z=c*a.z+u*r.z,p.normalize(),m.push(p.x,p.y,p.z),l.x=o.x+n*p.x,l.y=o.y+n*p.y,l.z=o.z+n*p.z,d.push(l.x,l.y,l.z)}}Se.call(this),this.type="TubeBufferGeometry",this.parameters={path:e,tubularSegments:t,radius:n,radialSegments:i,closed:o},t=t||64,n=n||1,i=i||8,o=o||!1;var s=e.computeFrenetFrames(t,o);this.tangents=s.tangents,this.normals=s.normals,this.binormals=s.binormals;var u,h,l=new c,p=new c,f=new r,d=[],m=[],v=[],g=[];for(u=0;ud;d++)r=f[u[d]],n=f[u[(d+1)%3]],s[0]=Math.min(r,n),s[1]=Math.max(r,n),r=s[0]+","+s[1],void 0===c[r]?c[r]={index1:s[0],index2:s[1],face1:l,face2:void 0}:c[r].face2=l;for(r in c)(void 0===(s=c[r]).face2||i[s.face1].normal.dot(i[s.face2].normal)<=a)&&(u=h[s.index1],o.push(u.x,u.y,u.z),u=h[s.index2],o.push(u.x,u.y,u.z));this.addAttribute("position",new be(o,3))}function lr(e,t,r,n,i,o,a,s){he.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 pr(e,t,r,n,i,o,a,s)),this.mergeVertices()}function pr(e,t,n,i,o,a,s,u){function h(n){var o,a,h,g=new r,_=new c,x=0,w=!0===n?e:t,S=!0===n?1:-1;for(a=v,o=1;o<=i;o++)f.push(0,y*S,0),d.push(0,S,0),m.push(.5,.5),v++;for(h=v,o=0;o<=i;o++){var M=o/i*u+s,E=Math.cos(M),M=Math.sin(M);_.x=w*M,_.y=y*S,_.z=w*E,f.push(_.x,_.y,_.z),d.push(0,S,0),g.x=.5*E+.5,g.y=.5*M*S+.5,m.push(g.x,g.y),v++}for(o=0;othis.duration&&this.resetDuration(),this.optimize()}function nn(e){this.manager=void 0!==e?e:Vi,this.textures={}}function on(e){this.manager=void 0!==e?e:Vi}function an(){this.onLoadStart=function(){},this.onLoadProgress=function(){},this.onLoadComplete=function(){}}function sn(e){"boolean"==typeof e&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),e=void 0),this.manager=void 0!==e?e:Vi,this.withCredentials=!1}function cn(e){this.manager=void 0!==e?e:Vi,this.texturePath=""}function un(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 hn(e,t,r,n){var i=1-e;return i*i*t+2*(1-e)*e*r+e*e*n}function ln(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 pn(){this.arcLengthDivisions=200}function fn(e,t){this.arcLengthDivisions=200,this.v1=e,this.v2=t}function dn(){this.arcLengthDivisions=200,this.curves=[],this.autoClose=!1}function mn(e,t,r,n,i,o,a,s){this.arcLengthDivisions=200,this.aX=e,this.aY=t,this.xRadius=r,this.yRadius=n,this.aStartAngle=i,this.aEndAngle=o,this.aClockwise=a,this.aRotation=s||0}function vn(e){this.arcLengthDivisions=200,this.points=void 0===e?[]:e}function gn(e,t,r,n){this.arcLengthDivisions=200,this.v0=e,this.v1=t,this.v2=r,this.v3=n}function yn(e,t,r){this.arcLengthDivisions=200,this.v0=e,this.v1=t,this.v2=r}function bn(e){dn.call(this),this.currentPoint=new r,e&&this.fromPoints(e)}function _n(){bn.apply(this,arguments),this.holes=[]}function xn(){this.subPaths=[],this.currentPath=null}function wn(e){this.data=e}function Sn(e){this.manager=void 0!==e?e:Vi}function Mn(e){this.manager=void 0!==e?e:Vi}function En(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new ce,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new ce,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1}function Cn(e,t,r){oe.call(this),this.type="CubeCamera";var n=new ce(90,1,e,t);n.up.set(0,-1,0),n.lookAt(new c(1,0,0)),this.add(n);var i=new ce(90,1,e,t);i.up.set(0,-1,0),i.lookAt(new c(-1,0,0)),this.add(i);var o=new ce(90,1,e,t);o.up.set(0,0,1),o.lookAt(new c(0,1,0)),this.add(o);var s=new ce(90,1,e,t);s.up.set(0,0,-1),s.lookAt(new c(0,-1,0)),this.add(s);var u=new ce(90,1,e,t);u.up.set(0,-1,0),u.lookAt(new c(0,0,1)),this.add(u);var h=new ce(90,1,e,t);h.up.set(0,-1,0),h.lookAt(new c(0,0,-1)),this.add(h),this.renderTarget=new a(r,r,{format:1022,magFilter:1006,minFilter:1006}),this.renderTarget.texture.name="CubeCamera",this.updateCubeMap=function(e,t){null===this.parent&&this.updateMatrixWorld();var r=this.renderTarget,a=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,o,r),r.activeCubeFace=3,e.render(t,s,r),r.activeCubeFace=4,e.render(t,u,r),r.texture.generateMipmaps=a,r.activeCubeFace=5,e.render(t,h,r),e.setRenderTarget(null)}}function Tn(){oe.call(this),this.type="AudioListener",this.context=Ji.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null}function On(e){oe.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.startTime=0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.sourceType="empty",this.filters=[]}function Pn(e){On.call(this,e),this.panner=this.context.createPanner(),this.panner.connect(this.gain)}function jn(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 An(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 Rn(e,t,r){r=r||Ln.parseTrackName(t),this._targetGroup=e,this._bindings=e.subscribe_(t,r)}function Ln(e,t,r){this.path=t,this.parsedPath=r||Ln.parseTrackName(t),this.node=Ln.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e}function Nn(e){this.uuid=xi.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;var t={};this._indicesByUUID=t;for(var r=0,n=arguments.length;r!==n;++r)t[arguments[r].uuid]=r;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};var i=this;this.stats={objects:{get total(){return i._objects.length},get inUse(){return this.total-i.nCachedObjects_}},get bindingsPerObject(){return i._bindings.length}}}function In(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 Dn(e){this._root=e,this._initMemoryManager(),this.time=this._accuIndex=0,this.timeScale=1}function kn(e,t){"string"==typeof e&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),e=t),this.value=e}function Bn(){Se.call(this),this.type="InstancedBufferGeometry",this.maxInstancedCount=void 0}function Fn(e,t,r,n){this.uuid=xi.generateUUID(),this.data=e,this.itemSize=t,this.offset=r,this.normalized=!0===n}function Un(e,t){this.uuid=xi.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 zn(e,t,r){Un.call(this,e,t),this.meshPerAttribute=r||1}function $n(e,t,r){le.call(this,e,t),this.meshPerAttribute=r||1}function Vn(e,t,r,n){this.ray=new Pe(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 Gn(e,t){return e.distance-t.distance}function Hn(e,t,r,n){if(!1!==e.visible&&(e.raycast(t,r),!0===n)){n=0;for(var i=(e=e.children).length;nr;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 be(t,3)),t=new wt({fog:!1}),this.cone=new Mt(e,t),this.add(this.cone),this.update()}function Qn(e){var t=[];e&&e.isBone&&t.push(e);for(var r=0;re.length&&console.warn("THREE.CatmullRomCurve3: Points array needs at least two entries."),this.points=e||[],this.closed=!1}function di(e,t,r,n){this.arcLengthDivisions=200,this.v0=e,this.v1=t,this.v2=r,this.v3=n}function mi(e,t,r){this.arcLengthDivisions=200,this.v0=e,this.v1=t,this.v2=r}function vi(e,t){this.arcLengthDivisions=200,this.v1=e,this.v2=t}function gi(e,t,r,n,i,o){mn.call(this,e,t,r,r,n,i,o)}function yi(e){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),fi.call(this,e),this.type="catmullrom",this.closed=!0}function bi(e){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),fi.call(this,e),this.type="catmullrom"}function _i(e){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead."),fi.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:0i;i++)8===i||13===i||18===i||23===i?r[i]="-":14===i?r[i]="4":(2>=n&&(n=33554432+16777216*Math.random()|0),e=15&n,n>>=4,r[i]=t[19===i?3&e|8:e]);return r.join("")}}(),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*xi.DEG2RAD},radToDeg:function(e){return e*xi.RAD2DEG},isPowerOfTwo:function(e){return 0==(e&e-1)&&0!==e},nearestPowerOfTwo:function(e){return Math.pow(2,Math.round(Math.log(e)/Math.LN2))},nextPowerOfTwo:function(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e}};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)},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)},lengthManhattan: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},distanceToManhattan: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),n=Math.sin(t),i=this.x-e.x,o=this.y-e.y;return this.x=i*r-o*n+e.x,this.y=i*n+o*r+e.y,this}});var wi=0;n.DEFAULT_IMAGE=void 0,n.DEFAULT_MAPPING=300,Object.defineProperty(n.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}}),Object.assign(n.prototype,t.prototype,{constructor:n,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.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.encoding=e.encoding,this},toJSON:function(e){if(void 0!==e.textures[this.uuid])return e.textures[this.uuid];var t={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],wrap:[this.wrapS,this.wrapT],minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==this.image){var r=this.image;if(void 0===r.uuid&&(r.uuid=xi.generateUUID()),void 0===e.images[r.uuid]){var n,i=e.images,o=r.uuid,a=r.uuid;void 0!==r.toDataURL?n=r:(n=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),n.width=r.width,n.height=r.height,n.getContext("2d").drawImage(r,0,0,r.width,r.height)),n=2048e.x||1e.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||1e.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(i.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,r,n,i=(e=e.elements)[0];n=e[4];var o=e[8],a=e[1],s=e[5],c=e[9];r=e[2],t=e[6];var u=e[10];return.01>Math.abs(n-a)&&.01>Math.abs(o-r)&&.01>Math.abs(c-t)?.1>Math.abs(n+a)&&.1>Math.abs(o+r)&&.1>Math.abs(c+t)&&.1>Math.abs(i+s+u-3)?(this.set(1,0,0,0),this):(e=Math.PI,i=(i+1)/2,s=(s+1)/2,u=(u+1)/2,n=(n+a)/4,o=(o+r)/4,c=(c+t)/4,i>s&&i>u?.01>i?(t=0,n=r=.707106781):(t=Math.sqrt(i),r=n/t,n=o/t):s>u?.01>s?(t=.707106781,r=0,n=.707106781):(r=Math.sqrt(s),t=n/r,n=c/r):.01>u?(r=t=.707106781,n=0):(n=Math.sqrt(u),t=o/n,r=c/n),this.set(t,r,n,e),this):(e=Math.sqrt((t-c)*(t-c)+(o-r)*(o-r)+(a-n)*(a-n)),.001>Math.abs(e)&&(e=1),this.x=(t-c)/e,this.y=(o-r)/e,this.z=(a-n)/e,this.w=Math.acos((i+s+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 i,t=new i),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)},lengthManhattan: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(o.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"})}}),a.prototype=Object.create(o.prototype),a.prototype.constructor=a,a.prototype.isWebGLRenderTargetCube=!0,Object.assign(s,{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,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,a=Math.sin(a*p)/d),s=s*o+n*(f*=a),c=c*o+h*f,u=u*o+l*f,r=r*o+i*f,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(s.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(s.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,o=e.order,a=Math.cos,s=Math.sin,c=a(r/2),u=a(n/2),a=a(i/2),r=s(r/2),n=s(n/2),i=s(i/2);return"XYZ"===o?(this._x=r*u*a+c*n*i,this._y=c*n*a-r*u*i,this._z=c*u*i+r*n*a,this._w=c*u*a-r*n*i):"YXZ"===o?(this._x=r*u*a+c*n*i,this._y=c*n*a-r*u*i,this._z=c*u*i-r*n*a,this._w=c*u*a+r*n*i):"ZXY"===o?(this._x=r*u*a-c*n*i,this._y=c*n*a+r*u*i,this._z=c*u*i+r*n*a,this._w=c*u*a-r*n*i):"ZYX"===o?(this._x=r*u*a-c*n*i,this._y=c*n*a+r*u*i,this._z=c*u*i-r*n*a,this._w=c*u*a+r*n*i):"YZX"===o?(this._x=r*u*a+c*n*i,this._y=c*n*a+r*u*i,this._z=c*u*i-r*n*a,this._w=c*u*a-r*n*i):"XZY"===o&&(this._x=r*u*a-c*n*i,this._y=c*n*a-r*u*i,this._z=c*u*i+r*n*a,this._w=c*u*a+r*n*i),!1!==t&&this.onChangeCallback(),this},setFromAxisAngle:function(e,t){var r=t/2,n=Math.sin(r);return this._x=e.x*n,this._y=e.y*n,this._z=e.z*n,this._w=Math.cos(r),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 0o&&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 c;return function(r,n){return void 0===t&&(t=new c),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,o=e._w,a=t._x,s=t._y,c=t._z,u=t._w;return this._x=r*u+o*a+n*c-i*s,this._y=n*u+o*s+i*a-r*c,this._z=i*u+o*c+r*s-n*a,this._w=o*u-r*a-n*s-i*c,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;c=Math.sqrt(1-s*s);if(.001>Math.abs(c))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(c,s),s=Math.sin((1-t)*a)/c,c=Math.sin(t*a)/c;return this._w=o*s+this._w*c,this._x=r*s+this._x*c,this._y=n*s+this._y*c,this._z=i*s+this._z*c,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(c.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 s;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 s;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 u;return function(t){return e.multiplyMatrices(t.projectionMatrix,e.getInverse(t.matrixWorld)),this.applyMatrix4(e)}}(),unproject:function(){var e=new u;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 c,t=new c;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)},lengthManhattan: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){if(void 0!==t)return console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(e,t);var r=this.x,n=this.y,i=this.z;return this.x=n*e.z-i*e.y,this.y=i*e.x-r*e.z,this.z=r*e.y-n*e.x,this},crossVectors:function(e,t){var r=e.x,n=e.y,i=e.z,o=t.x,a=t.y,s=t.z;return this.x=n*s-i*a,this.y=i*o-r*s,this.z=r*a-n*o,this},projectOnVector:function(e){var t=e.dot(this)/e.lengthSq();return this.copy(e).multiplyScalar(t)},projectOnPlane:function(){var e=new c;return function(t){return e.copy(this).projectOnVector(t),this.sub(e)}}(),reflect:function(){var e=new c;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(xi.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},distanceToManhattan: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(u.prototype,{isMatrix4:!0,set:function(e,t,r,n,i,o,a,s,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]=a,v[13]=s,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 u).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 c;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.Matrix: .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){e=o*s;var c=o*i,u=r*s,h=r*i;t[0]=a*s,t[4]=-a*i,t[8]=n,t[1]=c+u*n,t[5]=e-h*n,t[9]=-r*a,t[2]=h-e*n,t[6]=u+c*n,t[10]=o*a}else"YXZ"===e.order?(e=a*s,c=a*i,u=n*s,h=n*i,t[0]=e+h*r,t[4]=u*r-c,t[8]=o*n,t[1]=o*i,t[5]=o*s,t[9]=-r,t[2]=c*r-u,t[6]=h+e*r,t[10]=o*a):"ZXY"===e.order?(e=a*s,c=a*i,u=n*s,h=n*i,t[0]=e-h*r,t[4]=-o*i,t[8]=u+c*r,t[1]=c+u*r,t[5]=o*s,t[9]=h-e*r,t[2]=-o*n,t[6]=r,t[10]=o*a):"ZYX"===e.order?(e=o*s,c=o*i,u=r*s,h=r*i,t[0]=a*s,t[4]=u*n-c,t[8]=e*n+h,t[1]=a*i,t[5]=h*n+e,t[9]=c*n-u,t[2]=-n,t[6]=r*a,t[10]=o*a):"YZX"===e.order?(e=o*a,c=o*n,u=r*a,h=r*n,t[0]=a*s,t[4]=h-e*i,t[8]=u*i+c,t[1]=i,t[5]=o*s,t[9]=-r*s,t[2]=-n*s,t[6]=c*i+u,t[10]=e-h*i):"XZY"===e.order&&(e=o*a,c=o*n,u=r*a,h=r*n,t[0]=a*s,t[4]=-i,t[8]=n*s,t[1]=e*i+h,t[5]=o*s,t[9]=c*i-u,t[2]=u*i-c,t[6]=r*s,t[10]=h*i+e);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 c,t=new c,r=new c;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,i=this.elements,o=r[0],a=r[4],s=r[8],c=r[12],u=r[1],h=r[5],l=r[9],p=r[13],f=r[2],d=r[6],m=r[10],v=r[14],g=r[3],y=r[7],b=r[11],r=r[15],_=n[0],x=n[4],w=n[8],S=n[12],M=n[1],E=n[5],C=n[9],T=n[13],O=n[2],P=n[6],j=n[10],A=n[14],R=n[3],L=n[7],N=n[11],n=n[15];return i[0]=o*_+a*M+s*O+c*R,i[4]=o*x+a*E+s*P+c*L,i[8]=o*w+a*C+s*j+c*N,i[12]=o*S+a*T+s*A+c*n,i[1]=u*_+h*M+l*O+p*R,i[5]=u*x+h*E+l*P+p*L,i[9]=u*w+h*C+l*j+p*N,i[13]=u*S+h*T+l*A+p*n,i[2]=f*_+d*M+m*O+v*R,i[6]=f*x+d*E+m*P+v*L,i[10]=f*w+d*C+m*j+v*N,i[14]=f*S+d*T+m*A+v*n,i[3]=g*_+y*M+b*O+r*R,i[7]=g*x+y*E+b*P+r*L,i[11]=g*w+y*C+b*j+r*N,i[15]=g*S+y*T+b*A+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 c;return function(t){for(var r=0,n=t.count;rthis.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}}),h.prototype=Object.create(n.prototype),h.prototype.constructor=h,h.prototype.isDataTexture=!0,(l.prototype=Object.create(n.prototype)).constructor=l,l.prototype.isCubeTexture=!0,Object.defineProperty(l.prototype,"images",{get:function(){return this.image},set:function(e){this.image=e}});var Si=new n,Mi=new l,Ei=[],Ci=[],Ti=new Float32Array(16),Oi=new Float32Array(9);z.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 Pi=/([\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 ji={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,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(V.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),1r?t:r<2/3?e+6*(t-e)*(2/3-r):e}return function(t,r,n){return t=xi.euclideanModulo(t,1),r=xi.clamp(r,0,1),n=xi.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=a?s/(o+c):s/(2-o-c);switch(o){case r:t=(n-i)/s+(n 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 * transpose( 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 transpose( const in mat3 v ) {\n\tmat3 tmp;\n\ttmp[0] = vec3(v[0].x, v[1].x, v[2].x);\n\ttmp[1] = vec3(v[0].y, v[1].y, v[2].y);\n\ttmp[2] = vec3(v[0].z, v[1].z, v[2].z);\n\treturn tmp;\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, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\tsampleUV.y = asin( flipNormal * reflectVec.y ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\tvec3 reflectView = flipNormal * 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};\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 = saturate( reflectVec.y * 0.5 + 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 ] ) : 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\tgl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z = (gl_Position.z - 1.0) * 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\tvec4 mapTexel = texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n",map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform vec4 offsetRepeat;\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_flip:"#ifdef DOUBLE_SIDED\n\tfloat flipNormal = ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n#else\n\tfloat flipNormal = 1.0;\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 ) * flipNormal;\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 1.0 - 2.0 * rgb.xyz;\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 ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\tfloat dp = ( length( lightToPosition ) - shadowBias ) / 1000.0;\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 ] ) : 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:"#define saturate(a) clamp( a, 0.0, 1.0 )\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 vec4 offsetRepeat;\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 = uv * offsetRepeat.zw + offsetRepeat.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( PHONG ) || defined( PHYSICAL ) || defined( LAMBERT ) || 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;\n#include \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 \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}\n",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n",distanceRGBA_frag:"uniform vec3 lightPos;\nvarying vec4 vWorldPosition;\n#include \n#include \n#include \nvoid main () {\n\t#include \n\tgl_FragColor = packDepthToRGBA( length( vWorldPosition.xyz - lightPos.xyz ) / 1000.0 );\n}\n",distanceRGBA_vert:"varying vec4 vWorldPosition;\n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition;\n}\n",equirect_frag:"uniform sampler2D tEquirect;\nuniform float tFlip;\nvarying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = saturate( tFlip * direction.y * -0.5 + 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 \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}\n",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}\n",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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 \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_ENVMAP\n\t#include \n\t#include \n\t#include \n\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#include \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 \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n",meshphysical_vert:"#define PHYSICAL\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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 \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n}\n",shadow_frag:"uniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( 0.0, 0.0, 0.0, opacity * ( 1.0 - getShadowMask() ) );\n}\n",shadow_vert:"#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n}\n"},Ni={basic:{uniforms:Ri.merge([Ai.common,Ai.aomap,Ai.lightmap,Ai.fog]),vertexShader:Li.meshbasic_vert,fragmentShader:Li.meshbasic_frag},lambert:{uniforms:Ri.merge([Ai.common,Ai.aomap,Ai.lightmap,Ai.emissivemap,Ai.fog,Ai.lights,{emissive:{value:new V(0)}}]),vertexShader:Li.meshlambert_vert,fragmentShader:Li.meshlambert_frag},phong:{uniforms:Ri.merge([Ai.common,Ai.aomap,Ai.lightmap,Ai.emissivemap,Ai.bumpmap,Ai.normalmap,Ai.displacementmap,Ai.gradientmap,Ai.fog,Ai.lights,{emissive:{value:new V(0)},specular:{value:new V(1118481)},shininess:{value:30}}]),vertexShader:Li.meshphong_vert,fragmentShader:Li.meshphong_frag},standard:{uniforms:Ri.merge([Ai.common,Ai.aomap,Ai.lightmap,Ai.emissivemap,Ai.bumpmap,Ai.normalmap,Ai.displacementmap,Ai.roughnessmap,Ai.metalnessmap,Ai.fog,Ai.lights,{emissive:{value:new V(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:Li.meshphysical_vert,fragmentShader:Li.meshphysical_frag},points:{uniforms:Ri.merge([Ai.points,Ai.fog]),vertexShader:Li.points_vert,fragmentShader:Li.points_frag},dashed:{uniforms:Ri.merge([Ai.common,Ai.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Li.linedashed_vert,fragmentShader:Li.linedashed_frag},depth:{uniforms:Ri.merge([Ai.common,Ai.displacementmap]),vertexShader:Li.depth_vert,fragmentShader:Li.depth_frag},normal:{uniforms:Ri.merge([Ai.common,Ai.bumpmap,Ai.normalmap,Ai.displacementmap,{opacity:{value:1}}]),vertexShader:Li.normal_vert,fragmentShader:Li.normal_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Li.cube_vert,fragmentShader:Li.cube_frag},equirect:{uniforms:{tEquirect:{value:null},tFlip:{value:-1}},vertexShader:Li.equirect_vert,fragmentShader:Li.equirect_frag},distanceRGBA:{uniforms:{lightPos:{value:new c}},vertexShader:Li.distanceRGBA_vert,fragmentShader:Li.distanceRGBA_frag}};Ni.physical={uniforms:Ri.merge([Ni.standard.uniforms,{clearCoat:{value:0},clearCoatRoughness:{value:0}}]),vertexShader:Li.meshphysical_vert,fragmentShader:Li.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;tthis.max.x||e.ythis.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.xthis.max.x||e.max.ythis.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)}});var Ii=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{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;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()),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),2!==this.shading&&(n.shading=this.shading),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,0i&&(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;si&&(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;tthis.max.x||e.ythis.max.y||e.zthis.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 c).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.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)},intersectsSphere:function(){var e=new c;return function(t){return this.clampPoint(t.center,e),e.distanceToSquared(t.center)<=t.radius*t.radius}}(),intersectsPlane:function(e){var t,r;return 0=e.constant},clampPoint:function(e,t){return(t||new c).copy(e).clamp(this.min,this.max)},distanceToPoint:function(){var e=new c;return function(t){return e.copy(t).clamp(this.min,this.max).sub(t).length()}}(),getBoundingSphere:function(){var e=new c;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 c,new c,new c,new c,new c,new c,new c,new c];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=0,o=0,a=t.length;o=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(this.center.dot(e.normal)-e.constant)<=this.radius},clampPoint:function(e,t){var r=this.center.distanceToSquared(e),n=t||new c;return n.copy(e),r>this.radius*this.radius&&(n.sub(this.center).normalize(),n.multiplyScalar(this.radius).add(this.center)),n},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,{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 c;return function(t){for(var r=0,n=t.count;rr;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}}),Object.assign(Q.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 c,t=new c;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 this.orthoPoint(e,t).sub(e).negate()},orthoPoint:function(e,t){var r=this.distanceToPoint(e);return(t||new c).copy(this.normal).multiplyScalar(r)},intersectLine:function(){var e=new c;return function(t,r){var n=r||new c,i=t.delta(e),o=this.normal.dot(i);return 0!==o?0>(o=-(t.start.dot(this.normal)+this.constant)/o)||1t&&0e&&0r;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],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+a,p+h,v+d).normalize(),t[3].setComponents(i-r,c-a,p-h,v-d).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)i;i++){a=n[i];e.x=0o&&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}}),ne.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" "),ne.DefaultOrder="XYZ",Object.defineProperties(ne.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(ne.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=xi.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 u;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 s;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 c(this._x,this._y,this._z)},onChange:function(e){return this.onChangeCallback=e,this},onChangeCallback:function(){}}),Object.assign(ie.prototype,{set:function(e){this.mask=1<e;e++)if(a[e]===a[(e+1)%3]){n.push(t);break}for(t=n.length-1;0<=t;t--)for(a=n[t],this.faces.splice(a,1),o=0,r=this.faceVertexUvs.length;on?r.copy(this.origin):r.copy(this.direction).multiplyScalar(n).add(this.origin)},distanceToPoint:function(e){return Math.sqrt(this.distanceSqToPoint(e))},distanceSqToPoint:function(){var e=new c;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 c,t=new c,r=new c;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,c=.5*n.distanceTo(i),u=-this.direction.dot(t),h=r.dot(this.direction),l=-r.dot(t),p=r.lengthSq(),f=Math.abs(1-u*u);return 0=-s?i<=s?(c=1/f,n*=c,i*=c,u=n*(n+u*i+2*h)+i*(u*n+i+2*l)+p):(i=c,n=Math.max(0,-(u*i+h)),u=-n*n+i*(i+2*l)+p):(i=-c,n=Math.max(0,-(u*i+h)),u=-n*n+i*(i+2*l)+p):i<=-s?(n=Math.max(0,-(-u*c+h)),i=0o?null:(o=Math.sqrt(o-i),i=n-o,n+=o,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){var r=this.distanceToPlane(e);return null===r?null:this.at(r,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,n,i,o,a;n=1/this.direction.x,o=1/this.direction.y,a=1/this.direction.z;var s=this.origin;return 0<=n?(r=(e.min.x-s.x)*n,n*=e.max.x-s.x):(r=(e.max.x-s.x)*n,n*=e.min.x-s.x),0<=o?(i=(e.min.y-s.y)*o,o*=e.max.y-s.y):(i=(e.max.y-s.y)*o,o*=e.min.y-s.y),r>o||i>n?null:((i>r||r!==r)&&(r=i),(oa||i>n?null:((i>r||r!==r)&&(r=i),(an?null:this.at(0<=r?r:n,t)))},intersectsBox:function(){var e=new c;return function(t){return null!==this.intersectBox(t,e)}}(),intersectTriangle:function(){var e=new c,t=new c,r=new c,n=new c;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(je.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 c).addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(e){return(e||new c).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){var r=t||new c;return this.delta(r).multiplyScalar(e).add(this.start)},closestPointToPointParameter:function(){var e=new c,t=new c;return function(r,n){e.subVectors(r,this.start),t.subVectors(this.end,this.start);var i=t.dot(t),i=t.dot(e)/i;return n&&(i=xi.clamp(i,0,1)),i}}(),closestPointToPoint:function(e,t,r){return e=this.closestPointToPointParameter(e,t),r=r||new c,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(Ae,{normal:function(){var e=new c;return function(t,r,n,i){return(i=i||new c).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 c,t=new c,r=new c;return function(n,i,o,a,s){e.subVectors(a,i),t.subVectors(o,i),r.subVectors(n,i),n=e.dot(e),i=e.dot(t),o=e.dot(r);var u=t.dot(t);a=t.dot(r);var h=n*u-i*i;return s=s||new c,0===h?s.set(-2,-1,-1):(h=1/h,u=(u*o-i*a)*h,n=(n*a-i*o)*h,s.set(1-u-n,n,u))}}(),containsPoint:function(){var e=new c;return function(t,r,n,i){return 0<=(t=Ae.barycoordFromPoint(t,r,n,i,e)).x&&0<=t.y&&1>=t.x+t.y}}()}),Object.assign(Ae.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 c,t=new c;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 c).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(e){return Ae.normal(this.a,this.b,this.c,e)},plane:function(e){return(e||new Q).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(e,t){return Ae.barycoordFromPoint(e,this.a,this.b,this.c,t)},containsPoint:function(e){return Ae.containsPoint(e,this.a,this.b,this.c)},closestPointToPoint:function(){var e=new Q,t=[new je,new je,new je],r=new c,n=new c;return function(i,o){var a=o||new c,s=1/0;if(e.setFromCoplanarPoints(this.a,this.b,this.c),e.projectPoint(i,r),!0===this.containsPoint(r))a.copy(r);else{t[0].set(this.a,this.b),t[1].set(this.b,this.c),t[2].set(this.c,this.a);for(var u=0;ut.far?null:{distance:r,point:_.clone(),object:e})}function n(r,n,i,o,a,c,u,p){return s.fromBufferAttribute(o,c),h.fromBufferAttribute(o,u),l.fromBufferAttribute(o,p),(r=t(r,n,i,s,h,l,b))&&(a&&(m.fromBufferAttribute(a,c),v.fromBufferAttribute(a,u),g.fromBufferAttribute(a,p),r.uv=e(b,s,h,l,m,v,g)),r.face=new ue(c,u,p,Ae.normal(s,h,l)),r.faceIndex=c),r}var i=new u,o=new Pe,a=new Z,s=new c,h=new c,l=new c,p=new c,f=new c,d=new c,m=new r,v=new r,g=new r,y=new c,b=new c,_=new c;return function(r,c){var u=this.geometry,y=this.material,_=this.matrixWorld;if(void 0!==y&&(null===u.boundingSphere&&u.computeBoundingSphere(),a.copy(u.boundingSphere),a.applyMatrix4(_),!1!==r.ray.intersectsSphere(a)&&(i.getInverse(_),o.copy(r.ray).applyMatrix4(i),null===u.boundingBox||!1!==o.intersectsBox(u.boundingBox)))){var x;if(u.isBufferGeometry){var w,S,M,E,y=u.index,C=u.attributes.position,_=u.attributes.uv;if(null!==y)for(M=0,E=y.count;Mo||(o=n.ray.origin.distanceTo(e))n.far||i.push({distance:o,point:e.clone(),face:null,object:this})}}(),clone:function(){return new this.constructor(this.material).copy(this)}}),yt.prototype=Object.assign(Object.create(oe.prototype),{constructor:yt,copy:function(e){oe.prototype.copy.call(this,e,!1);for(var t=0,r=(e=e.levels).length;t=n[i].distance;i++)n[i-1].object.visible=!1,n[i].object.visible=!0;for(;io||(l.applyMatrix4(this.matrixWorld),(v=n.ray.origin.distanceTo(l))n.far||i.push({distance:v,point:s.clone().applyMatrix4(this.matrixWorld),index:a,face:null,faceIndex:null,object:this}))}else for(a=0,m=d.length/3-1;ao||(l.applyMatrix4(this.matrixWorld),(v=n.ray.origin.distanceTo(l))n.far||i.push({distance:v,point:s.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;ao||(l.applyMatrix4(this.matrixWorld),(v=n.ray.origin.distanceTo(l))n.far||i.push({distance:v,point:s.clone().applyMatrix4(this.matrixWorld),index:a,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),Mt.prototype=Object.assign(Object.create(St.prototype),{constructor:Mt,isLineSegments:!0}),Et.prototype=Object.assign(Object.create(St.prototype),{constructor:Et,isLineLoop:!0}),Ct.prototype=Object.create(W.prototype),Ct.prototype.constructor=Ct,Ct.prototype.isPointsMaterial=!0,Ct.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},Tt.prototype=Object.assign(Object.create(oe.prototype),{constructor:Tt,isPoints:!0,raycast:function(){var e=new u,t=new Pe,r=new Z;return function(n,i){function o(e,r){var o=t.distanceSqToPoint(e);if(on.far||i.push({distance:c,distanceToRay:Math.sqrt(o),point:s.clone(),index:r,face:null,object:a})}}var a=this,s=this.geometry,u=this.matrixWorld,h=n.params.Points.threshold;if(null===s.boundingSphere&&s.computeBoundingSphere(),r.copy(s.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 c;if(s.isBufferGeometry){var p=s.index,s=s.attributes.position.array;if(null!==p)for(var f=p.array,p=0,d=f.length;pr)return null;var n,i,o,a=[],s=[],c=[];if(0=u--){console.warn("THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()");break}r<=(n=i)&&(n=0),r<=(i=n+1)&&(i=0),r<=(o=i+1)&&(o=0);var h;e:{var l,p,f,d,m,v,g,y;if(l=e[s[n]].x,p=e[s[n]].y,f=e[s[i]].x,d=e[s[i]].y,m=e[s[o]].x,v=e[s[o]].y,0>=(f-l)*(v-p)-(d-p)*(m-l))h=!1;else{var b,_,x,w,S,M,E,C,T,O;for(b=m-f,_=v-d,x=l-m,w=p-v,S=f-l,M=d-p,h=0;h=-Number.EPSILON&&C>=-Number.EPSILON&&E>=-Number.EPSILON)){h=!1;break e}h=!0}}if(h){for(a.push([e[s[n]],e[s[i]],e[s[o]]]),c.push([s[n],s[i],s[o]]),n=i,o=i+1;oNumber.EPSILON){if(0f||f>p)return[];if(0>(c=u*h-c*l)||c>p)return[]}else{if(0r?[]: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--g){console.log("Infinite Loop! Holes left:"+d.length+", Probably Hole outside Shape!");break}for(a=h;ai&&(i=n);var a=e+1;return a>n&&(a=0),!!(n=o(f[e],f[i],f[a],r[t]))&&(n=r.length-1,0>(i=t-1)&&(i=n),(a=t+1)>n&&(a=0),!!(n=o(r[t],r[i],r[a],f[e])))}(a,l)&&!function(e,t){var r,n;for(r=0;rc;c++)h=u[c].x+":"+u[c].y,void 0!==(h=l[h])&&(u[c]=h);return p.concat()},isClockWise:function(e){return 0>Fi.area(e)}};(Jt.prototype=Object.create(he.prototype)).constructor=Jt,Qt.prototype=Object.create(Se.prototype),Qt.prototype.constructor=Qt,Qt.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):[]}},Qt.prototype.addShapeList=function(e,t){var r=e.length;t.arrays=this.getArrays();for(var n=0;nNumber.EPSILON){var u=Math.sqrt(c),h=Math.sqrt(i*i+s*s),c=t.x-a/u;if(t=t.y+o/u,s=((n.x-s/h-c)*s-(n.y+i/h-t)*i)/(o*s-a*i),i=c+o*s-e.x,o=t+a*s-e.y,2>=(a=i*i+o*o))return new r(i,o);a=Math.sqrt(a/2)}else e=!1,o>Number.EPSILON?i>Number.EPSILON&&(e=!0):o<-Number.EPSILON?i<-Number.EPSILON&&(e=!0):Math.sign(a)===Math.sign(s)&&(e=!0),e?(i=-a,a=Math.sqrt(c)):(i=o,o=a,a=Math.sqrt(c/2));return new r(i/a,o/a)}function o(e,t){var r,n;for(H=e.length;0<=--H;){r=H,0>(n=H-1)&&(n=e.length-1);var i,o=C+2*S;for(i=0;iMath.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(f,1-t)]}},(er.prototype=Object.create(he.prototype)).constructor=er,(tr.prototype=Object.create(Qt.prototype)).constructor=tr,(rr.prototype=Object.create(he.prototype)).constructor=rr,nr.prototype=Object.create(Se.prototype),nr.prototype.constructor=nr,(ir.prototype=Object.create(he.prototype)).constructor=ir,(or.prototype=Object.create(Se.prototype)).constructor=or,(ar.prototype=Object.create(he.prototype)).constructor=ar,(sr.prototype=Object.create(Se.prototype)).constructor=sr,(cr.prototype=Object.create(he.prototype)).constructor=cr,(ur.prototype=Object.create(Se.prototype)).constructor=ur,(hr.prototype=Object.create(Se.prototype)).constructor=hr,lr.prototype=Object.create(he.prototype),lr.prototype.constructor=lr,pr.prototype=Object.create(Se.prototype),pr.prototype.constructor=pr,(fr.prototype=Object.create(lr.prototype)).constructor=fr,(dr.prototype=Object.create(pr.prototype)).constructor=dr,(mr.prototype=Object.create(he.prototype)).constructor=mr,(vr.prototype=Object.create(Se.prototype)).constructor=vr;var Ui=Object.freeze({WireframeGeometry:Lt,ParametricGeometry:Nt,ParametricBufferGeometry:It,TetrahedronGeometry:Bt,TetrahedronBufferGeometry:Ft,OctahedronGeometry:Ut,OctahedronBufferGeometry:zt,IcosahedronGeometry:$t,IcosahedronBufferGeometry:Vt,DodecahedronGeometry:Gt,DodecahedronBufferGeometry:Ht,PolyhedronGeometry:Dt,PolyhedronBufferGeometry:kt,TubeGeometry:qt,TubeBufferGeometry:Wt,TorusKnotGeometry:Xt,TorusKnotBufferGeometry:Yt,TorusGeometry:Kt,TorusBufferGeometry:Zt,TextGeometry:er,TextBufferGeometry:tr,SphereGeometry:rr,SphereBufferGeometry:nr,RingGeometry:ir,RingBufferGeometry:or,PlaneGeometry:Ce,PlaneBufferGeometry:Te,LatheGeometry:ar,LatheBufferGeometry:sr,ShapeGeometry:cr,ShapeBufferGeometry:ur,ExtrudeGeometry:Jt,ExtrudeBufferGeometry:Qt,EdgesGeometry:hr,ConeGeometry:fr,ConeBufferGeometry:dr,CylinderGeometry:lr,CylinderBufferGeometry:pr,CircleGeometry:mr,CircleBufferGeometry:vr,BoxGeometry:Me,BoxBufferGeometry:Ee});(gr.prototype=Object.create(X.prototype)).constructor=gr,gr.prototype.isShadowMaterial=!0,(yr.prototype=Object.create(X.prototype)).constructor=yr,yr.prototype.isRawShaderMaterial=!0,br.prototype=Object.create(W.prototype),br.prototype.constructor=br,br.prototype.isMeshStandardMaterial=!0,br.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},(_r.prototype=Object.create(br.prototype)).constructor=_r,_r.prototype.isMeshPhysicalMaterial=!0,_r.prototype.copy=function(e){return br.prototype.copy.call(this,e),this.defines={PHYSICAL:""},this.reflectivity=e.reflectivity,this.clearCoat=e.clearCoat,this.clearCoatRoughness=e.clearCoatRoughness,this},xr.prototype=Object.create(W.prototype),xr.prototype.constructor=xr,xr.prototype.isMeshPhongMaterial=!0,xr.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},(wr.prototype=Object.create(xr.prototype)).constructor=wr,wr.prototype.isMeshToonMaterial=!0,wr.prototype.copy=function(e){return xr.prototype.copy.call(this,e),this.gradientMap=e.gradientMap,this},(Sr.prototype=Object.create(W.prototype)).constructor=Sr,Sr.prototype.isMeshNormalMaterial=!0,Sr.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},(Mr.prototype=Object.create(W.prototype)).constructor=Mr,Mr.prototype.isMeshLambertMaterial=!0,Mr.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},(Er.prototype=Object.create(W.prototype)).constructor=Er,Er.prototype.isLineDashedMaterial=!0,Er.prototype.copy=function(e){return W.prototype.copy.call(this,e),this.color.copy(e.color),this.linewidth=e.linewidth,this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this};var zi=Object.freeze({ShadowMaterial:gr,SpriteMaterial:vt,RawShaderMaterial:yr,ShaderMaterial:X,PointsMaterial:Ct,MeshPhysicalMaterial:_r,MeshStandardMaterial:br,MeshPhongMaterial:xr,MeshToonMaterial:wr,MeshNormalMaterial:Sr,MeshLambertMaterial:Mr,MeshDepthMaterial:Y,MeshBasicMaterial:Oe,LineDashedMaterial:Er,LineBasicMaterial:wt,Material:W}),$i={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={}}},Vi=new Cr;Object.assign(Tr.prototype,{load:function(e,t,r,n){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e);var i=this,o=$i.get(e);if(void 0!==o)return i.manager.itemStart(e),setTimeout(function(){t&&t(o),i.manager.itemEnd(e)},0),o;if(c=e.match(/^data:(.*?)(;base64)?,(.*)$/)){var a=c[1],s=!!c[2],c=c[3],c=window.decodeURIComponent(c);s&&(c=window.atob(c));try{var u,h=(this.responseType||"").toLowerCase();switch(h){case"arraybuffer":case"blob":u=new ArrayBuffer(c.length);for(var l=new Uint8Array(u),s=0;s=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>>1,et;)--o;return++o,0===i&&o===n||(i>=o&&(o=Math.max(o,1),i=o-1),n=this.getValueSize(),this.times=Gi.arraySlice(r,i,o),this.values=Gi.arraySlice(this.values,i*n,o*n)),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&&Gi.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=this.times,t=this.values,r=this.getValueSize(),n=2302===this.getInterpolation(),i=1,o=e.length-1,a=1;ah.opacity&&(h.transparent=!0),n.setTextures(u),n.parse(h)}}()}),Object.assign(sn.prototype,{load:function(e,t,r,n){var i=this,o=this.texturePath&&"string"==typeof this.texturePath?this.texturePath:an.prototype.extractUrlBase(e),a=new Tr(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,o,a,s,u,h,l,p,f,d,m,v,g,y,b=new he,_=e,x=_.faces;f=_.vertices;var w=_.normals,S=_.colors;h=_.scale;var M=0;if(void 0!==_.uvs){for(n=0;n<_.uvs.length;n++)_.uvs[n].length&&M++;for(n=0;no;o++)p=x[s++],y=g[2*p],p=g[2*p+1],y=new r(y,p),2!==o&&b.faceVertexUvs[n][a].push(y),0!==o&&b.faceVertexUvs[n][a+1].push(y);if(l&&(l=3*x[s++],d.normal.set(w[l++],w[l++],w[l]),v.normal.copy(d.normal)),m)for(n=0;4>n;n++)l=3*x[s++],m=new c(w[l++],w[l++],w[l]),2!==n&&d.vertexNormals.push(m),0!==n&&v.vertexNormals.push(m);if(h&&(h=x[s++],h=S[h],d.color.setHex(h),v.color.setHex(h)),f)for(n=0;4>n;n++)h=x[s++],h=S[h],2!==n&&d.vertexColors.push(new V(h)),0!==n&&v.vertexColors.push(new V(h));b.faces.push(d),b.faces.push(v)}else{if(d=new ue,d.a=x[s++],d.b=x[s++],d.c=x[s++],a&&(a=x[s++],d.materialIndex=a),a=b.faces.length,n)for(n=0;no;o++)p=x[s++],y=g[2*p],p=g[2*p+1],y=new r(y,p),b.faceVertexUvs[n][a].push(y);if(l&&(l=3*x[s++],d.normal.set(w[l++],w[l++],w[l])),m)for(n=0;3>n;n++)l=3*x[s++],m=new c(w[l++],w[l++],w[l]),d.vertexNormals.push(m);if(h&&(h=x[s++],d.color.setHex(S[h])),f)for(n=0;3>n;n++)h=x[s++],d.vertexColors.push(new V(S[h]));b.faces.push(d)}if(_=e,s=void 0!==_.influencesPerVertex?_.influencesPerVertex:2,_.skinWeights)for(u=0,x=_.skinWeights.length;u(a=i[r]-n))s=r+1;else{if(!(0t&&(t=0),1Number.EPSILON&&(h.normalize(),i=Math.acos(xi.clamp(o[r-1].dot(o[r]),-1,1)),a[r].applyMatrix4(l.makeRotationAxis(h,i))),s[r].crossVectors(o[r],a[r]);if(!0===t)for(i=Math.acos(xi.clamp(a[0].dot(a[e]),-1,1)),i/=e,0=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;rn;)n+=t;for(;n>t;)n-=t;na.length-2?a.length-1:e+1],a=a[e>a.length-3?a.length-1:e+2];return new r(un(t,n.x,i.x,o.x,a.x),un(t,n.y,i.y,o.y,a.y))},(gn.prototype=Object.create(pn.prototype)).constructor=gn,gn.prototype.getPoint=function(e){var t=this.v0,n=this.v1,i=this.v2,o=this.v3;return new r(ln(e,t.x,n.x,i.x,o.x),ln(e,t.y,n.y,i.y,o.y))},(yn.prototype=Object.create(pn.prototype)).constructor=yn,yn.prototype.getPoint=function(e){var t=this.v0,n=this.v1,i=this.v2;return new r(hn(e,t.x,n.x,i.x),hn(e,t.y,n.y,i.y))};var Ki=Object.assign(Object.create(dn.prototype),{fromPoints:function(e){this.moveTo(e[0].x,e[0].y);for(var t=1,r=e.length;tNumber.EPSILON){if(0>u&&(a=t[o],c=-c,s=t[i],u=-u),!(e.ys.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})(f.p,l[m].p)&&(n!==m&&a.push({froms:n,tos:m,hole:u}),h?(h=!1,s[m].push(f)):d=!0);h&&s[n].push(f)}0n&&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){s.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(Rn.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(Ln,{Composite:Rn,create:function(e,t,r){return e&&e.isAnimationObjectGroup?new Ln.Composite(e,t,r):new Ln(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){var n=e.exec(r);if(!n)throw Error("PropertyBinding: Cannot parse trackName: "+r);var 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=r){var l=r++,p=t[l];for(n[p.uuid]=h,t[h]=p,n[u]=l,t[l]=c,c=0,u=o;c!==u;++c){var f=(p=i[c])[h];p[h]=p[l],p[l]=f}}}this.nCachedObjects_=r},uncache:function(e){for(var t=this._objects,r=t.length,n=this.nCachedObjects_,i=this._indicesByUUID,o=this._bindings,a=o.length,s=0,c=arguments.length;s!==c;++s){var u=arguments[s].uuid,h=i[u];if(void 0!==h)if(delete i[u],h(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=0e,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(Dn.prototype,t.prototype,{_bindAction:function(e,t){var r=e._localRoot||this._root,n=e._clip.tracks,i=n.length,o=e._propertyBindings,a=e._interpolants,s=r.uuid,c=this._bindingsByRootAndName,u=c[s];for(void 0===u&&(u={},c[s]=u),c=0;c!==i;++c){var h=n[c],l=h.name,p=u[l];if(void 0===p){if(void 0!==(p=o[c])){null===p._cacheIndex&&(++p.referenceCount,this._addInactiveBinding(p,s,l));continue}++(p=new An(Ln.create(r,l,t&&t._propertyBindings[c].binding.parsedPath),h.ValueTypeName,h.getValueSize())).referenceCount,this._addInactiveBinding(p,s,l)}o[c]=p,a[c].resultBuffer=p.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)&&es.end&&(s.end=o),t||(t=c)}}for(c in n)s=n[c],this.createAnimation(c,s.start,s.end,e);this.firstAnimation=t},Yn.prototype.setAnimationDirectionForward=function(e){(e=this.animationsMap[e])&&(e.direction=1,e.directionBackwards=!1)},Yn.prototype.setAnimationDirectionBackward=function(e){(e=this.animationsMap[e])&&(e.direction=-1,e.directionBackwards=!0)},Yn.prototype.setAnimationFPS=function(e,t){var r=this.animationsMap[e];r&&(r.fps=t,r.duration=(r.end-r.start)/r.fps)},Yn.prototype.setAnimationDuration=function(e,t){var r=this.animationsMap[e];r&&(r.duration=t,r.fps=(r.end-r.start)/r.duration)},Yn.prototype.setAnimationWeight=function(e,t){var r=this.animationsMap[e];r&&(r.weight=t)},Yn.prototype.setAnimationTime=function(e,t){var r=this.animationsMap[e];r&&(r.time=t)},Yn.prototype.getAnimationTime=function(e){var t=0;return(e=this.animationsMap[e])&&(t=e.time),t},Yn.prototype.getAnimationDuration=function(e){var t=-1;return(e=this.animationsMap[e])&&(t=e.duration),t},Yn.prototype.playAnimation=function(e){var t=this.animationsMap[e];t?(t.time=0,t.active=!0):console.warn("THREE.MorphBlendMesh: animation["+e+"] undefined in .playAnimation()")},Yn.prototype.stopAnimation=function(e){(e=this.animationsMap[e])&&(e.active=!1)},Yn.prototype.update=function(e){for(var t=0,r=this.animationsList.length;tn.duration||0>n.time)&&(n.direction*=-1,n.time>n.duration&&(n.time=n.duration,n.directionBackwards=!0),0>n.time&&(n.time=0,n.directionBackwards=!1)):(n.time%=n.duration,0>n.time&&(n.time+=n.duration));var o=n.start+xi.clamp(Math.floor(n.time/i),0,n.length-1),a=n.weight;o!==n.currentFrame&&(this.morphTargetInfluences[n.lastFrame]=0,this.morphTargetInfluences[n.currentFrame]=1*a,this.morphTargetInfluences[o]=0,n.lastFrame=n.currentFrame,n.currentFrame=o),i=n.time%i/i,n.directionBackwards&&(i=1-i),n.currentFrame!==n.lastFrame?(this.morphTargetInfluences[n.currentFrame]=i*a,this.morphTargetInfluences[n.lastFrame]=(1-i)*a):this.morphTargetInfluences[n.currentFrame]=a}}},(Kn.prototype=Object.create(oe.prototype)).constructor=Kn,Kn.prototype.isImmediateRenderObject=!0,(Zn.prototype=Object.create(Mt.prototype)).constructor=Zn,Zn.prototype.update=function(){var e=new c,t=new c,r=new J;return function(){var n=["a","b","c"];this.object.updateMatrixWorld(!0),r.getNormalMatrix(this.object.matrixWorld);var i=this.object.matrixWorld,o=this.geometry.attributes.position,a=this.object.geometry;if(a&&a.isGeometry)for(var s=a.vertices,c=a.faces,u=a=0,h=c.length;ur.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))}}(),hi.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()},hi.prototype.setColor=function(e){this.line.material.color.copy(e),this.cone.material.color.copy(e)},(li.prototype=Object.create(Mt.prototype)).constructor=li;var to=new c,ro=new pi,no=new pi,io=new pi;fi.prototype=Object.create(pn.prototype),fi.prototype.constructor=fi,fi.prototype.getPoint=function(e){var t=this.points;e*=(a=t.length)-(this.closed?0:1),e-=s=Math.floor(e),this.closed?s+=0s&&(s=1),1e-4>a&&(a=s),1e-4>o&&(o=s),ro.initNonuniformCatmullRom(r.x,n.x,i.x,t.x,a,s,o),no.initNonuniformCatmullRom(r.y,n.y,i.y,t.y,a,s,o),io.initNonuniformCatmullRom(r.z,n.z,i.z,t.z,a,s,o)}else"catmullrom"===this.type&&(a=void 0!==this.tension?this.tension:.5,ro.initCatmullRom(r.x,n.x,i.x,t.x,a),no.initCatmullRom(r.y,n.y,i.y,t.y,a),io.initCatmullRom(r.z,n.z,i.z,t.z,a));return new c(ro.calc(e),no.calc(e),io.calc(e))},(di.prototype=Object.create(pn.prototype)).constructor=di,di.prototype.getPoint=function(e){var t=this.v0,r=this.v1,n=this.v2,i=this.v3;return new c(ln(e,t.x,r.x,n.x,i.x),ln(e,t.y,r.y,n.y,i.y),ln(e,t.z,r.z,n.z,i.z))},(mi.prototype=Object.create(pn.prototype)).constructor=mi,mi.prototype.getPoint=function(e){var t=this.v0,r=this.v1,n=this.v2;return new c(hn(e,t.x,r.x,n.x),hn(e,t.y,r.y,n.y),hn(e,t.z,r.z,n.z))},(vi.prototype=Object.create(pn.prototype)).constructor=vi,vi.prototype.getPoint=function(e){if(1===e)return this.v2.clone();var t=new c;return t.subVectors(this.v2,this.v1),t.multiplyScalar(e),t.add(this.v1),t},(gi.prototype=Object.create(mn.prototype)).constructor=gi,pn.create=function(e,t){return console.log("THREE.Curve.create() has been deprecated"),e.prototype=Object.create(pn.prototype),e.prototype.constructor=e,e.prototype.getPoint=t,e},yi.prototype=Object.create(fi.prototype),bi.prototype=Object.create(fi.prototype),_i.prototype=Object.create(fi.prototype),Object.assign(_i.prototype,{initFromArray:function(e){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(e){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(e){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}}),ii.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},ei.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)}}),je.prototype.center=function(e){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(e)},xi.random16=function(){return console.warn("THREE.Math.random16() has been deprecated. Use Math.random() instead."),Math.random()},Object.assign(J.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(e){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBuffer:function(e,t,r){return console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(e)},applyToVector3Array:function(e,t,r){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}}),Object.assign(u.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 c),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(e){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,t,r){return console.warn("THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(e)},applyToVector3Array:function(e,t,r){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)}}),Q.prototype.isIntersectionLine=function(e){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(e)},s.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(Pe.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(_n.prototype,{extrude:function(e){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new Jt(this,e)},makeGeometry:function(e){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new cr(this,e)}}),Object.assign(r.prototype,{fromAttribute:function(e,t,r){return console.error("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,r)}}),Object.assign(c.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.error("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,r)}}),Object.assign(i.prototype,{fromAttribute:function(e,t,r){return console.error("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,r)}}),he.prototype.computeTangents=function(){console.warn("THREE.Geometry: .computeTangents() has been removed.")},Object.assign(oe.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(oe.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(yt.prototype,{objects:{get:function(){return console.warn("THREE.LOD: .objects has been renamed to .levels."),this.levels}}}),Object.defineProperty(bt.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}}),Object.defineProperty(pn.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}}),ce.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(Lr.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(le.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}}}),Object.assign(Se.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(Se.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(kn.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 V}}}),Object.defineProperties(xr.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(X.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(lt.prototype,{getCurrentRenderTarget:function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},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(lt.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(te.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(o.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}}}),On.prototype.load=function(e){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var t=this;return(new Mn).load(e,function(e){t.setBuffer(e)}),this},jn.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},e.WebGLRenderTargetCube=a,e.WebGLRenderTarget=o,e.WebGLRenderer=lt,e.ShaderLib=Ni,e.UniformsLib=Ai,e.UniformsUtils=Ri,e.ShaderChunk=Li,e.FogExp2=pt,e.Fog=ft,e.Scene=dt,e.LensFlare=mt,e.Sprite=gt,e.LOD=yt,e.SkinnedMesh=xt,e.Skeleton=bt,e.Bone=_t,e.Mesh=Re,e.LineSegments=Mt,e.LineLoop=Et,e.Line=St,e.Points=Tt,e.Group=Ot,e.VideoTexture=Pt,e.DataTexture=h,e.CompressedTexture=jt,e.CubeTexture=l,e.CanvasTexture=At,e.DepthTexture=Rt,e.Texture=n,e.CompressedTextureLoader=Or,e.DataTextureLoader=Pr,e.CubeTextureLoader=Ar,e.TextureLoader=Rr,e.ObjectLoader=cn,e.MaterialLoader=nn,e.BufferGeometryLoader=on,e.DefaultLoadingManager=Vi,e.LoadingManager=Cr,e.JSONLoader=sn,e.ImageLoader=jr,e.FontLoader=Sn,e.FileLoader=Tr,e.Loader=an,e.Cache=$i,e.AudioLoader=Mn,e.SpotLightShadow=Dr,e.SpotLight=kr,e.PointLight=Br,e.RectAreaLight=$r,e.HemisphereLight=Nr,e.DirectionalLightShadow=Fr,e.DirectionalLight=Ur,e.AmbientLight=zr,e.LightShadow=Ir,e.Light=Lr,e.StereoCamera=En,e.PerspectiveCamera=ce,e.OrthographicCamera=se,e.CubeCamera=Cn,e.ArrayCamera=st,e.Camera=ae,e.AudioListener=Tn,e.PositionalAudio=Pn,e.AudioContext=Ji,e.AudioAnalyser=jn,e.Audio=On,e.VectorKeyframeTrack=Xr,e.StringKeyframeTrack=Jr,e.QuaternionKeyframeTrack=Kr,e.NumberKeyframeTrack=Zr,e.ColorKeyframeTrack=en,e.BooleanKeyframeTrack=Qr,e.PropertyMixer=An,e.PropertyBinding=Ln,e.KeyframeTrack=tn,e.AnimationUtils=Gi,e.AnimationObjectGroup=Nn,e.AnimationMixer=Dn,e.AnimationClip=rn,e.Uniform=kn,e.InstancedBufferGeometry=Bn,e.BufferGeometry=Se,e.GeometryIdCount=function(){return ki++},e.Geometry=he,e.InterleavedBufferAttribute=Fn,e.InstancedInterleavedBuffer=zn,e.InterleavedBuffer=Un,e.InstancedBufferAttribute=$n,e.Face3=ue,e.Object3D=oe,e.Raycaster=Vn,e.Layers=ie,e.EventDispatcher=t,e.Clock=qn,e.QuaternionLinearInterpolant=Yr,e.LinearInterpolant=Hr,e.DiscreteInterpolant=qr,e.CubicInterpolant=Gr,e.Interpolant=Vr,e.Triangle=Ae,e.Math=xi,e.Spherical=Wn,e.Cylindrical=Xn,e.Plane=Q,e.Frustum=ee,e.Sphere=Z,e.Ray=Pe,e.Matrix4=u,e.Matrix3=J,e.Box3=K,e.Box2=G,e.Line3=je,e.Euler=ne,e.Vector4=i,e.Vector3=c,e.Vector2=r,e.Quaternion=s,e.Color=V,e.MorphBlendMesh=Yn,e.ImmediateRenderObject=Kn,e.VertexNormalsHelper=Zn,e.SpotLightHelper=Jn,e.SkeletonHelper=ei,e.PointLightHelper=ti,e.RectAreaLightHelper=ri,e.HemisphereLightHelper=ni,e.GridHelper=ii,e.PolarGridHelper=oi,e.FaceNormalsHelper=ai,e.DirectionalLightHelper=si,e.CameraHelper=ci,e.BoxHelper=ui,e.ArrowHelper=hi,e.AxisHelper=li,e.CatmullRomCurve3=fi,e.CubicBezierCurve3=di,e.QuadraticBezierCurve3=mi,e.LineCurve3=vi,e.ArcCurve=gi,e.EllipseCurve=mn,e.SplineCurve=vn,e.CubicBezierCurve=gn,e.QuadraticBezierCurve=yn,e.LineCurve=fn,e.Shape=_n,e.Path=bn,e.ShapePath=xn,e.Font=wn,e.CurvePath=dn,e.Curve=pn,e.ShapeUtils=Fi,e.SceneUtils={createMultiMaterialObject:function(e,t){for(var r=new Ot,n=0,i=t.length;n0)for(var r=this.length>>1;r>=0;r--)this._down(r)}function i(e,t){return et?1:0}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>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=0)break;t[e]=c,e=a}t[e]=o}}},{}],182:[function(e,t,r){(function(){function e(e){function t(t,r,n,i,o,a){for(;o>=0&&o0?0:s-1;return arguments.length<3&&(i=r[a?a[c]:c],c+=e),t(r,n,i,a,c,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&&o0?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=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=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;so&&(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;sn||void 0===r)return 1;if(rt?(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=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":">",'"':""","'":"'","`":"`"},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"},z=/\\|'|\r|\n|\u2028|\u2029/g,$=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 V=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),V(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],V(this,r)}}),_.each(["concat","join","slice"],function(e){var t=c[e];_.prototype[e]=function(){return V(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)},{}],183:[function(e,t,r){var n=e("./vdom/create-element.js");t.exports=n},{"./vdom/create-element.js":189}],184:[function(e,t,r){var n=e("./vtree/diff.js");t.exports=n},{"./vtree/diff.js":209}],185:[function(e,t,r){var n=e("./virtual-hyperscript/index.js");t.exports=n},{"./virtual-hyperscript/index.js":196}],186:[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":183,"./diff.js":184,"./h.js":185,"./patch.js":187,"./vnode/vnode.js":205,"./vnode/vtext.js":207}],187:[function(e,t,r){var n=e("./vdom/patch.js");t.exports=n},{"./vdom/patch.js":192}],188:[function(e,t,r){function n(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 i(e,t,r,n,i){var s=r?r[n]:void 0;if("attributes"!==n)if(s&&a(s)&&o(s)!==o(i))e[n]=i;else{a(e[n])||(e[n]={});var c="style"===n?"":void 0;for(var u in i){var h=i[u];e[n][u]=void 0===h?c:h}}else for(var l in i){var p=i[l];void 0===p?e.removeAttribute(l):e.setAttribute(l,p)}}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=function(e,t,r){for(var o in t){var c=t[o];void 0===c?n(e,o,c,r):s(c)?(n(e,o,c,r),c.hook&&c.hook(e,o,r?r[o]:void 0)):a(c)?i(e,0,r,o,c):e[o]=c}}},{"../vnode/is-vhook.js":200,"is-object":20}],189:[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 f=e.children,d=0;d>0,i=e[n],o===a)return i>=t&&i<=r;if(ir))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)):{}}},{}],191:[function(e,t,r){function n(e,t){var r=e.parentNode;return r&&r.removeChild(e),c(e,t),null}function i(e,t,r){var n=r.render(t,r);return e&&e.appendChild(n),e}function o(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}function a(e,t,r,n){var i,o=d(t,r);i=o?r.update(t,e)||e:n.render(r,n);var a=e.parentNode;return a&&i!==e&&a.replaceChild(i,e),o||c(e,t),i}function s(e,t,r,n){var i=e.parentNode,o=n.render(r,n);return i&&o!==e&&i.replaceChild(o,e),o}function c(e,t){"function"==typeof t.destroy&&p(t)&&t.destroy(e)}function u(e,t){for(var r,n,i,o=e.childNodes,a={},s=0;s=c++?null:o[i.to])}function h(e,t){return e&&t&&e!==t&&e.parentNode&&e.parentNode.replaceChild(t,e),t}var l=e("./apply-properties"),p=e("../vnode/is-widget.js"),f=e("../vnode/vpatch.js"),d=e("./update-widget");t.exports=function(e,t,r){var c=e.type,p=e.vNode,d=e.patch;switch(c){case f.REMOVE:return n(t,p);case f.INSERT:return i(t,d,r);case f.VTEXT:return o(t,0,d,r);case f.WIDGET:return a(t,p,d,r);case f.VNODE:return s(t,0,d,r);case f.ORDER:return u(t,d),t;case f.PROPS:return l(t,d,p.properties),t;case f.THUNK:return h(t,r.patch(t,d,r));default:return t}}},{"../vnode/is-widget.js":203,"../vnode/vpatch.js":206,"./apply-properties":188,"./update-widget":193}],192:[function(e,t,r){function n(e,t,r){return r=r||{},r.patch=r.patch&&r.patch!==n?r.patch:i,r.render=r.render||u,r.patch(e,t,r)}function i(e,t,r){var n=a(t);if(0===n.length)return e;var i=h(e,t.a,n),c=e.ownerDocument;r.document||c===s||(r.document=c);for(var u=0;uh?u:h,f=0;f=i.length?t.length:i[c],g=0;g=v&&s.push(y)}for(var b,_=s.slice(),x=0,w=[],S=[],M=0;M>>0,s=a,c=[],u=0;u0){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(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;o2?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":213,"../state":226}],215:[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 r(t)?e instanceof t:t(e)}function r(e){return e===Error||null!=e&&e.prototype instanceof Error}function n(e){return("object"==typeof e||"function"==typeof e)&&null!==e}function i(e){return e}return function(r){function o(e,r){return function(n){return t(n,r)?e.call(this,n):u(n)}}function a(e,t,r,i){var o=e.call(t);return n(o)?s(o,r,i):r(i)}function s(e,t,r){return c(e).then(function(){return t(r)})}var c=r.resolve,u=r.reject,h=r.prototype.catch;return r.prototype.done=function(e,t){this._handler.visit(this._handler.receiver,e,t)},r.prototype.catch=r.prototype.otherwise=function(t){return arguments.length<2?h.call(this,t):"function"!=typeof t?this.ensure(e):h.call(this,o(arguments[1],t))},r.prototype.finally=r.prototype.ensure=function(e){return"function"!=typeof e?this:this.then(function(t){return a(e,this,i,t)},function(t){return a(e,this,u,t)})},r.prototype.else=r.prototype.orElse=function(e){return this.then(void 0,function(){return e})},r.prototype.yield=function(e){return this.then(function(){return e})},r.prototype.tap=function(e){return this.then(e).yield(this)},r}})}(function(e){t.exports=e()})},{}],216:[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()})},{}],217:[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":226}],218:[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()})},{}],219:[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()})},{}],220:[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":212,"../env":223}],221:[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 a(e){var t=f.indexOf(e);t>=0&&(f.splice(t,1),l("Handled previous rejection ["+e.id+"] "+i.formatObject(e.value)))}function s(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){s(o,e)},e.onPotentiallyUnhandledRejectionHandled=function(e){s(a,e)},e.onFatalRejection=function(e){s(t,e.value)};var p=[],f=[],d=null;return e}})}(function(r){t.exports=r(e)})},{"../env":223,"../format":224}],222:[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()})},{}],223:[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}],224:[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()})},{}],225:[function(e,t,r){(function(e){!function(t){"use strict";t(function(){return function(t){function r(e,t){this._handler=e===v?t:n(e)}function n(e){function t(e){r.reject(e)}var r=new y;try{e(function(e){r.resolve(e)},t,function(e){r.notify(e)})}catch(e){t(e)}return r}function i(e){return A(e)?e:new r(v,new b(f(e)))}function o(e){return new r(v,new b(new w(e)))}function a(){return K}function s(e,t){return new t(v,new y(e.receiver,e.join().context))}function c(e,t,n){function i(e,t,r){h[e]=t,0==--c&&r.become(new x(h))}for(var o,a="function"==typeof t?function(r,o,a){a.resolved||u(n,i,r,e(t,o,r),a)}:i,s=new y,c=n.length>>>0,h=new Array(c),l=0;l0?t(r,o.value,i):(i.become(o),h(e,r+1,o))}else t(r,n,i)}function h(e,t,r){for(var n=t;n0||"function"!=typeof t&&i<0)return new this.constructor(v,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 s(this._handler,this.constructor)},r.all=function(e){return c(z,null,e)},r.race=function(e){return"object"!=typeof e||null===e?o(new TypeError("non-iterable passed to race()")):0===e.length?a():1===e.length?i(e[0]):p(e)},r._traverse=function(e,t){return c(D,e,t)},r._visitRemaining=h,v.prototype.when=v.prototype.become=v.prototype.notify=v.prototype.fail=v.prototype._unreport=v.prototype._report=$,v.prototype._state=0,v.prototype.state=function(){return this._state},v.prototype.join=function(){for(var e=this;void 0!==e.handler;)e=e.handler;return e},v.prototype.chain=function(e,t,r,n,i){this.when({resolver:e,receiver:t,fulfilled:r,rejected:n,progress:i})},v.prototype.visit=function(e,t,r,n){this.chain(X,e,t,r,n)},v.prototype.fold=function(e,t,r,n){this.when(new j(e,t,r,n))},U(v,g),g.prototype.become=function(e){e.fail()};var X=new g;U(v,y),y.prototype._state=0,y.prototype.resolve=function(e){this.become(f(e))},y.prototype.reject=function(e){this.resolved||this.become(new w(e))},y.prototype.join=function(){if(!this.resolved)return this;for(var e=this;void 0!==e.handler;)if((e=e.handler)===this)return this.handler=E();return e},y.prototype.run=function(){var e=this.consumers,t=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var r=0;r0?r(n.value):t(n.value)}}})}(function(e){t.exports=e()})},{}],227:[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);t0?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])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":230,"../Geo":233,"rxjs/Observable":29,"virtual-dom":186}],247:[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),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],a=[];if(o>0)for(var s=0,c=r;s-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":230,"../Edge":231,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/from":41,"rxjs/add/observable/merge":44,"rxjs/add/observable/of":45,"rxjs/add/observable/zip":48,"rxjs/add/operator/catch":52,"rxjs/add/operator/combineLatest":53,"rxjs/add/operator/distinct":57,"rxjs/add/operator/expand":60,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/merge":66,"rxjs/add/operator/mergeAll":67,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/skip":76,"rxjs/add/operator/switchMap":80}],248:[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":240,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":74,"rxjs/add/operator/startWith":79}],249:[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={},this._container=t,this._navigator=r;for(var i=0,o=n.values(e.registeredComponents);i0&&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":230,"rxjs/Observable":29,"rxjs/add/observable/fromPromise":43,"rxjs/add/observable/of":45,"rxjs/add/operator/combineLatest":53,"rxjs/add/operator/distinct":57,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/pluck":70,"rxjs/add/operator/scan":74,underscore:182,"virtual-dom":186}],256:[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;r0}).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":230,"rxjs/Observable":29,"rxjs/add/operator/buffer":49,"rxjs/add/operator/debounceTime":55,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/scan":74}],257:[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;rt?e:t},e}();r.DirectionDOMCalculator=i,r.default=i},{"../../Geo":233}],259:[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("../../Geo"),s=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)-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-1&&(c+="Sequence"),this._highlightKey===t&&(c+="Highlight");var u=n.h("div."+r,{},[]);return n.h("div."+c,s,[u])},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),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: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=s,r.default=s},{"../../Component":230,"../../Edge":231,"../../Geo":233,"virtual-dom":186}],260:[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.currentNode$.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;return Math.max(e.image.width,e.image.height)>t?i.Observable.empty():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":230,"../../Render":236,"../../Tiles":239,"../../Utils":240,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/operator/catch":52,"rxjs/add/operator/combineLatest":53,"rxjs/add/operator/debounceTime":55,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/pairwise":69,"rxjs/add/operator/publish":71,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":74,"rxjs/add/operator/skipWhile":78,"rxjs/add/operator/startWith":79,"rxjs/add/operator/switchMap":80,"rxjs/add/operator/takeUntil":82,"rxjs/add/operator/withLatestFrom":85}],261:[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 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}],265:[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;nc.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":230,"../../Render":236,"../../State":237,"../../Utils":240,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/fromEvent":42,"rxjs/add/observable/of":45,"rxjs/add/observable/zip":48,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/first":63,"rxjs/add/operator/map":65,"rxjs/add/operator/merge":66,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/scan":74,"rxjs/add/operator/switchMap":80,"rxjs/add/operator/withLatestFrom":85,"rxjs/add/operator/zip":86}],266:[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={}))},{}],267:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./ICoverConfiguration");r.CoverState=n.CoverState},{"./ICoverConfiguration":266}],268:[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=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,s=n.edges;ai.lat&&p.latLon.lati.lon&&p.latLon.lon50||a.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=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}),f=this._container.mouseService.filtered$(this._name,this._container.mouseService.mouseDragEnd$).map(function(e){return!1}),d=a.Observable.merge(p,f).startWith(!1);this._dragEventSubscription=p.withLatestFrom(l).merge(a.Observable.combineLatest(f,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,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),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),f=p[0],d=p[1],m=f-s[0],v=d-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":230,"../../Geo":233,"../../Graph":234,"../../Render":236,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/map":65,three:180,when:227}],274:[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();r0&&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;i0&&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":230,"rxjs/Observable":29}],280:[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":230,"rxjs/Observable":29}],281:[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}),r=this._container.mouseService.filtered$(this._component.name,this._container.mouseService.mouseDragEnd$).map(function(e){return!1});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),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(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;i0&&(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":230,"rxjs/Observable":29,"rxjs/add/operator/concat":54,"rxjs/add/operator/sample":73,"rxjs/add/operator/takeWhile":83,three:180}],282:[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._spatial=s,a._viewportCoords=c,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:!0,dragPan:!0,scrollZoom:!0,touchZoom:!0}},t.componentName="mouse",t}(i.Component);r.MouseComponent=a,i.ComponentService.register(a),r.default=a},{"../../Component":230,"../../Geo":233,"rxjs/add/observable/merge":44,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/withLatestFrom":85}],283:[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":230}],284:[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],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":230,"rxjs/Observable":29}],285:[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":286,"./popup/Popup":287}],286:[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;t0&&d[0]0&&d[1]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 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]t.height-n&&i.push("top"),e[0]t.width-r/2&&i.push("left"),i},e.prototype._pointFromRectPosition=function(e,t){switch(t){case"bottom":return[(e[0]+e[2])/2,e[3]];case"bottom-left":return[e[0],e[3]];case"bottom-right":return[e[2],e[3]];case"center":return[(e[0]+e[2])/2,(e[1]+e[3])/2];case"left":return[e[0],(e[1]+e[3])/2];case"right":return[e[2],(e[1]+e[3])/2];case"top":return[(e[0]+e[2])/2,e[1]];case"top-left":return[e[0],e[1]];case"top-right":return[e[2],e[1]];default:return[(e[0]+e[2])/2,e[3]]}},e}();r.Popup=s,r.default=s},{"../../../Geo":233,"../../../Utils":240,"../../../Viewer":241,"rxjs/Subject":34}],288:[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/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/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=function(e){function t(t,r,n){var i=e.call(this,t,r,n)||this;return i._nodesAhead=5,i._configurationOperation$=new o.Subject,i._sequenceDOMRenderer=new a.SequenceDOMRenderer(r.element),i._sequenceDOMInteraction=new a.SequenceDOMInteraction,i._containerWidth$=new o.Subject,i._hoveredKeySubject$=new o.Subject,i._hoveredKey$=i._hoveredKeySubject$.share(),i._edgeStatus$=i._navigator.stateService.currentNode$.switchMap(function(e){return e.sequenceEdges$}).publishReplay(1).refCount(),i}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._renderSubscription=i.Observable.combineLatest(this._edgeStatus$,this._configuration$,this._containerWidth$).map(function(t){var r=t[0],n=t[1],i=t[2],o=e._sequenceDOMRenderer.render(r,n,i,e,e._sequenceDOMInteraction,e._navigator);return{name:e._name,vnode:o}}).subscribe(this._container.domRenderer.render$),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._configurationSubscription=this._configurationOperation$.scan(function(e,t){return t(e)},{playing:!1}).finally(function(){null!=e._playingSubscription&&(e._navigator.stateService.cutNodes(),e._stop())}).subscribe(function(){}),this._configuration$.map(function(t){return function(r){return t.playing!==r.playing&&(e._navigator.stateService.cutNodes(),t.playing?e._play():e._stop()),r.playing=t.playing,r}}).subscribe(this._configurationOperation$),this._stopSubscription=this._configuration$.switchMap(function(t){var r=t.playing?e._edgeStatus$:i.Observable.empty(),n=i.Observable.of(t.direction);return i.Observable.combineLatest(r,n)}).map(function(e){var t=e[0],r=e[1];if(!t.cached)return!0;for(var n=0,i=t.edges;n-1?e[0].sequenceEdges$:e[0].spatialEdges$).filter(function(e){return e.cached}).zip(i.Observable.of(e[1]),function(e,t){return[e,t]})}).map(function(e){for(var t=e[1],r=0,n=e[0].edges;rn?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":230,"../../Geo":233,"../../Render":236,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/empty":40,"rxjs/add/observable/from":41,"rxjs/add/observable/merge":44,"rxjs/add/observable/of":45,"rxjs/add/operator/combineLatest":53,"rxjs/add/operator/concat":54,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/do":59,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/merge":66,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":74,"rxjs/add/operator/share":75,"rxjs/add/operator/skip":76,"rxjs/add/operator/skipUntil":77,"rxjs/add/operator/startWith":79,"rxjs/add/operator/switchMap":80,"rxjs/add/operator/take":81,"rxjs/add/operator/takeUntil":82,"rxjs/add/operator/withLatestFrom":85,when:227}],293:[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":230,"rxjs/Subject":34,"rxjs/add/operator/map":65,"rxjs/add/operator/scan":74,"rxjs/add/operator/share":75,"rxjs/add/operator/withLatestFrom":85}],294:[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;s1||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":230}],302:[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;a1||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;c1||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&&et[3])throw new i.GeometryTagError("Basic Y coordinates values can not be inverted.");for(var n=0,o=t;n1)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]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[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]);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,f=1-a,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,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].25||e[1]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=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],f=this._viewportCoords.basicToCanvasSafe(l,p,u,this._transform,t);if(null!=f){var d=function(e){n._interact$.next({offsetX:0,offsetY:0,operation:a.TagOperation.None,tag:n._tag})};if(e.loaded){var m=e.getDOMSprite(this._tag.icon,this._tag.iconFloat),v={onclick:function(e){e.stopPropagation(),n._tag.click$.next(n._tag)},onmousedown:d,style:{transform:S="translate("+Math.round(f[0])+"px,"+Math.round(f[1])+"px)"}};i.push(o.h("div.TagSymbol",v,[m]))}}}else if(null!=this._tag.text&&(s||c)){var g=this._tag.geometry instanceof a.RectGeometry?this._tag.geometry.getVertex2d(3):this._tag.geometry.getPoleOfAccessibility2d(),y=g[0],b=g[1],_=this._viewportCoords.basicToCanvasSafe(y,b,u,this._transform,t);if(null!=_){var x=Math.round(_[0]),w=Math.round(_[1]),S=this._tag.geometry instanceof a.RectGeometry?"translate("+x+"px,"+w+"px)":"translate(-50%, -50%) translate("+x+"px,"+w+"px)",v={onmousedown:d=function(e){n._interact$.next({offsetX:0,offsetY:0,operation:a.TagOperation.None,tag:n._tag})},style:{color:this._colorToCss(this._tag.textColor),transform:S},textContent:this._tag.text};i.push(o.h("span.TagSymbol",v,[]))}}if(!this._tag.editable)return i;var M=this._colorToCss(this._tag.lineColor);if(this._tag.geometry instanceof a.RectGeometry){var E=this._tag.geometry.getCentroid2d(),C=E[0],T=E[1],O=this._viewportCoords.basicToCanvasSafe(C,T,u,this._transform,t);if(null!=O){v={onmousedown:d=this._interact(a.TagOperation.Centroid,"move"),style:{background:M,transform:S="translate(-50%, -50%) translate("+Math.round(O[0])+"px,"+Math.round(O[1])+"px)"}};i.push(o.h("div.TagMover",v,[]))}}for(var P=this._tag.geometry.getVertices2d(),j=0;j=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":230,three:180,"virtual-dom":186}],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("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":230,"../../../Viewer":241,"rxjs/Subject":34}],316:[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":233,"rxjs/Subject":34}],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("../../../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],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:s})},m=Math.round(f[0]),v=Math.round(f[1]);if(null!=s.icon){if(e.loaded){var g=e.getDOMSprite(s.icon,a.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!=s.text){var b="translate(-50%,0%) translate("+m+"px,"+(v+8)+"px)",y={onmousedown:d,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":230,"../../../Viewer":241,"virtual-dom":186}],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=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":230}],319:[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":240,"rxjs/Subject":34,"rxjs/add/operator/map":65,"rxjs/add/operator/share":75}],320:[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},{}],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=function(e){function t(t){var r=e.call(this,null!=t?t:"The argument is not valid.")||this;return r.name="ArgumentMapillaryError",r}return n(t,e),t}(e("./MapillaryError").MapillaryError);r.ArgumentMapillaryError=i,r.default=i},{"./MapillaryError":323}],322:[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){var r=e.call(this,t)||this;return r.name="GraphMapillaryError",r}return n(t,e),t}(e("./MapillaryError").MapillaryError);r.GraphMapillaryError=i,r.default=i},{"./MapillaryError":323}],323:[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){var r=e.call(this,t)||this;return r.name="MapillaryError",r}return n(t,e),t}(Error);r.MapillaryError=i,r.default=i},{}],324:[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:180}],325:[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),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},{}],326:[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(rr||er?e-=n:er?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.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:180}],328:[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]1&&o[1]>1&&(c=i[1]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],f=l[1];if(n[1]<0&&i[1]<0){d=n[1]>i[1]?n[0]:i[0];s=(v=this.basicToCanvas(d,0,e,t,r))[1]>0?v[1]:0}if(i[0]>1&&o[0]>1){m=i[0]1&&a[1]>1){var d=o[1]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.clientXo&&e.clientY"===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 et?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},{}],330:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("rbush"),i=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/map"),e("rxjs/add/operator/publish");var o=e("../Edge"),a=e("../Error"),s=e("../Graph"),c=function(){function e(e,t,r,a,c,u){this._apiV3=e,this._cachedNodes={},this._cachedNodeTiles={},this._cachedSpatialEdges={},this._cachedTiles={},this._cachingFill$={},this._cachingFull$={},this._cachingSequences$={},this._cachingSpatialArea$={},this._cachingTiles$={},this._changed$=new i.Subject,this._defaultAlt=2,this._edgeCalculator=null!=a?a:new o.EdgeCalculator,this._filterCreator=null!=c?c:new s.FilterCreator,this._filter=this._filterCreator.createFilter(void 0),this._graphCalculator=null!=r?r:new s.GraphCalculator,this._configuration=null!=u?u:{maxSequences:50,maxUnusedNodes:100,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.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||null==n.sequence.key)throw new a.GraphMapillaryError("Node has no sequence ("+e+").");var i=new s.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.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=this,c=0,u=n;c-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())}(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 s.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.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.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});i0&&(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);e0},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,"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,"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":65}],336:[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),!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":234,"../Utils":240,buffer:7,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/publishReplay":72}],337:[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:182}],338:[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;cthis._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])-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: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:_};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;sthis._settings.similarMaxDirectionChange)continue;v.distance>this._settings.similarMaxDistance||v.sameUser&&Math.abs(v.capturedAt-e.capturedAt)this._settings.stepMaxDirectionChange)){var d=this._spatial.angleDifference(s.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(!s.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);ythis._settings.turnMaxDistance)){var p=a.direction!==i.EdgeDirection.TurnU&&l.distancethis._settings.turnMinRigDirectionChange,f=this._spatial.angleDifference(a.directionChange,l.directionChange),d=void 0;if(p&&l.directionChange*a.directionChange>0&&Math.abs(l.directionChange)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),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)}dthis._settings.panoMaxDistance))if(w.fullPano){if(w.distancethis._settings.panoMaxStepTurnChange)){a.push([h.direction,w]);break}}}for(var f=Math.PI/this._settings.panoMaxItems,d=[],m=[],v=0;vf)){for(var M=Number.MAX_VALUE,E=0,C=d;Ef)){for(var B=Number.MAX_VALUE,F=0,U=N;F0&&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":236,"rxjs/Subject":34,"rxjs/add/operator/combineLatest":53,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/pluck":70,"rxjs/add/operator/scan":74,underscore:182,"virtual-dom":186}],344:[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},{}],345:[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;nr:e1e-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":233,"../Render":236,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/do":59,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":74,"rxjs/add/operator/skip":76,"rxjs/add/operator/startWith":79,"rxjs/add/operator/withLatestFrom":85}],349:[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},{}],350:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../State"),i=e("../Geo"),o=function(){function e(){this._state=new n.TraversingState({alpha:1,camera:new i.Camera,currentIndex:-1,reference:{alt:0,lat:0,lon:0},trajectory:[],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}();r.StateContext=o},{"../Geo":233,"../State":237}],351:[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(){var e=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).publishReplay(1).refCount(),this._state$=this._context$.map(function(e){return e.state}).distinctUntilChanged().publishReplay(1).refCount(),this._fps$=this._start$.switchMap(function(){return e._frame$.bufferCount(1,e._fpsSampleRate).map(function(e){return(new Date).getTime()}).pairwise().map(function(t){return Math.max(20,1e3*e._fpsSampleRate/(t[1]-t[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 t=this._currentState$.distinctUntilChanged(void 0,function(e){return e.state.currentNode.key}).publishReplay(1).refCount(),r=new i.Subject;t.subscribe(r),this._currentKey$=new n.BehaviorSubject(null),r.map(function(e){return e.state.currentNode.key}).subscribe(this._currentKey$),this._currentNode$=r.map(function(e){return e.state.currentNode}).publishReplay(1).refCount(),this._currentCamera$=r.map(function(e){return e.state.currentCamera}).publishReplay(1).refCount(),this._currentTransform$=r.map(function(e){return e.state.currentTransform}).publishReplay(1).refCount(),this._reference$=r.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$=t.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,t.map(function(e){return!0}).subscribe(this._inMotionOperation$),this._inMotionOperation$.distinctUntilChanged().filter(function(e){return e}).switchMap(function(t){return e._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,t.map(function(e){return!0}).subscribe(this._inTranslationOperation$),this._inTranslationOperation$.distinctUntilChanged().filter(function(e){return e}).switchMap(function(t){return e._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.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":237,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/operator/bufferCount":50,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/do":59,"rxjs/add/operator/filter":61,"rxjs/add/operator/first":63,"rxjs/add/operator/map":65,"rxjs/add/operator/pairwise":69,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":74,"rxjs/add/operator/startWith":79,"rxjs/add/operator/switchMap":80,"rxjs/add/operator/withLatestFrom":85,"rxjs/util/AnimationFrame":161}],352:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("../../Error"),i=e("../../Geo"),o=function(){function e(e){this._spatial=new i.Spatial,this._geoCoords=new i.GeoCoords,this._referenceThreshold=.01,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;t0?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}),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-10&&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._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._currentNode.merged&&this._previousNode.merged&&this._withinOriginalDistance()&&this._sameConnectedComponent())},e.prototype._setReference=function(e){return!(Math.abs(e.latLon.lat-this.reference.lat)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;te?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._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.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._alpha0?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])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":237,"@mapbox/unitbezier":2,three:180}],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("../../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.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":237}],355:[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}],356:[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);et&&(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":233}],358:[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;td?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,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),f=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)});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;rthis._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=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:180}],359:[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},{}],360:[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];rt&&(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":233,"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/fromEvent":42,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/merge":66,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":74,"rxjs/add/operator/switchMap":80,"rxjs/add/operator/withLatestFrom":85}],372:[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("../State"),h=e("../Viewer"),l=function(){function e(e,t,r,i,o,c,l,p){this._apiV3=null!=r?r:new a.APIv3(e,t),this._imageLoadingService=null!=o?o:new s.ImageLoadingService,this._graphService=null!=i?i:new s.GraphService(new s.Graph(this.apiV3),this._imageLoadingService),this._loadingService=null!=c?c:new h.LoadingService,this._loadingName="navigator",this._stateService=null!=l?l:new u.StateService,this._cacheService=null!=p?p:new h.CacheService(this._graphService,this._stateService),this._cacheService.start(),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,"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,"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;r1||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 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:[a,s]}},e}();r.Projection=o,r.default=o},{"../Geo":233,three:180}],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");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.BottomRight:}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 f=1/r.pixelRatio;n*=f,o*=f,s*=f,c*=f,u*=f,h*=f,l*=f,p*=f;var d={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",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 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":241,"rxjs/Subject":34,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":74,"rxjs/add/operator/startWith":79,three:180,"virtual-dom":186}],376:[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._canvasContainer=e,this._domContainer=t,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,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:s,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=a},{"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/timer":47,"rxjs/add/operator/bufferWhen":51,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/merge":66,"rxjs/add/operator/scan":74,"rxjs/add/operator/switchMap":80}],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("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),c._navigator=new a.Navigator(r,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.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":240,"../Viewer":241,"rxjs/Observable":29,when:227}]},{},[235])(235)});