File manager - Edit - /home/contenidosenred/public_html/OD/wp-content/themes/streamit/assets/js/delight.js
Back
/*! * ============================================================================= * Copyright (c) 2010-2019, xymatic GmbH Berlin * * These coded instructions, statements, and computer programs contain * unpublished proprietary information of xymatic GmbH Berlin, and * are copy protected by law. They may not be disclosed to third parties * or copied or duplicated in any form, in whole or in part, without the * specific, prior written permission of xymatic GmbH Berlin. * ============================================================================= */ var DelightVR=function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n=window.webpackJsonpDelightVR;window.webpackJsonpDelightVR=function(r,a){for(var o,s,l=0,u=[];l<r.length;l++)s=r[l],i[s]&&u.push.apply(u,i[s]),i[s]=0;for(o in a)if(Object.prototype.hasOwnProperty.call(a,o)){var d=a[o];switch(typeof d){case"object":e[o]=function(t){var n=t.slice(1),r=t[0];return function(t,i,a){e[r].apply(this,[t,i,a].concat(n))}}(d);break;case"function":e[o]=d;break;default:e[o]=e[d]}}for(n&&n(r,a);u.length;)u.shift().call(null,t)};var r={},i={0:0};return t.e=function(e,n){if(0===i[e])return n.call(null,t);if(void 0!==i[e])i[e].push(n);else{i[e]=[n];var r=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.src=t.p+""+({1:"0",2:"2",3:"1",4:"3"}[e]||e)+".dl8-dac884cdc04ea921934408999668b16b33b8334a.js",r.appendChild(a)}},t.m=e,t.c=r,t.p="//cdn.delight-vr.com/2.0.30/",t(0)}(function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(typeof e[t]){case"function":break;case"object":e[t]=function(t){var n=t.slice(1),r=e[t[0]];return function(e,t,i){r.apply(this,[e,t,i].concat(n))}}(e[t]);break;default:e[t]=e[e[t]]}return e}([function(e,t,n){e.exports=n(549)},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(193),a=r(i);t.default=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,a.default)(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()},,function(e,t,n){e.exports={default:n(572),__esModule:!0}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(557),a=r(i),o=n(301),s=r(o),l=n(51),u=r(l);t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof t?"undefined":(0,u.default)(t)));e.prototype=(0,s.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(a.default?(0,a.default)(e,t):e.__proto__=t)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(51),a=r(i);t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"==typeof t?"undefined":(0,a.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Util=void 0;var i=n(26),a=r(i),o=n(45),s=r(o),l=n(51),u=r(l),d=n(85),c=r(d),f=n(1),h=r(f),_=n(2),A=r(_),m=n(14),p=r(m),g=[],E=[],v=/\.([0-9a-z]+)$/i,b="00000000",S=[0,0,0,0,0,0],T={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array},x=new p.default([[5120,Int8Array],[5121,Uint8Array],[5122,Int16Array],[5123,Uint16Array],[5125,Uint32Array],[5126,Float32Array]]),y=null,C=null,w=null;t.Util=function(){function e(){(0,h.default)(this,e)}return(0,A.default)(e,null,[{key:"performanceNow",value:function(){if(window&&window.performance){if("function"==typeof window.performance.now)return window.performance.now();if("function"==typeof window.performance.webkitNow)return window.performance.webkitNow()}return Date.now()}},{key:"lazySetMapLazyVal",value:function(e,t,n){var r=void 0;return(r=e.get(t))||e.set(t,r=n()),r}},{key:"lazySetMap",value:function(e,t,n){var r=void 0;return(r=e.get(t))||e.set(t,r=n),r}},{key:"base64EncodeUnicode",value:function(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,function(e,t){return String.fromCharCode("0x"+t)}))}},{key:"truncateString",value:function(e,t){return e?e.length>t?e.substr(0,t-3)+"...":e:""}},{key:"measureTextLimit",value:function(e,t,n){var r=void 0;for(r=0;r<t.length;++r){var i=e.getContext("2d").measureText(t.substring(0,r+1)),a=i.width;if(a>n)break}return r}},{key:"cutFloatPrecision",value:function(e,t){return Math.round(10*e*t)/(10*t)}},{key:"enforcePrecision",value:function(e,t){return+e.toFixed(t)}},{key:"stringToTypedArrayCtor",value:function(e){return T[e]}},{key:"componentTypeToTypedArrayCtor",value:function(e){return x.get(e)}},{key:"getGUID",value:function(){return S[0]=Math.floor(268435456*Math.random()).toString(16),S[1]=Math.floor(65536*Math.random()).toString(16),S[2]=(Math.floor(4096*Math.random())+16384).toString(16),S[3]=(Math.floor(16384*Math.random())+32768).toString(16),S[4]=Math.floor(16777216*Math.random()).toString(16),S[5]=Math.floor(16777216*Math.random()).toString(16),S[0]+b.slice(0,8-S[0].length)+"-"+(S[1]+b.slice(0,4-S[1].length))+"-"+(S[2]+b.slice(0,4-S[2].length))+"-"+(S[3]+b.slice(0,4-S[3].length))+"-"+(S[4]+b.slice(0,6-S[4].length)+S[5]+b.slice(0,6-S[5].length))}},{key:"orientationPlanePoint",value:function(e,t){return e.distanceToPoint(t)>=0?1:-1}},{key:"hashString",value:function(e){for(var t=5381,n=0;n<e.length;++n){var r=e.charCodeAt(n);t=(t<<5)+t+r}return t}},{key:"hashFloat32Array",value:function(e){for(var t=new Int32Array(e),n=0,r=t.length-1;r>=0;r--)n=31*(0|n)+t[r];return n^=n>>>20^n>>>12,n^n>>>7^n>>>4|0}},{key:"hashUint32Array",value:function(e){for(var t=new Int32Array(e),n=0,r=t.length-1;r>=0;r--)n=31*(0|n)+t[r];return n^=n>>>20^n>>>12,n^n>>>7^n>>>4|0}},{key:"hashUint16Array",value:function(e){for(var t=new Int16Array(e),n=0,r=t.length-1;r>=0;r--)n=31*(0|n)+t[r];return n^=n>>>20^n>>>12,n^n>>>7^n>>>4|0}},{key:"assert",value:function(e){if(!e){var t="assert failed:";if(arguments.length>1){t+=" (";for(var n=1;n<arguments.length;++n)t+=arguments[n]+" ";t+=")"}throw new Error(t)}}},{key:"resizeArray",value:function(e,t){for(var n=new Array(t),r=0;r<e.length;++r)n[r]=e[r];return n}},{key:"removeValueFromArray",value:function(e,t){var n=e.indexOf(t);return n!==-1?e.splice(n,1):e}},{key:"merge",value:function(e,t){var n=e||{};for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);return n}},{key:"mergeRecursive",value:function(t,n){for(var r in n)if(n.hasOwnProperty(r))try{n[r].constructor===Object?e.mergeRecursive(t[r],n[r]):t[r]=n[r]}catch(e){t[r]=n[r]}return t}},{key:"getTimeStamp",value:function(){return(new Date).getTime()}},{key:"getBasePath",value:function(e){return e.split(/[^\/]*$/)[0]}},{key:"getFileFromPath",value:function(e){return e.split(/\//).pop()}},{key:"getFileFromPathWithoutExt",value:function(t){return e.getFileFromPath(t).replace(e.getExtensionFromPath(t),"")}},{key:"call",value:function(e,t){if("function"==typeof t)return t.apply(e,Array.prototype.slice.call(arguments).slice(2))}},{key:"_arrEqual",value:function(t,n){if(t.length!==n.length)return!1;for(var r=0,i=t.length;r<i;++r)if(!e.deepEqual(t[r],n[r]))return!1;return!0}},{key:"_objEqual",value:function(t,n){if(void 0===t||null===t||void 0===n||null===n)return!1;if(t.prototype!==n.prototype)return!1;var r=(0,c.default)(t),i=(0,c.default)(n);if(r.length!==i.length)return!1;r.sort(),i.sort();for(var a=0,o=r.length;a<o;++a)if(r[a]!==i[a])return!1;for(var s=0,l=r.length;s<l;++s)if(!e.deepEqual(t[r[s]],n[r[s]]))return!1;return!0}},{key:"deepEqual",value:function(t,n){return t===n||(t instanceof Date&&n instanceof Date?t.getTime()===n.getTime():("undefined"==typeof t?"undefined":(0,u.default)(t))===("undefined"==typeof n?"undefined":(0,u.default)(n))&&(Array.isArray(t)&&Array.isArray(n)?e._arrEqual(t,n):"object"===("undefined"==typeof t?"undefined":(0,u.default)(t))&&"object"===("undefined"==typeof n?"undefined":(0,u.default)(n))&&e._objEqual(t,n)))}},{key:"debuggerOnNaN",value:function(e){isNaN(e)}},{key:"getExtensionFromPath",value:function(e,t){var n=e.match(v);return null!==n?t===!0?"."+n[1].toLowerCase():n[1].toLowerCase():null}},{key:"getVideoSupport",value:function(){var e={},t=document.createElement("video");return e.ogg=t.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),e.h264=t.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),void 0===e.h264&&(e.h264=""),e.webm=t.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""),e.vp9=t.canPlayType('video/webm; codecs="vp9"').replace(/^no$/,""),e.hls=t.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(/^no$/,""),e}},{key:"isAndroid",value:function(){return/Android/gi.test(navigator.userAgent)}},{key:"isIOS",value:function(){return/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent)||e.isIPadOS()}},{key:"isIOS10OrHigher",value:function(){var t=navigator.userAgent.match(/(iPhone|iPad); (CPU iPhone|CPU) OS (\d+)_(\d+)(_(\d+))?\s+/);return!(!t||t.length<4)&&(e.isIOS()&&parseInt(t[3],10)>=10)}},{key:"isIOS13OrHigher",value:function(){var t=navigator.userAgent.match(/(iPhone|iPad); (CPU iPhone|CPU) OS (\d+)_(\d+)(_(\d+))?\s+/);return!(!t||t.length<4)&&(e.isIOS()&&parseInt(t[3],10)>=13)}},{key:"isIOS134",value:function(){var t=navigator.userAgent.match(/(iPhone|iPad); (CPU iPhone|CPU) OS (\d+)_(\d+)(_(\d+))?\s+/);return!(!t||t.length<5)&&(e.isIOS()&&13===parseInt(t[3],10)&&4===parseInt(t[4],10))}},{key:"isIOSVersion",value:function(t){var n=navigator.userAgent.match(/(iPhone|iPad); (CPU iPhone|CPU) OS (\d+)_(\d+)(_(\d+))?\s+/);return!(!n||n.length<4)&&(e.isIOS()&&parseInt(n[3],10)===t)}},{key:"isIPadOS",value:function(){return"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1&&!window.MSStream}},{key:"getIOSVersion",value:function(){var e=navigator.userAgent.match(/(iPhone|iPad); (CPU iPhone|CPU) OS (\d+)_(\d+)(_(\d+))?\s+/);return!e||e.length<4?{major:0,minor:0}:{major:parseInt(e[3],10),minor:parseInt(e[4],10)}}},{key:"isFirefoxAndroid",value:function(){return navigator.userAgent.indexOf("Firefox")!==-1&&navigator.userAgent.indexOf("Android")!==-1}},{key:"isFirefoxMac",value:function(){return navigator.userAgent.indexOf("Firefox")!==-1&&navigator.userAgent.indexOf("Macintosh")!==-1}},{key:"getScreenOrientationType",value:function(){var e=screen.msOrientation||screen.mozOrientation||(screen.orientation||{}).type;if(!e)switch(window.orientation){case 0:return"portrait-primary";case 90:return"landscape-primary";case 180:return"portrait-secondary";case-90:return"landscape-secondary"}return e}},{key:"isLandscapeMode",value:function(){var t=e.getScreenOrientationType();return"landscape-secondary"===t||"landscape-primary"===t}},{key:"isMobileBrowser",value:function(){return function(t){return!(!/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t)&&!/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))||!!e.isIPadOS()}(navigator.userAgent||navigator.vendor||window.opera)}},{key:"getUrlVar",value:function(e){var t=void 0;try{t=unescape(location.search.match(new RegExp(e+"=+([^&]*)"))[1])}catch(e){t=void 0}return t}},{key:"isSafari",value:function(){return navigator.userAgent.indexOf("Safari")!==-1&&navigator.userAgent.indexOf("Chrome")===-1}},{key:"isIPad",value:function(){return null!==navigator.userAgent.match(/iPad/i)||e.isIPadOS()}},{key:"isOculusBrowser",value:function(){return navigator.userAgent.toLowerCase().indexOf("oculusbrowser")>-1}},{key:"isGearVrOculusBrowser",value:function(){return e.isOculusBrowser&&navigator.userAgent.indexOf("SM-")>-1}},{key:"isChromeDaydream",value:function(){return e.isChrome()&&navigator.userAgent.toLowerCase().indexOf("ovr")>-1}},{key:"isEdgeMr",value:function(){return e.isEdge()&&navigator.userAgent.toLowerCase().indexOf("mr")>-1}},{key:"isEdgeHTML",value:function(){return e.isEdge()&&e.getEdgeVersion()<=18}},{key:"isFirefoxReality",value:function(){var t=navigator.userAgent.toLowerCase();return t.indexOf("mobile vr")>-1&&e.isFirefox()}},{key:"isChrome",value:function(){var e=window.chrome,t=window.navigator.vendor,n=window.navigator.userAgent.indexOf("OPR")>-1,r=window.navigator.userAgent.indexOf("Edge")>-1;return!(null===e||void 0===e||"Google Inc."!==t||n!==!1||r!==!1)}},{key:"isIE",value:function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");return!!(t>0||navigator.userAgent.match(/Trident.*rv:11\./))}},{key:"isEdge",value:function(){return window.navigator.userAgent.indexOf("Edge")>-1}},{key:"isFirefox",value:function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}},{key:"isSamsungInternet",value:function(){var t=navigator.userAgent.toLowerCase();return t.indexOf("mobile vr")>-1&&t.indexOf("samsungbrowser")>-1&&!e.isOculusBrowser()}},{key:"isFirefoxWindows",value:function(){return e.isFirefox()&&window.navigator.userAgent.indexOf("Windows")!==-1}},{key:"isGearVrHmd",value:function(e){return"Samsung Gear VR SM-R320"===e||"Samsung Gear VR SM-R321"===e||"Samsung Gear VR SM-R322"===e||"Samsung Gear VR SM-R323"===e}},{key:"getEdgeVersion",value:function(){var e=-1,t=window.navigator.userAgent.match(/Edge\/([0-9]+)\./);return t&&2===t.length&&(e=t[1]),parseInt(e,10)}},{key:"getFirefoxVersion",value:function(){var e=-1,t=window.navigator.userAgent.match(/Firefox\/([0-9]+)\./);return t&&2===t.length&&(e=t[1]),parseInt(e,10)}},{key:"getChromeVersion",value:function(){var e=-1,t=window.navigator.userAgent.match(/Chrome\/(.+?)\./);return t&&2===t.length&&(e=t[1]),parseInt(e,10)}},{key:"getChromeRevision",value:function(){var e=null,t=window.navigator.userAgent.match(/Chrome\/([.0-9]*)/);return t&&2===t.length&&(e=t[1]),e}},{key:"isChromeMacOS",value:function(){return e.isChrome()&&window.navigator.userAgent.indexOf("Mac OS X")!==-1}},{key:"isChromeWithoutDeviceMotion",value:function(){if(e.isAndroid()&&e.isChrome()){var t=e.getChromeRevision();return"65.0.3325.109"===t||"65.0.3325.144"===t}return!1}},{key:"isR7",value:function(){return navigator.userAgent.indexOf("R7 Build")!==-1}},{key:"_emptyFn",value:function(){}},{key:"once",value:function(t,n){var r=g.indexOf(t);return r!==-1?e._emptyFn:(g.push(t),void 0!==n&&(E[g.length-1]=setTimeout(function(){g.splice(r,1),E.splice(r,1)},n)),t)}},{key:"find",value:function(e,t){for(var n=0,r=e.legnth;n<r;++n)if(t(e[n],n,r))return e[n]}},{key:"filter",value:function(e,t){for(var n=[],r=0,i=e.legnth;r<i;++r)t(e[r],r,i)&&n.push(e[r]);return n}},{key:"getParam",value:function(e,t,n){return void 0!==e&&void 0!==e[t]?e[t]:n}},{key:"getParamRequired",value:function(t,n,r){var i=e.getParam(t,n,r);if(void 0===i)throw new Error('Param "'+n+'" is a required param.');return i}},{key:"getMipCount",value:function(e){return Math.log(e)/Math.log(2)+1}},{key:"mipOffsetPerFace",value:function(t,n,r,i){for(var a=0,o=0;o<e.getMipCount(t);++o){var s=t>>o;i&&(i[o]={offset:a,size:s,faceSize:s*s*n*r}),a+=s*s*n*r}return a}},{key:"addDebugMsg",value:function(){var e=document.querySelector("#dl8DebugGui");e||(e=document.createElement("div"),e.setAttribute("id","dl8DebugGui"),e.setAttribute("style","font-family: sans-serif; color: yellow; text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; top: 0; left: 0; position: absolute; z-index: 99999;"),document.body.appendChild(e));var t=Array.prototype.slice.call(arguments),n="";try{n=(0,s.default)(t)}catch(e){for(var r=0;r<t.length;++r)for(var i in t[r])n+="|| "+i+": "+String(t[r][i])+" || "}e.insertAdjacentHTML("beforeend","<div>"+n+"</div>")}},{key:"getLeafNodePaths",value:function(e){function t(e,n,r,i){for(var a in e)if(e.hasOwnProperty(a)){var o=e[a];"object"!==("undefined"==typeof o?"undefined":(0,u.default)(o))||Array.isArray(o)?r.push(n+"."+a):t(o,n+(i?"":".")+a,r,!1)}return r}return t(e,"",[],!0)}},{key:"simpleGlobMatch",value:function(e,t){return new RegExp("^"+e.replace("*",".*")+"$").test(t)}},{key:"requestFullscreen",value:function(e,t){try{if(e.requestFullscreen)e.requestFullscreen({vrDisplay:t});else if(e.webkitRequestFullscreen)e.webkitRequestFullscreen({vrDisplay:t});else if(e.mozRequestFullScreen)e.mozRequestFullScreen({vrDisplay:t});else{if(!e.msRequestFullscreen)return!1;e.msRequestFullscreen({vrDisplay:t})}}catch(e){return!1}return!0}},{key:"exitFullscreen",value:function(){try{if(document.exitFullscreen)document.exitFullscreen();else if(document.webkitExitFullscreen)document.webkitExitFullscreen();else if(document.mozCancelFullScreen)document.mozCancelFullScreen();else{if(!document.msExitFullscreen)return!1;document.msExitFullscreen()}}catch(e){return!1}return!0}},{key:"getFullscreenElement",value:function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement}},{key:"getScreenWidth",value:function(){return Math.max(window.screen.width,window.screen.height)*window.devicePixelRatio}},{key:"getScreenHeight",value:function(){return Math.min(window.screen.width,window.screen.height)*window.devicePixelRatio}},{key:"addFullscreenListeners",value:function(t,n,r){e.removeFullscreenListeners(),y=t,C=n,w=r,n&&(document.documentElement.requestFullscreen?t.addEventListener("fullscreenchange",n,!1):document.documentElement.mozRequestFullScreen?document.addEventListener("mozfullscreenchange",n,!1):document.documentElement.msRequestFullscreen?document.addEventListener("MSFullscreenChange",n,!1):document.documentElement.webkitRequestFullScreen&&t.addEventListener("webkitfullscreenchange",n,!1)),r&&(document.documentElement.requestFullscreen?t.addEventListener("fullscreenerror",r,!1):document.documentElement.mozRequestFullScreen?document.addEventListener("mozfullscreenerror",r,!1):document.documentElement.msRequestFullscreen?document.addEventListener("MSFullscreenError",r,!1):document.documentElement.webkitRequestFullScreen&&t.addEventListener("webkitfullscreenerror",r,!1))}},{key:"removeFullscreenListeners",value:function(){if(y){var e=y;if(C){var t=C;document.documentElement.requestFullscreen?e.removeEventListener("fullscreenchange",t,!1):document.documentElement.mozRequestFullScreen?document.removeEventListener("mozfullscreenchange",t,!1):document.documentElement.msRequestFullscreen?e.removeEventListener("MSFullscreenChange",t,!1):document.documentElement.webkitRequestFullScreen&&e.removeEventListener("webkitfullscreenchange",t,!1)}if(w){var n=w;document.documentElement.requestFullscreen?e.removeEventListener("fullscreenerror",n,!1):document.documentElement.mozRequestFullScreen?document.removeEventListener("mozfullscreenerror",n,!1):document.documentElement.msRequestFullscreen?document.removeEventListener("MSFullscreenError",n,!1):document.documentElement.webkitRequestFullScreen&&e.removeEventListener("webkitfullscreenerror",n,!1)}y=null,C=null,w=null}}},{key:"parseUrl",value:function(e){var t=document.createElement("a");return t.href=e,{protocol:t.protocol,hostname:t.hostname,port:t.port,pathname:t.pathname,search:t.search,hash:t.hash,host:t.host}}},{key:"renderImageToCanvas",value:function(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return new a.default(function(a,l){var u=new Image;u.onload=function(){var t=document.createElement("canvas");if(s&&u.width&&u.height){var d=Math.min(1,n/Math.max(u.width,u.height));n=u.width*d,r=u.height*d}t.width=n,t.height=r;var c=t.getContext("2d");if(c.save(),o&&(c.arc(n/2,r/2,n/2,0,2*Math.PI,!0),c.clip()),i)e.drawImageCover(c,u,0,0,n,r);else{var f=u.width||n,h=u.height||r,_=Math.min(n/f,r/h);f*=_,h*=_,c.drawImage(u,.5*(n-f),.5*(r-h),f,h)}c.restore();try{a(s?{image:t.toDataURL(),width:t.width,height:t.height}:t.toDataURL())}catch(e){l(e)}},u.crossOrigin="anonymous",u.onerror=l,u.src=t})}},{key:"measureText",value:function(e){var t=e.text,n=e.fontWeight,r=e.fontSize,i=e.fontFace,a=(e.maxWidth,document.createElement("canvas")),o=a.getContext("2d");return o.font="normal normal "+n+" "+Math.round(r)+"px "+i,o.measureText(t)}},{key:"wrapText",value:function(e,t,n,r,i,a,o){if(!t)return{textWidth:0,textHeight:0,firstLineCharCount:0,lineCount:0};for(var s=1,l=0,u=t.split(" "),d="",c=t.length,f=!1,h=0;h<u.length;h++){var _="\\n"===u[h],A=_?"":u[h],m=void 0;m=h===u.length-1?""+d+A:""+d+A+" ";var p=e.measureText(m),g=p.width;g>i&&h>0||_?(o&&e.fillText(d,n,r),l=Math.max(l,e.measureText(d).width),d=h===u.length-1?""+A:A+" ",r+=a,s++,f||(c=d.length,f=!0)):d=m}return o&&e.fillText(d,n,r),l=Math.max(l,e.measureText(d).width),{textWidth:l,textHeight:r,firstLineCharCount:c,lineCount:s}}},{key:"roundRect",value:function(e,t,n,r,i,a){var o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],s=arguments.length>7&&void 0!==arguments[7]&&arguments[7];a={tl:a,tr:a,br:a,bl:a},e.beginPath(),e.moveTo(t+a.tl,n),e.arcTo(t+r,n,t+r,n+i,a.tl),e.arcTo(t+r,n+i,t,n+i,a.tr),e.arcTo(t,n+i,t,n,a.br),e.arcTo(t,n,t+r,n,a.bl),e.closePath(),o&&e.fill(),s&&e.stroke()}},{key:"drawImageCover",value:function(e,t,n,r,i,a,o,s){2===arguments.length&&(n=r=0,i=e.canvas.width,a=e.canvas.height),o="number"==typeof o?o:.5,s="number"==typeof s?s:.5,o<0&&(o=0),s<0&&(s=0),o>1&&(o=1),s>1&&(s=1);var l=t.width,u=t.height,d=Math.min(i/l,a/u),c=l*d,f=u*d,h=void 0,_=void 0,A=void 0,m=void 0,p=1;c<i&&(p=i/c),Math.abs(p-1)<1e-14&&f<a&&(p=a/f),c*=p,f*=p,A=l/(c/i),m=u/(f/a),h=(l-A)*o,_=(u-m)*s,h<0&&(h=0),_<0&&(_=0),A>l&&(A=l),m>u&&(m=u),e.drawImage(t,h,_,A,m,n,r,i,a)}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(4),a=r(i),o=n(194),s=r(o);t.default=function e(t,n,r){null===t&&(t=Function.prototype);var i=(0,s.default)(t,n);if(void 0===i){var o=(0,a.default)(t);return null===o?void 0:e(o,n,r)}if("value"in i)return i.value;var l=i.get;if(void 0!==l)return l.call(r)}},function(e,t,n){e.exports={default:n(566),__esModule:!0}},function(e,t,n){(function(r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;var a=n(1),o=i(a),s=n(2),l=i(s),u=n(266),d=n(180),c=n(75),f=n(514),h=n(483),_=n(41),A=n(495),m=n(44),p=n(76),g=n(502),E=n(181),v=n(499),b=n(516),S=n(493),T=n(494),x=n(7),y=n(503),C=null,w=!1,M=!1,D="undefined"!=typeof e&&e.exports&&"undefined"!=typeof r&&r.version,P=20,R=!1,I=function(){return"undefined"==typeof navigator?D?"node":"unknown":navigator.appVersion.indexOf("Win")!==-1?"windows":navigator.appVersion.indexOf("Mac")!==-1?"mac":navigator.appVersion.indexOf("X11")!==-1?"unix":navigator.appVersion.indexOf("Linux")!==-1?"linux":void 0}();window.performance||(window.performance=Date);var L=null,O=null,N="anonymous",B=performance.now(),F=60,k=null,U=null,V=null,G=null,H=null,z=null,Q=null,X=null,W=null,j=null,Y=null,q=null,Z=null,K=null,J=null,$=null,ee=!1,te=0,ne=null,re=window.devicePixelRatio||1,ie=!1,ae="Your browser does not support WebGL or it is currently disabled.";t.Context=function(){function e(){(0,o.default)(this,e)}return(0,l.default)(e,null,[{key:"getError",value:function(e){return w||e?L.getError():-1}},{key:"initGL",value:function(e,t,n,r){var i=["webgl","moz-webgl","webkit-webgl","webkit-3d","experimental-webgl"],a=null;try{for(var o=0;o<i.length&&!(a=e.getContext(i[o],{antialias:n,alpha:t,preserveDrawingBuffer:!1,ovr_samples:r,xrCompatible:!!navigator.xr}));++o);}catch(e){throw new Error(ae)}if(!a)throw new Error(ae);L=a}},{key:"initEngine",value:function(t,n,r,i,a,o,s,l,p,C,w){O=n,O.width=o,O.height=s,F=l,ne=new T.Logger,"function"==typeof w&&!function(){var e=document.createElement("canvas");e.setAttribute("id","renderingPerformanceCanvas"),e.setAttribute("style","position: absolute; width: "+o+"px; height: "+s+"px"),e.width=256,e.height=256;var t=document.querySelector("body");if(t){t.appendChild(e);var n=e.getContext("webgl")||e.getContext("experimental-webgl");if(!n)throw new Error(ae);w(n),e.parentNode.removeChild(e)}}(),e.initGL(n,r,i,a),Y=new A.EventEmitter,q=new m.DOMEventDispatcher({domTarget:document}),Z=new m.DOMEventDispatcher({domTarget:O}),K=new m.DOMEventDispatcher({domTarget:window}),k=new f.GLExtensionManager,U=new h.AnimationManager,V=new c.LoadingManager,G=new u.DegradationManager({targetFramerate:P}),x.Util.isMobileBrowser()&&(z=new E.PhoneManager),H=navigator.xr?new y.XRDeviceManager:new g.VRDeviceManager,$=new S.Async,void 0!==C&&"function"==typeof C&&C(),J=new _.Renderer({width:o,height:s,canvas:O}),J.init(),Q=new b.TextureManager,W=new d.QualityManager({performanceTiming:t.performanceTiming,performance:t.performance}),j=new v.FusionPoseSensor,e.startRaf(),window.onresize=e.onResize,e.initComplete=!0}},{key:"startRaf",value:function(){var t=e.requestAnimationFrame();t&&!R?t(e.requestFrameUpdate,O):e.doLoop()}},{key:"doLoop",value:function(){e.updateEngine(1/F),setTimeout(e.doLoop,1e3/F)}},{key:"requestAnimationFrame",value:function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame}},{key:"pauseEngine",value:function(){ee=!0}},{key:"resumeEngine",value:function(){e.engineStopped&&(ee=!1,B=performance.now(),e.startRaf())}},{key:"requestFrameUpdate",value:function(t,n){if(!e.engineStopped){var r=performance.now(),i=Math.min((r-B)/1e3,1);B=r,te=i;var a=!0;(e.deviceManager.state===p.DeviceManager.STATE_ACTIVE||M&&e.deviceManager.hmd)&&n&&e.deviceManager.type===p.DeviceManager.TYPE_WEBXR&&(a=e.deviceManager.updateFrameData(t,n)),(e.deviceManager.state!==p.DeviceManager.STATE_ACTIVE||n||e.deviceManager.type!==p.DeviceManager.TYPE_WEBXR)&&a&&e.updateEngine(i),e.deviceManager.state===p.DeviceManager.STATE_ACTIVE||M&&e.deviceManager.hmd?C=e.deviceManager.hmd.requestAnimationFrame(e.requestFrameUpdate):(e.requestAnimationFrame()(e.requestFrameUpdate,O),C&&(e.deviceManager.hmd.cancelAnimationFrame(C),C=null))}}},{key:"updateEngine",value:function(t){try{Y.syncEvents(),U.update(t),G.update(t),H.update(t),e.onFrame(t)}catch(t){throw ne&&ne.error(e,t.message,t.stack),"function"==typeof e.onNoWebGL&&e.onNoWebGL(t),t}}},{key:"onResize",value:function(){}},{key:"onInit",value:function(){}},{key:"onFrame",value:function(){}},{key:"NO_WEBGL_ERROR_MESSAGE",get:function(){return ae}},{key:"debug",get:function(){return w}},{key:"logger",get:function(){return ne}},{key:"dt",get:function(){return te}},{key:"gl",get:function(){return L}},{key:"canvas",get:function(){return O}},{key:"crossOrigin",get:function(){return N},set:function(e){N=e}},{key:"isNode",get:function(){return D}},{key:"curTime",get:function(){return B}},{key:"targetFramerate",get:function(){return P}},{key:"fixedTimesteps",get:function(){return R}},{key:"fixedTimestepsHz",get:function(){return F}},{key:"glExtensionManager",get:function(){return k}},{key:"animationManager",get:function(){return U}},{key:"loadingManager",get:function(){return V}},{key:"degradationManager",get:function(){return G}},{key:"arManager",get:function(){return X}},{key:"deviceManager",get:function(){return H}},{key:"phoneManager",get:function(){return z}},{key:"textureManager",get:function(){return Q}},{key:"qualityManager",get:function(){return W}},{key:"poseSensor",get:function(){return j}},{key:"deviceOrientation",get:function(){return e.forceVrRaf?e.deviceManager.sensorOrientation:e.poseSensor.getOrientation(!0)}},{key:"eventEmitter",get:function(){return Y}},{key:"documentEventDispatcher",get:function(){return q}},{key:"canvasEventDispatcher",get:function(){return Z}},{key:"windowEventDispatcher",get:function(){return K}},{key:"renderer",get:function(){return J}},{key:"async",get:function(){return $}},{key:"engineStopped",get:function(){return ee}},{key:"system",get:function(){return I}},{key:"devicePixelRatio",get:function(){return re},set:function(e){re=e}},{key:"forceVrRaf",get:function(){return M},set:function(e){M=e}},{key:"useShaderResourceHack",set:function(e){ie=e},get:function(){return ie}}]),e}()}).call(t,n(346))},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8Element=void 0;var i=n(4),a=r(i),o=n(78),s=r(o),l=n(9),u=r(l),d=n(34),c=r(d),f=n(1),h=r(f),_=n(6),A=r(_),m=n(2),p=r(m),g=n(5),E=r(g),v=n(234),b=r(v),S="00000000",T=[0,0,0,0,0,0];t.Dl8Element=function(e){function t(e){var n,r;return(0,h.default)(this,t),e=n=(0,A.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e)),e._contentId=t.getGUID(),e._inited=!1,r=e,(0,A.default)(n,r)}return(0,E.default)(t,e),(0,p.default)(t,[{key:"isDl8Element",get:function(){return!0}}],[{key:"_hashString",value:function(e){for(var t=5381,n=0;n<e.length;++n){var r=e.charCodeAt(n);t=(t<<5)+t+r}return t}},{key:"_registerElement",value:function(e,t){try{window.customElements.define(e,t)}catch(e){}}},{key:"getGUID",value:function(){return T[0]=Math.floor(268435456*Math.random()).toString(16),T[1]=Math.floor(65536*Math.random()).toString(16),T[2]=(Math.floor(4096*Math.random())+16384).toString(16),T[3]=(Math.floor(16384*Math.random())+32768).toString(16),T[4]=Math.floor(16777216*Math.random()).toString(16),T[5]=Math.floor(16777216*Math.random()).toString(16),T[0]+S.slice(0,8-T[0].length)+"-"+(T[1]+S.slice(0,4-T[1].length))+"-"+(T[2]+S.slice(0,4-T[2].length))+"-"+(T[3]+S.slice(0,4-T[3].length))+"-"+(T[4]+S.slice(0,6-T[4].length)+T[5]+S.slice(0,6-T[5].length))}},{key:"_buildAttributeCallbackFunctionWrapper",value:function(e){var t=e.replace(/\(.*\)/,"");return new Function("if (typeof "+t+" !== 'function') { throw new Error('"+t+" is not a function'); }")(),new Function(t+".apply(this, Array.prototype.slice.call(arguments));")}},{key:"_nop",value:function(e){return e}},{key:"validIfNotEmptyString",value:function(){return function(e){return""!==e}}},{key:"validIfInSet",value:function(e){return function(t){return e.has(t)}}},{key:"validIfNumberBetween",value:function(e,t){return function(n){return e<=n&&n<=t}}},{key:"validIfNumberLess",value:function(e){return function(t){return t<e}}},{key:"validIfNumberLessOrEqual",value:function(e){return function(t){return t<=e}}},{key:"validIfNumberGreater",value:function(e){return function(t){return t>e}}},{key:"validIfNumberGreaterOrEqual",value:function(e){return function(t){ return t>=e}}},{key:"validate",value:function(e,t){return function(n){if(!e(n))throw new Error(""+t);return n}}},{key:"parseAttrJSONArray",value:function(e){var t=JSON.parse(e.replace(/'/g,'"'));if(Array.isArray(t))return t;throw new Error('"'+e+'" is not a JSON array')}},{key:"parseAttrJSONArrayOrString",value:function(e){try{return t.parseAttrJSONArray(e)}catch(e){}return e}},{key:"assignChildrenContent",value:function(e,t,n){var r,i=[],a=(0,c.default)(t.children),o=a.filter(function(e){return e.tagName.toLowerCase()===n.toLowerCase()}).map(function(e){return(0,u.default)(e.content,{domElementIdx:a.filter(function(e){return e.isDl8Element}).indexOf(e)})});return o.forEach(function(e){i[e.domElementIdx]=e}),Array.isArray(e.domChildren)&&e.domChildren.forEach(function(e,t){void 0!==e&&(i[t]=e)}),(0,u.default)(e,(r={},(0,s.default)(r,(0,b.default)(n)+"s",o),(0,s.default)(r,"domChildren",i),r))}},{key:"copyAttribute",value:function(e,t,n,r){var i=n.getAttribute(r);null!==i&&e.setAttribute(t,i)}},{key:"copyBooleanAttribute",value:function(e,t,n,r){n.hasAttribute(r)?e.setAttribute(t,t):e.removeAttribute(t)}},{key:"assignContentDefault",value:function(e,n,r,i,a,o){return n.hasAttribute(r)?t._assignContent(e,n,r,n.getAttribute(r),a,o):t._assignContent(e,n,r,i)}},{key:"assignContentBoolean",value:function(e,n,r,i,a){return t._assignContent(e,n,r,n.hasAttribute(r),i,a)}},{key:"assignContentValidator",value:function(e,n,r,i,a){return t.assignContent(e,n,r,t._nop,t.validate(i,a))}},{key:"assignContentDefaultValidator",value:function(e,n,r,i,a,o){return t.assignContentDefault(e,n,r,i,t._nop,t.validate(a,o))}},{key:"assignContent",value:function(e,n,r,i,a){return n.hasAttribute(r)?t._assignContent(e,n,r,n.getAttribute(r),i,a):e}},{key:"assignContentCallback",value:function(e,n,r){return n.hasAttribute(r)?t._assignContent(e,n,r,n.getAttribute(r),t._buildAttributeCallbackFunctionWrapper):e}},{key:"_assignContent",value:function(e,t,n,r,i,a){try{return(0,u.default)(e,(0,s.default)({},(0,b.default)(n),"function"==typeof i?"function"==typeof a?a(i(r)):i(r):r))}catch(e){throw new Error("Error parsing attribute "+n+'="'+r+'" in element "'+t.tagName.toLowerCase()+'": '+e.message)}}},{key:"checkMandatoryAttributes",value:function(e,t){t.forEach(function(t){if(null===e.getAttribute(t))throw new Error('Mandatory attribute "'+t+'" in element "'+e.tagName.toLowerCase()+'" is missing.')})}}]),(0,p.default)(t,[{key:"$init",value:function(){if(!this.hasAttribute("dl8-element-id")){var e=t._hashString((0,c.default)(this.attributes).map(function(e){return"x-dl8-to-be-connected-id"===e.name?"":""+e.name+e.value}).join());this._elementId="dl8-"+e,this.setAttribute("dl8-element-id",this._elementId);var n=document.createElement("div");n.setAttribute("id",this._elementId),this.appendChild(n)}this.setAttribute("dl8-id",this._contentId)}},{key:"connectedCallback",value:function(){var e=this;this._inited||(this.$init(),this._inited=!0),this._waitingForGuids=[];var n=this.$getSupportedChildrenTags();if(0===n.length)return void this.$allChildrenConnected();var r=", "+this.tagName+'[dl8-id="'+this._contentId+'"] > ',i=this.tagName+'[dl8-id="'+this._contentId+'"] > '+n.join(r),a=(0,c.default)(this.parentElement.querySelectorAll(i)).filter(function(e){return!e.getAttribute("dl8-id")});a.length>0?a.forEach(function(n){var r=t.getGUID();n.setAttribute("x-dl8-to-be-connected-id",r),e._waitingForGuids.push(r)}):this.$allChildrenConnected()}},{key:"onChildConnected",value:function(e){this._waitingForGuids=this._waitingForGuids.filter(function(t){return t!==e}),0===this._waitingForGuids.length&&this.$allChildrenConnected()}},{key:"$getSupportedChildrenTags",value:function(){return[]}},{key:"$allChildrenConnected",value:function(){this.parentElement.isDl8Element&&(this.parentElement.onChildConnected(this.getAttribute("x-dl8-to-be-connected-id")),this.removeAttribute("x-dl8-to-be-connected-id"))}},{key:"$createContent",value:function(){var e=this,n={};return(0,c.default)(this.attributes).filter(function(e){return e.name.startsWith("x-dl8-attr-")}).forEach(function(r){n=t.assignContent(n,e,r.name,t.parseAttrJSONArrayOrString)}),(0,u.default)(n,{domChildren:[],domElement:this,id:this._contentId})}},{key:"contentId",get:function(){return this._contentId}},{key:"content",get:function(){return this.$createContent()}}]),t}(HTMLElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Vector3=void 0;var i=n(14),a=r(i),o=n(62),s=r(o),l=n(51),u=r(l),d=n(4),c=r(d),f=n(1),h=r(f),_=n(6),A=r(_),m=n(2),p=r(m),g=n(5),E=r(g),v=n(17),b=n(18),S=t.Vector3=function(e){function t(){(0,h.default)(this,t);var e=(0,A.default)(this,(t.__proto__||(0,c.default)(t)).call(this));return 1===arguments.length?"object"===(0,u.default)(arguments[0])?e.load(arguments[0]):"number"==typeof arguments[0]?e.x=e.y=e.z=arguments[0]:e.zero():3===arguments.length?(e.x=arguments[0],e.y=arguments[1],e.z=arguments[2]):e.zero(),e}return(0,E.default)(t,e),(0,p.default)(t,[{key:"$serialize",value:function(){return{name:"Vector3",params:[this.x,this.y,this.z]}}}],[{key:"tmp",value:function(e){var n=void 0;return(n=t._pool.get(e))||t._pool.set(e,n=new t),n}},{key:"slerp",value:function(e,n,r,i){var a=e.dot(n),o=Math.acos(a)*r,s=t.tmp(t.INTERNAL_TEMP_VEC_SYMBOL0).copyFrom(e).mult(a).neg().add(n).normalize().mult(Math.sin(o));return s.add(t.tmp(t.INTERNAL_TEMP_VEC_SYMBOL1).copyFrom(e).mult(Math.cos(o))),i.copyFrom(s)}},{key:"add",value:function(e,n){var r=new t;return r.copyFrom(e),r.add(n),r}},{key:"addOut",value:function(e,t,n){return n.copyFrom(e),n.add(t),n}},{key:"dot",value:function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z}},{key:"cross",value:function(e,n){var r=new t;return r.copyFrom(e),r.cross(n),r}},{key:"crossOut",value:function(e,t,n){return n.copyFrom(e),n.cross(t),n}},{key:"sub",value:function(e,n){var r=new t;return r.copyFrom(e),r.sub(n),r}},{key:"subOut",value:function(e,t,n){return n.copyFrom(e),n.sub(t),n}},{key:"mult",value:function(e,n){var r=new t;return r.copyFrom(e),r.mult(n),r}},{key:"multOut",value:function(e,t,n){return n.copyFrom(e),n.mult(t),n}},{key:"div",value:function(e,n){var r=new t;return r.copyFrom(e),r.div(n),r}},{key:"divOut",value:function(e,t,n){return n.copyFrom(e),n.div(t),n}},{key:"reflect",value:function(e,n){return t.sub(e,t.mult(n,2*e.dot(n)))}},{key:"project",value:function(e,t,n){return n.copyFrom(n.copyFrom(t).mult(e.dot(n.copyFrom(t).normalize())))}},{key:"lerp",value:function(e,n,r,i){return i=i||new t,r=v.MathUtil.clamp(r,0,1),i.x=e.x+(n.x-e.x)*r,i.y=e.y+(n.y-e.y)*r,i.z=e.z+(n.z-e.z)*r,i}},{key:"toLinearSpace",value:function(e,n){return n=n||new t,n.x=Math.pow(e.x,2.2),n.y=Math.pow(e.y,2.2),n.z=Math.pow(e.z,2.2),n}},{key:"fromLinearSpace",value:function(e,n){n=n||new t;var r=1/2.2;return n.x=Math.pow(e.x,r),n.y=Math.pow(e.y,r),n.z=Math.pow(e.z,r),n}},{key:"toLookRotationWithHint",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t.Y_AXIS,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{forward:new t,right:new t,up:new t};for(r.forward.copyFrom(e).normalize(),t.crossOut(r.forward,n,r.right).normalize();0===r.right.magnitude();)r.forward.x+=1e-4,t.crossOut(r.forward,n,r.right).normalize();return t.crossOut(r.right,r.forward,r.up).normalize(),r}}]),(0,p.default)(t,[{key:"load",value:function(){if(1!==arguments.length||"object"!==(0,u.default)(arguments[0]))throw Error("trying to instanciate Vector3 with incompatible type");var e=arguments[0];return"length"in e&&3===e.length?(this.x=e[0],this.y=e[1],this.z=e[2]):arguments[0]instanceof t&&(this.x=e.x,this.y=e.y,this.z=e.z),this}},{key:"copyFrom",value:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}},{key:"copyFromArray",value:function(e){return this.x=e[0],this.y=e[1],this.z=e[2],this}},{key:"zero",value:function(){return this.x=0,this.y=0,this.z=0,this}},{key:"dot",value:function(e){return this.x*e.x+this.y*e.y+this.z*e.z}},{key:"mult",value:function(e){return this.x*=e,this.y*=e,this.z*=e,this}},{key:"multVector",value:function(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}},{key:"div",value:function(e){return this.x/=e,this.y/=e,this.z/=e,this}},{key:"add",value:function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}},{key:"addScalar",value:function(e){return this.x+=e,this.y+=e,this.z+=e,this}},{key:"sub",value:function(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}},{key:"subScalar",value:function(e){return this.x-=e,this.y-=e,this.z-=e,this}},{key:"normalize",value:function(){var e=this.magnitude(),t=void 0;return t=0===e?0:1/e,this.x*=t,this.y*=t,this.z*=t,this}},{key:"neg",value:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}},{key:"cross",value:function(e){var t=this.y*e.z-this.z*e.y,n=this.z*e.x-this.x*e.z,r=this.x*e.y-this.y*e.x;return this.x=t,this.y=n,this.z=r,this}},{key:"transformForwardUpper3x3",value:function(e){var t=e._storage[0]*this.x+e._storage[4]*this.y+e._storage[8]*this.z,n=e._storage[1]*this.x+e._storage[5]*this.y+e._storage[9]*this.z,r=e._storage[2]*this.x+e._storage[6]*this.y+e._storage[10]*this.z;return this.x=t,this.y=n,this.z=r,this}},{key:"mult4x4",value:function(e){var t=e._storage[0]*this.x+e._storage[4]*this.y+e._storage[8]*this.z+e._storage[12],n=e._storage[1]*this.x+e._storage[5]*this.y+e._storage[9]*this.z+e._storage[13],r=e._storage[2]*this.x+e._storage[6]*this.y+e._storage[10]*this.z+e._storage[14],i=e._storage[3]*this.x+e._storage[7]*this.y+e._storage[11]*this.z+e._storage[15];return this.x=t/i,this.y=n/i,this.z=r/i,this}},{key:"transformForward",value:function(e){var t=e._storage[0]*this.x+e._storage[4]*this.y+e._storage[8]*this.z,n=e._storage[1]*this.x+e._storage[5]*this.y+e._storage[9]*this.z,r=e._storage[2]*this.x+e._storage[6]*this.y+e._storage[10]*this.z;return t+=e._storage[12],n+=e._storage[13],r+=e._storage[14],this.x=t,this.y=n,this.z=r,this}},{key:"set",value:function(e,t,n){return this.x=e,this.y=t,this.z=n,this}},{key:"equals",value:function(e){return this.x===e.x&&this.y===e.y&&this.z===e.z}},{key:"almostEquals",value:function(e,t){return v.MathUtil.almostEquals(this.x,e.x,t)&&v.MathUtil.almostEquals(this.y,e.y,t)&&v.MathUtil.almostEquals(this.z,e.z,t)}},{key:"reflect",value:function(e){return this.sub(t.mult(e,2*this.dot(e)))}},{key:"project",value:function(e){return this.copyFrom(e.mult(this.dot(e.normalize())))}},{key:"magnitudeSquared",value:function(){return this.x*this.x+this.y*this.y+this.z*this.z}},{key:"magnitude",value:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}},{key:"setMagnitude",value:function(e){var t=this.magnitude();return 0!==t&&e!==t&&this.mult(e/t),this}},{key:"distanceSquared",value:function(e){return(e.x-this.x)*(e.x-this.x)+(e.y-this.y)*(e.y-this.y)+(e.z-this.z)*(e.z-this.z)}},{key:"distance",value:function(e){return Math.sqrt((e.x-this.x)*(e.x-this.x)+(e.y-this.y)*(e.y-this.y)+(e.z-this.z)*(e.z-this.z))}},{key:"multQuaternion",value:function(e){var t=this.x,n=this.y,r=this.z,i=e.x,a=e.y,o=e.z,s=e.w,l=s*t+a*r-o*n,u=s*n+o*t-i*r,d=s*r+i*n-a*t,c=-i*t-a*n-o*r;return this.x=l*s+c*-i+u*-o-d*-a,this.y=u*s+c*-a+d*-i-l*-o,this.z=d*s+c*-o+l*-a-u*-i,this}},{key:"clamp",value:function(e,t){return this.x=v.MathUtil.clamp(this.x,e.x,t.x),this.y=v.MathUtil.clamp(this.y,e.y,t.y),this.z=v.MathUtil.clamp(this.z,e.z,t.z),this}},{key:"max",value:function(e){return this.x=Math.max(e.x,this.x),this.y=Math.max(e.y,this.y),this.z=Math.max(e.z,this.z),this}},{key:"min",value:function(e){return this.x=Math.min(e.x,this.x),this.y=Math.min(e.y,this.y),this.z=Math.min(e.z,this.z),this}},{key:"get",value:function(e){return 0===e?this.x:1===e?this.y:this.z}},{key:"getAsArray",value:function(){return[this.x,this.y,this.z]}},{key:"getAsFloat32Array",value:function(){return new Float32Array(this.getAsArray())}},{key:"toString",value:function(){return"("+this.x+", "+this.y+", "+this.z+")"}}]),t}(b.Serializable);S.ZERO=new S(0,0,0),S.ONE=new S(1,1,1),S.NEGATIVE_INFINITY=new S(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),S.POSITIVE_INFINITY=new S(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),S.X_AXIS=new S(1,0,0),S.Y_AXIS=new S(0,1,0),S.Z_AXIS=new S(0,0,1),S.NEG_X_AXIS=new S(-1,0,0),S.NEG_Y_AXIS=new S(0,-1,0),S.NEG_Z_AXIS=new S(0,0,-1),S.INTERNAL_TEMP_VEC_SYMBOL0=(0,s.default)("INTERNAL_TEMP_VEC_SYMBOL0"),S.INTERNAL_TEMP_VEC_SYMBOL1=(0,s.default)("INTERNAL_TEMP_VEC_SYMBOL1"),S._pool=new a.default},,function(e,t,n){e.exports={default:n(565),__esModule:!0}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SIMPLE_TRACKING_CONTEXT_SHOWROOM=t.SIMPLE_TRACKING_CONTEXT_GLOBAL=t.SIMPLE_TRACKING_MODULE_TOUR=t.SIMPLE_TRACKING_MODULE_VIDEO=t.SIMPLE_TRACKING_MODULE_LIVE=t.SIMPLE_TRACKING_MODULE_CINEMA=t.SIMPLE_TRACKING_MODULE_SHOWROOM=t.DEFAULT_LANGUAGE=t.SUPPORTED_LANGUAGES=t.VR_HUD_RIGHT_SKYSCRAPER_160X600=t.VR_HUD_LEFT_SKYSCRAPER_160X600=t.VR_HUD_BOTTOM_BANNER_468X60=t.VR_HUD_TOP_BANNER_468X60=t.MOBILE_PAUSE_CENTRE_RECTANGLE_300X250=t.DESKTOP_PAUSE_CENTRE_RECTANGLE_300X250=t.AFFILIATE_SPOT_NO_VR_SCREEN=t.AFFILIATE_SPOT_PAUSE=t.AFFILIATE_SPOT_WIZARD=t.SECURITY_ERROR=t.HUD_AUTO_HIDE_DELAY=t.PROBE_TRANSITION_NONE=t.PROBE_TRANSITION_CROSSFADE_SLOW=t.PROBE_TRANSITION_CROSSFADE=t.PROBE_TRANSITION_BLINK=t.HUB_CONTENT_DYNAMIC=t.HUB_CONTENT_STATIC=t.SCROLL_MODE_HORIZONTAL=t.SCROLL_MODE_VERTICAL=t.SPATIAL_AUDIO_FORMATS=t.AUDIO_FORMAT_8BALL_4CHANNELS=t.AUDIO_FORMAT_8BALL=t.AUDIO_FORMAT_AMBIX=t.AUDIO_FORMAT_STANDARD=t.CONTENT_MODE_LENS_BLUR_PHOTO=t.CONTENT_MODE_CARDBOARD_PHOTO=t.CONTENT_MODE_MONO_180=t.CONTENT_MODE_MONO_360=t.CONTENT_MODE_STEREO_MESH=t.CONTENT_MODE_STEREO_FISHEYE_LR=t.CONTENT_MODE_STEREO_180_TB_SPHERICAL=t.CONTENT_MODE_STEREO_180_LR_SPHERICAL=t.CONTENT_MODE_STEREO_180_LR=t.CONTENT_MODE_STEREO_180_TB=t.CONTENT_MODE_STEREO_360_LR=t.CONTENT_MODE_STEREO_360_TB=t.CONTENT_MODE_STEREO_FLAT_TB_SQUARE=t.CONTENT_MODE_STEREO_FLAT_LR_SQUARE=t.CONTENT_MODE_STEREO_FLAT_TB=t.CONTENT_MODE_STEREO_FLAT_LR=t.CONTENT_MODE_MONO_FLAT=t.CONTENT_TYPE_EXTERNAL=t.CONTENT_TYPE_HUB=t.CONTENT_TYPE_MODEL=t.CONTENT_TYPE_TOUR=t.CONTENT_TYPE_NAVIGATION=t.CONTENT_TYPE_IBR=t.CONTENT_TYPE_IMAGE=t.CONTENT_TYPE_VIDEO=t.VR_CONTROLS=t.MAGIC_WINDOW_CONTROLS=t.DRAG_CONTROLS=void 0;var i=n(46),a=r(i),o=(t.DRAG_CONTROLS="DRAG_CONTROLS",t.MAGIC_WINDOW_CONTROLS="MAGIC_WINDOW_CONTROLS",t.VR_CONTROLS="VR_CONTROLS",t.CONTENT_TYPE_VIDEO="CONTENT_TYPE_VIDEO",t.CONTENT_TYPE_IMAGE="CONTENT_TYPE_IMAGE",t.CONTENT_TYPE_IBR="CONTENT_TYPE_IBR",t.CONTENT_TYPE_NAVIGATION="CONTENT_TYPE_NAVIGATION",t.CONTENT_TYPE_TOUR="CONTENT_TYPE_TOUR",t.CONTENT_TYPE_MODEL="CONTENT_TYPE_MODEL",t.CONTENT_TYPE_HUB="CONTENT_TYPE_HUB",t.CONTENT_TYPE_EXTERNAL="CONTENT_TYPE_EXTERNAL",t.CONTENT_MODE_MONO_FLAT="MONO_FLAT",t.CONTENT_MODE_STEREO_FLAT_LR="STEREO_FLAT_LR",t.CONTENT_MODE_STEREO_FLAT_TB="STEREO_FLAT_TB",t.CONTENT_MODE_STEREO_FLAT_LR_SQUARE="STEREO_FLAT_LR_SQUARE",t.CONTENT_MODE_STEREO_FLAT_TB_SQUARE="STEREO_FLAT_TB_SQUARE",t.CONTENT_MODE_STEREO_360_TB="STEREO_360_TB",t.CONTENT_MODE_STEREO_360_LR="STEREO_360_LR",t.CONTENT_MODE_STEREO_180_TB="STEREO_180_TB",t.CONTENT_MODE_STEREO_180_LR="STEREO_180_LR",t.CONTENT_MODE_STEREO_180_LR_SPHERICAL="STEREO_180_LR_SPHERICAL",t.CONTENT_MODE_STEREO_180_TB_SPHERICAL="STEREO_180_TB_SPHERICAL",t.CONTENT_MODE_STEREO_FISHEYE_LR="STEREO_FISHEYE_LR",t.CONTENT_MODE_STEREO_MESH="STEREO_MESH",t.CONTENT_MODE_MONO_360="MONO_360",t.CONTENT_MODE_MONO_180="MONO_180",t.CONTENT_MODE_CARDBOARD_PHOTO="CARDBOARD_PHOTO",t.CONTENT_MODE_LENS_BLUR_PHOTO="LENS_BLUR_PHOTO",t.AUDIO_FORMAT_STANDARD="standard",t.AUDIO_FORMAT_AMBIX="ambix"),s=t.AUDIO_FORMAT_8BALL="8ball",l=t.AUDIO_FORMAT_8BALL_4CHANNELS="8ball-4channels";t.SPATIAL_AUDIO_FORMATS=new a.default([o,s,l]),t.SCROLL_MODE_VERTICAL="vertical",t.SCROLL_MODE_HORIZONTAL="horizontal",t.HUB_CONTENT_STATIC="static",t.HUB_CONTENT_DYNAMIC="dynamic",t.PROBE_TRANSITION_BLINK="TRANSITION_BLINK",t.PROBE_TRANSITION_CROSSFADE="TRANSITION_CROSSFADE",t.PROBE_TRANSITION_CROSSFADE_SLOW="TRANSITION_CROSSFADE_SLOW",t.PROBE_TRANSITION_NONE="TRANSITION_NONE",t.HUD_AUTO_HIDE_DELAY=3e3,t.SECURITY_ERROR="SECURITY_ERROR",t.AFFILIATE_SPOT_WIZARD="WIZARD",t.AFFILIATE_SPOT_PAUSE="PAUSE",t.AFFILIATE_SPOT_NO_VR_SCREEN="NO_VR_SCREEN",t.DESKTOP_PAUSE_CENTRE_RECTANGLE_300X250="DESKTOP_PAUSE_CENTRE_RECTANGLE_300X250",t.MOBILE_PAUSE_CENTRE_RECTANGLE_300X250="MOBILE_PAUSE_CENTRE_RECTANGLE_300X250",t.VR_HUD_TOP_BANNER_468X60="VR_HUD_TOP_BANNER_468X60",t.VR_HUD_BOTTOM_BANNER_468X60="VR_HUD_BOTTOM_BANNER_468X60",t.VR_HUD_LEFT_SKYSCRAPER_160X600="VR_HUD_LEFT_SKYSCRAPER_160X600",t.VR_HUD_RIGHT_SKYSCRAPER_160X600="VR_HUD_RIGHT_SKYSCRAPER_160X600",t.SUPPORTED_LANGUAGES=["en","de"],t.DEFAULT_LANGUAGE="en",t.SIMPLE_TRACKING_MODULE_SHOWROOM="showroom",t.SIMPLE_TRACKING_MODULE_CINEMA="cinema",t.SIMPLE_TRACKING_MODULE_LIVE="live",t.SIMPLE_TRACKING_MODULE_VIDEO="video",t.SIMPLE_TRACKING_MODULE_TOUR="tour",t.SIMPLE_TRACKING_CONTEXT_GLOBAL="global",t.SIMPLE_TRACKING_CONTEXT_SHOWROOM="showroom"},function(e,t){var n=e.exports={version:"2.6.11"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.MathUtil=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(7),u=n(12),d=n(112),c=1e-6,f=1-c;t.MathUtil=function(){function e(){(0,a.default)(this,e)}return(0,s.default)(e,null,[{key:"randRange",value:function(e,t){var n=Math.random();return(1-n)*e+n*t}},{key:"degToRad",value:function(e){return e*Math.PI/180}},{key:"radToDeg",value:function(e){return 180*e/Math.PI}},{key:"wrapRad",value:function(e){var t=e%(2*Math.PI);return t<0?2*Math.PI-t:t}},{key:"interpolate",value:function(e,t,n,r){var i=t(e,0,1,1);return(1-i)*n+i*r}},{key:"interpolateLinear",value:function(e,t,n){return(1-e)*t+e*n}},{key:"sigmoid",value:function(e){return 1/(1+Math.exp(-e))}},{key:"clamp",value:function(e,t,n){return Math.min(Math.max(e,t),n)}},{key:"saturate",value:function(e){return Math.min(Math.max(e,0),1)}},{key:"getReflectanceAtNormalIncidence",value:function(e){var t=(1-e)/(1+e);return t*t}},{key:"getRefractiveIndexFromReflectanceAtNormalIncidence",value:function(e){var t=Math.sqrt(e);return(t+1)/(1-t)}},{key:"almostEquals",value:function(e,t,n){return e>=t-(n||c)&&e<=t+(n||c)}},{key:"radicalInverse",value:function(e,t){for(var n=0,r=1/t,i=r;e>0;){var a=e%t;n+=a*i,e=Math.floor(e/t),i*=r}return n}},{key:"genHalton2DUnitSquare",value:function(t){for(var n=[],r=0;r<t;r++){var i=e.radicalInverse(r,2);i<e.ZERO_TOLERANCE&&(i=e.ZERO_TOLERANCE),i>e.ONE_MINUS_ZERO_TOLERANCE&&(i=e.ONE_MINUS_ZERO_TOLERANCE);var a=e.radicalInverse(r,3);a<e.ZERO_TOLERANCE&&(a=e.ZERO_TOLERANCE),a>e.ONE_MINUS_ZERO_TOLERANCE&&(a=e.ONE_MINUS_ZERO_TOLERANCE),n.push({x:i,y:a})}return n}},{key:"genHaltonSequence",value:function(t){for(var n=[],r=[],i=[],a=[],o=0;o<t;++o){n[o]=e.radicalInverse(o,2),n[o]<e.ZERO_TOLERANCE&&(n[o]=e.ZERO_TOLERANCE),n[o]>e.ONE_MINUS_ZERO_TOLERANCE&&(n[o]=e.ONE_MINUS_ZERO_TOLERANCE),r[o]=Math.log(n[o]);var s=2*Math.PI*e.radicalInverse(o,3);i[o]=Math.cos(s),a[o]=Math.sin(s)}return{rnum:n,rlog:r,rcos:i,rsin:a}}},{key:"genHammersleySequence",value:function(t){for(var n=[],r=[],i=[],a=[],o=0;o<t;o++){n[o]=o/t,n[o]<e.ZERO_TOLERANCE&&(n[o]=e.ZERO_TOLERANCE),n[o]>e.ONE_MINUS_ZERO_TOLERANCE&&(n[o]=e.ONE_MINUS_ZERO_TOLERANCE),r[o]=Math.log(n[o]);var s=2*Math.PI*e.radicalInverse(o,2);i[o]=Math.cos(s),a[o]=Math.sin(s)}return{rnum:n,rlog:r,rcos:i,rsin:a}}},{key:"genHammersleySequence2D",value:function(t){for(var n=[],r=[],i=0;i<t;i++){n[i]=i/t,n[i]<e.ZERO_TOLERANCE&&(n[i]=e.ZERO_TOLERANCE),n[i]>e.ONE_MINUS_ZERO_TOLERANCE&&(n[i]=e.ONE_MINUS_ZERO_TOLERANCE);var a=2*Math.PI*e.radicalInverse(i,2);r[i]=[Math.cos(a),Math.sin(a)]}return r}},{key:"genWardSamples",value:function(t,n,r){for(var i=e.genHammersleySequence(t),a=[],o=[],s=[],l=0;l<t;l++){var d=i.rcos[l]*n,c=i.rsin[l]*r,f=1/Math.sqrt(d*d+c*c);d*=f,c*=f,f=-i.rlog[l]/(d*d/n/n+c*c/r/r);var h=Math.sqrt(1/(f+1)),_=Math.sqrt(f)*h;a[l]=new u.Vector3(_*d,_*c,h);var A=a[l].x*a[l].x/n/n+a[l].y*a[l].y/r/r;A/=h*h;var m=1/(4*Math.PI*n*r),p=m/(h*h*h)*Math.exp(-A);o[l]=p,s[l]=h*h*h}return{randSamples:a,randPdfs:o,randScales:s}}},{key:"generatePoissonDiscSamples",value:function(){return[[.2069841,.2245269],[.525808,-.2310817],[.1383943,.9056122],[.6633009,.5129843],[-.4002792,.3727058],[.07912822,-.6512921],[-.7726067,-.5151217],[-.3843193,-.1494132],[-.9107782,.2500633],[.6940153,-.7098927],[-.1964669,-.379389],[-.4769286,.1840863],[-.247328,-.8798459],[.4206541,-.714772],[.5829348,-.09794202],[.3691838,.4140642]]}},{key:"generatePointsOnADisc",value:function(t,n){for(var r=[],i=0;i<t;++i){var a=n*Math.sqrt(e.randRange(0,1)),o=2*Math.PI*e.randRange(0,1);r[i]=[a*Math.cos(o),a*Math.sin(o)]}return r}},{key:"isPowerOfTwo",value:function(e){return 0!==e&&0===(e&e-1)}},{key:"getPreviousPowerOfTwo",value:function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e-(e>>1)}},{key:"getNextPowerOfTwo",value:function(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e++,e}},{key:"fract",value:function(e){return e%1}},{key:"modf",value:function(e,t){l.Util.assert(0!==t);var n=e/t;return n=Math.floor(n),n*=t,e-n}},{key:"sign",value:function(e){return 0===e?1:Math.abs(e)/e}},{key:"fromOrbitEllipse",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new u.Vector3;return n.x=t.x*Math.sin(e.x)*Math.sin(e.y),n.y=t.y*Math.cos(e.y),n.z=t.z*Math.sin(e.y)*Math.cos(e.x),n}},{key:"fromOrbit",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new u.Vector3;return t.x=e.z*Math.sin(e.x)*Math.sin(e.y),t.y=e.z*Math.cos(e.y),t.z=e.z*Math.sin(e.y)*Math.cos(e.x),t}},{key:"fromOrbitSeparate",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new u.Vector3;return t-=Math.PI/2,e=-e,r.x=n*Math.sin(e)*Math.sin(t),r.y=n*Math.cos(t),r.z=n*Math.sin(t)*Math.cos(e),r}},{key:"toOrbit",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new u.Vector3,r=t.magnitude();return r<=e.ZERO_TOLERANCE?(n.x=0,n.y=0,n.z=0):(n.x=Math.atan2(t.x,t.z),n.y=Math.atan2(Math.sqrt(t.x*t.x+t.z*t.z),t.y),n.z=r),n}},{key:"wrap",value:function(e,t,n){var r=n-t;if(r<=0)return 0;var i=(e-t)%r;return i<0&&(i+=r),i+t}},{key:"projectionMatrixToVector",value:function(e,t){var n=t||{},r=n.xScale||1,i=n.yScale||1,a=n.xTrans||0,o=n.yTrans||0,s=e._storage;return new d.Vector4(s[0]*r,s[5]*i,s[8]-1-a,s[9]-1-o).div(2)}},{key:"ZERO_TOLERANCE",get:function(){return c}},{key:"ONE_MINUS_ZERO_TOLERANCE",get:function(){return f}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Serializable=void 0;var i=n(51),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(559),h=r(f),_=n(7),A=new h.default,m=!1;t.Serializable=function(){function e(){(0,u.default)(this,e)}return(0,c.default)(e,[{key:"_serialize",value:function(){var t=this.$serialize(),n=t.name,r=t.params,i=t.aux,a=e._serializeImpl(!1,this,n,r,i);if(a.__t){var o=(0,s.default)((0,s.default)(this));if(o instanceof e){if(o.$serialize===this.$serialize)return{};var l=o.$serialize.call(this),u=l.name,d=l.params,c=l.aux,f=e._serializeImpl(!0,this,u,d,c);return _.Util.mergeRecursive(f,a)}}return a}},{key:"$serialize",value:function(){throw new Error("must implement $serialize.")}},{key:"$deserialize",value:function(){}},{key:"toJSON",value:function(){return this._serialize()}},{key:"$version",get:function(){return 0}}],[{key:"clearCache",value:function(){A=new h.default}},{key:"serialize",value:function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e._serializeImpl.apply(e,[!1].concat(n))}},{key:"_serializeImpl",value:function(t,n,r,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if(i=n instanceof e?{v:i,r:n.$version}:{v:i},t)return{__v:i,__a:o};if(m){var s=null;return"object"===("undefined"==typeof n?"undefined":(0,a.default)(n))||"function"==typeof n?void 0===(s=A.get(n))?(s="dl8://i/"+_.Util.getGUID(),A.set(n,s),{__t:r,__v:i,__a:o,__i:s}):{__i:s}:{__t:r,__v:i}}return"object"===("undefined"==typeof n?"undefined":(0,a.default)(n))||"function"==typeof n?{__t:r,__v:i,__a:o}:{__t:r,__v:i}}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(194),a=r(i),o=n(193),s=r(o),l=n(303),u=r(l),d=n(302),c=r(d),f=n(4),h=r(f),_=n(1),A=r(_),m=n(6),p=r(m),g=n(5),E=r(g),v=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=function(e){function t(){for(var e,r,i=arguments.length,a=Array(i),o=0;o<i;o++)a[o]=arguments[o];(0,A.default)(this,t);var s=r=(0,p.default)(this,(e=t.__proto__||(0,h.default)(t)).call.apply(e,[this].concat(a)));if(n.forEach(function(e){if("function"==typeof e.prototype.initializer){var t;(t=e.prototype.initializer).call.apply(t,[r].concat(a))}}),s){var l;return l=s,(0,p.default)(r,l)}return r}return(0,E.default)(t,e),t}(e),o=function(e,t){(0,c.default)(t).concat((0,u.default)(t)).forEach(function(n){n.match(/^(?:initializer|constructor|prototype|arguments|caller|name|bind|call|apply|toString|length)$/)||(0,s.default)(e,n,(0,a.default)(t,n))})};return n.forEach(function(e){for(var t=e,n=[];t.prototype;)n.push({p:t.prototype,o:t}),t=(0,h.default)(t);for(var r=n.length-1;r>=0;--r)o(i.prototype,n[r].p),o(i,n[r].o)}),i};t.default=v},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t];n[2]?e.push("@media "+n[2]+"{"+n[1]+"}"):e.push(n[1])}return e.join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},i=0;i<this.length;i++){var a=this[i][0];"number"==typeof a&&(r[a]=!0)}for(i=0;i<t.length;i++){var o=t[i];"number"==typeof o[0]&&r[o[0]]||(n&&!o[2]?o[2]=n:n&&(o[2]="("+o[2]+") and ("+n+")"),e.push(o))}},e}},function(e,t,n){function r(e,t){for(var n=0;n<e.length;n++){var r=e[n],i=h[r.id];if(i){i.refs++;for(var a=0;a<i.parts.length;a++)i.parts[a](r.parts[a]);for(;a<r.parts.length;a++)i.parts.push(u(r.parts[a],t))}else{for(var o=[],a=0;a<r.parts.length;a++)o.push(u(r.parts[a],t));h[r.id]={id:r.id,refs:1,parts:o}}}}function i(e){for(var t=[],n={},r=0;r<e.length;r++){var i=e[r],a=i[0],o=i[1],s=i[2],l=i[3],u={css:o,media:s,sourceMap:l};n[a]?n[a].parts.push(u):t.push(n[a]={id:a,parts:[u]})}return t}function a(e,t){var n=m(),r=E[E.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),E.push(t);else{if("bottom"!==e.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");n.appendChild(t)}}function o(e){e.parentNode.removeChild(e);var t=E.indexOf(e);t>=0&&E.splice(t,1)}function s(e){var t=document.createElement("style");return t.type="text/css",a(e,t),t}function l(e){var t=document.createElement("link");return t.rel="stylesheet",a(e,t),t}function u(e,t){var n,r,i;if(t.singleton){var a=g++;n=p||(p=s(t)),r=d.bind(null,n,a,!1),i=d.bind(null,n,a,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=l(t),r=f.bind(null,n),i=function(){o(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(t),r=c.bind(null,n),i=function(){o(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else i()}}function d(e,t,n,r){var i=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=v(t,i);else{var a=document.createTextNode(i),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(a,o[t]):e.appendChild(a)}}function c(e,t){var n=t.css,r=t.media;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function f(e,t){var n=t.css,r=t.sourceMap;r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var i=new Blob([n],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(i),a&&URL.revokeObjectURL(a)}var h={},_=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},A=_(function(){return/msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase())}),m=_(function(){return document.head||document.getElementsByTagName("head")[0]}),p=null,g=0,E=[];e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=A()),"undefined"==typeof t.insertAt&&(t.insertAt="bottom");var n=i(e);return r(n,t),function(e){for(var a=[],o=0;o<n.length;o++){var s=n[o],l=h[s.id];l.refs--,a.push(l)}if(e){var u=i(e);r(u,t)}for(var o=0;o<a.length;o++){var l=a[o];if(0===l.refs){for(var d=0;d<l.parts.length;d++)l.parts[d]();delete h[l.id]}}}};var v=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}()},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return!!e&&!("prototype"in e)}function o(){return new L.default(function(e,t){var n=U.Util.getIOSVersion();if(!U.Util.isIPadOS()&&(n.major<12||12===n.major&&n.minor<2||!U.Util.isSafari()))return e(!1);var r=new j.DOMEventDispatcher({domTarget:window}),i=null,a=function t(n){return clearTimeout(i),r.removeEventListener(j.GlobalEvent.DEVICE_MOTION,t),e(!1)};r.addEventListener(j.GlobalEvent.DEVICE_MOTION,a),i=setTimeout(function(){r.removeEventListener(j.GlobalEvent.DEVICE_MOTION,a),e(!0)},3e3)})}function s(){return a(navigator.getVRDisplays)||a(navigator.getVRDevices)||a(navigator.mozGetVRDevices)}function l(){return!!navigator.xr}function u(){return U.Util.isSamsungInternet()||U.Util.isOculusBrowser()||U.Util.isChromeDaydream()||U.Util.isEdgeMr()||U.Util.isFirefoxReality()}function d(e){var t=window.location.origin,n=window.location.protocol;return!(!e||e.startsWith("data:")||!(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")))&&!e.replace(/http[s]{0,1}:/,"").startsWith(t.replace(n,""))}function c(){var e=U.Util.getIOSVersion();return!(e&&(e.major>11||11===e.major&&e.minor>=1)||U.Util.isIPadOS())&&(U.Util.isSafari()||U.Util.isIE())}function f(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=void 0,a=void 0;e.format===X.CONTENT_MODE_MONO_360?i=F.SkyboxMaterial.LATLONG:e.format===X.CONTENT_MODE_MONO_180?i=F.SkyboxMaterial.LATLONG_180:e.format===X.CONTENT_MODE_CARDBOARD_PHOTO?(a=F.SkyboxMaterial.STEREO_FORMAT_360_TB,i=F.SkyboxMaterial.STEREOSCOPIC):(a=e.format,i=F.SkyboxMaterial.STEREOSCOPIC);var o=new z.Transform;return e.rotationY&&o.rotationFromAngleY(V.MathUtil.degToRad(e.rotationY)),new k.Skybox({name:n,gammaSpace:!0,flippedY:!1,formatParams:e.formatParams,textureMode:i,stereoFormat:a,texture:t,transform:o,opaque:r})}function h(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Environment",r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return new L.default(function(i,a){var o=void 0;if(t.eyesPreSeparated){var s=void 0,l=void 0;t.format===F.SkyboxMaterial.STEREO_FORMAT_CUBEMAP&&(t.packedSliceFormat?s=t.packedSliceFormat:G.Texture.isPackedSliceImage(t.srcLeft)||G.Texture.isPackedSliceImage(t.srcRight)||(s="c-0-3-1-1"),t.packedSliceCubemapOrder&&(l=t.packedSliceCubemapOrder)),o=e(new H.VrUniform({left:new G.Texture({type:G.Texture.IMAGE,data:[t.srcLeft],generateMipmaps:!1,explicitPackedSliceParams:s,packedSliceCubemapOrder:l}),right:new G.Texture({type:G.Texture.IMAGE,data:[t.srcRight],generateMipmaps:!1,explicitPackedSliceParams:s,packedSliceCubemapOrder:l})})),i(f(t,o,n,r))}else if(t.format===X.CONTENT_MODE_CARDBOARD_PHOTO){var u=new B.CardboardCameraPhotoConverter({targetSize:t.type===X.CONTENT_TYPE_TOUR&&U.Util.isIOS()?2048:4096 });u.convert(t.src).then(function(a){o=e(new G.Texture({type:G.Texture.CANVAS,data:[a.canvas],generateMipmaps:!1})),i(f(t,o,n,r))})}else o=e(new G.Texture({type:G.Texture.IMAGE,data:[t.src],generateMipmaps:!1})),i(f(t,o,n,r))})}function _(e){var t=e<0;e=Math.abs(e);var n=Math.round(e)%60,r=(Math.round(e)-n)/60,i=Math.floor(r/60);return r-=60*i,i>0?i+":"+(r<10?"0"+r:r)+":"+(n<10?"0"+n:n):""+(t?"-":"")+r+":"+(n<10?"0"+n:n)}function A(){return!!Y.tablet()}function m(){if(!document.body.classList.contains("x-dl8-fullscreen")){var e=document.querySelector("#dl8-content-container");e.style.zIndex="9999999",e.style.position="fixed",e.style.display="block",document.body.appendChild(e),document.body.classList.add("x-dl8-fullscreen"),u()||window.scrollTo(0,99999);var t=document.querySelector("#dl8-meta-viewport");if(t||(t=document.createElement("meta"),t.setAttribute("id","dl8-meta-viewport"),t.setAttribute("name","viewport"),t.setAttribute("content","initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width, viewport-fit = cover"),document.head.appendChild(t)),document.addEventListener("touchmove",J,{passive:!1}),W.IFrameManager.instance.connected)W.IFrameManager.instance.enterFullscreen();else{var n=function e(){W.IFrameManager.instance.enterFullscreen(),W.IFrameManager.instance.removeConnectedListener(e)};W.IFrameManager.instance.addConnectedListener(n)}U.Util.isIOS()&&setTimeout(function(){var e=document.getElementById("dl8-content-container");window.getComputedStyle(e),e.style.position="absolute",setTimeout(function(){e.style.position="fixed"},50);var t=e.innerText;t+="trashing"},100)}}function p(e){if(document.body.classList.contains("x-dl8-fullscreen")){if(W.IFrameManager.instance.connected)W.IFrameManager.instance.exitFullscreen();else{var t=function e(){W.IFrameManager.instance.exitFullscreen(),W.IFrameManager.instance.removeConnectedListener(e)};W.IFrameManager.instance.addConnectedListener(t)}var n=document.querySelector("#dl8-content-container");n.style.position="relative",n.style.display="block",e.appendChild(n),document.body.classList.remove("x-dl8-fullscreen");var r=document.querySelector("#dl8-meta-viewport");r&&document.head.removeChild(r);var i=document.querySelectorAll('meta[name="viewport"]'),a=i[i.length-1];if(a){var o=a.getAttribute("content");o&&o.indexOf("viewport-fit")===-1&&a.setAttribute("content",o+", viewport-fit=contain")}document.removeEventListener("touchmove",J),U.Util.isIOS()&&setTimeout(function(){var e=document.getElementById("dl8-content-container");window.getComputedStyle(e)},100)}}function g(e,t,n){for(var r=0,i=0,a=0,o=0,s=0,l=0;l<e.length;++l){if(o=e.start(l),s=e.end(l),o<=t&&t<=s){r=o,i=s;break}o>t&&t<=s&&o<=e.start(a)&&(r=o,i=s,a=l)}return n[0]=r,n[1]=i,n}function E(e,t){return(0,R.default)(e.track.cues).find(function(e){return e.startTime<=t&&e.endTime>t})}function v(e,t){return(0,R.default)(e.track.cues).findIndex(function(e){return e.startTime<=t&&e.endTime>t})}function b(e,t){for(var n=e.map(function(e){return e.frames}).reduce(function(e,t){return e+t}),r=Math.min(Math.max(0,Math.floor(t*n)),n-1),i=0,a=0,o=0,s=0;o<e.length;++o){var l=e[o];if(r<s+l.frames){a=(r-s)/(l.rows*l.columns);break}i++,s+=l.frames}return{spriteIdx:i,relativeT:a}}function S(e,t,n){var r=e.tagName;if(t&&!n.has(r))throw new Error("Recommendations can only be dl8-video elements");var i=document.createElement(e.tagName);return(0,D.default)(e).filter(function(e){return"tagName"!==e&&"_children"!==e}).forEach(function(t){i.setAttribute(t.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}),e[t])}),Array.isArray(e._children)&&e._children.forEach(function(e){return i.appendChild(S(e,!1,n))}),i}function T(e,t,n){if(e&&e.length>0){var r=e[0],i=r.dl8AffiliateSpots;if(i&&i.length>0){var a=i.filter(function(e){return e.placing===t})[0];if(a){var o=a.type,s=r.dl8AffiliateItems;if(s&&s.length>0){var l=s.filter(function(e){return e.type===o});if(l.length>0){if(n&&l.length>n){for(var u=[],d=0;d<n;++d){var c=x(l),f=l.indexOf(c);f>-1&&l.splice(f,1),u.push(c)}return{items:u,spot:a}}return{items:l,spot:a}}}}}}return{}}function x(e){function t(e){var t=Math.floor(Math.random()*(e+1));return function(e){return t-=e.weight,t<=0}}var n=e.reduce(function(e,t){return e+t.weight},0);return e.find(t(n))}function y(e){try{return localStorage.getItem(e)}catch(e){}return null}function C(e,t){try{return localStorage.setItem(e,t)}catch(e){}return null}function w(e){try{return localStorage.removeItem(e)}catch(e){}return null}Object.defineProperty(t,"__esModule",{value:!0}),t.getRecommendedTexSize=t.convertMeterToPixelSize=t.lineClamp=void 0;var M=n(85),D=i(M),P=n(34),R=i(P),I=n(26),L=i(I);t.isIOSWithoutDeviceMotion=o,t.hasWebVr=s,t.hasWebXr=l,t.isVrBrowser=u,t.isCors=d,t.hasCorsBug=c,t.createImageSkybox=h,t.convertSecondsToDisplayString=_,t.isTablet=A,t.makeFullscreen=m,t.makeInline=p,t.convertBufferState=g,t.getCurrentTrackThumbnail=E,t.getCurrentTrackThumbnailIdx=v,t.getCurrentImageSprite=b,t.createElementFromDesc=S,t.getRandomAffiliatesForSpot=T,t.getRandomElementFromWeightedList=x,t.getLocalStorageItemSafe=y,t.setLocalStorageItemSafe=C,t.removeLocalStorageItemSafe=w;var O=n(765),N=i(O),B=n(530),F=n(182),k=n(278),U=n(7),V=n(17),G=n(32),H=n(188),z=n(29),Q=n(15),X=r(Q),W=n(64),j=n(44);delete N.default._impl.mobileDetectRules.tablets.GalapadTablet;var Y=new N.default(window.navigator.userAgent),q="...",Z=/[ .,;!?'‘’“”\-–—]+$/,K=!1;document.addEventListener("x-dl8-evt-vr-wizard-enabled",function(){K=!0}),document.addEventListener("x-dl8-evt-vr-wizard-disabled",function(){K=!1});var J=function(e){K||e.preventDefault()},$=void 0,ee=void 0;t.lineClamp=function(e,t,n){$||($=document.createElement("canvas"),ee=$.getContext("2d"));var r=n.weight,i=n.size,a=n.fontFamily,o=e.innerText.trim(),s=o.length,l=o.split(" ");ee.font=r+" "+i+"px "+a;var u=ee.measureText(" "),d=u.width,c=ee.measureText(q),f=c.width,h=function(t,n,r){var i=ee.measureText(n),a=i.width;return t.width>e.offsetWidth&&(t.count+=1),t.width+=a,t},_=function(n,r,i){var a=ee.measureText(r),o=a.width;if(n.currentLine<t){var s=n.currentLine===t-1?f:0;if(n.offset+o+s+d>e.offsetWidth){if(n.currentLine===t-1)return n;var l=r.split("").reduce(h,{width:0,count:0}),u=l.count;n.currentLine+=1,n.offset=o+d,n.charCount+=r.length+1-u}else n.offset+=o+d,n.charCount+=r.length+1}return n},A=l.reduce(_,{charCount:0,offset:0,currentLine:0}),m=A.charCount;return s>m?o.slice(0,m).split(" ").filter(function(e,t,n){return t!==n.length-1}).join(" ").replace(Z,"")+q:o},t.convertMeterToPixelSize=function(e,t,n){return n/t*e},t.getRecommendedTexSize=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:512;return Math.min(3200*Math.max(e,t)/n,r)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ColorRGBA=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(270),A=n(12),m=n(112),p=t.ColorRGBA=function(e){function t(){(0,s.default)(this,t);var e=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).apply(this,arguments));return e._hsl=new A.Vector3,e._hsv=new A.Vector3,1===arguments.length&&"string"==typeof arguments[0]&&(e.hexString=arguments[0],e.w=1),e}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"ColorRGBA",params:[this.r,this.g,this.b,this.a]}}}]),(0,c.default)(t,[{key:"blend",value:function(e){this.r=this.r*(1-e.a)+e.r*e.a,this.g=this.g*(1-e.a)+e.g*e.a,this.b=this.b*(1-e.a)+e.b*e.a,this.a=Math.min(this.a+e.a,1)}},{key:"r",get:function(){return this.x},set:function(e){this.x=e}},{key:"g",get:function(){return this.y},set:function(e){this.y=e}},{key:"b",get:function(){return this.z},set:function(e){this.z=e}},{key:"a",get:function(){return this.w},set:function(e){this.w=e}},{key:"hex",get:function(){return _.ColorUtil.rgb2hex(this)},set:function(e){_.ColorUtil.hex2rgb(e,this)}},{key:"hexString",get:function(){return _.ColorUtil.rgb2hexString(this)},set:function(e){_.ColorUtil.style2rgb(e,this)}},{key:"hsv",get:function(){return _.ColorUtil.rgb2hsv(this,this._hsv)},set:function(e){_.ColorUtil.hsv2rgb(e,this),this.a=1}},{key:"hsl",get:function(){return _.ColorUtil.rgb2hsl(this,this._hsl)},set:function(e){_.ColorUtil.hsl2rgb(e,this),this.a=1}},{key:"style",get:function(){return _.ColorUtil.rgba2Style(this)},set:function(e){_.ColorUtil.style2rgba(e,this)}}]),t}(m.Vector4);p.BLACK=new p(0,0,0,1),p.BLACK_TRANSPARENT=new p(0,0,0,0),p.WHITE=new p(1,1,1,1),p.WHITE_TRANSPARENT=new p(1,1,1,0)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Scene=void 0;var i=n(62),a=r(i),o=n(14),s=r(o),l=n(4),u=r(l),d=n(1),c=r(d),f=n(6),h=r(f),_=n(2),A=r(_),m=n(5),p=r(m),g=n(18),E=n(10),v=n(49),b=n(32),S=n(76),T=n(139),x=n(140),y=n(33),C=n(28),w=n(110),M=n(513),D=n(75),P=n(7),R=n(111),I=void 0,L=void 0,O=t.Scene=function(e){function t(e){(0,c.default)(this,t);var n=(0,h.default)(this,(t.__proto__||(0,u.default)(t)).call(this,e));return n._updateActiveCamera=function(e){e.$scene===n&&(n._activeCamera=e),n._nodes.filter(function(e){return e instanceof w.PhysicalCamera&&e!==n._activeCamera}).forEach(function(e){e.visible=!1})},n._nodes=[],n._outputLightInfos=[],n._cachedCollectedLight=void 0,n._cachedLightInfos=void 0,n._cachedCollectedIblNodes=[],n._cachedRendererViewMatrix=void 0,n._cachedRendererProjectionMatrix=void 0,n._culler=new M.Culler,n._cachedCamerasToRenderableNodesByPass=new s.default,n._allRenderableNodesByPass=new s.default,n._sortFunctionsByPass=new s.default,n._initSortFunctionsByPass(),n._initRenderableNodeCache(n._allRenderableNodesByPass),n._vrPasses=new s.default,n._vrActivated=!1,n._initVrPasses(),E.Context.eventEmitter.on(t.EVENT_SCENELIST_NEEDS_UPDATE,n._updateNodes.bind(n)),E.Context.eventEmitter.on(S.DeviceManager.EVENT_DEVICE_ACTIVATED,function(){n._vrActivated=!0}),E.Context.eventEmitter.on(S.DeviceManager.EVENT_DEVICE_DEACTIVATED,function(){n._vrActivated=!1}),n._renderAll=!0,E.Context.eventEmitter.on(D.LoadingManager.EVENT_LOADING_FINISHED,function(){n._renderAll=!1,n._updateNodes()}),E.Context.eventEmitter.on(w.PhysicalCamera.EVENT_MADE_ACTIVE,n._updateActiveCamera),n._defaultCamera=n._activeCamera=n.add(new w.PhysicalCamera({name:t.DEFAULT_CAMERA_NAME})),n}return(0,p.default)(t,e),(0,A.default)(t,[{key:"$serialize",value:function(){return{name:"Scene",aux:{nodes:this._nodes}}}},{key:"$deserialize",value:function(e){var t=this;e.nodes.forEach(function(e){return t.add(e)})}}],[{key:"makeSortSeries",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=[].concat(t);return function(e,t,n){for(var i=0;i<r.length;++i){var a=r[i](e,t,n);if(0!==a)return a}return 0}}},{key:"_sortByZFrontToBack",value:function(e,t,n){var r=t.manualSortIndex,i=n.manualSortIndex;return void 0===r&&void 0!==i?i:void 0!==r&&void 0===i?-r:void 0!==r&&void 0!==i?i-r:(I&&L||(I=new R.AxisAlignedBoundingBox,L=new R.AxisAlignedBoundingBox),I.copyFrom(t._boundingVolume),L.copyFrom(n._boundingVolume),I.min.mult4x4(e),I.max.mult4x4(e),L.min.mult4x4(e),L.max.mult4x4(e),I.center.z-L.center.z)}},{key:"_sortByZBackToFront",value:function(e,t,n){var r=t.manualSortIndex,i=n.manualSortIndex;return void 0===r&&void 0!==i?-i:void 0!==r&&void 0===i?r:void 0!==r&&void 0!==i?r-i:(I&&L||(I=new R.AxisAlignedBoundingBox,L=new R.AxisAlignedBoundingBox),I.copyFrom(t._boundingVolume),L.copyFrom(n._boundingVolume),I.min.mult4x4(e),I.max.mult4x4(e),L.min.mult4x4(e),L.max.mult4x4(e),L.center.z-I.center.z)}},{key:"_injectLightShaderParams",value:function(e,t,n){for(var r=0;r<n.length;++r){var i=n[r];i.viewMatrix=t.camera.viewMatrix;var a=i.getShaderParams();for(var o in a)a[o]instanceof b.Texture?(0===r&&(e.textures[o]=[]),e.textures[o].push(a[o])):(0===r&&(e.params[o]=[]),e.params[o].push(a[o]))}}},{key:"_injectLightShaderParamsIfNeeded",value:function(e,n,r){if(void 0!==r)for(var i=0;i<r.length;++i){var a=r[i];if(!a.cached&&e.materialByPass){var o=e.materialByPass;for(var s in o){var l=o[s].effect;l&&l.hasOwnProperty(a.setter)&&(l[a.setter](a.lights.length),t._injectLightShaderParams(l,n,a.lights))}}}}},{key:"nameGlobPred",value:function(e){return function(t){return P.Util.simpleGlobMatch(e,t.name)}}}]),(0,A.default)(t,[{key:"dtor",value:function(){this._nodes.forEach(function(e){return e.dtor()})}},{key:"add",value:function(e){if(!(e instanceof C.SpatialNode))throw new Error("cannot add non Scene Node to Scene");if(!this.contains(e)){var t=!1;return e instanceof w.PhysicalCamera?(this._nodes.unshift(e),t=!0):this._nodes.push(e),e.$onAddedToScene(this),t&&e.visible&&e.makeActive(),this._updateNodes(),e}}},{key:"remove",value:function(e){if(e===this._defaultCamera)return void E.Context.logger.warn(this,"cannot remove default camera");if(!(e instanceof C.SpatialNode))return void E.Context.logger.warn(this,"cannot remove a non Scene Node from Scene");if(!this.contains(e))return void E.Context.logger.warn(this,"cannot remove a node that is not in the scene");var t=this._nodes.indexOf(e);return t!==-1&&(this._nodes.splice(t,1),e.$onRemovedFromScene(this)),e===this._activeCamera&&(this._defaultCamera.visible?this._defaultCamera.makeActive():this._defaultCamera.visible=!0),this._updateNodes(),e}},{key:"render",value:function(e,n,r){var i=this._cachedLightInfos,a=this._renderAll?this._allRenderableNodesByPass.get(n):this._updateRenderableNodeCache(e.camera,n),o=this._vrActivated&&this._vrPasses.get(n);if(void 0!==a){for(var s=0,l=a.length;s<l;++s){var u=a[s];r&&r.call(this,u,n),t._injectLightShaderParamsIfNeeded(u,e,i),u.render(e,n,o)}if(i)for(var d=0;d<i.length;++d){var c=i[d];0===c.lights.length&&(c.cached=!0)}}}},{key:"update",value:function(e){for(var t=!1,n=0;n<this._nodes.length;++n)t||this._nodes[n]instanceof w.PhysicalCamera||(t=this._nodes[n]._transformIsDirty),this._nodes[n].updateTransform();for(var r=0;r<this._nodes.length;++r)this._nodes[r].update(e),this._nodes[r].updateControllers(e);for(var i=0;i<this._nodes.length;++i)this._nodes[i]instanceof w.PhysicalCamera||this._nodes[i].updateTransform();t&&this._cachedCamerasToRenderableNodesByPass.clear()}},{key:"collectLight",value:function(){return this._cachedCollectedLight}},{key:"contains",value:function(e){return this._nodes.indexOf(e)!==-1}},{key:"setPassSortFunction",value:function(e,n){if(t.RENDERPASSES.indexOf(e)===-1)throw new Error("invalid pass "+e+" to set sort function");this._sortFunctionsByPass.set(e,n)}},{key:"getPassSortFunction",value:function(e){return this._sortFunctionsByPass.get(e)}},{key:"findByName",value:function(e){return this.findBy("name",e)}},{key:"findAllByName",value:function(e){return this.findAllBy("name",e)}},{key:"findById",value:function(e){return this.findBy("id",e)}},{key:"findAllById",value:function(e){return this.findAllBy("id",e)}},{key:"findBy",value:function(e,t){for(var n=void 0,r=0,i=this._nodes.length;void 0===n&&r<i;++r)n=this._nodes[r].findBy(e,t);return n}},{key:"findAllBy",value:function(e,t){for(var n=[],r=0,i=this._nodes.length;r<i;++r)n=n.concat(this._nodes[r].findAllBy(e,t));return n}},{key:"findByPred",value:function(e){for(var t=void 0,n=0,r=this._nodes.length;void 0===t&&n<r;++n)t=this._nodes[n].findByPred(e);return t}},{key:"findAllByPred",value:function(e){for(var t=[],n=0,r=this._nodes.length;n<r;++n)t=t.concat(this._nodes[n].findAllByPred(e));return t}},{key:"intersectWithRay",value:function(e,t){for(var n=[],r=this._nodes.slice();r.length>0;){var i=r.pop();if(i.visible&&!i.insensible)if(i.boundingVolumeValid){if(i.intersectWithRay(e)&&((t&&t(i)||!t)&&n.push(i),i.children))for(var a=0,o=i.childCount;a<o;++a)r.push(i.childAt(a))}else if(i.children)for(var s=0,l=i.childCount;s<l;++s)r.push(i.childAt(s))}return n}},{key:"_updateNodes",value:function(){this._collectLightNodes(),this._collectIblNodes(),this._collectRenderableNodes(),this._injectIblNodes(),this._cachedCamerasToRenderableNodesByPass.clear()}},{key:"_injectIblNodes",value:function(){if(0!==this._cachedCollectedIblNodes.length){for(var e=this._cachedCollectedIblNodes[0],n=this._allRenderableNodesByPass.get(t.RENDERPASS_FORWARD),r=n.length-1;r>=0;--r)n[r].materialByPass[t.RENDERPASS_FORWARD].iblNode=e;for(var i=this._allRenderableNodesByPass.get(t.RENDERPASS_FORWARD_TRANSLUCENT),a=i.length-1;a>=0;--a)i[a].materialByPass[t.RENDERPASS_FORWARD_TRANSLUCENT].iblNode=e;for(var o=this._allRenderableNodesByPass.get(t.RENDERPASS_FORWARD_REFRACTIVE),s=o.length-1;s>=0;--s)o[s].materialByPass[t.RENDERPASS_FORWARD_REFRACTIVE].iblNode=e}}},{key:"_sortTransparentRenderableNodes",value:function(e){}},{key:"_initVrPasses",value:function(){this._vrPasses.set(t.RENDERPASS_FORWARD_DEPTH,!0),this._vrPasses.set(t.RENDERPASS_FORWARD,!0),this._vrPasses.set(t.RENDERPASS_FORWARD_TRANSLUCENT,!0),this._vrPasses.set(t.RENDERPASS_FORWARD_REFRACTIVE,!0),this._vrPasses.set(t.RENDERPASS_MOTION_BLUR,!0),this._vrPasses.set(t.RENDERPASS_UI_1,!0)}},{key:"_initSortFunctionsByPass",value:function(){this._sortFunctionsByPass.set(t.RENDERPASS_FORWARD_TRANSLUCENT,t._sortByZBackToFront),this._sortFunctionsByPass.set(t.RENDERPASS_UI_1,t._sortByZBackToFront)}},{key:"_initRenderableNodeCache",value:function(e){for(var n=t.RENDERPASSES.length-1;n>=0;--n)e.set(t.RENDERPASSES[n],[])}},{key:"_quickInitRenderableNodeCache",value:function(e){for(var n=t.RENDERPASSES.length-1;n>=0;--n)e.get(t.RENDERPASSES[n]).length=0}},{key:"_updateRenderableNodeCache",value:function(e,n){var r=this,i=null,a=void 0,o=!1;if((i=this._cachedCamerasToRenderableNodesByPass.get(e))?(i.viewMatrix.equals(e.viewMatrix)&&i.projectionMatrix.equals(e.projectionMatrix)||(i.viewMatrix.copyFrom(e.viewMatrix),i.projectionMatrix.copyFrom(e.projectionMatrix),this._quickInitRenderableNodeCache(i.renderableNodesByPass),o=!0),a=i.renderableNodesByPass):(a=new s.default,this._initRenderableNodeCache(a),this._cachedCamerasToRenderableNodesByPass.set(e,{viewMatrix:(new v.Matrix4).copyFrom(e.viewMatrix),projectionMatrix:(new v.Matrix4).copyFrom(e.projectionMatrix),renderableNodesByPass:a}),o=!0),o){this._culler.onUpdatePlanesFromCamera(e),this._collectNodes(C.SpatialNode,function(e){return!(r._renderAll||e.forceVisible||r._culler.isVisible(e._boundingVolume))||(e instanceof y.RenderableNode&&r._cacheRenderableNode(a,e),!1)});for(var l=0;l<t.RENDERPASSES.length;++l){var u=t.RENDERPASSES[l],d=this._sortFunctionsByPass.get(u);d&&a.get(u).sort(d.bind(this,E.Context.renderer.camera.viewMatrix))}}return a.get(n)}},{key:"_cacheRenderableNode",value:function(e,n){for(var r=t.RENDERPASSES.length-1;r>=0;--r){var i=t.RENDERPASSES[r];n.supportsPass(i)&&e.get(i).push(n)}}},{key:"_collectNodes",value:function(e,t){for(var n=this._nodes.slice();n.length>0;){var r=n.pop();if((r.visible||this._renderAll)&&!(r instanceof e&&t(r))&&r.children)for(var i=0,a=r.childCount;i<a;++i)n.push(r.childAt(i))}}},{key:"_collectLightNodes",value:function(){var e=this;this._cachedCollectedLight={PointLight:{castsShadow:[],castsNoShadow:[]},DirectionalLight:{castsShadow:[],castsNoShadow:[]},SpotLight:{castsShadow:[],castsNoShadow:[]}},this._collectNodes(x.Light,function(t){e._cachedCollectedLight[t.lightName]||(e._cachedCollectedLight[t.lightName]={castsShadow:[],castsNoShadow:[]}),e._cachedCollectedLight[t.lightName][t.castsShadow?"castsShadow":"castsNoShadow"].push(t)}),this._cachedLightInfos=this._getLightInfos()}},{key:"_collectIblNodes",value:function(){var e=this;this._cachedCollectedIblNodes.length=0,this._collectNodes(T.IBLNode,function(t){e._cachedCollectedIblNodes.push(t)})}},{key:"_collectRenderableNodes",value:function(){var e=this;this._quickInitRenderableNodeCache(this._allRenderableNodesByPass),this._collectNodes(y.RenderableNode,function(t){e._cacheRenderableNode(e._allRenderableNodesByPass,t)})}},{key:"_getLightInfos",value:function(){var e=this._cachedCollectedLight;this._outputLightInfos.length=0;for(var t in e){var n=e[t];switch(t){case"PointLight":this._outputLightInfos.push({setter:"setPointLightCount",lights:n.castsNoShadow,cached:!1}),this._outputLightInfos.push({setter:"setShadowedPointLightCount",lights:n.castsShadow,cached:!1});break;case"DirectionalLight":this._outputLightInfos.push({setter:"setDirectionalLightCount",lights:n.castsNoShadow,cached:!1}),this._outputLightInfos.push({setter:"setShadowedDirectionalLightCount",lights:n.castsShadow,cached:!1});break;case"SpotLight":this._outputLightInfos.push({setter:"setSpotLightCount",lights:n.castsNoShadow,cached:!1}),this._outputLightInfos.push({setter:"setShadowedSpotLightCount",lights:n.castsShadow,cached:!1})}}return this._outputLightInfos}},{key:"activeCamera",get:function(){return this._activeCamera}},{key:"cullingEnabled",set:function(e){this._culler.enabled=e},get:function(){return this._culler.enabled}}]),t}(g.Serializable);O.RENDERPASS_NOP="nopPass",O.RENDERPASS_SSR_PRE="ssrPrePass",O.RENDERPASS_FORWARD="forwardPass",O.RENDERPASS_FORWARD_REFRACTIVE="forwardRefractivePass",O.RENDERPASS_FORWARD_TRANSLUCENT="forwardTranslucentPass",O.RENDERPASS_UI_1="ui1Pass",O.RENDERPASS_FORWARD_DEPTH="forwardDepthPass",O.RENDERPASS_SHADOW_MAP="shadowMapPass",O.RENDERPASS_DEBUG_OVERDRAW="debugOverdrawPass",O.RENDERPASS_MOTION_BLUR="motionBlurPass",O.EVENT_SCENELIST_NEEDS_UPDATE="eventScenelistNeedsUpdate",O.DEFAULT_CAMERA_NAME=(0,a.default)("DEFAULT_CAMERA_NAME"),O.RENDERPASSES=[O.RENDERPASS_NOP,O.RENDERPASS_SSR_PRE,O.RENDERPASS_FORWARD,O.RENDERPASS_FORWARD_REFRACTIVE,O.RENDERPASS_FORWARD_TRANSLUCENT,O.RENDERPASS_UI_1,O.RENDERPASS_FORWARD_DEPTH,O.RENDERPASS_SHADOW_MAP,O.RENDERPASS_DEBUG_OVERDRAW,O.RENDERPASS_MOTION_BLUR]},function(e,t){e.exports="uniform mat4 u_inverseProjectionMatrix;\nuniform mat4 u_worldMatrix;\nuniform mat4 u_viewMatrix;\n\n#if defined(USE_TEXCOORD_SCALE)\nuniform vec2 u_texCoordScale;\n#endif\n\n#if defined(USE_TEXCOORD_OFFSET)\nuniform vec2 u_texCoordOffset;\n#endif\n\nattribute vec3 position;\nattribute vec2 texCoord0;\n\nvarying vec2 v_texCoord0;\n\n#if defined(USE_VARYING_POSITION)\nvarying vec3 v_position;\n#endif\n\nvoid main() {\n #if defined(USE_TEXCOORD_OFFSET) && defined(USE_TEXCOORD_SCALE)\n v_texCoord0 = ((texCoord0 + u_texCoordOffset) * u_texCoordScale);\n #endif\n\n #if defined(USE_TEXCOORD_OFFSET) && !defined(USE_TEXCOORD_SCALE)\n v_texCoord0 = (texCoord0 + u_texCoordOffset);\n #endif\n\n #if !defined(USE_TEXCOORD_OFFSET) && defined(USE_TEXCOORD_SCALE)\n v_texCoord0 = (texCoord0 * u_texCoordScale);\n #endif\n\n #if !defined(USE_TEXCOORD_OFFSET) && !defined(USE_TEXCOORD_SCALE)\n v_texCoord0 = texCoord0;\n #endif\n\n vec4 homogenousPosition = vec4(position, 1.0);\n#if defined(USE_VARYING_POSITION)\n vec4 projViewSpace = (u_inverseProjectionMatrix * homogenousPosition);\n v_position = projViewSpace.xyz / projViewSpace.w;\n#endif\n gl_Position = homogenousPosition;\n}\n"},function(e,t,n){e.exports={default:n(576),__esModule:!0}},function(e,t,n){var r=n(163),i=n(55),a=n(342),o=n(70).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});i(t,e)||o(t,e,{value:a.f(e)})}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SpatialNode=void 0;var i=n(46),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(6),c=r(d),f=n(2),h=r(f),_=n(5),A=r(_),m=n(177),p=n(18),g=n(7),E=n(10),v=n(29),b=n(24),S=n(111),T=n(65);t.SpatialNode=function(e){function t(e){(0,u.default)(this,t);var n=(0,c.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e));return n._id=g.Util.getGUID(),n._name=g.Util.getParam(e,"name",""),n._visible=g.Util.getParam(e,"visible",!0),n._insensible=g.Util.getParam(e,"insensible",!1),n._forceVisible=g.Util.getParam(e,"forceVisible",!1),n._parent=g.Util.getParam(e,"parent"),n._transform=g.Util.getParam(e,"transform",new v.Transform),n._auxData=g.Util.getParam(e,"auxData",{}),n._manualSortIndex=g.Util.getParam(e,"manualSortIndex"),n._worldTransform=new v.Transform,n._transformIsDirty=!0,n._children=[],n._controllers=[],n._boundingVolume=new S.AxisAlignedBoundingBox,n._scene=null,n._tags=new a.default,g.Util.getParam(e,"controllers",[]).forEach(function(e){return n.addController(e)}),g.Util.getParam(e,"children",[]).forEach(function(e){n.addChild(e)}),n}return(0,A.default)(t,e),(0,h.default)(t,[{key:"$serialize",value:function(){return{name:"SpatialNode",params:{name:this._name,visible:this._visible,insensible:this._insensible,transform:this._transform,parent:this._parent,forceVisible:this._forceVisible,controllers:this._controllers},aux:{children:this._children}}}},{key:"$deserialize",value:function(e){var t=this;e.children.map(function(e){return t.addChild(e)})}}]),(0,h.default)(t,[{key:"addTag",value:function(e){this._tags.add(e)}},{key:"removeTag",value:function(e){return this._tags.delete(e)}},{key:"hasTag",value:function(e){return this._tags.has(e)}},{key:"dtor",value:function(){this._children.forEach(function(e){return e.dtor()})}},{key:"addChild",value:function(e){return e instanceof t&&this._children.indexOf(e)===-1&&(this._children.push(e),e._parent=this,this._propagateDirty(),E.Context.eventEmitter.emit(this,b.Scene.EVENT_SCENELIST_NEEDS_UPDATE)),e}},{key:"removeChild",value:function(e){var n=0;return e instanceof t&&(n=this._children.indexOf(e))!==-1&&(this._children.splice(n,1),e._parent=void 0,this._propagateDirty(),E.Context.eventEmitter.emit(this,b.Scene.EVENT_SCENELIST_NEEDS_UPDATE)),e}},{key:"removeAllChildren",value:function(){this._children.length=0,this._propagateDirty(),E.Context.eventEmitter.emit(this,b.Scene.EVENT_SCENELIST_NEEDS_UPDATE)}},{key:"addController",value:function(e){if(!(e instanceof T.Controller))throw new Error("failed to add controller");this._controllers.indexOf(e)===-1&&(this._controllers.push(e),e.onAddedToScene(this))}},{key:"removeController",value:function(e){var t=0;(t=this._controllers.indexOf(e))!==-1&&(this._controllers.splice(t,1),e.onRemovedFromScene(this))}},{key:"findControllerByName",value:function(e){return this._controllers.find(function(t){return t.name===e})}},{key:"removeAllControllers",value:function(){var e=this;this._controllers.forEach(function(t){t.onRemovedFromScene(e)}),this._controllers.length=0}},{key:"hasController",value:function(e){return this._controllers.indexOf(e)!==-1}},{key:"findByName",value:function(e){return this.findBy("name",e)}},{key:"findAllByName",value:function(e){return this.findAllBy("name",e)}},{key:"findById",value:function(e){return this.findBy("id",e)}},{key:"findAllById",value:function(e){return this.findAllBy("id",e)}},{key:"findByPred",value:function(e){var t=void 0;e(this)&&(t=this);for(var n=0,r=this._children.length;void 0===t&&n<r;++n)t=this._children[n].findByPred(e);return t}},{key:"findAllByTags",value:function(e){return this.findAllByPred(function(t){return e.reduce(function(e,n){return e&&t.hasTag(n)},!0)})}},{key:"findAllByTag",value:function(e){return this.findAllByPred(function(t){return t.hasTag(e)})}},{key:"findAllByPred",value:function(e){var t=[];e(this)&&t.push(this);for(var n=0,r=this._children.length;n<r;++n)t=t.concat(this._children[n].findAllByPred(e));return t}},{key:"findBy",value:function(e,t){var n=void 0;t===this[e]&&(n=this);for(var r=0,i=this._children.length;void 0===n&&r<i;++r)n=this._children[r].findBy(e,t);return n}},{key:"findAllBy",value:function(e,t){var n=[];t===this[e]&&n.push(this);for(var r=0,i=this._children.length;r<i;++r)n=n.concat(this._children[r].findAllBy(e,t));return n}},{key:"childAt",value:function(e){if(e<0||e>=this._children.length)throw new Error("Index of requested child out of range!");return this._children[e]}},{key:"update",value:function(e){for(var t=0,n=this._children.length;t<n;++t)this._children[t].update(e)}},{key:"updateControllers",value:function(e){var t=this;this._controllers.forEach(function(n){return n.update(e,t)}),this._children.forEach(function(t){return t.updateControllers(e)})}},{key:"updateTransform",value:function(){return this._transformIsDirty&&(this._transform._updateMatrix(),this._worldTransform.copyFrom(this._transform),void 0!==this._parent&&this._worldTransform.transformBy(this._parent._worldTransform),this.$updateBoundingVolume(),this.$onTransformUpdated(),this._transformIsDirty=!1),this._boundingVolume}},{key:"intersectWithRay",value:function(e){return m.Intersection.rayWithAABB(e,this._boundingVolume)}},{key:"$updateBoundingVolume",value:function(){this._boundingVolume.reset();for(var e=!1,t=0,n=this._children.length;t<n;++t){var r=this._children[t].updateTransform();r.valid?this._boundingVolume.merge(r):e=!0}e&&this._boundingVolume.reset()}},{key:"$onTransformUpdated",value:function(){}},{key:"$onAddedToScene",value:function(e){this._scene=e,this._children.forEach(function(t){return t.$onAddedToScene(e)})}},{key:"$onRemovedFromScene",value:function(){this._scene=null}},{key:"_propagateDirty",value:function(){this._propagateDirtyDown(),this._propagateDirtyUp()}},{key:"_propagateDirtyDown",value:function(){this._transformIsDirty=!0;for(var e=0,t=this._children.length;e<t;++e)this._children[e]._propagateDirtyDown()}},{key:"_propagateDirtyUp",value:function(){this._transformIsDirty=!0,void 0!==this._parent&&this._parent._propagateDirtyUp()}},{key:"auxData",get:function(){return this._auxData},set:function(e){this._auxData=e}},{key:"name",get:function(){return this._name},set:function(e){this._name=e}},{key:"visible",get:function(){return this._visible},set:function(e){this._visible!==e&&(this._visible=e,E.Context.eventEmitter.emit(this,b.Scene.EVENT_SCENELIST_NEEDS_UPDATE))}},{key:"insensible",get:function(){return this._insensible},set:function(e){this._insensible=e}},{key:"forceVisible",get:function(){var e=this._forceVisible;return void 0!==this._parent&&(e=e||this._parent.forceVisible),e},set:function(e){this._forceVisible!==e&&(this._forceVisible=e,E.Context.eventEmitter.emit(this,b.Scene.EVENT_SCENELIST_NEEDS_UPDATE))}},{key:"parent",get:function(){return this._parent},set:function(e){this._parent=e}},{key:"id",get:function(){return this._id}},{key:"class",get:function(){return(0,s.default)(this).constructor}},{key:"boundingVolume",get:function(){return this._boundingVolume}},{key:"transform",get:function(){return this._propagateDirty(),this._transform},set:function(e){this._transform.copyFrom(e),this._propagateDirty()}},{key:"constTransform",get:function(){return this._transform}},{key:"worldTransform",get:function(){return this._worldTransform}},{key:"childCount",get:function(){return this._children.length}},{key:"children",get:function(){return this._children}},{key:"firstChild",get:function(){return this._children[0]}},{key:"lastChild",get:function(){return this._children[this._children.length-1]}},{key:"manualSortIndex",set:function(e){this._manualSortIndex=e},get:function(){return void 0===this._manualSortIndex&&this.parent?this.parent.manualSortIndex:this._manualSortIndex}},{key:"boundingVolumeValid",get:function(){return this._boundingVolume.valid}},{key:"$scene",get:function(){return this._scene}}]),t}(p.Serializable)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Transform=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(18),A=n(7),m=n(49),p=n(12),g=n(36);t.Transform=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));n._inverseMatrix=new m.Matrix4,n._position=A.Util.getParam(e,"position",new p.Vector3),n._rotation=A.Util.getParam(e,"rotation",new g.Quaternion),n._scale=A.Util.getParam(e,"scale",(new p.Vector3).copyFrom(p.Vector3.ONE)),n._nonTRS=A.Util.getParam(e,"nonTRS",!1);var r=A.Util.getParam(e,"matrix");return n._matrix=new m.Matrix4,r?n._matrix=new m.Matrix4(r):n._updateMatrix(),n._tmpVec=new p.Vector3,n._tmpQuat=new g.Quaternion,n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"Transform",params:{position:this._position,rotation:this._rotation, scale:this._scale,nonTRS:this._nonTRS,matrix:this._matrix}}}}]),(0,c.default)(t,[{key:"copyFrom",value:function(e){return this._nonTRS=e.nonTRS,this._matrix.copyFrom(e.matrix),this._inverseMatrix.copyFrom(e.inverseMatrix),e.nonTRS||(this._position.copyFrom(e.position),this._rotation.copyFrom(e.rotation),this._scale.copyFrom(e.scale)),this}},{key:"isMirrored",value:function(){return this._matrix.determinant3x3()<0}},{key:"reset",value:function(){return this._matrix.makeIdentity(),this._matrix.toTRS(this._position,this._rotation,this._scale),this}},{key:"lookDirectionFromRotation",value:function(e){return e.x=this._matrix._storage[2],e.y=this._matrix._storage[6],e.z=this._matrix._storage[10],e}},{key:"lookUpFromRotation",value:function(e){return e.x=this._matrix._storage[1],e.y=this._matrix._storage[5],e.z=this._matrix._storage[9],e}},{key:"lookRightFromRotation",value:function(e){return e.x=this._matrix._storage[0],e.y=this._matrix._storage[4],e.z=this._matrix._storage[8],e}},{key:"rotationFromAngleAxis",value:function(e,t){return this._rotation.fromAxisAngle(t,e),this._updateMatrix(),this}},{key:"rotationFromAngleX",value:function(e){return this._rotation.fromAxisAngle(p.Vector3.X_AXIS,e),this._updateMatrix(),this}},{key:"rotationFromAngleY",value:function(e){return this._rotation.fromAxisAngle(p.Vector3.Y_AXIS,e),this._updateMatrix(),this}},{key:"rotationFromAngleZ",value:function(e){return this._rotation.fromAxisAngle(p.Vector3.Z_AXIS,e),this._updateMatrix(),this}},{key:"rotateAround",value:function(e,t){return this._tmpQuat.fromAxisAngle(e,t),this._rotation.mult(this._tmpQuat),this._updateMatrix(),this}},{key:"rotateAroundX",value:function(e){return this.rotateAround(p.Vector3.X_AXIS,e)}},{key:"rotateAroundY",value:function(e){return this.rotateAround(p.Vector3.Y_AXIS,e)}},{key:"rotateAroundZ",value:function(e){return this.rotateAround(p.Vector3.Z_AXIS,e)}},{key:"scaleUniformBy",value:function(e){return this._scale.x*=e,this._scale.y*=e,this._scale.z*=e,this._updateMatrix(),this}},{key:"scaleBy",value:function(e){return this._scale.x*=e.x,this._scale.y*=e.y,this._scale.z*=e.z,this._updateMatrix(),this}},{key:"translateBy",value:function(e){return this._position.x+=e.x,this._position.y+=e.y,this._position.z+=e.z,this._updateMatrix(),this}},{key:"applyMatrix",value:function(e){this.matrix=this._matrix.multRight(e)}},{key:"applyMatrixLeft",value:function(e){this.matrix=this._matrix.multLeft(e)}},{key:"getNorm",value:function(){if(this._nonTRS)throw new Error("non TRS norm cannot be computed. sorry.");return Math.max(Math.abs(this._scale.x),Math.max(Math.abs(this._scale.y),Math.abs(this._scale.z)))}},{key:"transformBy",value:function(e){this.matrix=this._matrix.multRight(e.matrix)}},{key:"transformPoint",value:function(e){return this._nonTRS?e.mult4x4(this._matrix):e.transformForward(this._matrix)}},{key:"transformDirection",value:function(e){return e.transformForwardUpper3x3(this._matrix)}},{key:"inverseTransformPoint",value:function(e){return this._nonTRS?e.mult4x4(this._inverseMatrix):e.transformForward(this._inverseMatrix)}},{key:"inverseTransformDirection",value:function(e){return e.transformForwardUpper3x3(this._inverseMatrix)}},{key:"_updateInverseMatrix",value:function(){this._inverseMatrix.copyFrom(this._matrix).invert()}},{key:"_updateMatrix",value:function(){this._matrix.fromTRS(this._position,this._rotation,this._scale),this._updateInverseMatrix()}},{key:"nonTRS",set:function(e){this._nonTRS=e},get:function(){return this._nonTRS}},{key:"scale",get:function(){return this._scale},set:function(e){this._scale.copyFrom(e),this._updateMatrix()}},{key:"rotation",get:function(){return this._rotation},set:function(e){this._rotation.copyFrom(e),this._updateMatrix()}},{key:"position",set:function(e){this._position.copyFrom(e),this._updateMatrix()},get:function(){return this._position}},{key:"matrix",get:function(){return this._matrix},set:function(e){this._nonTRS?(this._matrix.copyFrom(e),this._updateInverseMatrix()):(e.toTRS(this._position,this._rotation,this._scale),this._updateMatrix())}},{key:"inverseMatrix",get:function(){return this._inverseMatrix}},{key:"uniformScale",set:function(e){this._scale.x=e,this._scale.y=e,this._scale.z=e,this._updateMatrix()}}]),t}(_.Serializable)},function(e,t,n){var r=n(35),i=n(16),a=n(67),o=n(80),s=n(79),l="prototype",u=function(e,t,n){var d,c,f,h=e&u.F,_=e&u.G,A=e&u.S,m=e&u.P,p=e&u.B,g=e&u.W,E=_?i:i[t]||(i[t]={}),v=E[l],b=_?r:A?r[t]:(r[t]||{})[l];_&&(n=t);for(d in n)c=!h&&b&&void 0!==b[d],c&&s(E,d)||(f=c?b[d]:n[d],E[d]=_&&"function"!=typeof b[d]?n[d]:p&&c?a(f,r):g&&b[d]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t[l]=e[l],t}(f):m&&"function"==typeof f?a(Function.call,f):f,m&&((E.virtual||(E.virtual={}))[d]=f,e&u.R&&v&&!v[d]&&o(v,d,f)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Texture=void 0;var i=n(51),a=r(i),o=n(14),s=r(o),l=n(4),u=r(l),d=n(1),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(146),p=r(m),g=n(2),E=r(g),v=n(5),b=r(v),S=n(18),T=n(97),x=n(7),y=n(10),C=n(17),w=n(41),M=n(58),D=n(19),P=r(D),R="image",I="compressedImageS3TC",L="compressedImagePVRTC",O="video",N="videoStream",B="hdrImage",F="cubemapRawImage",k="sliceImage",U="canvas",V="empty",G="data",H="2d",z="cubeMap",Q="unsignedByte",X="floatingPoint",W="halfFloatingPoint",j="depth16",Y="depth32",q="depth24_8",Z="stencil16",K="stencil32",J="stencil24_8",$="nearest",ee="nearestMipmapNearest",te="nearestMipmapLinear",ne="linear",re="linearMipmapLinear",ie="linearMipmapNearest",ae="nicest",oe="fastest",se="dontcare",le=45e3,ue="textureEventTextureLoaded",de="textureEventDebugDisplay",ce="textureEventMaxTextureSizeTooLow",fe="textureEventVideoStreamExceptionCaught",he=0,_e=t.Texture=function(e){function t(e){(0,c.default)(this,t);var n=(0,h.default)(this,(t.__proto__||(0,u.default)(t)).call(this,e));if(n._seeked=function(){n._videoNeedsUploadAfterSeek=!0},n._isIOS10OrHigher=x.Util.isIOS10OrHigher(),n._stichSliceBufferAsync=y.Context.async.makeAsync(n._stitchSliceBuffer),n._uploadVideoOnPaused=x.Util.getParam(e,"uploadVideoOnPaused",!1),n._explicitPackedSliceParams=x.Util.getParam(e,"explicitPackedSliceParams"),n._packedSliceCubemapOrder=x.Util.getParam(e,"packedSliceCubemapOrder",[0,1,2,3,4,5]),n._useVideoCanvasFallbackRendering=x.Util.getParam(e,"useVideoCanvasFallbackRendering"),n._deleted=!1,n._videoNeedsUploadAfterSeek=!1,n._videoEventListeners=new s.default,n._flipY=x.Util.getParam(e,"flipY",!1),n._texture=null,n._width=void 0,n._height=void 0,n._filterType={min:y.Context.gl.LINEAR_MIPMAP_LINEAR,mag:y.Context.gl.LINEAR},n._wrapMode=x.Util.getParam(e,"wrapMode",[y.Context.gl.CLAMP_TO_EDGE,y.Context.gl.CLAMP_TO_EDGE]),n.loaded=!1,n._onLoaded=x.Util.getParam(e,"onLoaded"),n._generateMipmaps=!0,n._mipmapHint=y.Context.gl.DONT_CARE,n._arrayBuffer=null,n._cubeMapInfo=null,n._hasNewArrayBuffer=!1,n._hasNewCanvasContent=!1,n._immediateLoad=!0,n._textureTarget=y.Context.gl.TEXTURE_2D,n._type=null,n._data=null,n._texFormat=t.UNSIGNED_BYTE,n._target=t.TWOD,n._internalFormat=y.Context.gl.RGBA,n._format=y.Context.gl.RGBA,n._dataType=y.Context.gl.UNSIGNED_BYTE,n._anisotropyInfo={isEnabled:!0,value:1},n._offscreenInfo={isOffscreen:!1,width:0,height:0},n._isIE=x.Util.isIE(),n._gzipRegex=/\.([0-9a-z]+).gz$/i,n._rgbmRegex=/.*?_rgbm-([0-9]+?)-([0-9]+)_.*/g,n._packedDdsRegex=/.*?_dl8PackedPngDds_.*/g,n._packedDepthRegex=/.*?_dl8PackedDepth(24|32)_.*/g,n._packedSliceRegex=/.*?_dl8PS-([ci])-([0-1])-([0-9]+)-([0-9]+)-([0-9]+)_.*/g,n._packedSliceMipmaps=!1,n._packedSliceChannelCount=0,n._packedSliceChannelSizeBytes=0,n._packedSliceCount=0,n._packedDepth24=!1,n._packedDepth32=!1,n._videoInfo=[],n._imageInfo={images:[],loadCounter:0,loadStartTime:0,eventListeners:[]},n._rgbmFactor=void 0,n._maxAniso=w.Renderer.MAX_TEXTURE_MAX_ANISOTROPY_EXT,n._videoTextureLoop=x.Util.getParam(e,"videoTextureLoop",!0),n._videoTextureMuted=x.Util.getParam(e,"videoTextureMuted",!1),n._useVideoTextureTimeout=!1,n._videoTextureAutoplay=x.Util.getParam(e,"videoTextureAutoplay",!0),n._videoTexuresFallbackEnabled=!0,n._videoDefaultFps=8,n._videoMinRefresh=1e3/n._videoDefaultFps,n._lastVideoRefresh=0,n._videoLoadGraceTimeOver=!1,n._videoReplaceExt=".png",n._videoLastCurrentTime=void 0,n._videoStreamException=void 0,n._packedPngDds=!1,n._isGzipped=!1,e.hasOwnProperty("immediateLoad")&&(n._immediateLoad=e.immediateLoad),!e.hasOwnProperty("type"))throw new Error("invalid param object supplied. no type specified");if(!e.hasOwnProperty("data"))throw new Error("invalid param object supplied. no data supplied for type: "+e.type);if(n._type=e.type,n._target=t.TWOD,n._texFormat=t.UNSIGNED_BYTE,e.hasOwnProperty("target")&&(n._target=e.target,x.Util.assert(n._target===t.TWOD||n._target===t.CUBE_MAP),n._target===t.TWOD?n._textureTarget=y.Context.gl.TEXTURE_2D:n._target===t.CUBE_MAP&&(n._textureTarget=y.Context.gl.TEXTURE_CUBE_MAP)),e.hasOwnProperty("filterType")&&n._setFilterTypeObject(e.filterType),e.hasOwnProperty("mipmapHint")&&n._setMipmapHint(e.mipmapHint),n._data=e.data,n._type===t.EMPTY){if(!e.data.hasOwnProperty("width")||!e.data.hasOwnProperty("height"))throw new Error("empty texture missing width or height");n._offscreenInfo.width=e.data.width,n._offscreenInfo.height=e.data.height,n._offscreenInfo.isOffscreen=!0}else if(n._type===t.DATA){if(n._data=e.data,!e.data.hasOwnProperty("arrayBuffer"))throw new Error("data texture without arraybuffer specified");if(n._arrayBuffer=e.data.arrayBuffer,n.isCubeMap){if(!e.data.hasOwnProperty("cubeMapInfo"))throw new Error("cubemap data texture without cubeMapInfo specified");n._cubeMapInfo=e.data.cubeMapInfo}else if(!e.data.hasOwnProperty("width")||!e.data.hasOwnProperty("height"))throw n._width=e.data.width,n._height=e.data.height,new Error("data texture missing width or height.")}else if(n._type===t.IMAGE){n._data=e.data;var r=void 0;if(n.isCubeMap){for(var i=0,a=n._data.length;i<a;++i){var o=n._getTextureTypeFromPath(n._data[i]);if(void 0!==r&&r!==o)throw new Error("cannot accept cube map texture with differing image types");r=o}n._type=r}else n._type=n._getTextureTypeFromPath(n._data[0]);n._type!==t.HDR_IMAGE&&n._type!==t.VIDEO&&(n._setRgbmParamsIfNeeded(n._data[0]),n._setPackedDdsParamsIfNeeded(n._data[0]),n._setPackedDepthParamsIfNeeded(n._data[0]),n._explicitPackedSliceParams?n._setPackedSliceParamsIfNeeded("_dl8PS-"+n._explicitPackedSliceParams+"_"):n._setPackedSliceParamsIfNeeded(n._data[0])),n._type===t.HDR_IMAGE&&(e.format=t.FLOATING_POINT),n._type===t.CUBEMAP_RAW_IMAGE&&(n._target=t.CUBE_MAP,n._textureTarget=y.Context.gl.TEXTURE_CUBE_MAP),n._type===t.VIDEO&&(n.fps=e.fps||n._videoDefaultFps)}else{if(n._type!==t.CANVAS&&n._type!==t.VIDEO_STREAM)throw n._type===t.VIDEO?new Error("video textures should be defined using the IMAGE type"):new Error("invalid texture type specified");n.fps=e.fps||n._videoDefaultFps,n._data=e.data}if(e.hasOwnProperty("generateMipmaps")&&(n._generateMipmaps=e.generateMipmaps),e.hasOwnProperty("generateFallbackVideos")&&(n._videoTexuresFallbackEnabled=e.generateFallbackVideos),e.hasOwnProperty("videoReplaceExt")&&(n._videoReplaceExt=e.videoReplaceExt),e.hasOwnProperty("format"))if(n._texFormat=e.format,x.Util.assert(n._texFormat===t.UNSIGNED_BYTE||n._texFormat===t.FLOATING_POINT||n._texFormat===t.HALF_FLOATING_POINT||n._texFormat===t.DEPTH_16||n._texFormat===t.DEPTH_32||n._texFormat===t.DEPTH_24_8||n._texFormat===t.STENCIL_16||n._texFormat===t.STENCIL_32||n._texFormat===t.STENCIL_24_8),n._texFormat===t.FLOATING_POINT)y.Context.glExtensionManager.has.textureFloat?n._dataType=y.Context.gl.FLOAT:n._texFormat=t.UNSIGNED_BYTE;else if(n._texFormat===t.HALF_FLOATING_POINT)y.Context.glExtensionManager.has.textureHalfFloat?n._dataType=y.Context.glExtensionManager.get.textureHalfFloat.HALF_FLOAT_OES:y.Context.glExtensionManager.has.textureFloat?n._texFormat=t.FLOATING_POINT:n._texFormat=t.UNSIGNED_BYTE;else if(n._texFormat===t.DEPTH_16||n._texFormat===t.DEPTH_32||n._texFormat===t.DEPTH_24_8||n._texFormat===t.STENCIL_16||n._texFormat===t.STENCIL_32||n._texFormat===t.STENCIL_24_8){if(!y.Context.glExtensionManager.has.depthTexture)throw new Error("error: no defaulting for depth textures, check availability of depth extension");switch(n._texFormat){case t.DEPTH_16:n._format=y.Context.gl.DEPTH_COMPONENT,n._internalFormat=y.Context.gl.DEPTH_COMPONENT,n._dataType=y.Context.gl.UNSIGNED_SHORT;break;case t.DEPTH_32:n._format=y.Context.gl.DEPTH_COMPONENT,n._internalFormat=y.Context.gl.DEPTH_COMPONENT,n._dataType=y.Context.gl.UNSIGNED_INT;break;case t.DEPTH_24_8:n._format=y.Context.gl.DEPTH_COMPONENT,n._internalFormat=y.Context.gl.DEPTH_COMPONENT,n._dataType=y.Context.glExtensionManager.get.depthTexture.UNSIGNED_INT_24_8_WEBGL;break;case t.STENCIL_16:n._format=y.Context.gl.DEPTH_STENCIL,n._internalFormat=y.Context.gl.DEPTH_STENCIL,n._dataType=y.Context.gl.UNSIGNED_SHORT;break;case t.STENCIL_32:n._format=y.Context.gl.DEPTH_STENCIL,n._internalFormat=y.Context.gl.DEPTH_STENCIL,n._dataType=y.Context.gl.UNSIGNED_INT;break;case t.STENCIL_24_8:n._format=y.Context.gl.DEPTH_STENCIL,n._internalFormat=y.Context.gl.DEPTH_STENCIL,n._dataType=y.Context.glExtensionManager.get.depthTexture.UNSIGNED_INT_24_8_WEBGL;break;default:throw new Error("failed to select depth format. something is broken.")}}if(e.hasOwnProperty("anisotropy")&&void 0!==e.anisotropy&&(n._ansiotropy=e.anisotropy,n._anisotropyInfo.isEnabled=y.Context.glExtensionManager.has.textureFilterAnisotropic,n._anisotropyInfo.value=e.anisotropy.value),n._type!==t.VIDEO&&n._type!==t.VIDEO_STREAM||!n._isFilterTypeMipmapCompatible(n._filterType)||(n._filterType.min=n._filterType.mag),n._immediateLoad)try{n.preload()}catch(e){throw n.dtor(),e}return n}return(0,b.default)(t,e),(0,E.default)(t,[{key:"$serialize",value:function(){return{name:"Texture",params:{flipY:this._flipY,wrapMode:this._wrapMode,immediateLoad:this._immediateLoad,type:this._type,target:this._target,texFormat:this._texFormat,filterType:this._origFilterType,mipmapHint:this._origMipmapHint,data:this._data,generateMipmaps:this._generateMipmaps,generateFallbackVideos:this._videoTexuresFallbackEnabled,videoTextureLoop:this._videoTextureLoop,videoTextureMuted:this._videoTextureMuted,videoTextureAutoplay:this._videoTextureAutoplay,videoReplaceExt:this._videoReplaceExt,format:this._texFormat,anisotropy:this._ansiotropy}}}}],[{key:"isPackedSliceImage",value:function(e){return/.*?_dl8PS-([ci])-([0-1])-([0-9]+)-([0-9]+)-([0-9]+)_.*/g.test(e)}},{key:"IMAGE",get:function(){return R}},{key:"COMPRESSED_IMAGE_S3TC",get:function(){return I}},{key:"COMPRESSED_IMAGE_PVRTC",get:function(){return L}},{key:"VIDEO",get:function(){return O}},{key:"VIDEO_STREAM",get:function(){return N}},{key:"HDR_IMAGE",get:function(){return B}},{key:"CUBEMAP_RAW_IMAGE",get:function(){return F}},{key:"SLICE_IMAGE",get:function(){return k}},{key:"CANVAS",get:function(){return U}},{key:"EMPTY",get:function(){return V}},{key:"DATA",get:function(){return G}},{key:"TWOD",get:function(){return H}},{key:"CUBE_MAP",get:function(){return z}},{key:"UNSIGNED_BYTE",get:function(){return Q}},{key:"FLOATING_POINT",get:function(){return X}},{key:"HALF_FLOATING_POINT",get:function(){return W}},{key:"DEPTH_16",get:function(){return j}},{key:"DEPTH_32",get:function(){return Y}},{key:"DEPTH_24_8",get:function(){return q}},{key:"STENCIL_16",get:function(){return Z}},{key:"STENCIL_32",get:function(){return K}},{key:"STENCIL_24_8",get:function(){return J}},{key:"NEAREST",get:function(){return $}},{key:"NEAREST_MIPMAP_NEAREST",get:function(){return ee}},{key:"NEAREST_MIPMAP_LINEAR",get:function(){return te}},{key:"LINEAR",get:function(){return ne}},{key:"LINEAR_MIPMAP_LINEAR",get:function(){return re}},{key:"LINEAR_MIPMAP_NEAREST",get:function(){return ie}},{key:"NICEST",get:function(){return ae}},{key:"FASTEST",get:function(){return oe}},{key:"DONT_CARE",get:function(){return se}},{key:"VIDEO_LOAD_GRACE_TIME_MS",get:function(){return le}},{key:"EVENT_TEXTURE_LOADED",get:function(){return ue}},{key:"EVENT_DEBUG_DISPLAY",get:function(){return de}},{key:"EVENT_MAX_TEXTURE_SIZE_TOO_LOW",get:function(){return ce}},{key:"EVENT_VIDEO_STREAM_EXCEPTION_CAUGHT",get:function(){return fe}},{key:"allocatedTextureBytes",get:function(){return he},set:function(e){he=e}}]),(0,E.default)(t,[{key:"_setCrossOrigin",value:function(e,t){void 0!==y.Context.crossOrigin&&!t.startsWith("data:")&&(t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//"))?e.crossOrigin=y.Context.crossOrigin:e.crossOrigin=null}},{key:"_setMipmapHint",value:function(e){if(void 0!==e){this._origMipmapHint=e;var n=function(e){switch(e){case t.NICEST:return y.Context.gl.NICEST;case t.FASTEST:return y.Context.gl.FASTEST;case t.DONT_CARE:return y.Context.gl.DONT_CARE;default:throw new Error("invalid mipmap hint type in texture arguments: "+e)}},r=this._mipmapHint;this._mipmapHint=n(e),r!==this._mipmapHint&&this.updateMipmaps()}}},{key:"_setFilterTypeObject",value:function(e){if(void 0!==e){this._origFilterType=e;var n=function(e){switch(e){case t.NEAREST:return y.Context.gl.NEAREST;case t.LINEAR:return y.Context.gl.LINEAR;default:throw new Error("invalid mag filter type in texture argument: "+e)}},r=function(e){switch(e){case t.NEAREST:return y.Context.gl.NEAREST;case t.NEAREST_MIPMAP_NEAREST:return y.Context.gl.NEAREST_MIPMAP_NEAREST;case t.NEAREST_MIPMAP_LINEAR:return y.Context.gl.NEAREST_MIPMAP_LINEAR;case t.LINEAR:return y.Context.gl.LINEAR;case t.LINEAR_MIPMAP_LINEAR:return y.Context.gl.LINEAR_MIPMAP_LINEAR;case t.LINEAR_MIPMAP_NEAREST:return y.Context.gl.LINEAR_MIPMAP_NEAREST;default:throw new Error("invalid min filter type in texture argument: "+e)}},i=null,a=null;e.hasOwnProperty("min")&&(i=r(e.min),this._filterType.min=i),e.hasOwnProperty("mag")&&(a=n(e.mag),this._filterType.mag=a)}}},{key:"_getVideoMimetypeFromExtension",value:function(e){var t=x.Util.getExtensionFromPath(e);if(null===t)return null;switch(t){case"mp4":return"video/mp4";case"webm":return"video/webm";default:y.Context.logger.error(this,"unsupported video format: "+t)}return null}},{key:"_appendVideoSourcesFromPath",value:function(e,t){var n=x.Util.getExtensionFromPath(e),r=x.Util.getVideoSupport(),i=void 0,a=void 0,o=void 0,s=!1;return"mp4"===n?("probably"===r.h264&&(i=document.createElement("source"),i.src=e,i.type=this._getVideoMimetypeFromExtension(e),t.appendChild(i),s=!0),"probably"===r.webm&&(a=document.createElement("source"),o=e.replace(".mp4",".webm"),a.src=o,a.type=this._getVideoMimetypeFromExtension(o),t.appendChild(a),s=!0),s):"webm"===n&&("probably"===r.webm&&(i=document.createElement("source"),i.src=e,i.type=this._getVideoMimetypeFromExtension(e),t.appendChild(i),s=!0),"probably"===r.h264&&(a=document.createElement("source"),o=e.replace(".webm",".mp4"),a.src=o,a.type=this._getVideoMimetypeFromExtension(o),t.appendChild(a),s=!0),s)}},{key:"_getGzipExt",value:function(e,t){var n=e.match(this._gzipRegex);return null!==n?t===!0?"."+n[1].toLowerCase():n[1].toLowerCase():null}},{key:"_getTextureTypeFromPath",value:function(e){var n=x.Util.getExtensionFromPath(e);switch("gz"===n&&(this._isGzipped=!0,n=this._getGzipExt(e)),n){case"raw":return t.HDR_IMAGE;case"dds":return t.COMPRESSED_IMAGE_S3TC;case"pvr":return t.COMPRESSED_IMAGE_PVRTC;case"dl8c":return t.CUBEMAP_RAW_IMAGE;case"mp4":case"webm":return t.VIDEO}if(this._isGzipped)throw new Error("cannot load gzipped image files");return t.IMAGE}},{key:"_isFilterTypeMipmapCompatible",value:function(e){var t=y.Context.gl,n=e.min;return!(n!==t.NEAREST_MIPMAP_NEAREST&&n!==t.NEAREST_MIPMAP_LINEAR&&n!==t.LINEAR_MIPMAP_LINEAR&&n!==t.LINEAR_MIPMAP_NEAREST)}},{key:"_adjustWrapModeIfNPOT",value:function(e,t){var n=parseInt(e),r=parseInt(t);this._wrapMode[0]!==y.Context.gl.REPEAT&&this._wrapMode[1]!==y.Context.gl.REPEAT||C.MathUtil.isPowerOfTwo(r)&&C.MathUtil.isPowerOfTwo(n)||(this._wrapMode[0]=y.Context.gl.CLAMP_TO_EDGE,this._wrapMode[1]=y.Context.gl.CLAMP_TO_EDGE)}},{key:"_getRawCubemapInfo",value:function(e){var t=16,n=new Uint32Array(e,0,4);if(3514880384!==n[0])throw new Error("cubemap texture does not have delight header");var r=n[1],i=n[3];if(4===i)this._format=y.Context.gl.RGBA,this._internalFormat=y.Context.gl.RGBA;else{if(3!==i)throw new Error('invalid channel count for cubemap raw image. should be 4 (rgba) was "'+i+'"');this._format=y.Context.gl.RGB,this._internalFormat=y.Context.gl.RGB}var a=this._isFloatTexture?4:1,o=Uint8Array;4===a&&(this._dataType=y.Context.gl.FLOAT,o=Float32Array);var s=[];!function(e,t,n){for(var r=e,i=0,o=0,l=0;(l=r>>i)>0;)o+=l*l*n*a,s[i++]=o;return 6*o+t}(r,t,i);for(var l=[],u=r,d=0;d<6;++d)for(var c=0,f=0,h=void 0;(h=u>>c)>0;){void 0===l[d]&&(l[d]=[]);var _=h*h*i*a,A=t+d*s[s.length-1]+f,m=A+_,p=new o(e,A,(m-A)/a);l[d][c]={mipLevel:c,width:h,height:h,data:p},f+=_,++c}return l}},{key:"_getPVRTCInfo",value:function(e){var t=52,n=new Uint32Array(e,0,t);if(55727696!==n[0])throw new Error("not a pvrtc file!");var r={},i=n[1];r.isPreMultipliedAlpha=2===i;var a=n[2],o=void 0,s=void 0,l=void 0;switch(a){case 0:r.internalFormat=y.Context.glExtensionManager.get.compressedTexturePVRTC.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,l=.25,o=16,s=8;break;case 1:r.internalFormat=y.Context.glExtensionManager.get.compressedTexturePVRTC.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,l=.25,o=16,s=8;break;case 2:r.internalFormat=y.Context.glExtensionManager.get.compressedTexturePVRTC.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,l=.5,o=8,s=8;break;case 3:r.internalFormat=y.Context.glExtensionManager.get.compressedTexturePVRTC.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,l=.5,o=8,s=8;break;default:throw new Error("unsupported pixel format in pvrtc")}var u=n[4];r.isLinear=0===u;var d=n[5];if(0!==d)throw new Error("unsupported channel type in pvrtc");r.height=n[6],r.width=n[7];var c=n[8];if(1!==c)throw new Error("no 3d texture support in webgl");r.depth=c;var f=n[9];if(f>1)throw new Error("no texture arrays supported, yet.");r.faces=n[10],r.isCubeMap=r.faces>1,r.mipCount=n[11];var h=n[12];r.data=[];for(var _=r.width,A=r.height,m=void 0,p=t+h,g=0;g<r.mipCount;++g){m=r.isCubeMap?y.Context.gl.TEXTURE_CUBE_MAP_POSITIVE_X:y.Context.gl.TEXTURE_2D;for(var E=0;E<r.faces;++E){var v=Math.max(_,o)*Math.max(A,s)*l|0;r.data.push({target:m+E,data:new Uint8Array(e,p,v),mipLevel:g,width:_,height:A}),p+=v}_=Math.max(1,_>>1),A=Math.max(1,A>>1)}return r}},{key:"_getDDSInfo",value:function(e){var t=31,n=function(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)},r=new Int32Array(e,0,t);if(542327876!==r[0])throw new Error("no dds magic found");if(4&!r[20])throw new Error("no fourcc found");var i=r[21];if(i!==n("DXT5"))throw new Error("unsupported dds format");var a=1;131072&r[2]&&(a=Math.max(1,r[7]));for(var o=[],s=0,l=r[4],u=r[3],d=r[1]+4;s<a;++s,l*=.5,u*=.5){var c=Math.floor((l+3)/4)*Math.floor((u+3)/4)*16;o.push({width:l,height:u,length:c,data:new Uint8Array(e,d,c)}),d+=c}return o}},{key:"_generateMipmapsIfEnabled",value:function(e,t,n){if(this._generateMipmaps||n){this._isFilterTypeMipmapCompatible(this._filterType)||y.Context.logger.error(this,"min filterType is not compatible to mipmapping, but mipmapping was requested. mipmapping will not work correctly.");var r=parseInt(e),i=parseInt(t);C.MathUtil.isPowerOfTwo(i)&&C.MathUtil.isPowerOfTwo(r)?n||(this._registerTextureDimensions(r,i,!0),y.Context.gl.hint(y.Context.gl.GENERATE_MIPMAP_HINT,this._mipmapHint),y.Context.gl.generateMipmap(this._textureTarget)):(this._isFilterTypeMipmapCompatible(this._filterType)&&(this._filterType.min=this._filterType.mag),this._generateMipmaps=!1)}else this._isFilterTypeMipmapCompatible(this._filterType)&&(this._filterType.min=this._filterType.mag)}},{key:"_haveEnoughVideoData",value:function(){for(var e=0;e<this._data.length;++e)if(this._imageInfo.images[e].readyState!==this._imageInfo.images[e].HAVE_ENOUGH_DATA)return!1;return!0}},{key:"updateCanvas",value:function(e,t){this._hasNewCanvasContent=!0,this._hasNewCanvasContentRect?(this._hasNewCanvasContentRect.push(e),this._hasNewCanvasContentResults.push(t)):(this._hasNewCanvasContentRect=[e],this._hasNewCanvasContentResults=[t])}},{key:"setWrapMode",value:function(e,t){if(e>this._wrapMode.length-1)throw new Error("invalid dimension ("+e+") for "+this._wrapMode);this._wrapMode[e]=t,this._loaded&&this._texture&&(y.Context.gl.bindTexture(this._textureTarget,this._texture),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this._wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this._wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null))}},{key:"updateMipmaps",value:function(){this._loaded&&this._texture&&this._generateMipmaps&&(y.Context.gl.bindTexture(this._textureTarget,this._texture),y.Context.gl.hint(y.Context.gl.GENERATE_MIPMAP_HINT,this._mipmapHint),y.Context.gl.generateMipmap(this._textureTarget),y.Context.gl.bindTexture(this._textureTarget,null))}},{key:"_enableAnisotropy",value:function(){if(this._anisotropyInfo.isEnabled){var e=this._anisotropyInfo.value;e>this._maxAniso&&(e=this._maxAniso),y.Context.glExtensionManager.has.textureFilterAnisotropic&&y.Context.gl.texParameterf(this._textureTarget,y.Context.glExtensionManager.get.textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,e)}}},{key:"_bytesForFormat",value:function(){switch(this._texFormat){case t.UNSIGNED_BYTE:return 4;case t.HALF_FLOATING_POINT:return 8;case t.STENCIL_16:return 2;case t.STENCIL_24_8:return 4;case t.STENCIL_32:return 4;case t.DEPTH_16:return 2;case t.DEPTH_32:return 4;case t.FLOATING_POINT:return 16}return 0}},{key:"_bytesForTexture",value:function(e,t){return e*t*this._bytesForFormat()}},{key:"_registerBytes",value:function(e,t,n){var r=this._bytesForTexture(e,t);n&&(r*=1/3),he+=r}},{key:"_registerTextureDimensions",value:function(e,n,r){var i=w.Renderer.MAX_TEXTURE_SIZE;if(this.isCubeMap&&(i=w.Renderer.MAX_CUBE_MAP_TEXTURE_SIZE),e>i||n>i)throw y.Context.eventEmitter.emitOnce(this,t.EVENT_MAX_TEXTURE_SIZE_TOO_LOW,!1),this.dtor(),new Error("The requested texture size of ("+e+", "+n+") is not supported on this hardware.");this._registerBytes(e,n)}},{key:"_setRgbmParamsIfNeeded",value:function(e){if(!e.startsWith("data:")){var t=null;null!==(t=this._rgbmRegex.exec(e))&&(this._rgbmFactor=parseInt(t[1],10)/parseInt(t[2],10))}}},{key:"_setPackedDdsParamsIfNeeded",value:function(e){e.startsWith("data:")||null!==this._packedDdsRegex.exec(e)&&(this._packedPngDds=!0)}},{key:"_setPackedDepthParamsIfNeeded",value:function(e){if(!e.startsWith("data:")){var t=null;if(null!==(t=this._packedDepthRegex.exec(e))){var n=parseInt(t[1],10);if(24===n)this._packedDepth24=!0;else{if(32!==n)throw new Error("unsupported pack depth bits count: "+n);this._packedDepth32=!0}}}}},{key:"_setPackedSliceParamsIfNeeded",value:function(e){if(!e.startsWith("data:")){var n=null;if(null!==(n=this._packedSliceRegex.exec(e))){if(this._type=t.SLICE_IMAGE,this._target="c"===n[1]?t.CUBE_MAP:t.TWOD,this._target===t.CUBE_MAP&&(this._textureTarget=y.Context.gl.TEXTURE_CUBE_MAP),this._packedSliceMipmaps=!!parseInt(n[2],10),this._packedSliceChannelCount=parseInt(n[3],10),this._packedSliceChannelSizeBytes=parseInt(n[4],10),this._packedSliceCount=parseInt(n[5],10),1===this._packedSliceChannelSizeBytes)this._dataType=y.Context.gl.UNSIGNED_BYTE;else if(2===this._packedSliceChannelSizeBytes){if(!y.Context.glExtensionManager.has.textureHalfFloat)throw new Error("no support for half float.");this._dataType=y.Context.glExtensionManager.get.textureHalfFloat.HALF_FLOAT_OES}else{if(4!==this._packedSliceChannelSizeBytes)throw new Error("invalid byte count in channels.");this._dataType=y.Context.gl.FLOAT}if(3===this._packedSliceChannelCount)this._format=y.Context.gl.RGB,this._internalFormat=y.Context.gl.RGB;else{if(4!==this._packedSliceChannelCount)throw new Error("invalid channel count.");this._format=y.Context.gl.RGBA,this._internalFormat=y.Context.gl.RGBA}}}}},{key:"_removeVideoEventListener",value:function(e,t,n){var r=void 0;(r=this._videoEventListeners.get(e))&&(r.delete(n),0===r.size&&this._videoEventListeners.delete(r),e.removeEventListener(t,n))}},{key:"_addVideoEventListener",value:function(e,t,n){var r=void 0;(r=this._videoEventListeners.get(e))||(r=new s.default,this._videoEventListeners.set(e,r)),r.set(n,t),e.addEventListener(t,n)}},{key:"_removeAllVideoEventListeners",value:function(){this._videoEventListeners.forEach(function(e,t){e.forEach(function(e,n){t.removeEventListener(e,n)}),e.clear()}),this._videoEventListeners.clear()}},{key:"allocate",value:function(){if(this._texture)return!1;if(this._texture=y.Context.gl.createTexture(),y.Context.gl.bindTexture(this._textureTarget,this._texture),this._width=this._offscreenInfo.width,this._height=this._offscreenInfo.height,this.isCubeMap)for(var e=0;e<6;++e)this._registerTextureDimensions(this._offscreenInfo.width,this._offscreenInfo.height),y.Context.gl.texImage2D(y.Context.gl.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,this._internalFormat,this._offscreenInfo.width,this._offscreenInfo.height,0,this._format,this._dataType,null);else this._registerTextureDimensions(this._offscreenInfo.width,this._offscreenInfo.height),this._enableFlipY(),y.Context.gl.texImage2D(this._textureTarget,0,this._internalFormat,this._offscreenInfo.width,this._offscreenInfo.height,0,this._format,this._dataType,null),this._disableFlipY();this._enableAnisotropy(),this._generateMipmapsIfEnabled(this._offscreenInfo.width,this._offscreenInfo.height),this._adjustWrapModeIfNPOT(this._offscreenInfo.width,this._offscreenInfo.height),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this._filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this._filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this._wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this._wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),this.loaded=!0}},{key:"copyFromFramebuffer",value:function(e,t,n,r,i,a,o,s){this._texture&&(y.Context.gl.bindTexture(this._textureTarget,this._texture),s?y.Context.gl.copyTexSubImage2D(s,e,t,n,r,i,0|a,0|o):y.Context.gl.copyTexSubImage2D(this._textureTarget,e,t,n,r,i,0|a,0|o),y.Context.gl.bindTexture(this._textureTarget,null))}},{key:"dtor",value:function(){if(null!==this._texture&&(y.Context.gl.bindTexture(this._textureTarget,this._texture),y.Context.gl.deleteTexture(this._texture),y.Context.gl.bindTexture(this._textureTarget,null),this._texture=null,this.loaded=!1),this._type===t.VIDEO)for(var e=0;e<this._imageInfo.images.length;++e)this._imageInfo.images[e].removeEventListener("playing",this._imageInfo.eventListeners[e]);else this._type===t.VIDEO_STREAM&&this._data[0].removeEventListener("seeked",this._seeked);this._imageInfo={images:[],loadCounter:0,loadStartTime:0,eventListeners:[]},this._ieVideoCanvas=null,this._ieVideoCanvasCtx=null,this._deleted=!0,this._removeAllVideoEventListeners(),(0,A.default)(t.prototype.__proto__||(0,u.default)(t.prototype),"dtor",this).call(this)}},{key:"preload",value:function(){var e=this;if(!this._texture&&!this._deleted&&!this._loaded)if(this.markLoading(),this._type===t.VIDEO_STREAM){if(this._texture=y.Context.gl.createTexture(),!this._texture)return!1;this._isIOS10OrHigher?(this._internalFormat=y.Context.gl.RGBA,this._format=y.Context.gl.RGBA):(this._internalFormat=y.Context.gl.RGB,this._format=y.Context.gl.RGB);var n=this._data[0];n.addEventListener("seeked",this._seeked);var r=function r(){try{e._useVideoCanvasFallbackRendering?(e._width=n.videoWidth||n.width||Math.min(2048,w.Renderer.MAX_TEXTURE_SIZE),e._height=n.videoHeight||n.height||Math.min(2048,w.Renderer.MAX_TEXTURE_SIZE)):(e._width=n.videoWidth||n.width,e._height=n.videoHeight||n.height), e._registerTextureDimensions(e._width,e._height),y.Context.gl.bindTexture(e._textureTarget,e._texture),e._enableFlipY(),e._useVideoCanvasFallbackRendering?(e._ieVideoCanvas=document.createElement("canvas"),e._ieVideoCanvas.width=e._width,e._ieVideoCanvas.height=e._height,e._ieVideoCanvasCtx=e._ieVideoCanvas.getContext("2d"),e._ieVideoCanvasCtx.drawImage(n,0,0,e._width,e._height),y.Context.gl.texImage2D(e._textureTarget,0,e._internalFormat,e._format,e._dataType,e._ieVideoCanvas)):y.Context.gl.texImage2D(e._textureTarget,0,e._internalFormat,e._format,e._dataType,n),e._disableFlipY(),e._enableAnisotropy(),e._generateMipmapsIfEnabled(e._width,e._height),e._adjustWrapModeIfNPOT(e._width,e._height),y.Context.gl.texParameteri(e._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,e.filterType.mag),y.Context.gl.texParameteri(e._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,e.filterType.min),y.Context.gl.texParameteri(e._textureTarget,y.Context.gl.TEXTURE_WRAP_S,e.wrapMode[0]),y.Context.gl.texParameteri(e._textureTarget,y.Context.gl.TEXTURE_WRAP_T,e.wrapMode[1]),y.Context.gl.bindTexture(e._textureTarget,null),e._removeVideoEventListener(n,"canplay",r),e.loaded=!0}catch(n){if(e.dtor(),!n.name.startsWith("SecurityError")&&!n.message.startsWith("SecurityError"))throw n;e._videoStreamException=n,y.Context.eventEmitter.emitOnce(e,t.EVENT_VIDEO_STREAM_EXCEPTION_CAUGHT,!1)}};if(n.readyState<2)return this._addVideoEventListener(n,"canplay",r),!1;r(n)}else if(this._type===t.VIDEO){var i=function(){var n=void 0;if(e._texture=y.Context.gl.createTexture(),e.isCubeMap)for(var r=0;r<6;++r){var i=e._data[C.MathUtil.clamp(r,0,e._data.length-1)];if(n=document.createElement("video"),n.setAttribute("webkit-playsinline",""),n.setAttribute("playsinline",""),!e._appendVideoSourcesFromPath(i,n)||e._videoLoadGraceTimeOver){if(e._videoTexuresFallbackEnabled||e._videoLoadGraceTimeOver){e._type=t.IMAGE;for(var a=0;a<6;++a){var o=e._data[C.MathUtil.clamp(a,0,e._data.length-1)];e._data[C.MathUtil.clamp(a,0,e._data.length-1)]=o.replace(x.Util.getExtensionFromPath(i,!0),e._videoReplaceExt)}return e._setPackedDdsParamsIfNeeded(e._data[0]),y.Context.gl.deleteTexture(e._texture),e._texture=null,e.preload(),{v:!1}}throw new Error("selected texture video format is not supported by this browser.")}n.autoplay=e._videoTextureAutoplay,n.loop=e._videoTextureLoop,n.muted=e._videoTextureMuted,e._setCrossOrigin(n,e._data[0]),e._imageInfo.images.push(n),e._imageInfo.loadStartTime=x.Util.performanceNow();var s=function(e){return!!this._texture&&(this._width=n.videoWidth||n.width,this._height=n.videoHeight||n.height,this._registerTextureDimensions(n.width,n.height),y.Context.gl.bindTexture(this._textureTarget,this._texture),y.Context.gl.texImage2D(y.Context.gl.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,this._internalFormat,this._format,this._dataType,this._imageInfo.images[e]),this._generateMipmapsIfEnabled(n.width,n.height),this._adjustWrapModeIfNPOT(n.width,n.height),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),this._imageInfo.loadCounter++,void(6===this._imageInfo.loadCounter&&(this.loaded=!0,y.Context.logger.debug(this,"async load of cubemap videos complete."))))}.bind(e,r);e._imageInfo.eventListeners.push(s),e._addVideoEventListener(n,"playing",s),y.Context.logger.debug(e,"loading cubemap video face "+r+" with url = "+i)}else{var l=e._data[0];if(n=document.createElement("video"),n.setAttribute("webkit-playsinline",""),n.setAttribute("playsinline",""),!e._appendVideoSourcesFromPath(l,n)||e._videoLoadGraceTimeOver){if(e._videoTexuresFallbackEnabled||e._videoLoadGraceTimeOver)return e._type=t.IMAGE,e._data[0]=e._data[0].replace(x.Util.getExtensionFromPath(l,!0),e._videoReplaceExt),e._setPackedDdsParamsIfNeeded(e._data[0]),y.Context.gl.deleteTexture(e._texture),e._texture=null,e.preload(),{v:!1};throw new Error("selected texture video format is not supported by this browser.")}n.loop=e._videoTextureLoop,n.muted=e._videoTextureMuted,n.autoplay=e._videoTextureAutoplay,e._imageInfo.images.push(n),e._imageInfo.loadStartTime=x.Util.performanceNow();var u=function(){return!!e._texture&&(e._width=n.videoWidth||n.width,e._height=n.videoHeight||n.height,e._registerTextureDimensions(n.width,n.height),y.Context.gl.bindTexture(e._textureTarget,e._texture),y.Context.gl.texImage2D(e._textureTarget,0,e._internalFormat,e._format,e._dataType,n),e._enableAnisotropy(),e._generateMipmapsIfEnabled(n.width,n.height),e._adjustWrapModeIfNPOT(n.width,n.height),y.Context.gl.texParameteri(e._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,e.filterType.mag),y.Context.gl.texParameteri(e._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,e.filterType.min),y.Context.gl.texParameteri(e._textureTarget,y.Context.gl.TEXTURE_WRAP_S,e.wrapMode[0]),y.Context.gl.texParameteri(e._textureTarget,y.Context.gl.TEXTURE_WRAP_T,e.wrapMode[1]),y.Context.gl.bindTexture(e._textureTarget,null),e._imageInfo.loadCounter++,void(e.loaded=!0))};e._imageInfo.eventListeners.push(u),e._addVideoEventListener(n,"playing",u),e._setCrossOrigin(n,l)}}();if("object"===("undefined"==typeof i?"undefined":(0,a.default)(i)))return i.v}else if(this._type===t.IMAGE){var o=function(){if(e._packedPngDds)return e._type=t.COMPRESSED_IMAGE_S3TC,e.preload(),{v:!1};var n=void 0;if(e._texture=y.Context.gl.createTexture(),e.isCubeMap)for(var r=function(t){var r=e._data[C.MathUtil.clamp(t,0,e._data.length-1)];n=new Image,e._setCrossOrigin(n,r),e._imageInfo.images.push(n),n.onload=function(e){this._deleted||(this._width=n.width,this._height=n.height,this._registerTextureDimensions(n.width,n.height),y.Context.gl.bindTexture(this._textureTarget,this._texture),this._enableFlipY(),y.Context.gl.texImage2D(y.Context.gl.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,this._internalFormat,this._format,this._dataType,this._imageInfo.images[e]),this._disableFlipY(),this._generateMipmapsIfEnabled(n.width,n.height),this._adjustWrapModeIfNPOT(n.width,n.height),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),this._imageInfo.loadCounter++,y.Context.logger.debug(this,"loaded image "+r+" ("+y.Context.getError()+")"),6===this._imageInfo.loadCounter&&(this.loaded=!0,y.Context.logger.debug(this,"async load of cubemap images complete.")))}.bind(e,t),n.src=r,y.Context.logger.debug(e,"loading cubemap image face "+t+" with url "+r)},i=0;i<6;++i)r(i);else{var a=e._data[0];n=new Image,e._imageInfo.images.push(n),n.onload=function(){try{if(this._deleted)return;this._width=n.width,this._height=n.height,this._registerTextureDimensions(n.width,n.height),y.Context.gl.bindTexture(this._textureTarget,this._texture),this._enableFlipY(),y.Context.gl.texImage2D(this._textureTarget,0,this._internalFormat,this._format,this._dataType,n),this._disableFlipY(),this._enableAnisotropy(),this._generateMipmapsIfEnabled(n.width,n.height),this._adjustWrapModeIfNPOT(n.width,n.height),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),this.loaded=!0}catch(e){y.Context.logger.debug(this,"error uploading texture with url "+a),this.dtor()}}.bind(e),e._setCrossOrigin(n,a),n.src=a,n.onerror=function(t){e.dtor()}}}();if("object"===("undefined"==typeof o?"undefined":(0,a.default)(o)))return o.v}else if(this._type===t.HDR_IMAGE)if(this._texture=y.Context.gl.createTexture(),this.isCubeMap){if(!this._data)throw new Error("hdr cubemap texture without images specified");for(var s=function(e,t,n){if(!this._deleted){var r=n.response,i=new Uint32Array(n.response,0,4);if(3514880384!==i[0])throw new Error("hdr texture does not have delight header");var a=i[1],o=i[2],s=i[3];if(3===s)this._format=y.Context.gl.RGB,this._internalFormat=y.Context.gl.RGB;else{if(4!==s)throw new Error('invalid channel count for hdr image. should be 3 (rgb) or 4 (rgba) was "'+s+'"');this._format=y.Context.gl.RGBA,this._internalFormat=y.Context.gl.RGBA}y.Context.gl.bindTexture(this._textureTarget,this._texture),y.Context.gl.texImage2D(y.Context.gl.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,this._internalFormat,a,o,0,this._format,this._dataType,new Float32Array(r,16)),6===++this._imageInfo.loadCounter&&this._generateMipmapsIfEnabled(a,o),this._adjustWrapModeIfNPOT(a,o),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),y.Context.logger.debug("loaded hdr image "+t+" ("+y.Context.getError()+")"),6===this._imageInfo.loadCounter&&(this.loaded=!0,y.Context.logger.debug("async load of hdr cubemap images complete."))}},l=0;l<6;++l){var u=this._data[C.MathUtil.clamp(l,0,this._data.length-1)];T.XHRRequest.request({gzipRequest:this._isGzipped,uri:u,noCache:!1,onLoad:s.bind(this,l,u),responseType:"arraybuffer"})}}else{var d=this._data[0];T.XHRRequest.request({gzipRequest:this._isGzipped,uri:d,noCache:!1,onLoad:function(e){if(!this._deleted){var t=e.response,n=new Uint32Array(e.response,0,4);if(3514880384!==n[0])throw new Error("hdr texture does not have delight header");this._width=n[1],this._height=n[2],this._registerTextureDimensions(this._width,this._height);var r=n[3];if(3===r)this._format=y.Context.gl.RGB,this._internalFormat=y.Context.gl.RGB;else{if(4!==r)throw new Error("invalid channel count for hdr image. should be 3 (rgb) or 4 (rgba) was "+r);this._format=y.Context.gl.RGBA,this._internalFormat=y.Context.gl.RGBA}y.Context.gl.bindTexture(this._textureTarget,this._texture),y.Context.gl.texImage2D(this._textureTarget,0,this._internalFormat,this._width,this._height,0,this._format,this._dataType,new Float32Array(t,16)),this._generateMipmapsIfEnabled(this._width,this._height),this._adjustWrapModeIfNPOT(this._width,this._height),this._enableAnisotropy(),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),this.loaded=!0}}.bind(this),responseType:"arraybuffer"}),y.Context.logger.debug("starting load of hdr image with url = "+d)}else if(this._type===t.COMPRESSED_IMAGE_S3TC){if(!y.Context.glExtensionManager.has.compressedTextureS3TC)throw new Error("compressed s3tc image texture requested, but no suitable extension found");if(this._internalFormat=y.Context.glExtensionManager.get.compressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT5_EXT,this._texture=y.Context.gl.createTexture(),this.isCubeMap)for(var c=function(t){var n=e._data[C.MathUtil.clamp(t,0,e._data.length-1)],r=function(e,t){if(!this._deleted){var r=t.response,i=this._getDDSInfo(r);this._width=i[0].width,this._height=i[0].height,y.Context.gl.bindTexture(this._textureTarget,this._texture);for(var a=0;a<i.length;++a)this._registerTextureDimensions(i[a].width,i[a].height),y.Context.gl.compressedTexImage2D(y.Context.gl.TEXTURE_CUBE_MAP_POSITIVE_X+e,a,this._internalFormat,i[a].width,i[a].height,0,i[a].data);this._generateMipmapsIfEnabled(i[0].width,i[0].height,!0),this._adjustWrapModeIfNPOT(i[0].width,i[0].height),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),this._imageInfo.loadCounter++,y.Context.logger.debug(this,"loaded compressed image "+n+" ("+y.Context.getError()+")"),6===this._imageInfo.loadCounter&&(this.loaded=!0,y.Context.logger.debug(this,"async load of compressed cubemap images complete."))}}.bind(e,t);T.XHRRequest.request({gzipRequest:e._isGzipped,uri:n,noCache:!1,onLoad:r,packedPngRequest:e._packedPngDds,responseType:"arraybuffer"})},f=0;f<6;++f)c(f);else{var h=this._data[0],_=function(e){if(!this._deleted){var t=e.response,n=this._getDDSInfo(t);this._width=n[0].width,this._height=n[0].height,y.Context.gl.bindTexture(this._textureTarget,this._texture);for(var r=0;r<n.length;++r)this._registerTextureDimensions(n[r].width,n[r].height),y.Context.gl.compressedTexImage2D(this._textureTarget,r,this._internalFormat,n[r].width,n[r].height,0,n[r].data);this._generateMipmapsIfEnabled(n[0].width,n[0].height,!0),this._enableAnisotropy(),this._adjustWrapModeIfNPOT(n[0].width,n[0].height),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),this.loaded=!0}}.bind(this);T.XHRRequest.request({gzipRequest:this._isGzipped,uri:h,noCache:!1,onLoad:_,packedPngRequest:this._packedPngDds,responseType:"arraybuffer"})}}else if(this._type===t.CUBEMAP_RAW_IMAGE){if(!this.isCubeMap)throw new Error("CUBEMAP_RAW_IMAGE specified, but texture is not a CUBEMAP.");this._texture=y.Context.gl.createTexture();var A=this._data[0];T.XHRRequest.request({gzipRequest:this._isGzipped,uri:A,noCache:!1,onLoad:function(e){if(!this._deleted){var t=e.response,n=this._getRawCubemapInfo(t);this._width=n[0][0].width,this._height=n[0][0].height,y.Context.gl.bindTexture(this._textureTarget,this._texture);for(var r=0;r<n.length;++r)for(var i=0;i<n[r].length;++i){var a=n[r][i];this._registerTextureDimensions(a.width,a.height),this._enableFlipY(),y.Context.gl.texImage2D(y.Context.gl.TEXTURE_CUBE_MAP_POSITIVE_X+r,i,this._internalFormat,a.width,a.height,0,this._format,this._dataType,a.data),this._disableFlipY()}this._generateMipmapsIfEnabled(n[0][0].width,n[0][0].height,!0),this._enableAnisotropy(),this._adjustWrapModeIfNPOT(n[0][0].width,n[0][0].height),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),this.loaded=!0}}.bind(this),responseType:"arraybuffer"})}else if(this._type===t.COMPRESSED_IMAGE_PVRTC){if(!y.Context.glExtensionManager.has.compressedTexturePVRTC)throw new Error("compressed pvrtc image texture requested, but no suitable extension found");this._texture=y.Context.gl.createTexture();var m=this._data[0];T.XHRRequest.request({gzipRequest:this._isGzipped,uri:m,noCache:!1,onLoad:function(e){if(!this._deleted){var t=e.response,n=this._getPVRTCInfo(t);y.Context.gl.bindTexture(this._textureTarget,this._texture);for(var r=void 0,i=0,a=n.data.length;i<a;++i)r=n.data[i],this._width=r.width,this._height=r.height,this._registerTextureDimensions(r.width,r.height),y.Context.gl.compressedTexImage2D(r.target,r.mipLevel,n.internalFormat,r.width,r.height,0,r.data);this._width=r.width,this._height=r.height,this._generateMipmapsIfEnabled(n.width,n.height,!0),this._enableAnisotropy(),this._adjustWrapModeIfNPOT(n.width,n.height),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),this.loaded=!0}}.bind(this),responseType:"arraybuffer"})}else if(this._type===t.DATA){if(this._texture=y.Context.gl.createTexture(),this.isCubeMap){var p=this._cubeMapInfo.size,g=this._format===y.Context.gl.RGBA?4:3,E=this._texFormat===t.UNSIGNED_BYTE?1:4,v=[],b=x.Util.mipOffsetPerFace(p,g,E,v);this._width=p,this._height=p,y.Context.gl.bindTexture(this._textureTarget,this._texture);for(var S=0;S<6;++S)for(var M=0;M<v.length;++M){var D=(S*b+v[M].offset)/E;this._registerTextureDimensions(v[M].size,v[M].size),y.Context.gl.texImage2D(y.Context.gl.TEXTURE_CUBE_MAP_POSITIVE_X+S,M,this._internalFormat,v[M].size,v[M].size,0,this._format,this._dataType,this._arrayBuffer.subarray(D,D+v[M].faceSize/E))}y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),this._enableAnisotropy(),this._generateMipmapsIfEnabled(this._width,this._height),this._adjustWrapModeIfNPOT(this._width,this._height)}else this._width=this._data.width,this._height=this._data.height,this._registerTextureDimensions(this._data.width,this._data.height),y.Context.gl.bindTexture(this._textureTarget,this._texture),y.Context.gl.texImage2D(this._textureTarget,0,this._internalFormat,this._data.width,this._data.height,0,this._format,this._dataType,this._arrayBuffer),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),this._enableAnisotropy(),this._generateMipmapsIfEnabled(this._data.width,this._data.height),this._adjustWrapModeIfNPOT(this._data.width,this._data.height);y.Context.gl.bindTexture(this._textureTarget,null),y.Context.logger.debug(this,"loaded data texture"),this.loaded=!0}else if(this._type===t.EMPTY)this.allocate();else if(this._type===t.CANVAS){if(this._texture=y.Context.gl.createTexture(),y.Context.gl.bindTexture(this._textureTarget,this._texture),this.isCubeMap)for(var P=0;P<6;++P)this._registerTextureDimensions(this._data[P].width,this._data[P].height),this._enableFlipY(),y.Context.gl.texImage2D(y.Context.gl.TEXTURE_CUBE_MAP_POSITIVE_X+P,0,this._internalFormat,this._format,this._dataType,this._data[Math.clamp(P,0,this._data.length-1)]),this._disableFlipY();else{if(this._enableFlipY(),Array.isArray(this._data[0])){if(0===this._data[0].length)throw new Error("Canvas Texture Array is empty");this._registerTextureDimensions(this._data[0][0].width,this._data[0][0].height);for(var R=0;R<this._data[0].length;++R)y.Context.gl.texImage2D(this._textureTarget,R,this._internalFormat,this._format,this._dataType,this._data[0][R])}else y.Context.gl.texImage2D(this._textureTarget,0,this._internalFormat,this._format,this._dataType,this._data[0]);this._disableFlipY()}Array.isArray(this._data[0])?(this._width=this._data[0][0].width,this._height=this._data[0][0].height,this._adjustWrapModeIfNPOT(this._data[0][0].width,this._data[0][0].height)):(this._width=this._data[0].width,this._height=this._data[0].height,this._generateMipmapsIfEnabled(this._data[0].width,this._data[0].height),this._adjustWrapModeIfNPOT(this._data[0].width,this._data[0].height)),this._enableAnisotropy(),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),this.loaded=!0}else if(this._type===t.SLICE_IMAGE){this._texture=y.Context.gl.createTexture();var I=new Image;I.onload=this._unpackSliceImage.bind(this,I),this._setCrossOrigin(I,this._data[0]),I.src=this._data[0]}else if(!this._loaded&&this._texture&&this._type===t.VIDEO&&this._useVideoTextureTimeout&&x.Util.performanceNow()-this._imageInfo.loadStartTime>t.VIDEO_LOAD_GRACE_TIME_MS){this._texture=null,this._videoLoadGraceTimeOver=!0;for(var L=0;L<this._imageInfo.images.length;++L)this._imageInfo.images[L].removeEventListener("playing",this._imageInfo.eventListeners[L]);return this._imageInfo={images:[],loadCounter:0,loadStartTime:0,eventListeners:[]},y.Context.logger.error(this,"video took too long to load, using fallback version"),this.preload()}return this._loaded}},{key:"_stitchSliceBuffer",value:function(e,t,n){for(var r=t*n,i=new Uint8Array(r*e[0].length/4),a=0,o=0;a<i.length;a+=r,o+=4)for(var s=0,l=0;s<e.length;++s)for(var u=0;u<3&&l<r;++u,++l)i[a+l]=e[s][o+u];switch(n){case 4:return new Float32Array(i.buffer);case 2:return new Uint16Array(i.buffer)}return new Uint8Array(i.buffer)}},{key:"_unpackSliceImage",value:function(e){var t=document.createElement("canvas"),n=t.getContext("2d"),r=this.isCubeMap?6:1,i=this.isCubeMap?w.Renderer.MAX_CUBE_MAP_TEXTURE_SIZE:w.Renderer.MAX_TEXTURE_SIZE,a=e.width/r,o=e.height/this._packedSliceCount,s=Math.round(Math.min(a,i)),l=Math.round(Math.min(o,i));t.width=s,t.height=l,t.style.width=s+"px",t.style.height=l+"px",t.style.imageRenderering="pixelated",n.webkitImageSmoothingEnabled=!1,n.imageSmoothingEnabled=!1,n.mozImageSmoothingEnabled=!1,n.msImageSmoothingEnabled=!1;for(var u=[],d=this._packedSliceCubemapOrder,c=d,f=[],h=0,_=0;_<r;++_){var A=c[_];f[_]=[];for(var m=0;m<this._packedSliceCount;++m)n.drawImage(e,A*a,m*o,a,o,0,0,s,l),f[_].push(n.getImageData(0,0,s,l).data);if(1===this._packedSliceCount){if(this._packedSliceChannelSizeBytes>1)throw new Error("Invalid channel size bytes "+this._packedSliceChannelSizeBytes+" for one slice image.");var p=new Uint8Array(f[_][0]);u[_]={mipCount:1,mips:[{width:s,height:l,data:p}]},_===r-1&&(this._format=y.Context.gl.RGBA,this._internalFormat=y.Context.gl.RGBA,this._uploadSliceImage(u))}else this._stichSliceBufferAsync(f[_],this._packedSliceChannelCount,this._packedSliceChannelSizeBytes,f[_]).then(function(e,t){u[e]={mipCount:1,mips:[{width:s,height:l,data:t}]},++h===r&&this._uploadSliceImage(u)}.bind(this,_)).catch(function(e){throw e})}}},{key:"_enableFlipY",value:function(){this._flipY&&y.Context.gl.pixelStorei(y.Context.gl.UNPACK_FLIP_Y_WEBGL,!0)}},{key:"_disableFlipY",value:function(){(this._flipY||this._isIE)&&y.Context.gl.pixelStorei(y.Context.gl.UNPACK_FLIP_Y_WEBGL,!1)}},{key:"_uploadSliceImage",value:function(e){if(!this._deleted){if(this._width=e[0].mips[0].width,this._height=e[0].mips[0].height,this.isCubeMap)for(var t=0;t<6;++t){var n=e[t];y.Context.gl.bindTexture(this._textureTarget,this._texture),this._enableFlipY();for(var r=0;r<n.mipCount;++r)this._registerTextureDimensions(n.width,n.height),y.Context.gl.texImage2D(y.Context.gl.TEXTURE_CUBE_MAP_POSITIVE_X+t,r,this._internalFormat,n.mips[r].width,n.mips[r].height,0,this._format,this._dataType,n.mips[r].data);this._disableFlipY()}else{var i=e[0];this._registerTextureDimensions(i.width,i.height),y.Context.gl.bindTexture(this._textureTarget,this._texture),this._enableFlipY();for(var a=0;a<i.mipCount;++a)y.Context.gl.texImage2D(y.Context.gl.TEXTURE_2D,a,this._internalFormat,i.mips[a].width,i.mips[a].height,0,this._format,this._dataType,i.mips[a].data);this._disableFlipY()}this._generateMipmapsIfEnabled(this._width,this._height),this._adjustWrapModeIfNPOT(this._width,this._height),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this.filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this.filterType.min),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_S,this.wrapMode[0]),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_WRAP_T,this.wrapMode[1]),y.Context.gl.bindTexture(this._textureTarget,null),this.loaded=!0}}},{key:"_shouldRefresh",value:function(e){var t=x.Util.performanceNow();return t-this._lastVideoRefresh>.333*this._videoMinRefresh&&e.currentTime!==this._videoLastCurrentTime&&(this._videoLastCurrentTime=e.currentTime,this._lastVideoRefresh=t,!0)}},{key:"update",value:function(e){if(this._loaded)if(this._type===t.VIDEO){if(this._haveEnoughVideoData()&&this._shouldRefresh(this._imageInfo.images[0]))if(this._target===t.CUBE_MAP)for(var n=0;n<6;++n)y.Context.gl.texImage2D(y.Context.gl.TEXTURE_CUBE_MAP_POSITIVE_X+n,0,this._internalFormat,this._format,this._dataType,this._imageInfo.images[C.MathUtil.clamp(n,0,this._data.length-1)]);else y.Context.gl.texImage2D(this._textureTarget,0,this._internalFormat,this._format,this._dataType,this._imageInfo.images[0])}else if(this._type===t.VIDEO_STREAM){if(this._data[0].readyState>1&&this._shouldRefresh(this._data[0])&&(this._uploadVideoOnPaused||!this._data[0].paused)||this._videoNeedsUploadAfterSeek||e){if(this._videoNeedsUploadAfterSeek=!1,this._enableFlipY(),this._useVideoCanvasFallbackRendering){if(this._ieVideoCanvasCtx){var r=this._data[0];r.videoWidth===this._width&&r.videoHeight===this._height||(this._width=r.videoWidth||r.width||Math.min(2048,w.Renderer.MAX_TEXTURE_SIZE),this._height=r.videoHeight||r.height||Math.min(2048,w.Renderer.MAX_TEXTURE_SIZE),this._ieVideoCanvas.width=this._width,this._ieVideoCanvas.height=this._height),this._ieVideoCanvasCtx.drawImage(this._data[0],0,0,this._width,this._height),y.Context.gl.texImage2D(this._textureTarget,0,this._internalFormat,this._format,this._dataType,this._ieVideoCanvas)}}else y.Context.gl.texImage2D(this._textureTarget,0,this._internalFormat,this._format,this._dataType,this._data[0]);this._disableFlipY()}}else if(this._type===t.DATA&&this._arrayBuffer&&this._hasNewArrayBuffer)y.Context.gl.texSubImage2D(this._textureTarget,0,0,0,this._data.width,this._data.height,this._format,this._dataType,this._arrayBuffer),this._hasNewArrayBuffer=!1;else if(this._type===t.CANVAS&&this._hasNewCanvasContent){if(this._enableFlipY(),Array.isArray(this._data[0])){if(this._hasNewCanvasContentRect)for(var i=0;i<this._hasNewCanvasContentRect.length;++i)for(var a=0,o=1;a<this._data[0].length;++a,o*=2)y.Context.gl.texSubImage2D(this._textureTarget,a,Math.floor(this._hasNewCanvasContentRect[i].x/o),Math.floor(this._hasNewCanvasContentRect[i].y/o),this._format,this._dataType,this._hasNewCanvasContentResults[i][a])}else y.Context.gl.texImage2D(this._textureTarget,0,this._internalFormat,this._format,this._dataType,this._data[0]);this._generateMipmaps&&y.Context.gl.generateMipmap(this._textureTarget),this._disableFlipY(),this._hasNewCanvasContent=!1,this._hasNewCanvasContentRect=null,this._hasNewCanvasContentResults=null}}},{key:"enable",value:function(e){this.preload(),this._loaded&&(y.Context.gl.bindTexture(this._textureTarget,this._texture),this.update(e))}},{key:"disable",value:function(){y.Context.gl.bindTexture(this._textureTarget,null)}},{key:"debugDisplay",value:function(){y.Context.eventEmitter.emit(this,t.EVENT_DEBUG_DISPLAY)}},{key:"videoStreamException",get:function(){return this._videoStreamException}},{key:"width",get:function(){return this._width}},{key:"height",get:function(){return this._height}},{key:"isRgbm",get:function(){return void 0!==this._rgbmFactor}},{key:"isPackedDepth24",get:function(){return this._packedDepth24}},{key:"isPackedDepth32",get:function(){return this._packedDepth32}},{key:"_isFloatTexture",get:function(){return!this.isRgbm&&!this.isPackedDepth32}},{key:"rgbmFactor",set:function(e){this._rgbmFactor=e},get:function(){return this._rgbmFactor}},{key:"filterType",get:function(){return this._filterType},set:function(e){this._setFilterTypeObject(e),this._loaded&&this._texture&&(y.Context.gl.bindTexture(this._textureTarget,this._texture),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MAG_FILTER,this._filterType.mag),y.Context.gl.texParameteri(this._textureTarget,y.Context.gl.TEXTURE_MIN_FILTER,this._filterType.min),y.Context.gl.bindTexture(this._textureTarget,null))}},{key:"wrapMode",get:function(){return this._wrapMode}},{key:"isCubeMap",get:function(){return this._target===t.CUBE_MAP}},{key:"loaded",set:function(e){(0,p.default)(t.prototype.__proto__||(0,u.default)(t.prototype),"loaded",e,this),this._loaded&&(y.Context.eventEmitter.emit(this,t.EVENT_TEXTURE_LOADED),this._onLoaded&&this._onLoaded())},get:function(){return this._loaded}},{key:"texture",get:function(){return this._texture}},{key:"generateMipmaps",get:function(){return this._generateMipmaps},set:function(e){this._generateMipmaps=e}},{key:"mipmapHint",set:function(e){this._setMipmapHint(e)}},{key:"arrayBuffer",set:function(e){this._arrayBuffer=e,this._hasNewArrayBuffer=!0}},{key:"fps",set:function(e){this._videoMinRefresh=1e3/e}}]),t}((0,P.default)(M.Resource,S.Serializable));_e.mapMagFilterType=function(e){switch(e){case y.Context.gl.NEAREST:return _e.NEAREST;case y.Context.gl.LINEAR:return _e.LINEAR;default:throw new Error("invalid mag filter type in texture argument: "+e)}},_e.mapMinFilterType=function(e){switch(e){case y.Context.gl.NEAREST:return _e.NEAREST;case y.Context.gl.NEAREST_MIPMAP_NEAREST:return _e.NEAREST_MIPMAP_NEAREST;case y.Context.gl.NEAREST_MIPMAP_LINEAR:return _e.NEAREST_MIPMAP_LINEAR;case y.Context.gl.LINEAR:return _e.LINEAR;case y.Context.gl.LINEAR_MIPMAP_LINEAR:return _e.LINEAR_MIPMAP_LINEAR;case y.Context.gl.LINEAR_MIPMAP_NEAREST:return _e.LINEAR_MIPMAP_NEAREST;default:throw new Error("invalid min filter type in texture argument: "+e)}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.RenderableNode=void 0;var i=n(85),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(6),c=r(d),f=n(8),h=r(f),_=n(2),A=r(_),m=n(5),p=r(m),g=n(28),E=n(24),v=n(7),b=n(10),S=n(77),T=t.RenderableNode=function(e){function t(e){(0,u.default)(this,t);var n=(0,c.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e));return n._renderPass={},n._renderPass[E.Scene.RENDERPASS_DEBUG_OVERDRAW]=t._defaultRenderPassFunction,n._renderPass[E.Scene.RENDERPASS_SSR_PRE]=t._defaultRenderPassFunction,n._renderPass[E.Scene.RENDERPASS_FORWARD]=t._defaultRenderPassFunction,n._renderPass[E.Scene.RENDERPASS_NOP]=t._defaultRenderPassFunction,n._renderPass[E.Scene.RENDERPASS_FORWARD_DEPTH]=t._defaultRenderPassFunction,n._renderPass[E.Scene.RENDERPASS_FORWARD_REFRACTIVE]=t._refractiveRenderPassFunction,n._renderPass[E.Scene.RENDERPASS_SHADOW_MAP]=t._shadowRenderPassFunction,n._renderPass[E.Scene.RENDERPASS_FORWARD_TRANSLUCENT]=t._translucentRenderPassFunction, n._renderPass[E.Scene.RENDERPASS_MOTION_BLUR]=t._motionBlurRenderPassFunction,n._renderPass[E.Scene.RENDERPASS_UI_1]=t._uiRenderPassFunction,n._geometry=v.Util.getParamRequired(e,"geometry"),n._materialByPass=v.Util.getParamRequired(e,"materialByPass"),n._forceNoCull=v.Util.getParam(e,"forceNoCull",!1),n._vrMode=v.Util.getParam(e,"vrMode",t.VR_MODE_BOTH),n}return(0,p.default)(t,e),(0,A.default)(t,[{key:"$serialize",value:function(){return{name:"RenderableNode",params:{geometry:this._geometry,materialbyPass:this._materialByPass,forceNoCull:this._forceNoCull}}}}],[{key:"_defaultRenderPassFunction",value:function(e){return!e.refractive&&!e.ui&&(e.opaque||!e.opaque&&e.discard===S.SurfaceMaterial.DISCARD_TRANSPARENT)}},{key:"_refractiveRenderPassFunction",value:function(e){return e.refractive&&b.Context.qualityManager.quality.blurredRefractionsEnabled&&!e.opaque&&!e.ui}},{key:"_translucentRenderPassFunction",value:function(e){return!e.opaque&&!e.ui&&(!e.refractive||e.refractive&&b.Context.qualityManager.quality.blurredRefractionsEnabled)&&e.discard!==S.SurfaceMaterial.DISCARD_TRANSPARENT}},{key:"_shadowRenderPassFunction",value:function(e){return e.opaque&&e.castsShadow}},{key:"_motionBlurRenderPassFunction",value:function(e){return e.motionBlurred&&b.Context.qualityManager.quality.motionBlurEnabled}},{key:"_uiRenderPassFunction",value:function(e){return e.ui}}]),(0,A.default)(t,[{key:"dtor",value:function(){var e=this;this._geometry&&this._geometry.dtor(),this._materialByPass&&(0,a.default)(this._materialByPass).forEach(function(t){return e._materialByPass[t].dtor()}),(0,h.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"dtor",this).call(this)}},{key:"render",value:function(e,n,r){var i=this._materialByPass[n];i&&i.enable()&&i.effect.isConfigurable&&e.draw(this._geometry,i.effect,this._worldTransform,r,this._vrMode===t.VR_MODE_BOTH||this._vrMode===t.VR_MODE_LEFT,this._vrMode===t.VR_MODE_BOTH||this._vrMode===t.VR_MODE_RIGHT)}},{key:"supportsPass",value:function(e){return!(!this._renderPass[e]||!this._materialByPass[e])&&this._renderPass[e](this._materialByPass[e])}},{key:"$updateBoundingVolume",value:function(){this._boundingVolume.copyFrom(this._geometry._boundingVolume),this._boundingVolume.valid&&this._boundingVolume.transform(this.worldTransform)}},{key:"materialByPass",get:function(){return this._materialByPass}},{key:"surfaceMaterial",get:function(){return this._materialByPass[E.Scene.RENDERPASS_FORWARD]||this._materialByPass[E.Scene.RENDERPASS_FORWARD_TRANSLUCENT]||this._materialByPass[E.Scene.RENDERPASS_UI_1]}},{key:"geometry",get:function(){return this._geometry}},{key:"forceNoCull",get:function(){return this._forceNoCull},set:function(e){this._forceNoCull=e}},{key:"vrMode",get:function(){return this._vrMode},set:function(e){this._vrMode=e}}]),t}(g.SpatialNode);T.VR_MODE_BOTH="VR_MODE_BOTH",T.VR_MODE_LEFT="VR_MODE_LEFT",T.VR_MODE_RIGHT="VR_MODE_RIGHT"},function(e,t,n){e.exports={default:n(561),__esModule:!0}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Quaternion=void 0;var i=n(14),a=r(i),o=n(51),s=r(o),l=n(4),u=r(l),d=n(1),c=r(d),f=n(6),h=r(f),_=n(2),A=r(_),m=n(5),p=r(m),g=n(10),E=n(12),v=n(17),b=n(49),S=n(18),T=new E.Vector3,x=new E.Vector3,y=new E.Vector3,C=new b.Matrix4,w=t.Quaternion=function(e){function t(){(0,c.default)(this,t);var e=(0,h.default)(this,(t.__proto__||(0,u.default)(t)).call(this));return 1===arguments.length&&"object"===(0,s.default)(arguments[0])?e.load(arguments[0]):4===arguments.length?(e.x=arguments[0],e.y=arguments[1],e.z=arguments[2],e.w=arguments[3]):e.zero(),e}return(0,p.default)(t,e),(0,A.default)(t,[{key:"$serialize",value:function(){return{name:"Quaternion",params:[this.x,this.y,this.z,this.w]}}}],[{key:"tmp",value:function(e){var n=void 0;return(n=t._pool.get(e))||t._pool.set(e,n=new t),n}},{key:"add",value:function(e,n){var r=new t;return r.copyFrom(e),r.add(n),r}},{key:"addOut",value:function(e,t,n){return n.copyFrom(e),n.add(t),n}},{key:"sub",value:function(e,n){var r=new t;return r.copyFrom(e),r.sub(n),r}},{key:"subOut",value:function(e,t,n){return n.copyFrom(e),n.sub(t),n}},{key:"mult",value:function(e,n){var r=new t;return r.copyFrom(e),r.mult(n),r}},{key:"multOut",value:function(e,t,n){return n.copyFrom(e),n.mult(t),n}}]),(0,A.default)(t,[{key:"load",value:function(){if(1!==arguments.length||"object"!==(0,s.default)(arguments[0]))throw new Error("trying to instanciate Quaternion with incompatible type");var e=arguments[0];"length"in e&&4===e.length?(this.x=e[0],this.y=e[1],this.z=e[2],this.w=e[3]):arguments[0]instanceof t&&(this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w)}},{key:"copyFromArray",value:function(e){return this.x=e[0],this.y=e[1],this.z=e[2],this.w=e[3],this}},{key:"copyFrom",value:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this}},{key:"equal",value:function(e){return this.x===e.x&&this.y===e.y&&this.y===e.z&&this.w===e.w}},{key:"add",value:function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}},{key:"sub",value:function(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}},{key:"multScalar",value:function(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}},{key:"mult",value:function(e){var t=this.x,n=this.y,r=this.z,i=this.w,a=e.x,o=e.y,s=e.z,l=e.w;return this.x=t*l+i*a+n*s-r*o,this.y=n*l+i*o+r*a-t*s,this.z=r*l+i*s+t*o-n*a,this.w=i*l-t*a-n*o-r*s,this}},{key:"div",value:function(e){if(0!==e){var t=1/e;this.x*=t,this.y*=t,this.z*=t,this.w*=t}else this.x=Number.POSITIVE_INFINITY,this.y=Number.POSITIVE_INFINITY,this.z=Number.POSITIVE_INFINITY,this.w=Number.POSITIVE_INFINITY;return this}},{key:"neg",value:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}},{key:"zero",value:function(){return this.x=0,this.y=0,this.z=0,this.w=1,this}},{key:"fromUnitVectors",value:function(e,t){var n=1e-6,r=e.dot(t)+1;return r<n?(r=0,Math.abs(e.x)>Math.abs(e.z)?T.set(-e.y,e.x,0):T.set(0,-e.z,e.y)):E.Vector3.crossOut(e,t,T),this.x=T.x,this.y=T.y,this.z=T.z,this.w=r,this.normalize(),this}},{key:"fromLookRotation",value:function(e,t,n){return this.fromRotationMatrixSeparate(t.x,t.y,t.z,n.x,n.y,n.z,-e.x,-e.y,-e.z)}},{key:"fromRotationMatrix",value:function(e){return this.fromRotationMatrixSeparate(e._storage[0],e._storage[1],e._storage[2],e._storage[4],e._storage[5],e._storage[6],e._storage[8],e._storage[9],e._storage[10])}},{key:"fromRotationMatrixSeparate",value:function(e,t,n,r,i,a,o,s,l){var u=e+i+l,d=void 0;return u>0?(d=Math.sqrt(u+1),this.w=.5*d,d=.5/d,this.x=(s-a)*d,this.y=(n-o)*d,this.z=(r-t)*d):e>i&&e>l?(d=2*Math.sqrt(1+e-i-l),this.x=.25*d,this.y=(t+r)/d,this.z=(n+o)/d,this.w=(s-a)/d):i>l?(d=2*Math.sqrt(1+i-e-l),this.x=(t+r)/d,this.y=.25*d,this.z=(a+s)/d,this.w=(n-o)/d):(d=2*Math.sqrt(1+l-e-i),this.x=(n+o)/d,this.y=(a+s)/d,this.z=.25*d,this.w=(r-t)/d),this}},{key:"toRotationMatrix",value:function(e){e=e||new b.Matrix4;var t=2*this.x,n=2*this.y,r=2*this.z,i=t*this.w,a=n*this.w,o=r*this.w,s=t*this.x,l=n*this.x,u=r*this.x,d=n*this.y,c=r*this.y,f=r*this.z;return e.set(1,1,1-(d+f)),e.set(1,2,l-o),e.set(1,3,u+a),e.set(2,1,l+o),e.set(2,2,1-(s+f)),e.set(2,3,c-i),e.set(3,1,u-a),e.set(3,2,c+i),e.set(3,3,1-(s+d)),e}},{key:"toEuler",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new E.Vector3,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"XYZ",n=this.x*this.y+this.z*this.w,r=void 0,i=void 0,a=void 0;if(n>.499)i=2*Math.atan2(this.x,this.w),a=Math.PI/2,r=0;else if(n<-.499)i=-2*Math.atan2(this.x,this.w),a=-Math.PI/2,r=0;else{var o=this.x*this.x,s=this.y*this.y,l=this.z*this.z;i=Math.atan2(2*this.y*this.w-2*this.x*this.z,1-2*s-2*l),a=Math.asin(2*n),r=Math.atan2(2*this.x*this.w-2*this.y*this.z,1-2*o-2*l)}return void 0===t||"XYZ"===t?(e.x=r,e.y=i,e.z=a):"YXZ"===t?(e.x=i,e.y=r,e.z=a):"ZXY"===t?(e.x=a,e.y=r,e.z=i):"ZYX"===t?(e.x=a,e.y=i,e.z=r):"YZX"===t?(e.x=i,e.y=a,e.z=r):"XZY"===t&&(e.x=r,e.y=a,e.z=i),e}},{key:"fromEuler",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"XYZ",n=Math.cos(e.x/2),r=Math.cos(e.y/2),i=Math.cos(e.z/2),a=Math.sin(e.x/2),o=Math.sin(e.y/2),s=Math.sin(e.z/2);return"XYZ"===t?(this.x=a*r*i+n*o*s,this.y=n*o*i-a*r*s,this.z=n*r*s+a*o*i,this.w=n*r*i-a*o*s):"YXZ"===t?(this.x=a*r*i+n*o*s,this.y=n*o*i-a*r*s,this.z=n*r*s-a*o*i,this.w=n*r*i+a*o*s):"ZXY"===t?(this.x=a*r*i-n*o*s,this.y=n*o*i+a*r*s,this.z=n*r*s+a*o*i,this.w=n*r*i-a*o*s):"ZYX"===t?(this.x=a*r*i-n*o*s,this.y=n*o*i+a*r*s,this.z=n*r*s-a*o*i,this.w=n*r*i+a*o*s):"YZX"===t?(this.x=a*r*i+n*o*s,this.y=n*o*i+a*r*s,this.z=n*r*s-a*o*i,this.w=n*r*i-a*o*s):"XZY"===t&&(this.x=a*r*i-n*o*s,this.y=n*o*i-a*r*s,this.z=n*r*s+a*o*i,this.w=n*r*i+a*o*s),this}},{key:"fromAxisAngle",value:function(e,t){var n=.5*t,r=Math.sin(n);return this.w=Math.cos(n),this.x=r*e.x,this.y=r*e.y,this.z=r*e.z,this}},{key:"toAxisAngle",value:function(e){e=e||{axis:new E.Vector3,angle:0},e.angle=0;var t=this.x*this.x+this.y*this.y+this.z*this.z;if(t>v.MathUtil.ZERO_TOLERANCE){e.angle=2*Math.acos(this.w);var n=1/Math.sqrt(t);e.axis.x=this.x*n,e.axis.y=this.y*n,e.axis.z=this.z*n}return e}},{key:"length",value:function(){return Math.sqrt(this.w*this.w+this.x*this.x+this.y*this.y+this.z*this.z)}},{key:"sqrLength",value:function(){return this.w*this.w+this.x*this.x+this.y*this.y+this.z*this.z}},{key:"dot",value:function(e){return this.w*e.w+this.x*e.x+this.y*e.y+this.z*e.z}},{key:"normalize",value:function(){var e=this.length();if(e>v.MathUtil.ZERO_TOLERANCE){var t=1/e;this.x*=t,this.y*=t,this.z*=t,this.w*=t}else this.w=0,this.x=0,this.y=0,this.z=0;return this}},{key:"invert",value:function(){var e=this.w*this.w+this.x*this.x+this.y*this.y+this.z*this.z;if(e>0){var t=1/e;this.w=this.w*t,this.x=-this.x*t,this.y=-this.y*t,this.z=-this.z*t}else g.Context.logger.error(this,"Quaternion: cannot invert quaternion");return this}},{key:"rotate",value:function(e){var t=this.toRotationMatrix(C);return e.transformForward(t)}},{key:"slerp",value:function(e,t){var n=this.x,r=this.y,i=this.z,a=this.w,o=e.x,s=e.y,l=e.z,u=e.w,d=void 0;d=n*o+r*s+i*l+a*u,d<0&&(d=-d,o=-o,s=-s,l=-l,u=-u);var c=void 0,f=void 0;if(1-d>v.MathUtil.ZERO_TOLERANCE){var h=Math.acos(d),_=Math.sin(h);c=Math.sin((1-t)*h)/_,f=Math.sin(t*h)/_}else c=1-t,f=t;return this.x=c*n+f*o,this.y=c*r+f*s,this.z=c*i+f*l,this.w=c*a+f*u,this}},{key:"set",value:function(e,t,n,r){return this.x=e,this.y=t,this.z=n,this.w=r,this}},{key:"toString",value:function(){return"q("+this.w+", "+this.x+", "+this.y+", "+this.z+")"}}],[{key:"fromVectors",value:function(e,t,n){this.zero(),T.copyFrom(e),x.copyFrom(t),T.normalize(),x.normalize();var r=T.dot(x);if(r>=1)return this;if(r<1e-6-1)n?this.fromAxisAngle(n,Math.PI):(y.copyFrom(E.Vector3.X_AXIS),y.cross(e),y.magnitudeSquared()<1e-12&&(y.copyFrom(E.Vector3.Y_AXIS),y.cross(e)),y.normalize(),this.fromAxisAngle(y,Math.PI));else{var i=Math.sqrt(2*(1+r)),a=1/i;T.cross(x),this.x=T.x*a,this.y=T.y*a,this.z=T.z*a,this.w=.5*i,this.normalize()}return this}}]),t}(S.Serializable);w._pool=new a.default},function(e,t,n){var r=n(208)("wks"),i=n(156),a=n(35).Symbol,o="function"==typeof a,s=e.exports=function(e){return r[e]||(r[e]=o&&a[e]||(o?a:i)("Symbol."+e))};s.store=r},function(e,t){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.GeometryUtil=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(74),u=(n(12),n(17)),d=n(95),c=n(135),f=n(134),h=n(133);t.GeometryUtil=function(){function e(){(0,a.default)(this,e)}return(0,s.default)(e,null,[{key:"makeScaledFullscreenQuadSeperate",value:function(e,t,n){var r=new d.Attributes;r.setPositionChannels(3),r.setTextureChannels(0,2);var i=new c.VertexBuffer({vertexData:[1*e,1*t,1,1,1,-1*e,1*t,1,0,1,-1*e,-1*t,1,0,0,1*e,-1*t,1,1,0],attributes:r}),a=new f.IndexBuffer({data:[0,1,2,0,2,3]});return new h.Geometry({indexBuffer:a,vertexBuffer:i,calculateBoundingVolume:n})}},{key:"makeScaledFullscreenQuad",value:function(e,t){var n=new d.Attributes;n.setPositionChannels(3),n.setTextureChannels(0,2);var r=new c.VertexBuffer({vertexData:[1*e,1*e,1,1,1,-1*e,1*e,1,0,1,-1*e,-1*e,1,0,0,1*e,-1*e,1,1,0],attributes:n}),i=new f.IndexBuffer({data:[0,1,2,0,2,3]});return new h.Geometry({indexBuffer:i,vertexBuffer:r,calculateBoundingVolume:t})}},{key:"makeFullscreenQuad",value:function(e){var t=new d.Attributes;t.setPositionChannels(3),t.setTextureChannels(0,2);var n=new c.VertexBuffer({vertexData:[1,1,1,1,1,-1,1,1,0,1,-1,-1,1,0,0,1,-1,1,1,0],attributes:t}),r=new f.IndexBuffer({data:[0,1,2,0,2,3]});return new h.Geometry({indexBuffer:r,vertexBuffer:n,calculateBoundingVolume:e})}},{key:"makeCenteredUnitQuad",value:function(e){var t=new d.Attributes;t.setPositionChannels(3),t.setTextureChannels(0,2);var n=new c.VertexBuffer({vertexData:[1,1,0,1,1,-1,1,0,0,1,-1,-1,0,0,0,1,-1,0,1,0],attributes:t}),r=new f.IndexBuffer({data:[0,1,2,0,2,3]});return new h.Geometry({indexBuffer:r,vertexBuffer:n,calculateBoundingVolume:e})}},{key:"makeSizedQuad",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],a=arguments.length>5&&void 0!==arguments[5]&&arguments[5],o=new d.Attributes;o.setPositionChannels(3),i&&o.setNormalChannels(3),o.setTextureChannels(0,2);var s=e/2,l=t/2,u=Math.floor(n)||1,_=Math.floor(r)||1,A=u+1,m=_+1,p=e/u,g=t/_,E=void 0,v=void 0,b=[];for(v=0;v<m;v++){var S=v*g-l;for(E=0;E<A;E++){var T=E*p-s;b.push(T,-S,0),i&&b.push(0,0,1),b.push(E/u,v/_)}}var x=[];for(v=0;v<_;v++)for(E=0;E<u;E++){var y=E+A*v,C=E+A*(v+1),w=E+1+A*(v+1),M=E+1+A*v;x.push(y,C,M),x.push(C,w,M)}return new h.Geometry({vertexBuffer:new c.VertexBuffer({vertexData:b,attributes:o}),indexBuffer:new f.IndexBuffer({data:x}),calculateBoundingVolume:a})}},{key:"makeCenteredSizedQuadMirror",value:function(e,t,n){var r=new d.Attributes;r.setPositionChannels(3),r.setTextureChannels(0,2);var i=new c.VertexBuffer({vertexData:[e/2,t/2,0,0,0,-e/2,t/2,0,1,0,-e/2,-t/2,0,1,1,e/2,-t/2,0,0,1],attributes:r}),a=new f.IndexBuffer({data:[0,1,2,0,2,3]});return new h.Geometry({indexBuffer:a,vertexBuffer:i,calculateBoundingVolume:n})}},{key:"makeCenteredSizedQuadYMirror",value:function(e,t,n){var r=new d.Attributes;r.setPositionChannels(3),r.setTextureChannels(0,2);var i=new c.VertexBuffer({vertexData:[e/2,t/2,0,1,0,-e/2,t/2,0,0,0,-e/2,-t/2,0,0,1,e/2,-t/2,0,1,1],attributes:r}),a=new f.IndexBuffer({data:[0,1,2,0,2,3]});return new h.Geometry({indexBuffer:a,vertexBuffer:i,calculateBoundingVolume:n})}},{key:"makeCenteredSizedQuad",value:function(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[1,1,0,1,0,0,1,0],a=new d.Attributes;a.setPositionChannels(3),a.setTextureChannels(0,2);var o=new c.VertexBuffer({vertexData:[e/2,t/2,0,i[0],i[1],-e/2,t/2,0,i[2],i[3],-e/2,-t/2,0,i[4],i[5],e/2,-t/2,0,i[6],i[7]],attributes:a}),s=new f.IndexBuffer({data:[0,1,2,0,2,3]});return new h.Geometry({indexBuffer:s,vertexBuffer:o,calculateBoundingVolume:n,boundingVolume:r})}},{key:"makeUnitCubeCW",value:function(e){var t=new d.Attributes;t.setPositionChannels(3),t.setTextureChannels(0,2);var n=.5,r=.5,i=.5,a=new c.VertexBuffer({vertexData:[n,r,i,1,1,-n,r,i,0,1,-n,-r,i,0,0,n,-r,i,1,0,-n,r,-i,1,1,n,r,-i,0,1,n,-r,-i,0,0,-n,-r,-i,1,0,-n,-r,-i,1,0,-n,-r,i,0,0,-n,r,i,0,1,-n,r,-i,1,1,n,-r,i,1,0,n,-r,-i,0,0,n,r,-i,0,1,n,r,i,1,1,n,r,-i,1,0,-n,r,-i,0,0,-n,r,i,0,1,n,r,i,1,1,n,-r,i,1,0,-n,-r,i,0,0,-n,-r,-i,0,1,n,-r,-i,1,1],attributes:t}),o=new f.IndexBuffer({data:[2,1,0,3,2,0,6,5,4,7,6,4,10,9,8,11,10,8,14,13,12,15,14,12,18,17,16,19,18,16,22,21,20,23,22,20]});return new h.Geometry({indexBuffer:o,vertexBuffer:a,calculateBoundingVolume:e})}},{key:"makeNDCCubeCW",value:function(e){var t=new d.Attributes;t.setPositionChannels(3),t.setTextureChannels(0,2);var n=1,r=1,i=1,a=new c.VertexBuffer({vertexData:[n,r,i,1,1,-n,r,i,0,1,-n,-r,i,0,0,n,-r,i,1,0,-n,r,-i,1,1,n,r,-i,0,1,n,-r,-i,0,0,-n,-r,-i,1,0,-n,-r,-i,1,0,-n,-r,i,0,0,-n,r,i,0,1,-n,r,-i,1,1,n,-r,i,1,0,n,-r,-i,0,0,n,r,-i,0,1,n,r,i,1,1,n,r,-i,1,0,-n,r,-i,0,0,-n,r,i,0,1,n,r,i,1,1,n,-r,i,1,0,-n,-r,i,0,0,-n,-r,-i,0,1,n,-r,-i,1,1],attributes:t}),o=new f.IndexBuffer({data:[2,1,0,3,2,0,6,5,4,7,6,4,10,9,8,11,10,8,14,13,12,15,14,12,18,17,16,19,18,16,22,21,20,23,22,20]});return new h.Geometry({indexBuffer:o,vertexBuffer:a,calculateBoundingVolume:e})}},{key:"makeUnitCube",value:function(e){var t=new d.Attributes;t.setPositionChannels(3),t.setTextureChannels(0,2);var n=.5,r=.5,i=.5,a=new c.VertexBuffer({vertexData:[n,r,i,1,1,-n,r,i,0,1,-n,-r,i,0,0,n,-r,i,1,0,-n,r,-i,1,1,n,r,-i,0,1,n,-r,-i,0,0,-n,-r,-i,1,0,-n,-r,-i,1,0,-n,-r,i,0,0,-n,r,i,0,1,-n,r,-i,1,1,n,-r,i,1,0,n,-r,-i,0,0,n,r,-i,0,1,n,r,i,1,1,n,r,-i,1,0,-n,r,-i,0,0,-n,r,i,0,1,n,r,i,1,1,n,-r,i,1,0,-n,-r,i,0,0,-n,-r,-i,0,1,n,-r,-i,1,1],attributes:t}),o=new f.IndexBuffer({data:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]});return new h.Geometry({indexBuffer:o,vertexBuffer:a,calculateBoundingVolume:e})}},{key:"makeBox",value:function(e,t,n,r){var i=new d.Attributes;i.setPositionChannels(3),i.setTextureChannels(0,2);var a=.5*e,o=.5*t,s=.5*n,l=new c.VertexBuffer({vertexData:[a,o,s,1,1,-a,o,s,0,1,-a,-o,s,0,0,a,-o,s,1,0,-a,o,-s,1,1,a,o,-s,0,1,a,-o,-s,0,0,-a,-o,-s,1,0,-a,-o,-s,1,0,-a,-o,s,0,0,-a,o,s,0,1,-a,o,-s,1,1,a,-o,s,1,0,a,-o,-s,0,0,a,o,-s,0,1,a,o,s,1,1,a,o,-s,1,0,-a,o,-s,0,0,-a,o,s,0,1,a,o,s,1,1,a,-o,s,1,0,-a,-o,s,0,0,-a,-o,-s,0,1,a,-o,-s,1,1],attributes:i}),u=new f.IndexBuffer({data:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]});return new h.Geometry({indexBuffer:u,vertexBuffer:l,calculateBoundingVolume:r})}},{key:"makeLines",value:function(e,t){var n=new d.Attributes;n.setPositionChannels(3);for(var r=[],i=[],a=0;a<e.length;++a)r.push(e[a].x),r.push(e[a].y),r.push(e[a].z),i.push(a);return new h.Geometry({type:h.Geometry.LINES,vertexBuffer:new c.VertexBuffer({vertexData:r,attributes:n}),indexBuffer:new f.IndexBuffer({data:i}),calculateBoundingVolume:t})}},{key:"makeVRDistortionMesh",value:function(e,t,n){var r=new d.Attributes;r.setPositionChannels(2),r.setTextureChannels(0,3);for(var i=new Float32Array(2*e*t*5),a=n.getLeftEyeVisibleTanAngles(),o=n.getLeftEyeNoLensTanAngles(),s=n.getLeftEyeVisibleScreenRect(o),_=0,A=0;A<2;A++){for(var m=0;m<t;m++)for(var p=0;p<e;p++,_++){var g=p/(e-1),E=m/(t-1),v=g,b=E,S=u.MathUtil.interpolate(g,l.Easing.linearTween,a[0],a[2]),T=u.MathUtil.interpolate(E,l.Easing.linearTween,a[3],a[1]),x=Math.sqrt(S*S+T*T),y=n._distortion.distortInverse(x),C=0,w=0;0!==x&&(C=S*y/x,w=T*y/x),g=(C-o[0])/(o[2]-o[0]),E=(w-o[3])/(o[1]-o[3]),g=2*(s.x+g*s.width-.5),E=2*(s.y+E*s.height-.5),i[5*_+0]=g,i[5*_+1]=E,i[5*_+2]=v,i[5*_+3]=b,i[5*_+4]=A}var M=a[2]-a[0];a[0]=-(M+a[0]),a[2]=M-a[2],M=o[2]-o[0],o[0]=-(M+o[0]),o[2]=M-o[2],s.x=1-(s.x+s.width)}var D=new Uint16Array(2*(e-1)*(t-1)*6),P=e/2,R=t/2;_=0;for(var I=0,L=0;L<2;L++)for(var O=0;O<t;O++)for(var N=0;N<e;N++,_++)0!==N&&0!==O&&(N<=P==O<=R?(D[I++]=_,D[I++]=_-e-1,D[I++]=_-e,D[I++]=_-e-1,D[I++]=_,D[I++]=_-1):(D[I++]=_-1,D[I++]=_-e,D[I++]=_,D[I++]=_-e,D[I++]=_-1,D[I++]=_-e-1));return new h.Geometry({vertexBuffer:new c.VertexBuffer({vertexData:i,attributes:r}),indexBuffer:new f.IndexBuffer({data:D})})}},{key:"makeCylinder",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2*Math.PI,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:25,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,o=arguments.length>6&&void 0!==arguments[6]&&arguments[6],s=r-n,l=[],u=0;u<=i;++u)for(var _=0;_<=a;++_){var A=u/i,m=_/a,p=A*s+n,g=Math.sin(p),E=Math.cos(p);l.push(e*g),l.push(-m*t+.5*t),l.push(-e*E),l.push(A),l.push(m)}for(var v=[],b=0;b<i;++b)for(var S=0;S<a;++S){var T=b*(a+1)+S;v.push(T),v.push(T+1),v.push(T+a+1),v.push(T+1),v.push(T+a+2),v.push(T+a+1)}var x=new d.Attributes;return x.setPositionChannels(3),x.setTextureChannels(0,2),new h.Geometry({vertexBuffer:new c.VertexBuffer({vertexData:l,attributes:x}),indexBuffer:new f.IndexBuffer({data:v}),calculateBoundingVolume:o})}},{key:"makeSphere",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:6,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:2*Math.PI,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:2*Math.PI,s=arguments.length>7&&void 0!==arguments[7]&&arguments[7],l=arguments.length>8&&void 0!==arguments[8]&&arguments[8],u=new d.Attributes;u.setPositionChannels(3),s&&u.setNormalChannels(3),u.setTextureChannels(0,2);for(var _=[],A=0,m=[],p=a+o,g=0;g<=n;++g){for(var E=[],v=g/n,b=0;b<=t;++b){var S=b/t,T=[-e*Math.cos(r+S*i)*Math.sin(a+v*o),e*Math.cos(a+v*o),e*Math.sin(r+S*i)*Math.sin(a+v*o)];if(_.push.apply(_,T),s){var x=T[0]*T[0]+T[1]*T[1]+T[2]*T[2];_.push(T[0]/x,T[1]/x,T[2]/x)}_.push(S,1-v),E.push(A++)}m.push(E)}for(var y=[],C=0;C<n;++C)for(var w=0;w<t;++w){var M=m[C][w+1],D=m[C][w],P=m[C+1][w],R=m[C+1][w+1];(0!==C||a>0)&&y.push(M,D,R),(C!==n-1||p<Math.PI)&&y.push(D,P,R)}return new h.Geometry({vertexBuffer:new c.VertexBuffer({vertexData:_,attributes:u}),indexBuffer:new f.IndexBuffer({data:y}),calculateBoundingVolume:l})}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ColorRGB=void 0;var i=n(14),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(6),c=r(d),f=n(2),h=r(f),_=n(5),A=r(_),m=n(270),p=n(12),g=t.ColorRGB=function(e){function t(){(0,u.default)(this,t);var e=(0,c.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments));return e._hsl=new p.Vector3,e._hsv=new p.Vector3,1===arguments.length&&"string"==typeof arguments[0]&&(e.hexString=arguments[0]),e}return(0,A.default)(t,e),(0,h.default)(t,[{key:"$serialize",value:function(){return{name:"ColorRGB",params:[this.r,this.g,this.z]}}}],[{key:"tmp",value:function(e){var n=void 0;return(n=t._pool.get(e))||t._pool.set(e,n=new t),n}}]),(0,h.default)(t,[{key:"blend",value:function(e,t){this.r=this.r*(1-t)+e.r*t,this.g=this.g*(1-t)+e.g*t,this.b=this.b*(1-t)+e.b*t}},{key:"r",get:function(){return this.x},set:function(e){this.x=e}},{key:"g",get:function(){return this.y},set:function(e){this.y=e}},{key:"b",get:function(){return this.z},set:function(e){this.z=e}},{key:"hex",get:function(){return m.ColorUtil.rgb2hex(this)},set:function(e){m.ColorUtil.hex2rgb(e,this)}},{key:"hexString",get:function(){return m.ColorUtil.rgb2hexString(this)},set:function(e){m.ColorUtil.hexString2rgb(e,this)}},{key:"hsv",get:function(){return m.ColorUtil.rgb2hsv(this,this._hsv)},set:function(e){m.ColorUtil.hsv2rgb(e,this)}},{key:"hsl",get:function(){return m.ColorUtil.rgb2hsl(this,this._hsl)},set:function(e){m.ColorUtil.hsl2rgb(e,this)}},{key:"style",get:function(){return m.ColorUtil.rgb2Style(this)},set:function(e){m.ColorUtil.style2rgb(e,this)}}]),t}(p.Vector3);g.BLACK=new g(0,0,0),g.WHITE=new g(1,1,1),g._pool=new a.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Renderer=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(49),u=n(12),d=n(23),c=n(271),f=n(272),h=n(274),_=n(275),A=n(277),m=n(10),p=n(94),g=n(7),E=0,v=0,b=0,S=0,T=0,x=0,y=0,C=0,w=0,M=0,D=0,P=!1;t.Renderer=function(){function e(t){(0,a.default)(this,e),this._defaultShaderParams={u_viewMatrix:void 0,u_inverseViewMatrix:void 0,u_projectionMatrix:void 0,u_inverseProjectionMatrix:void 0,u_worldMatrix:new l.Matrix4,u_inverseWorldMatrix:new l.Matrix4,u_wvpMatrix:new l.Matrix4},this._defaultVectorShaderParams={u_cameraLocation:new u.Vector3},this._defaultFloatShaderParams={u_rightEye:0},this._width=g.Util.getParamRequired(t,"width"),this._height=g.Util.getParamRequired(t,"height"),this._canvas=g.Util.getParamRequired(t,"canvas"),this._viewportX=0,this._viewportY=0,this._viewportW=this._width,this._viewportH=this._height,this._calcWVPMatrix=!1,this._defaultStates={alphaState:new c.AlphaState,cullState:new f.CullState,polygonOffsetState:new h.PolygonOffsetState,stencilState:new _.StencilState,zBufferState:new A.ZBufferState},this._cachedStates={alphaState:{state:new c.AlphaState,enabled:!1},cullState:{state:new f.CullState,enabled:!1,reversed:!1},polygonOffsetState:{state:new h.PolygonOffsetState,enabled:!1},stencilState:{state:new _.StencilState,enabled:!1},zBufferState:{state:new A.ZBufferState,enabled:!1}},this._reverseCullFace=!1,this._clearColor=new d.ColorRGBA(0,0,0,0),this._clearDepth=1,this._camera=new p.Camera,this._camera.renderer=this,this._renderedObjects=0,this._clearMask=m.Context.gl.COLOR_BUFFER_BIT|m.Context.gl.DEPTH_BUFFER_BIT|m.Context.gl.STENCIL_BUFFER_BIT,this._frameGrabber=null}return(0,s.default)(e,null,[{key:"MAX_COMBINED_TEXTURE_IMAGE_UNITS",get:function(){return E}},{key:"MAX_CUBE_MAP_TEXTURE_SIZE",get:function(){return v}},{key:"MAX_FRAGMENT_UNIFORM_VECTORS",get:function(){return b}},{key:"MAX_RENDERBUFFER_SIZE",get:function(){return S}},{key:"MAX_TEXTURE_IMAGE_UNITS",get:function(){return T}},{key:"MAX_TEXTURE_SIZE",get:function(){return x}},{key:"MAX_VARYING_VECTORS",get:function(){return y}},{key:"MAX_VERTEX_ATTRIBS",get:function(){return C}},{key:"MAX_VERTEX_TEXTURE_IMAGE_UNITS",get:function(){return w}},{key:"MAX_VERTEX_UNIFORM_VECTORS",get:function(){return M}},{key:"MAX_TEXTURE_MAX_ANISOTROPY_EXT",get:function(){return D}},{key:"SUPPORTS_HIGHP",get:function(){return P}}]),(0,s.default)(e,[{key:"init",value:function(){this._initWebGLParams(),this.clearColor=this._clearColor,this.clearDepth=this._clearDepth,this.updateViewMatrix(this._camera.viewMatrix,this._camera.inverseViewMatrix,this._camera.location),this.updateProjectionMatrix(this._camera.projectionMatrix,this._camera.inverseProjectionMatrix),this.onViewportChange(),this.onDepthRangeChange(),this._restoreStates()}},{key:"onDepthRangeChange",value:function(){m.Context.deviceManager.updateDepthRange(this._camera.depthRange),m.Context.gl.depthRange(this._camera.depthRange[0],this._camera.depthRange[1])}},{key:"onViewportChange",value:function(){this._updateViewport(this._camera.viewport)}},{key:"updateViewMatrix",value:function(e,t,n){this._defaultShaderParams.u_viewMatrix=e,this._defaultShaderParams.u_inverseViewMatrix=t,this._defaultVectorShaderParams.u_cameraLocation.copyFrom(n)}},{key:"updateProjectionMatrix",value:function(e,t){this._defaultShaderParams.u_projectionMatrix=e,this._defaultShaderParams.u_inverseProjectionMatrix=t}},{key:"beginScene",value:function(){this._renderedObjects=0,m.Context.gl.clear(this._clearMask)}},{key:"endScene",value:function(){this._frameGrabber&&this._frameGrabber.enabled&&this._frameGrabber.grab(this._canvas),this._restoreStates(!0)}},{key:"draw",value:function(e,t,n,r){var i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];if(!r&&!i)return!0;if(this._setStates(t.states,!0),t.paramAttributes=e.vertexBuffer.attributes,!t.enable())return e.rendered=!1,!1;if(e.rendered=!0,!e.indexBuffer.enable()||!e.vertexBuffer.enable())return!1;if(r){var o=m.Context.deviceManager;i&&(t.enableVrUniforms("left"),this._updateViewport(o.leftViewport),this.updateViewMatrix(o.getLeftViewMatrix(this._defaultShaderParams.u_viewMatrix),o.getLeftInverseViewMatrix(this._defaultShaderParams.u_inverseViewMatrix),o.getLeftEyeOffsetLocation(this._camera.rVector,this._camera.location)),this.updateProjectionMatrix(o.getLeftProjectionMatrix(this._defaultShaderParams.u_projectionMatrix),o.getLeftInverseProjectionMatrix(this._defaultShaderParams.u_inverseProjectionMatrix)),this._updateRendererConstants(n),this._defaultFloatShaderParams.u_rightEye=0,this._applyRendererConstants(t),this._drawElements(e),this.updateViewMatrix(this._camera.viewMatrix,this._camera.inverseViewMatrix,this._camera.location),this.updateProjectionMatrix(this._camera.projectionMatrix,this._camera.inverseProjectionMatrix)),a&&(t.enableVrUniforms("right"),this._updateViewport(o.rightViewport),this.updateViewMatrix(o.getRightViewMatrix(this._defaultShaderParams.u_viewMatrix),o.getRightInverseViewMatrix(this._defaultShaderParams.u_inverseViewMatrix),o.getRightEyeOffsetLocation(this._camera.rVector,this._camera.location)),this.updateProjectionMatrix(o.getRightProjectionMatrix(this._defaultShaderParams.u_projectionMatrix),o.getRightInverseProjectionMatrix(this._defaultShaderParams.u_inverseProjectionMatrix)),this._updateRendererConstants(n),this._defaultFloatShaderParams.u_rightEye=t.vrMonoOverride?0:1,this._applyRendererConstants(t),this._drawElements(e)),this._updateViewport(this._camera.viewport),this.updateViewMatrix(this._camera.viewMatrix,this._camera.inverseViewMatrix,this._camera.location),this.updateProjectionMatrix(this._camera.projectionMatrix,this._camera.inverseProjectionMatrix)}else t.enableVrUniforms("left"),this._defaultFloatShaderParams.u_rightEye=-1,this._updateRendererConstants(n),this._applyRendererConstants(t),this._drawElements(e);return e.vertexBuffer.disable(),e.indexBuffer.disable(),t.disable(),this._renderedObjects++,!0}},{key:"_compareState",value:function(e,t){try{if(Array.isArray(e)&&Array.isArray(t)){if(e.length===t.length){for(var n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0}return!1}return e===t}catch(e){return!1}}},{key:"_initWebGLParams",value:function(){E=m.Context.gl.getParameter(m.Context.gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS),v=m.Context.gl.getParameter(m.Context.gl.MAX_CUBE_MAP_TEXTURE_SIZE),b=m.Context.gl.getParameter(m.Context.gl.MAX_FRAGMENT_UNIFORM_VECTORS),S=m.Context.gl.getParameter(m.Context.gl.MAX_RENDERBUFFER_SIZE),T=m.Context.gl.getParameter(m.Context.gl.MAX_TEXTURE_IMAGE_UNITS),x=m.Context.gl.getParameter(m.Context.gl.MAX_TEXTURE_SIZE),y=m.Context.gl.getParameter(m.Context.gl.MAX_VARYING_VECTORS),C=m.Context.gl.getParameter(m.Context.gl.MAX_VERTEX_ATTRIBS),w=m.Context.gl.getParameter(m.Context.gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS),M=m.Context.gl.getParameter(m.Context.gl.MAX_VERTEX_UNIFORM_VECTORS),m.Context.glExtensionManager.has.textureFilterAnisotropic&&(D=m.Context.gl.getParameter(m.Context.glExtensionManager.get.textureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),P=0!==m.Context.gl.getShaderPrecisionFormat(m.Context.gl.FRAGMENT_SHADER,m.Context.gl.HIGH_FLOAT).precision}},{key:"_setupCameraState",value:function(){this.updateViewMatrix(this._camera.viewMatrix,this._camera.inverseViewMatrix,this._camera.location),this.updateProjectionMatrix(this._camera.projectionMatrix,this._camera.inverseProjectionMatrix),this.onViewportChange(),this.onDepthRangeChange()}},{key:"_updateViewport",value:function(e){this._viewportX=e[0]*this._width,this._viewportY=e[3]*this._height,this._viewportW=(e[1]-e[0])*this._width,this._viewportH=(e[2]-e[3])*this._height,m.Context.gl.viewport(this._viewportX,this._viewportY,this._viewportW,this._viewportH)}},{key:"_applyRendererConstants",value:function(e){for(var t in this._defaultShaderParams)e.shaderProgram.hasUniform(t)&&m.Context.gl.uniformMatrix4fv(e.shaderProgram.getUniformLocation(t),!1,this._defaultShaderParams[t]._storage);for(var n in this._defaultVectorShaderParams)if(e.shaderProgram.hasUniform(n)){var r=this._defaultVectorShaderParams[n]; m.Context.gl.uniform3f(e.shaderProgram.getUniformLocation(n),r.x,r.y,r.z)}for(var i in this._defaultFloatShaderParams)if(e.shaderProgram.hasUniform(i)){var a=this._defaultFloatShaderParams[i];m.Context.gl.uniform1f(e.shaderProgram.getUniformLocation(i),a)}}},{key:"_updateRendererConstants",value:function(e){var t=this._defaultShaderParams.u_worldMatrix;if(this._defaultShaderParams.u_inverseWorldMatrix.copyFrom(e.inverseMatrix),t.copyFrom(e.matrix),this._calcWVPMatrix){var n=this._defaultShaderParams.u_wvpMatrix;n.makeIdentity(),n.multRight(t),n.multRight(this._defaultShaderParams.u_viewMatrix),n.multRight(this._defaultShaderParams.u_projectionMatrix)}}},{key:"_setStates",value:function(e,t){this._setAlphaState(e.alphaState,t),this._setCullState(e.cullState,t),this._setPolygonOffsetState(e.polygonOffsetState,t),this._setStencilState(e.stencilState,t),this._setZBufferState(e.zBufferState,t)}},{key:"_restoreStates",value:function(e){this._setStates(this._defaultStates,e)}},{key:"_setAlphaState",value:function(e,t){if(e.blendEnabled){if(!t&&this._cachedStates.alphaState.blendEnabled||(m.Context.gl.enable(m.Context.gl.BLEND),this._cachedStates.alphaState.blendEnabled=!0),1===e.blendEquation.length)!t&&this._compareState(this._cachedStates.alphaState.state.blendEquation[0],e.blendEquation[0])||(this._cachedStates.alphaState.state.blendEquation[0]=e.blendEquation[0],m.Context.gl.blendEquation(e.blendEquation[0]));else{if(2!==e.blendEquation.length)throw new Error("unknown number of blendEquation operators!");!t&&this._compareState(this._cachedStates.alphaState.state.blendEquation,e.blendEquation)||(this._cachedStates.alphaState.state.blendEquation[0]=e.blendEquation[0],this._cachedStates.alphaState.state.blendEquation[1]=e.blendEquation[1],m.Context.gl.blendEquationSeparate(e.blendEquation[0],e.blendEquation[1]))}if(2===e.blendFunc.length)!t&&this._compareState(this._cachedStates.alphaState.state.blendFunc,e.blendFunc)||(this._cachedStates.alphaState.state.blendFunc[0]=e.blendFunc[0],this._cachedStates.alphaState.state.blendFunc[1]=e.blendFunc[1],m.Context.gl.blendFunc(e.blendFunc[0],e.blendFunc[1]));else{if(4!==e.blendFunc.length)throw new Error("unknown number of blendFunc operators!");!t&&this._compareState(this._cachedStates.alphaState.state.blendFunc,e.blendFunc)||(this._cachedStates.alphaState.state.blendFunc[0]=e.blendFunc[0],this._cachedStates.alphaState.state.blendFunc[1]=e.blendFunc[1],this._cachedStates.alphaState.state.blendFunc[2]=e.blendFunc[2],this._cachedStates.alphaState.state.blendFunc[3]=e.blendFunc[3],m.Context.gl.blendFuncSeparate(e.blendFunc[0],e.blendFunc[1],e.blendFunc[2],e.blendFunc[3]))}!t&&this._compareState(this._cachedStates.alphaState.state.blendColor,e.blendColor)||(this._cachedStates.alphaState.state.blendColor.r=e.blendColor.r,this._cachedStates.alphaState.state.blendColor.g=e.blendColor.g,this._cachedStates.alphaState.state.blendColor.b=e.blendColor.b,this._cachedStates.alphaState.state.blendColor.a=e.blendColor.a,m.Context.gl.blendColor(e.blendColor.r,e.blendColor.g,e.blendColor.b,e.blendColor.a))}else(t||this._cachedStates.alphaState.blendEnabled)&&(m.Context.gl.disable(m.Context.gl.BLEND),this._cachedStates.alphaState.blendEnabled=!1)}},{key:"_setCullState",value:function(e,t){e.enabled?!t&&this._cachedStates.cullState.enabled||(m.Context.gl.enable(m.Context.gl.CULL_FACE),this._cachedStates.cullState.enabled=!0):(t||this._cachedStates.cullState.enabled)&&(m.Context.gl.disable(m.Context.gl.CULL_FACE),this._cachedStates.cullState.enabled=!1),!t&&this._compareState(this._cachedStates.cullState.state.frontFace,e.frontFace)||(this._cachedStates.cullState.state.frontFace=e.frontFace,m.Context.gl.frontFace(e.frontFace)),this._reverseCullFace?!t&&this._cachedStates.cullState.reversed||(this._cachedStates.cullState.reversed=!0,e.cullFace===m.Context.gl.BACK?m.Context.gl.cullFace(m.Context.gl.FRONT):m.Context.gl.cullFace(m.Context.gl.BACK)):(this._cachedStates.cullState.reversed=!1,!t&&this._compareState(this._cachedStates.cullState.state.cullFace,e.cullFace)||(this._cachedStates.cullState.state.cullFace=e.cullFace,m.Context.gl.cullFace(e.cullFace)))}},{key:"_setPolygonOffsetState",value:function(e,t){e.fillEnabled?!t&&this._cachedStates.polygonOffsetState.enabled||(m.Context.gl.enable(m.Context.gl.POLYGON_OFFSET_FILL),this._cachedStates.polygonOffsetState.enabled=!0):(t||this._cachedStates.polygonOffsetState.enabled)&&(m.Context.gl.disable(m.Context.gl.POLYGON_OFFSET_FILL),this._cachedStates.polygonOffsetState.enabled=!1),!t&&this._compareState(this._cachedStates.polygonOffsetState.state.factor,e.factor)&&this._compareState(this._cachedStates.polygonOffsetState.state.units,e.units)||(this._cachedStates.polygonOffsetState.state.factor=e.factor,this._cachedStates.polygonOffsetState.state.units=e.units,m.Context.gl.polygonOffset(e.factor,e.units))}},{key:"_setStencilState",value:function(e,t){e.enabled?(!t&&this._cachedStates.stencilState.enabled||(m.Context.gl.enable(m.Context.gl.STENCIL_TEST),this._cachedStates.stencilState.enabled=!0),!t&&this._compareState(this._cachedStates.stencilState.state.stencilFace,e.stencilFace)&&this._compareState(this._cachedStates.stencilState.state.compare,e.compare)&&this._compareState(this._cachedStates.stencilState.state.reference,e.reference)&&this._compareState(this._cachedStates.stencilState.state.mask,e.mask)||(this._cachedStates.stencilState.state.stencilFace=e.stencilFace,this._cachedStates.stencilState.state.compare=e.compare,this._cachedStates.stencilState.state.refrence=e.reference,this._cachedStates.stencilState.state.mask=e.mask,m.Context.gl.stencilFuncSeparate(e.stencilFace,e.compare,e.reference,e.mask)),!t&&this._compareState(this._cachedStates.stencilState.state.stencilFace,e.stencilFace)&&this._compareState(this._cachedStates.stencilState.state.writeMask,e.writeMask)||(this._cachedStates.stencilState.state.stencilFace=e.stencilFace,this._cachedStates.stencilState.state.writeMask=e.writeMask,m.Context.gl.stencilMaskSeparate(e.stencilFace,e.writeMask)),!t&&this._compareState(this._cachedStates.stencilState.state.stencilFace,e.stencilFace)&&this._compareState(this._cachedStates.stencilState.state.onFail,e.onFail)&&this._compareState(this._cachedStates.stencilState.state.onZFail,e.onZFail)&&this._compareState(this._cachedStates.stencilState.state.onZPass,e.onZPass)||(this._cachedStates.stencilState.state.stencilFace=e.stencilFace,this._cachedStates.stencilState.state.onFail=e.onFail,this._cachedStates.stencilState.state.onZFail=e.onZFail,this._cachedStates.stencilState.state.onZPass=e.onZPass,m.Context.gl.stencilOpSeparate(e.stencilFace,e.onFail,e.onZFail,e.onZPass))):(t||this._cachedStates.stencilState.enabled)&&(m.Context.gl.disable(m.Context.gl.STENCIL_TEST),this._cachedStates.stencilState.enabled=!1)}},{key:"_setZBufferState",value:function(e,t){e.enabled?(!t&&this._cachedStates.zBufferState.enabled||(m.Context.gl.enable(m.Context.gl.DEPTH_TEST),this._cachedStates.zBufferState.enabled=!0),!t&&this._compareState(this._cachedStates.zBufferState.state.compare,e.compare)||(this._cachedStates.zBufferState.state.compare=e.compare,m.Context.gl.depthFunc(e.compare)),!t&&this._compareState(this._cachedStates.zBufferState.state.writable,e.writable)||(this._cachedStates.zBufferState.state.writable=e.writable,m.Context.gl.depthMask(e.writable))):(t||this._cachedStates.zBufferState.enabled)&&(m.Context.gl.disable(m.Context.gl.DEPTH_TEST),this._cachedStates.zBufferState.state.compare=m.Context.gl.ALWAYS,m.Context.gl.depthFunc(m.Context.gl.ALWAYS),this._cachedStates.zBufferState.state.writable=!0,m.Context.gl.depthMask(!0),this._cachedStates.zBufferState.enabled=!1)}},{key:"_drawArray",value:function(e){m.Context.gl.drawArrays(e.type,0,e.vertexBuffer.size())}},{key:"_drawElements",value:function(e){m.Context.gl.drawElements(e.type,e.indexBuffer.size()-e.offset/e.indexBuffer.indexBytes,e.indexBuffer.internalType,e.offset)}},{key:"reverseCullFace",get:function(){return this._reverseCullFace},set:function(e){this._reverseCullFace=e}},{key:"camera",get:function(){return this._camera},set:function(e){this._camera.renderer&&(this._camera.renderer=null),this._camera=e,this._camera.renderer=this,this._setupCameraState()}},{key:"width",get:function(){return this._width},set:function(e){this._width=e,this.onViewportChange()}},{key:"height",get:function(){return this._height},set:function(e){this._height=e,this.onViewportChange()}},{key:"canvas",get:function(){return this._canvas}},{key:"clearColor",get:function(){return this._clearColor},set:function(e){if(!(e instanceof d.ColorRGBA))throw new Error("Clear color must be of type ColorRGBA!");this._clearColor=e,m.Context.gl.clearColor(this._clearColor.r,this._clearColor.g,this._clearColor.b,this._clearColor.a)}},{key:"clearMask",get:function(){return this._clearMask},set:function(e){this._clearMask=e}},{key:"clearDepth",get:function(){return this._clearDepth},set:function(e){this._clearDepth=e,m.Context.gl.clearDepth(this._clearDepth)}},{key:"frameGrabber",get:function(){return this._frameGrabber},set:function(e){this._frameGrabber=e}}]),e}()},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.DOMEventDispatcher=t.GamepadEvent=t.GlobalEvent=t.WheelEvent=t.TouchEvent=t.KeyboardEvent=t.MouseEvent=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(7),A=n(64),m=n(179),p={};p.MOUSE_MOVE="MOUSE_MOVE",p.MOUSE_DOWN="MOUSE_DOWN",p.MOUSE_UP="MOUSE_UP",p.MOUSE_OVER="MOUSE_OVER",p.MOUSE_LEAVE="MOUSE_LEAVE",p.MOUSE_OUT="MOUSE_OUT",p.MOUSE_ENTER="MOUSE_ENTER",p.CLICK="CLICK",p.CONTEXT_MENU="CONTEXT_MENU";var g={};g.KEY_PRESS="KEY_PRESS",g.KEY_DOWN="KEY_DOWN",g.KEY_UP="KEY_UP";var E={};E.TOUCH_START="TOUCH_START",E.TOUCH_END="TOUCH_END",E.TOUCH_CANCEL="TOUCH_CANCEL",E.TOUCH_LEAVE="TOUCH_LEAVE",E.TOUCH_MOVE="TOUCH_MOVE";var v={};v.SCROLL="WHEEL_SCROLL";var b={};b.ORIENTATION_CHANGE="ORIENTATION_CHANGE",b.DEVICE_ORIENTATION="DEVICE_ORIENTATION",b.DEVICE_MOTION="DEVICE_MOTION",b.FULLSCREEN_CHANGE="FULLSCREEN_CHANGE",b.VISIBILITY_CHANGE="VISIBILITY_CHANGE",b.RESIZE="RESIZE",b.SCROLL="GLOBAL_SCROLL";var S={};S.CONNECTED="GAMEPAD_CONNECTED",S.DISCONNECTED="GAMEPAD_DISCONNECTED";var T={"portrait-primary":0,"landscape-primary":90,"portrait-secondary":180,"landscape-secondary":-90},x=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this));n._dispatchGamepadconnectedEvents=function(e){n.$emitEvent(S.CONNECTED,e)},n._dispatchGamepaddisconnectedEvents=function(e){n.$emitEvent(S.DISCONNECTED,e)},n._dispatchMouseDownEvents=function(e){n.$emitEvent(p.MOUSE_DOWN,e,t._transformEvent)},n._dispatchMouseUpEvents=function(e){n.$emitEvent(p.MOUSE_UP,e,t._transformEvent)},n._dispatchMouseMoveEvents=function(e){n.$emitEvent(p.MOUSE_MOVE,e,t._transformEvent)},n._dispatchMouseLeaveEvents=function(e){n.$emitEvent(p.MOUSE_LEAVE,e,t._transformEvent)},n._dispatchMouseOutEvents=function(e){n.$emitEvent(p.MOUSE_OUT,e,t._transformEvent)},n._dispatchMouseEnterEvents=function(e){n.$emitEvent(p.MOUSE_ENTER,e,t._transformEvent)},n._dispatchMouseOverEvents=function(e){n.$emitEvent(p.MOUSE_OVER,e,t._transformEvent)},n._dispatchMouseClickEvents=function(e){n.$emitEvent(p.CLICK,e,t._transformEvent)},n._dispatchMouseContextMenuEvents=function(e){n.$emitEvent(p.CONTEXT_MENU,e,t._transformEvent)},n._dispatchKeyDownEvents=function(e){n.$emitEvent(g.KEY_DOWN,e,t._transformKeyEvent)},n._dispatchKeyUpEvents=function(e){n.$emitEvent(g.KEY_UP,e,t._transformKeyEvent)},n._dispatchKeyPressEvents=function(e){n.$emitEvent(g.KEY_PRESS,e,t._transformKeyEvent)},n._dispatchTouchStartEvents=function(e){n.$emitEvent(E.TOUCH_START,e,t._transformTouchEvent)},n._dispatchTouchEndEvents=function(e){n.$emitEvent(E.TOUCH_END,e,t._transformTouchEvent)},n._dispatchTouchCancelEvents=function(e){n.$emitEvent(E.TOUCH_CANCEL,e,t._transformTouchEvent)},n._dispatchTouchLeaveEvents=function(e){n.$emitEvent(E.TOUCH_LEAVE,e,t._transformTouchEvent)},n._dispatchTouchMoveEvents=function(e){n.$emitEvent(E.TOUCH_MOVE,e,t._transformTouchEvent)},n._dispatchWheelEvents=function(e){n.$emitEvent(v.SCROLL,e,t._transformWheelEvent)},n._dispatchScreenOrientationChangeEvents=function(){n._dispatchOrientationChangeEventsImpl(t._transformOrientationEvent())},n._dispatchOrientationChangeEvents=function(){n._dispatchOrientationChangeEventsImpl(window.orientation)},n._dispatchOrientationChangeEventsImpl=function(e){n.$emitEvent(b.ORIENTATION_CHANGE,e)},n._dispatchDeviceOrientationEvents=function(e){n.$emitEvent(b.DEVICE_ORIENTATION,e)},n._dispatchDeviceMotionEvents=function(e){n.$emitEvent(b.DEVICE_MOTION,e)},n._dispatchFullscreenChangeEvents=function(e){n.$emitEvent(b.FULLSCREEN_CHANGE,e)},n._dispatchVisibilityChangeEvents=function(e){n.$emitEvent(b.VISIBILITY_CHANGE,e)},n._dispatchScrollEventsImpl=function(e){n.$emitEvent(b.SCROLL,e)},n._dispatchScrollEvents=function(){n._dispatchScrollEventsImpl({offset:window.pageYOffset||document.documentElement.scrollTop})},n._dispatchResizeEvents=function(e){n.$emitEvent(b.RESIZE,e)},n._dispatchNeededIframeMessage=function(e){var r=void 0;try{r=JSON.parse(e.data)}catch(e){}if(void 0!==r&&void 0!==r.type)switch(r.type){case A.IFrameManager.SCREEN_CHANGE:n._dispatchOrientationChangeEventsImpl(t._transformOrientationEvent(r.payload.orientation));break;case A.IFrameManager.WINDOW_ORIENTATIONCHANGE:n._dispatchOrientationChangeEventsImpl(r.payload.orientation);break;case A.IFrameManager.WINDOW_DEVICEORIENTATION:n._dispatchDeviceOrientationEvents(r.payload);break;case A.IFrameManager.WINDOW_DEVICEMOTION:n._dispatchDeviceMotionEvents(r.payload)}},n._dispatchIframeMessage=function(e){var t=void 0;try{t=JSON.parse(e.data)}catch(e){}if(void 0!==t&&void 0!==t.type)switch(t.type){case A.IFrameManager.WINDOW_SCROLL:n._dispatchScrollEventsImpl(t.payload)}};var r=_.Util.getParamRequired(e,"domTarget"),i=_.Util.getParam(e,"useCapture");if(r.addEventListener("mousemove",n._dispatchMouseMoveEvents,i),r.addEventListener("mousedown",n._dispatchMouseDownEvents,i),r.addEventListener("mouseup",n._dispatchMouseUpEvents,i),r.addEventListener("mouseover",n._dispatchMouseOverEvents,i),r.addEventListener("mouseleave",n._dispatchMouseLeaveEvents,i),r.addEventListener("mouseout",n._dispatchMouseOutEvents,i),r.addEventListener("mouseenter",n._dispatchMouseEnterEvents,i),r.addEventListener("click",n._dispatchMouseClickEvents,i),r.addEventListener("contextmenu",n._dispatchMouseContextMenuEvents,i),r.addEventListener("keypress",n._dispatchKeyPressEvents,i),r.addEventListener("keydown",n._dispatchKeyDownEvents,i),r.addEventListener("keyup",n._dispatchKeyUpEvents,i),r.addEventListener("touchstart",n._dispatchTouchStartEvents,i),r.addEventListener("touchend",n._dispatchTouchEndEvents,i),r.addEventListener("touchcancel",n._dispatchTouchCancelEvents,i),r.addEventListener("touchleave",n._dispatchTouchLeaveEvents,i),r.addEventListener("touchmove",n._dispatchTouchMoveEvents,i),r.addEventListener("wheel",n._dispatchWheelEvents,i),r.addEventListener("DOMMouseScroll",n._dispatchWheelEvents,i),r.addEventListener("mousewheel",n._dispatchWheelEvents,i),A.IFrameManager.isInIFrame()?window.addEventListener("message",n._dispatchIframeMessage,i):window.addEventListener("scroll",n._dispatchScrollEvents,i),A.IFrameManager.needsEventsFromParent())window.addEventListener("message",n._dispatchNeededIframeMessage,i);else{if(window.screen){var o=window.screen.orientation||window.screen.mozOrientation||window.screen.msOrientation;o&&o.addEventListener?o.addEventListener("change",n._dispatchScreenOrientationChangeEvents,i):window.addEventListener("orientationchange",n._dispatchOrientationChangeEvents,i)}else window.addEventListener("orientationchange",n._dispatchOrientationChangeEvents,i);r.addEventListener("deviceorientation",n._dispatchDeviceOrientationEvents,i),r.addEventListener("devicemotion",n._dispatchDeviceMotionEvents,i)}window.addEventListener("gamepadconnected",n._dispatchGamepadconnectedEvents,i),window.addEventListener("gamepaddisconnected",n._dispatchGamepaddisconnectedEvents,i);var l="fullscreenchange";document.documentElement.requestFullscreen?l="fullscreenchange":document.documentElement.mozRequestFullScreen?l="mozfullscreenchange":document.documentElement.msRequestFullscreen?l="MSFullscreenChange":document.documentElement.webkitRequestFullScreen&&(l="webkitfullscreenchange"),document.addEventListener(l,n._dispatchFullscreenChangeEvents,i),document.addEventListener("fullscreenChange",n._dispatchFullscreenChangeEvents,i);var d=void 0,c=void 0;return"undefined"!=typeof document.hidden?(d="hidden",c="visibilitychange"):"undefined"!=typeof document.msHidden?(d="msHidden",c="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(d="webkitHidden",c="webkitvisibilitychange"),"undefined"==typeof document.addEventListener||"undefined"==typeof document[d]||document.addEventListener(c,n._dispatchVisibilityChangeEvents,i),window.addEventListener("resize",n._dispatchResizeEvents,i),n}return(0,h.default)(t,e),(0,c.default)(t,null,[{key:"_transformOrientationEvent",value:function(e){var t=e||window.screen.orientation||window.screen.mozOrientation||window.screen.msOrientation,n=void 0;return n=void 0!==t.angle?t.angle:void 0!==t.type?T[t.type]:T[t],void 0===n&&(n=0),n}},{key:"_transformEvent",value:function(e){if(e&&e.target&&e.target.offsetWidth&&e.target.offsetHeight){var t=e.offsetX,n=e.offsetY;t||(t=e.clientX-e.target.offsetLeft,n=e.clientY-e.target.offsetTop),e.normX=t/e.target.offsetWidth,e.normY=1-n/e.target.offsetHeight,void 0===e.movementX&&(e.movementX=e.mozMovementX||e.webkitMovementX||0),void 0===e.movementY&&(e.movementY=e.mozMovementY||e.webkitMovementY||0),e.movementNormX=e.movementX/e.target.offsetWidth,e.movementNormY=e.movementY/e.target.offsetHeight}}},{key:"_transformTouchEvent",value:function(e){var n=void 0,r=void 0;for(n=0,r=e.touches.length;n<r;++n)t._transformEvent(e.touches[n]);for(n=0,r=e.targetTouches.length;n<r;++n)t._transformEvent(e.targetTouches[n]);for(n=0,r=e.changedTouches.length;n<r;++n)t._transformEvent(e.changedTouches[n]);e.changedTouches.length>0?(e.normX=e.changedTouches[0].normX,e.normY=e.changedTouches[0].normY):e.targetTouches.length>0?(e.normX=e.targetTouches[0].normX,e.normY=e.targetTouches[0].normY):e.touches.length>0&&(e.normX=e.touches[0].normX,e.normY=e.touches[0].normY)}},{key:"_transformWheelEvent",value:function(e){e||(e=event);var t=e.wheelDelta,n=e.detail,r=e.deltaY;n?t?e.normWheelDelta=t/n/40*n>0?1:-1:e.normWheelDelta=-n/3:t?e.normWheelDelta=t/120:r?_.Util.isIE()?e.normWheelDelta=-r/120:e.normWheelDelta=-r/3:e.normWheelDelta=0}},{key:"_transformKeyEvent",value:function(e){void 0!==e.keyCode&&(e.keyString=String.fromCharCode(e.keyCode))}}]),t}(m.EventListener);t.MouseEvent=p,t.KeyboardEvent=g,t.TouchEvent=E,t.WheelEvent=v,t.GlobalEvent=b,t.GamepadEvent=S,t.DOMEventDispatcher=x},function(e,t,n){e.exports={default:n(564),__esModule:!0}},function(e,t,n){e.exports={default:n(578),__esModule:!0}},function(e,t,n){e.exports=!n(87)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ResourceTracker=void 0;var i=n(46),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(10);t.ResourceTracker=function(){function e(){(0,s.default)(this,e),this._activeResources=new a.default}return(0,u.default)(e,[{key:"initializer",value:function(){this._activeResources=new a.default}}]),(0,u.default)(e,[{key:"_checkType",value:function(e){e&&"function"==typeof e.dtor||d.Context.logger.warn(this,"Cannot add/remove active resource without dtor or undefined. There may be a resource leak")}},{key:"addActiveResource",value:function(e){return this._checkType(e),this._activeResources.add(e),e}},{key:"removeActiveResource",value:function(e){return this._checkType(e),e.dtor(),this._activeResources.delete(e),e}},{key:"dtorActiveResources",value:function(){this._activeResources.forEach(function(e){return e.dtor()}),this._activeResources.clear()}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Matrix4=void 0;var i=n(14),a=r(i),o=n(51),s=r(o),l=n(4),u=r(l),d=n(86),c=r(d),f=n(1),h=r(f),_=n(6),A=r(_),m=n(2),p=r(m),g=n(5),E=r(g),v=n(18),b=void 0,S=t.Matrix4=function(e){function t(e){(0,h.default)(this,t);var n=(0,A.default)(this,(t.__proto__||(0,u.default)(t)).call(this,e));if(n._storage=new Float32Array(16),"object"===("undefined"==typeof e?"undefined":(0,s.default)(e))){if("length"in e&&e.length>=16)return n.load(e),(0,A.default)(n);if(e instanceof t)return n.load(e),(0,A.default)(n)}else if(Array.isArray(e))return n.copyFromArray(e),(0,A.default)(n);return n.makeIdentity(),n}return(0,E.default)(t,e),(0,p.default)(t,[{key:"$serialize",value:function(){return{name:"Matrix4",params:[].concat((0,c.default)(this._storage))}}}],[{key:"tmp",value:function(e){var n=void 0;return(n=t._pool.get(e))||t._pool.set(e,n=new t),n}}]),(0,p.default)(t,[{key:"load",value:function(){if(1===arguments.length&&"object"===(0,s.default)(arguments[0])){var e=arguments[0];if("length"in e&&16===e.length)return this._storage[0]=e[0],this._storage[1]=e[1],this._storage[2]=e[2],this._storage[3]=e[3],this._storage[4]=e[4],this._storage[5]=e[5],this._storage[6]=e[6],this._storage[7]=e[7],this._storage[8]=e[8],this._storage[9]=e[9],this._storage[10]=e[10],this._storage[11]=e[11],this._storage[12]=e[12],this._storage[13]=e[13],this._storage[14]=e[14],this._storage[15]=e[15],this;if(arguments[0]instanceof t)return this._storage[0]=e._storage[0],this._storage[1]=e._storage[1],this._storage[2]=e._storage[2],this._storage[3]=e._storage[3],this._storage[4]=e._storage[4],this._storage[5]=e._storage[5],this._storage[6]=e._storage[6],this._storage[7]=e._storage[7],this._storage[8]=e._storage[8],this._storage[9]=e._storage[9],this._storage[10]=e._storage[10],this._storage[11]=e._storage[11],this._storage[12]=e._storage[12],this._storage[13]=e._storage[13],this._storage[14]=e._storage[14],this._storage[15]=e._storage[15],this}return this.makeIdentity(),this}},{key:"copyFrom",value:function(e){return this._storage[0]=e._storage[0],this._storage[1]=e._storage[1],this._storage[2]=e._storage[2],this._storage[3]=e._storage[3],this._storage[4]=e._storage[4],this._storage[5]=e._storage[5],this._storage[6]=e._storage[6],this._storage[7]=e._storage[7],this._storage[8]=e._storage[8],this._storage[9]=e._storage[9],this._storage[10]=e._storage[10],this._storage[11]=e._storage[11],this._storage[12]=e._storage[12],this._storage[13]=e._storage[13],this._storage[14]=e._storage[14],this._storage[15]=e._storage[15],this}},{key:"getAsArray",value:function(){return this._storage}},{key:"getAs2DArray",value:function(){return[[this._storage[0],this._storage[1],this._storage[2],this._storage[3]],[this._storage[4],this._storage[5],this._storage[6],this._storage[7]],[this._storage[8],this._storage[9],this._storage[10],this._storage[11]],[this._storage[12],this._storage[13],this._storage[14],this._storage[15]]]}},{key:"copyFromArray",value:function(e){return this._storage[0]=e[0],this._storage[1]=e[1],this._storage[2]=e[2],this._storage[3]=e[3],this._storage[4]=e[4],this._storage[5]=e[5],this._storage[6]=e[6],this._storage[7]=e[7],this._storage[8]=e[8],this._storage[9]=e[9],this._storage[10]=e[10],this._storage[11]=e[11],this._storage[12]=e[12],this._storage[13]=e[13],this._storage[14]=e[14],this._storage[15]=e[15],this}},{key:"copyRotationMatrixToArray",value:function(e){return e[0]=this._storage[0],e[1]=this._storage[1],e[2]=this._storage[2],e[3]=this._storage[4],e[4]=this._storage[5],e[5]=this._storage[6],e[6]=this._storage[8],e[7]=this._storage[9],e[8]=this._storage[10],e}},{key:"copyToArray",value:function(e){return e[0]=this._storage[0],e[1]=this._storage[1],e[2]=this._storage[2],e[3]=this._storage[3],e[4]=this._storage[4],e[5]=this._storage[5],e[6]=this._storage[6],e[7]=this._storage[7],e[8]=this._storage[8],e[9]=this._storage[9],e[10]=this._storage[10],e[11]=this._storage[11],e[12]=this._storage[12],e[13]=this._storage[13],e[14]=this._storage[14],e[15]=this._storage[15],e}},{key:"cloneAsFloat32Array",value:function(){return new Float32Array(this._storage)}},{key:"getAsFloat32Array",value:function(){return this._storage}},{key:"set",value:function(e,t,n){this._storage[t-1+4*(e-1)]=n}},{key:"setAll",value:function(e,t,n,r,i,a,o,s,l,u,d,c,f,h,_,A){var m=this._storage;return m[0]=e,m[1]=t,m[2]=n,m[3]=r,m[4]=i,m[5]=a,m[6]=o,m[7]=s,m[8]=l,m[9]=u,m[10]=d,m[11]=c,m[12]=f,m[13]=h,m[14]=_,m[15]=A,this}},{key:"get",value:function(e,t){return this._storage[t-1+4*(e-1)]}},{key:"makeIdentity",value:function(){return this._storage[0]=1,this._storage[1]=0,this._storage[2]=0,this._storage[3]=0,this._storage[4]=0,this._storage[5]=1,this._storage[6]=0,this._storage[7]=0,this._storage[8]=0,this._storage[9]=0,this._storage[10]=1,this._storage[11]=0,this._storage[12]=0,this._storage[13]=0,this._storage[14]=0,this._storage[15]=1,this}},{key:"transpose",value:function(){var e=this._storage[1];return this._storage[1]=this._storage[4],this._storage[4]=e,e=this._storage[2],this._storage[2]=this._storage[8],this._storage[8]=e,e=this._storage[3],this._storage[3]=this._storage[12],this._storage[12]=e,e=this._storage[6],this._storage[6]=this._storage[9],this._storage[9]=e,e=this._storage[7],this._storage[7]=this._storage[13],this._storage[13]=e,e=this._storage[11],this._storage[11]=this._storage[14],this._storage[14]=e,this}},{key:"equals",value:function(e){return this._storage[0]===e._storage[0]&&this._storage[1]===e._storage[1]&&this._storage[2]===e._storage[2]&&this._storage[3]===e._storage[3]&&this._storage[4]===e._storage[4]&&this._storage[5]===e._storage[5]&&this._storage[6]===e._storage[6]&&this._storage[7]===e._storage[7]&&this._storage[8]===e._storage[8]&&this._storage[9]===e._storage[9]&&this._storage[10]===e._storage[10]&&this._storage[11]===e._storage[11]&&this._storage[12]===e._storage[12]&&this._storage[13]===e._storage[13]&&this._storage[14]===e._storage[14]&&this._storage[15]===e._storage[15]}},{key:"invert",value:function(){var e=this._storage[0],t=this._storage[1],n=this._storage[2],r=this._storage[3],i=this._storage[4],a=this._storage[5],o=this._storage[6],s=this._storage[7],l=this._storage[8],u=this._storage[9],d=this._storage[10],c=this._storage[11],f=this._storage[12],h=this._storage[13],_=this._storage[14],A=this._storage[15],m=e*a-t*i,p=e*o-n*i,g=e*s-r*i,E=t*o-n*a,v=t*s-r*a,b=n*s-r*o,S=l*h-u*f,T=l*_-d*f,x=l*A-c*f,y=u*_-d*h,C=u*A-c*h,w=d*A-c*_,M=m*w-p*C+g*y+E*x-v*T+b*S;return M?(M=1/M,this._storage[0]=(a*w-o*C+s*y)*M,this._storage[1]=(n*C-t*w-r*y)*M,this._storage[2]=(h*b-_*v+A*E)*M,this._storage[3]=(d*v-u*b-c*E)*M,this._storage[4]=(o*x-i*w-s*T)*M,this._storage[5]=(e*w-n*x+r*T)*M,this._storage[6]=(_*g-f*b-A*p)*M,this._storage[7]=(l*b-d*g+c*p)*M,this._storage[8]=(i*C-a*x+s*S)*M,this._storage[9]=(t*x-e*C-r*S)*M,this._storage[10]=(f*v-h*g+A*m)*M,this._storage[11]=(u*g-l*v-c*m)*M,this._storage[12]=(a*T-i*y-o*S)*M,this._storage[13]=(e*y-t*T+n*S)*M,this._storage[14]=(h*p-f*E-_*m)*M,this._storage[15]=(l*E-u*p+d*m)*M,this):null}},{key:"translateVector",value:function(e){var t=this._storage,n=e.x,r=e.y,i=e.z;t[12]=t[0]*n+t[4]*r+t[8]*i+t[12],t[13]=t[1]*n+t[5]*r+t[9]*i+t[13],t[14]=t[2]*n+t[6]*r+t[10]*i+t[14],t[15]=t[3]*n+t[7]*r+t[11]*i+t[15]}},{key:"translate",value:function(e,t,n){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0);var r=b;return r.makeIdentity(),r._storage[12]=e,r._storage[13]=t,r._storage[14]=n,this.multRight(r),this}},{key:"scale",value:function(e,t,n){void 0===e&&(e=1),void 0===n?void 0===t?(t=e,n=e):n=1:void 0===t&&(t=e);var r=b;return r.makeIdentity(),r._storage[0]=e,r._storage[5]=t,r._storage[10]=n,this.multRight(r),this}},{key:"rotate",value:function(e,t,n,r){e/=2;var i=Math.sin(e),a=Math.cos(e),o=i*i,s=Math.sqrt(t*t+n*n+r*r);0===s?(t=0,n=0,r=1):1!==s&&(t/=s,n/=s,r/=s);var l=b;if(l.makeIdentity(),1===t&&0===n&&0===r)l._storage[0]=1,l._storage[1]=0,l._storage[2]=0,l._storage[4]=0,l._storage[5]=1-2*o,l._storage[6]=2*i*a,l._storage[8]=0,l._storage[9]=-2*i*a,l._storage[10]=1-2*o,l._storage[3]=l._storage[7]=l._storage[11]=0,l._storage[12]=l._storage[13]=l._storage[14]=0,l._storage[15]=1;else if(0===t&&1===n&&0===r)l._storage[0]=1-2*o,l._storage[1]=0,l._storage[2]=-2*i*a,l._storage[4]=0,l._storage[5]=1,l._storage[6]=0,l._storage[8]=2*i*a,l._storage[9]=0,l._storage[10]=1-2*o,l._storage[3]=l._storage[7]=l._storage[11]=0,l._storage[12]=l._storage[13]=l._storage[14]=0,l._storage[15]=1;else if(0===t&&0===n&&1===r)l._storage[0]=1-2*o,l._storage[1]=2*i*a,l._storage[2]=0,l._storage[4]=-2*i*a,l._storage[5]=1-2*o,l._storage[6]=0,l._storage[8]=0,l._storage[9]=0,l._storage[10]=1,l._storage[3]=l._storage[7]=l._storage[11]=0,l._storage[12]=l._storage[13]=l._storage[14]=0,l._storage[15]=1;else{var u=t*t,d=n*n,c=r*r;l._storage[0]=1-2*(d+c)*o,l._storage[1]=2*(t*n*o+r*i*a),l._storage[2]=2*(t*r*o-n*i*a),l._storage[4]=2*(n*t*o-r*i*a),l._storage[5]=1-2*(c+u)*o,l._storage[6]=2*(n*r*o+t*i*a),l._storage[8]=2*(r*t*o+n*i*a),l._storage[9]=2*(r*n*o-t*i*a),l._storage[10]=1-2*(u+d)*o,l._storage[3]=l._storage[7]=l._storage[11]=0,l._storage[12]=l._storage[13]=l._storage[14]=0,l._storage[15]=1}return this.multRight(l),this}},{key:"multRight",value:function(e){var t=this._storage[0]*e._storage[0]+this._storage[1]*e._storage[4]+this._storage[2]*e._storage[8]+this._storage[3]*e._storage[12],n=this._storage[0]*e._storage[1]+this._storage[1]*e._storage[5]+this._storage[2]*e._storage[9]+this._storage[3]*e._storage[13],r=this._storage[0]*e._storage[2]+this._storage[1]*e._storage[6]+this._storage[2]*e._storage[10]+this._storage[3]*e._storage[14],i=this._storage[0]*e._storage[3]+this._storage[1]*e._storage[7]+this._storage[2]*e._storage[11]+this._storage[3]*e._storage[15],a=this._storage[4]*e._storage[0]+this._storage[5]*e._storage[4]+this._storage[6]*e._storage[8]+this._storage[7]*e._storage[12],o=this._storage[4]*e._storage[1]+this._storage[5]*e._storage[5]+this._storage[6]*e._storage[9]+this._storage[7]*e._storage[13],s=this._storage[4]*e._storage[2]+this._storage[5]*e._storage[6]+this._storage[6]*e._storage[10]+this._storage[7]*e._storage[14],l=this._storage[4]*e._storage[3]+this._storage[5]*e._storage[7]+this._storage[6]*e._storage[11]+this._storage[7]*e._storage[15],u=this._storage[8]*e._storage[0]+this._storage[9]*e._storage[4]+this._storage[10]*e._storage[8]+this._storage[11]*e._storage[12],d=this._storage[8]*e._storage[1]+this._storage[9]*e._storage[5]+this._storage[10]*e._storage[9]+this._storage[11]*e._storage[13],c=this._storage[8]*e._storage[2]+this._storage[9]*e._storage[6]+this._storage[10]*e._storage[10]+this._storage[11]*e._storage[14],f=this._storage[8]*e._storage[3]+this._storage[9]*e._storage[7]+this._storage[10]*e._storage[11]+this._storage[11]*e._storage[15],h=this._storage[12]*e._storage[0]+this._storage[13]*e._storage[4]+this._storage[14]*e._storage[8]+this._storage[15]*e._storage[12],_=this._storage[12]*e._storage[1]+this._storage[13]*e._storage[5]+this._storage[14]*e._storage[9]+this._storage[15]*e._storage[13],A=this._storage[12]*e._storage[2]+this._storage[13]*e._storage[6]+this._storage[14]*e._storage[10]+this._storage[15]*e._storage[14],m=this._storage[12]*e._storage[3]+this._storage[13]*e._storage[7]+this._storage[14]*e._storage[11]+this._storage[15]*e._storage[15];return this._storage[0]=t,this._storage[1]=n,this._storage[2]=r,this._storage[3]=i,this._storage[4]=a,this._storage[5]=o,this._storage[6]=s,this._storage[7]=l,this._storage[8]=u,this._storage[9]=d,this._storage[10]=c,this._storage[11]=f,this._storage[12]=h,this._storage[13]=_,this._storage[14]=A,this._storage[15]=m,this}},{key:"multLeft",value:function(e){var t=e._storage[0]*this._storage[0]+e._storage[1]*this._storage[4]+e._storage[2]*this._storage[8]+e._storage[3]*this._storage[12],n=e._storage[0]*this._storage[1]+e._storage[1]*this._storage[5]+e._storage[2]*this._storage[9]+e._storage[3]*this._storage[13],r=e._storage[0]*this._storage[2]+e._storage[1]*this._storage[6]+e._storage[2]*this._storage[10]+e._storage[3]*this._storage[14],i=e._storage[0]*this._storage[3]+e._storage[1]*this._storage[7]+e._storage[2]*this._storage[11]+e._storage[3]*this._storage[15],a=e._storage[4]*this._storage[0]+e._storage[5]*this._storage[4]+e._storage[6]*this._storage[8]+e._storage[7]*this._storage[12],o=e._storage[4]*this._storage[1]+e._storage[5]*this._storage[5]+e._storage[6]*this._storage[9]+e._storage[7]*this._storage[13],s=e._storage[4]*this._storage[2]+e._storage[5]*this._storage[6]+e._storage[6]*this._storage[10]+e._storage[7]*this._storage[14],l=e._storage[4]*this._storage[3]+e._storage[5]*this._storage[7]+e._storage[6]*this._storage[11]+e._storage[7]*this._storage[15],u=e._storage[8]*this._storage[0]+e._storage[9]*this._storage[4]+e._storage[10]*this._storage[8]+e._storage[11]*this._storage[12],d=e._storage[8]*this._storage[1]+e._storage[9]*this._storage[5]+e._storage[10]*this._storage[9]+e._storage[11]*this._storage[13],c=e._storage[8]*this._storage[2]+e._storage[9]*this._storage[6]+e._storage[10]*this._storage[10]+e._storage[11]*this._storage[14],f=e._storage[8]*this._storage[3]+e._storage[9]*this._storage[7]+e._storage[10]*this._storage[11]+e._storage[11]*this._storage[15],h=e._storage[12]*this._storage[0]+e._storage[13]*this._storage[4]+e._storage[14]*this._storage[8]+e._storage[15]*this._storage[12],_=e._storage[12]*this._storage[1]+e._storage[13]*this._storage[5]+e._storage[14]*this._storage[9]+e._storage[15]*this._storage[13],A=e._storage[12]*this._storage[2]+e._storage[13]*this._storage[6]+e._storage[14]*this._storage[10]+e._storage[15]*this._storage[14],m=e._storage[12]*this._storage[3]+e._storage[13]*this._storage[7]+e._storage[14]*this._storage[11]+e._storage[15]*this._storage[15]; return this._storage[0]=t,this._storage[1]=n,this._storage[2]=r,this._storage[3]=i,this._storage[4]=a,this._storage[5]=o,this._storage[6]=s,this._storage[7]=l,this._storage[8]=u,this._storage[9]=d,this._storage[10]=c,this._storage[11]=f,this._storage[12]=h,this._storage[13]=_,this._storage[14]=A,this._storage[15]=m,this}},{key:"ortho",value:function(e,t,n,r,i,a){var o=(e+t)/(e-t),s=(r+n)/(r-n),l=(a+i)/(a-i);return this._storage[0]=2/(e-t),this._storage[1]=0,this._storage[2]=0,this._storage[3]=0,this._storage[4]=0,this._storage[5]=2/(r-n),this._storage[6]=0,this._storage[7]=0,this._storage[8]=0,this._storage[9]=0,this._storage[10]=-2/(a-i),this._storage[11]=0,this._storage[12]=o,this._storage[13]=s,this._storage[14]=l,this._storage[15]=1,this}},{key:"frustum",value:function(e,t,n,r,i,a){var o=(t+e)/(t-e),s=(r+n)/(r-n),l=-(a+i)/(a-i),u=-(2*a*i)/(a-i);return this._storage[0]=2*i/(t-e),this._storage[1]=0,this._storage[2]=0,this._storage[3]=0,this._storage[4]=0,this._storage[5]=2*i/(r-n),this._storage[6]=0,this._storage[7]=0,this._storage[8]=o,this._storage[9]=s,this._storage[10]=l,this._storage[11]=-1,this._storage[12]=0,this._storage[13]=0,this._storage[14]=u,this._storage[15]=0,this}},{key:"perspective",value:function(e,t,n,r){var i=Math.tan(e*Math.PI/360)*n,a=-i,o=t*a,s=t*i;return this.frustum(o,s,a,i,n,r),this}},{key:"lookat",value:function(e,t,n,r,i,a,o,s,l){var u=b;u.makeIdentity();var d=e-r,c=t-i,f=n-a,h=Math.sqrt(d*d+c*c+f*f);h&&(d/=h,c/=h,f/=h);var _=o,A=s,m=l,p=A*f-m*c,g=-_*f+m*d,E=_*c-A*d;return _=c*E-f*g,A=-d*E+f*p,_=d*g-c*p,h=Math.sqrt(p*p+g*g+E*E),h&&(p/=h,g/=h,E/=h),h=Math.sqrt(_*_+A*A+m*m),h&&(_/=h,A/=h,m/=h),u._storage[0]=p,u._storage[1]=g,u._storage[2]=E,u._storage[3]=0,u._storage[4]=_,u._storage[5]=A,u._storage[6]=m,u._storage[7]=0,u._storage[8]=d,u._storage[9]=c,u._storage[10]=f,u._storage[11]=0,u._storage[12]=0,u._storage[13]=0,u._storage[14]=0,u._storage[15]=1,u.translate(-e,-t,-n),this.multRight(u),this}},{key:"_determinant2x2",value:function(e,t,n,r){return e*r-t*n}},{key:"determinant3x3",value:function(){return this._determinant3x3(this._storage[0],this._storage[4],this._storage[8],this._storage[1],this._storage[5],this._storage[9],this._storage[2],this._storage[6],this._storage[10])}},{key:"_determinant3x3",value:function(e,t,n,r,i,a,o,s,l){return e*this._determinant2x2(i,a,s,l)-r*this._determinant2x2(t,n,s,l)+o*this._determinant2x2(t,n,i,a)}},{key:"_determinant4x4",value:function(){var e=this._storage[0],t=this._storage[1],n=this._storage[2],r=this._storage[3],i=this._storage[4],a=this._storage[5],o=this._storage[6],s=this._storage[7],l=this._storage[8],u=this._storage[9],d=this._storage[10],c=this._storage[11],f=this._storage[12],h=this._storage[13],_=this._storage[14],A=this._storage[15];return e*this._determinant3x3(a,u,h,o,d,_,s,c,A)-t*this._determinant3x3(i,l,f,o,d,_,s,c,A)+n*this._determinant3x3(i,l,f,a,u,h,s,c,A)-r*this._determinant3x3(i,l,f,a,u,h,o,d,_)}},{key:"_makeAdjoint",value:function(){var e=this._storage[0],t=this._storage[1],n=this._storage[2],r=this._storage[3],i=this._storage[4],a=this._storage[5],o=this._storage[6],s=this._storage[7],l=this._storage[8],u=this._storage[9],d=this._storage[10],c=this._storage[11],f=this._storage[12],h=this._storage[13],_=this._storage[14],A=this._storage[15];this._storage[0]=this._determinant3x3(a,u,h,o,d,_,s,c,A),this._storage[4]=-this._determinant3x3(i,l,f,o,d,_,s,c,A),this._storage[8]=this._determinant3x3(i,l,f,a,u,h,s,c,A),this._storage[12]=-this._determinant3x3(i,l,f,a,u,h,o,d,_),this._storage[1]=-this._determinant3x3(t,u,h,n,d,_,r,c,A),this._storage[5]=this._determinant3x3(e,l,f,n,d,_,r,c,A),this._storage[9]=-this._determinant3x3(e,l,f,t,u,h,r,c,A),this._storage[13]=this._determinant3x3(e,l,f,t,u,h,n,d,_),this._storage[2]=this._determinant3x3(t,a,h,n,o,_,r,s,A),this._storage[6]=-this._determinant3x3(e,i,f,n,o,_,r,s,A),this._storage[10]=this._determinant3x3(e,i,f,t,a,h,r,s,A),this._storage[14]=-this._determinant3x3(e,i,f,t,a,h,n,o,_),this._storage[3]=-this._determinant3x3(t,a,u,n,o,d,r,s,c),this._storage[7]=this._determinant3x3(e,i,l,n,o,d,r,s,c),this._storage[11]=-this._determinant3x3(e,i,l,t,a,u,r,s,c),this._storage[15]=this._determinant3x3(e,i,l,t,a,u,n,o,d)}},{key:"fromTRS",value:function(e,t,n){var r=this._storage,i=t,a=e,o=n,s=i.x,l=i.y,u=i.z,d=i.w,c=s+s,f=l+l,h=u+u,_=s*c,A=s*f,m=s*h,p=l*f,g=l*h,E=u*h,v=d*c,b=d*f,S=d*h,T=o.x,x=o.y,y=o.z;return r[0]=T*(1-(p+E)),r[1]=T*(A-S),r[2]=T*(m+b),r[3]=0,r[4]=x*(A+S),r[5]=x*(1-(_+E)),r[6]=x*(g-v),r[7]=0,r[8]=y*(m-b),r[9]=y*(g+v),r[10]=y*(1-(_+p)),r[11]=0,r[12]=a.x,r[13]=a.y,r[14]=a.z,r[15]=1,this}},{key:"toTRS",value:function(e,t,n){return this.toTranslation(e),this.toRotation(t),this.toScale(n),this}},{key:"fromTranslation",value:function(e){return this.setAll(1,0,0,0,0,1,0,0,0,0,1,0,e.x,e.y,e.z,1),this}},{key:"toTranslation",value:function(e){var t=this._storage;return e.x=t[12],e.y=t[13],e.z=t[14],e}},{key:"fromScale",value:function(e){return this.setAll(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1),this}},{key:"toScale",value:function(e){var t=this._storage,n=t[0],r=t[1],i=t[2];e.x=Math.sqrt(n*n+r*r+i*i);var a=t[4],o=t[5],s=t[6];e.y=Math.sqrt(a*a+o*o+s*s);var l=t[8],u=t[9],d=t[10];return e.z=Math.sqrt(l*l+u*u+d*d),e}},{key:"toRotation",value:function(e){var t=this._storage,n=t[0],r=t[1],i=t[2],a=1/Math.sqrt(n*n+r*r+i*i),o=t[4],s=t[5],l=t[6],u=1/Math.sqrt(o*o+s*s+l*l),d=t[8],c=t[9],f=t[10],h=1/Math.sqrt(d*d+c*c+f*f);n*=a,r*=a,i*=a,o*=u,s*=u,l*=u,d*=h,c*=h,f*=h;var _=n+s+f,A=void 0;return _>0?(A=.5/Math.sqrt(_+1),e.x=(c-l)*A,e.y=(i-d)*A,e.z=(o-r)*A,e.w=.25/A):n>s&&n>f?(A=2*Math.sqrt(1+n-s-f),e.x=.25*A,e.y=(r+o)/A,e.z=(i+d)/A,e.w=(c-l)/A):s>f?(A=2*Math.sqrt(1+s-n-f),e.x=(r+o)/A,e.y=.25*A,e.z=(l+c)/A,e.w=(i-d)/A):(A=2*Math.sqrt(1+f-n-s),e.x=(i+d)/A,e.y=(l+c)/A,e.z=.25*A,e.w=(o-r)/A),e}},{key:"fromRotation",value:function(e){var t=e.x,n=e.y,r=e.z,i=e.w,a=t+t,o=n+n,s=r+r,l=t*a,u=t*o,d=t*s,c=n*o,f=n*s,h=r*s,_=i*a,A=i*o,m=i*s,p=this._storage;return p[0]=1-(c+h),p[1]=u-m,p[2]=d+A,p[3]=0,p[4]=u+m,p[5]=1-(l+h),p[6]=f-_,p[7]=0,p[8]=d-A,p[9]=f+_,p[10]=1-(l+c),p[11]=0,p[12]=0,p[13]=0,p[14]=0,p[15]=1,this}}]),t}(v.Serializable);S._pool=new a.default,b=new S},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(558),a=r(i),o=n(62),s=r(o),l="function"==typeof s.default&&"symbol"==typeof a.default?function(e){return typeof e}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":typeof e};t.default="function"==typeof s.default&&"symbol"===l(a.default)?function(e){return"undefined"==typeof e?"undefined":l(e)}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":"undefined"==typeof e?"undefined":l(e)}},function(e,t,n){var r=n(42);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){var r=n(52),i=n(309),a=n(211),o=Object.defineProperty;t.f=n(47)?Object.defineProperty:function(e,t,n){if(r(e),t=a(t,!0),r(n),i)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var r=n(38),i=n(127).f,a=n(126),o=n(226),s=n(227),l=n(331),u=n(660);e.exports=function(e,t){var n,d,c,f,h,_,A=e.target,m=e.global,p=e.stat;if(d=m?r:p?r[A]||s(A,{}):(r[A]||{}).prototype)for(c in t){if(h=t[c],e.noTargetGet?(_=i(d,c),f=_&&_.value):f=d[c],n=u(m?c:A+(p?".":"#")+c,e.forced),!n&&void 0!==f){if(typeof h==typeof f)continue;l(h,f)}(e.sham||f&&f.sham)&&a(h,"sham",!0),o(d,c,h,e)}}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(38),i=n(230),a=n(55),o=n(233),s=n(220),l=n(341),u=i("wks"),d=r.Symbol,c=l?d:d&&d.withoutSetter||o;e.exports=function(e){return a(u,e)||(s&&a(d,e)?u[e]=d[e]:u[e]=c("Symbol."+e)),u[e]}},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Resource=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(8),A=r(_),m=n(10),p=n(75),g=n(179),E=t.Resource=function(e){function t(){(0,s.default)(this,t);var e=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this));return e._catalogId=null,e._dependencies=[],e._dependees=[],e._loaded=!1,e}return(0,h.default)(t,e),(0,c.default)(t,[{key:"initializer",value:function(){(0,A.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"initializer",this).call(this),this._catalogId=null,this._dependencies=[],this._dependees=[],this._loaded=!1}}]),(0,c.default)(t,[{key:"dtor",value:function(){var e=this;this._dependees.forEach(function(t){return t.removeResourceDependency(e)}),this._dependencies.length=0,this._dependees.length=0,this._loaded=!1,this._resourceLoading&&(m.Context.eventEmitter.emit(this,p.LoadingManager.EVENT_LOADING_END),this._resourceLoading=!1)}},{key:"addResourceDependency",value:function(e){this._dependencies.indexOf(e)===-1&&(this._dependencies.push(e),e._dependees.indexOf(this)===-1&&e._dependees.push(this))}},{key:"removeResourceDependency",value:function(e){var t=0;(t=this._dependencies.indexOf(e))!==-1&&(this._dependencies.splice(t,1),(t=e._dependees.indexOf(this))!==-1&&e._dependees.splice(t,1))}},{key:"markLoading",value:function(){this._resourceLoading||(m.Context.eventEmitter.emit(this,p.LoadingManager.EVENT_LOADING_START),this._resourceLoading=!0)}},{key:"loaded",get:function(){if(!this._loaded)return!1;for(var e=this._dependencies.length-1;e>=0;--e)if(!this._dependencies[e].loaded)return!1;return!0},set:function(e){this._loaded=e,e&&this._resourceLoading&&(m.Context.eventEmitter.emit(this,p.LoadingManager.EVENT_LOADING_END),this.$emitEvent(t.LOADED,this),this._resourceLoading=!1)}},{key:"catalogId",get:function(){return this._catalogId},set:function(e){this._catalogId=e}}]),t}(g.EventListener);E.LOADED="loaded"},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Vector2=void 0;var i=n(14),a=r(i),o=n(51),s=r(o),l=n(4),u=r(l),d=n(1),c=r(d),f=n(6),h=r(f),_=n(2),A=r(_),m=n(5),p=r(m),g=n(17),E=n(18),v=t.Vector2=function(e){function t(){(0,c.default)(this,t);var e=(0,h.default)(this,(t.__proto__||(0,u.default)(t)).call(this));return 1===arguments.length?"object"===(0,s.default)(arguments[0])?e.load(arguments[0]):"number"==typeof arguments[0]?e.x=e.y=arguments[0]:e.zero():2===arguments.length?(e.x=arguments[0],e.y=arguments[1]):e.zero(),e}return(0,p.default)(t,e),(0,A.default)(t,[{key:"$serialize",value:function(){return{name:"Vector2",params:[this.x,this.y]}}}],[{key:"sub",value:function(e,n){var r=new t;return r.copyFrom(e),r.sub(n),r}},{key:"dot",value:function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z}},{key:"tmp",value:function(e){var n=void 0;return(n=t._pool.get(e))||t._pool.set(e,n=new t),n}}]),(0,A.default)(t,[{key:"load",value:function(){if(1!==arguments.length||"object"!==(0,s.default)(arguments[0]))throw Error("trying to instanciate Vector2 with incompatible type");var e=arguments[0];return"length"in e&&2===e.length?(this.x=e[0],this.y=e[1]):arguments[0]instanceof t&&(this.x=e.x,this.y=e.y),this}},{key:"copyFrom",value:function(e){return this.x=e.x,this.y=e.y,this}},{key:"zero",value:function(){return this.x=0,this.y=0,this}},{key:"dot",value:function(e){return this.x*e.x+this.y*e.y}},{key:"mult",value:function(e){return this.x*=e,this.y*=e,this}},{key:"div",value:function(e){return this.x/=e,this.y/=e,this}},{key:"add",value:function(e){return this.x+=e.x,this.y+=e.y,this}},{key:"addScalar",value:function(e){return this.x+=e,this.y+=e,this}},{key:"sub",value:function(e){return this.x-=e.x,this.y-=e.y,this}},{key:"max",value:function(e){return this.x=Math.max(e.x,this.x),this.y=Math.max(e.y,this.y),this}},{key:"min",value:function(e){return this.x=Math.min(e.x,this.x),this.y=Math.min(e.y,this.y),this}},{key:"normalize",value:function(){var e=this.magnitude(),t=void 0;return t=0===e?0:1/e,this.x*=t,this.y*=t,this}},{key:"neg",value:function(){return this.x=-this.x,this.y=-this.y,this}},{key:"set",value:function(e,t){return this.x=e,this.y=t,this}},{key:"equals",value:function(e){return this.x===e.x&&this.y===e.y}},{key:"almostEquals",value:function(e,t){return g.MathUtil.almostEquals(this.x,e.x,t)&&g.MathUtil.almostEquals(this.y,e.y,t)}},{key:"magnitudeSquared",value:function(){return this.x*this.x+this.y*this.y}},{key:"magnitude",value:function(){return Math.sqrt(this.x*this.x+this.y*this.y)}},{key:"setMagnitude",value:function(e){var t=this.magnitude();return 0!==t&&e!==t&&this.mult(e/t),this}},{key:"distanceSquared",value:function(e){return(e.x-this.x)*(e.x-this.x)+(e.y-this.y)*(e.y-this.y)}},{key:"distance",value:function(e){return Math.sqrt((e.x-this.x)*(e.x-this.x)+(e.y-this.y)*(e.y-this.y))}},{key:"get",value:function(e){return 0===e?this.x:this.y}},{key:"getAsArray",value:function(){return[this.x,this.y]}},{key:"getAsFloat32Array",value:function(){return new Float32Array(this.getAsArray())}},{key:"toString",value:function(){return"("+this.x+", "+this.y+")"}}]),t}(E.Serializable);v.ZERO=new v(0,0),v.ONE=new v(1,1),v.NEGATIVE_INFINITY=new v(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),v.POSITIVE_INFINITY=new v(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),v.X_AXIS=new v(1,0),v.Y_AXIS=new v(0,1),v.NEG_X_AXIS=new v(-1,0),v.NEG_Y_AXIS=new v(0,-1),v._pool=new a.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return function(e){return!(!/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)&&!/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))||!!a()}(navigator.userAgent||navigator.vendor||window.opera)}function a(){return"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1&&!window.MSStream}function o(){return/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent)||a()}function s(){return null!==navigator.userAgent.match(/iPad/i)||a()}function l(){return/Android/gi.test(navigator.userAgent)}function u(){return navigator.userAgent.toLowerCase().indexOf("mobile vr")>-1}function d(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");return!!(t>0||navigator.userAgent.match(/Trident.*rv:11\./))}function c(){return!f()&&o()&&!s()}function f(){var e=navigator.userAgent.match(/(iPhone|iPad); (CPU iPhone|CPU) OS (\d+)_(\d+)(_(\d+))?\s+/);return!(!e||e.length<4)&&(o()&&parseInt(e[3],10)>=10)}function h(){var e=navigator.userAgent.match(/(iPhone|iPad); (CPU iPhone|CPU) OS (\d+)_(\d+)(_(\d+))?\s+/);return!(!e||e.length<4)&&(o()&&parseInt(e[3],10)>=13)}function _(){var e=navigator.userAgent.match(/(iPhone|iPad); (CPU iPhone|CPU) OS (\d+)_(\d+)(_(\d+))?\s+/);return!(!e||e.length<5)&&(o()&&13===parseInt(e[3],10)&&4===parseInt(e[4],10))}function A(e){var t=void 0;try{t=unescape(location.search.match(new RegExp(e+"=+([^&]*)"))[1])}catch(e){t=void 0}return t}function m(){return navigator.userAgent.indexOf("Safari")!==-1&&navigator.userAgent.indexOf("Chrome")===-1}function p(){var e=-1,t=window.navigator.userAgent.match(/Version\/(.+?)\./);return t&&2===t.length&&(e=t[1]),m()&&parseInt(e,10)>=11}function g(e){var t=(0,P.default)(document.querySelectorAll("meta[name=dl8-custom-format]")),n={formatParams:{}},r=!0,i=!1,a=void 0;try{for(var o,s=(0,M.default)(t);!(r=(o=s.next()).done);r=!0){var l=o.value,u=JSON.parse(l.getAttribute("content"));if(u&&e.format===u.name){n.format=u.base,n.formatParams=(0,C.default)(n.formatParams,u.params);break}}}catch(e){i=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw a}}return n}function E(){var e=window.location.hostname;return!!e&&L.find(function(t){return e.endsWith(t)})}function v(e){if(E())return!0;if(e.unlimitedDomains)return!0;var t=window.location.hostname;if(!t)return!1;try{for(var n=I.default.parse(t.replace(/\[(.*)\]/,"$1")),r=0;r<O.length;++r){var i=I.default.parseCIDR(O[r]);if(i[0].kind()===n.kind()&&n.match(i))return!0}}catch(e){}var a=e.domains||[];a=a.concat(N);for(var o=!1,s=0;s<a.length;++s)if(t.endsWith(a[s])){o=!0;break}return o||console.error('"'+t+'" is not an allowed domain.'),o}function b(e){if(0===F.length)return v(B)&&B[e];var t=F.find(function(t){return t[e]&&v(t)});return!!t&&t[e]}function S(){if(E())return{hubEnabled:!0,imgEnabled:!0,videoEnabled:!0,ibrEnabled:!0,tourEnabled:!0,modelEnabled:!0,cinemaEnabled:!0,liveVideoEnabled:!0,useInternalTracking:!0,useExternalTracking:!1,useSparseTracking:!1,sparseTrackingProbability:.01,recommendationEnabled:!0,affiliateEnabled:!0,advertisementEnabled:!0,adaptiveStreamingEnabled:!0,spatialAudioEnabled:!0,whiteLabelEnabled:!0};var e={};try{e=JSON.parse('{"adaptiveStreamingEnabled":true,"advertisementEnabled":true,"affiliateEnabled":true,"cinemaEnabled":true,"hubEnabled":true,"ibrEnabled":true,"imgEnabled":true,"liveVideoEnabled":true,"modelEnabled":true,"recommendationEnabled":true,"spatialAudioEnabled":true,"tourEnabled":true,"unlimitedDomains":true,"useExternalTracking":false,"useInternalTracking":false,"videoEnabled":true,"whiteLabelEnabled":true}')}catch(e){}return e}Object.defineProperty(t,"__esModule",{value:!0});var T=n(304),x=r(T),y=n(9),C=r(y),w=n(117),M=r(w),D=n(34),P=r(D);t.isMobileBrowser=i,t.isIPadOS=a,t.isIOS=o,t.isIPad=s,t.isAndroid=l,t.isSamsungInternet=u,t.isIE=d,t.needsIOSHack=c,t.isIOS10OrHigher=f,t.isIOS13OrHigher=h,t.isIOS134=_,t.getUrlVar=A,t.isSafari=m,t.isSafari11OrHigher=p,t.getCustomFormat=g,t.isWizardDomain=E,t.getAllowedFeature=b,t.getConfig=S;var R=n(730),I=r(R),L=["players.delight-vr.com","players-staging.delight-vr.com"],O=["127.0.0.0/8","::1/128","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fd00::/8"],N=["localhost",".dev"],B=S(),F=B.planDescs?(0,x.default)(B.planDescs).map(function(e){return(e.enabledAddons||[]).reduce(function(e,t){return(0,C.default)(e,B.addonDescs[t])},e)}):[]},function(e,t,n){e.exports={default:n(579),__esModule:!0}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.IFrameManager=void 0;var i=n(196),a=r(i),o=n(117),s=r(o),l=n(46),u=r(l),d=n(45),c=r(d),f=n(34),h=r(f),_=n(14),A=r(_),m=n(26),p=r(m),g=n(1),E=r(g),v=n(2),b=r(v),S="00000000",T=[0,0,0,0,0,0],x=t.IFrameManager=function(){function e(t){var n=this;if((0,E.default)(this,e),this._receiveMessageFromIframe=function(t){var r=void 0;try{r=JSON.parse(t.data)}catch(e){return}if(r){if(r.type===e.REDIRECT){var i=r.search.length>1,a=r.host.replace("/",""),o=r.pathname;return o.startsWith("/")&&(o=o.substring(1)),void(window.location=r.protocol+"//"+a+"/"+o+r.search+(i?"&":"?")+"dl8-start-from-cors-fallback=true"+r.hash)}if(r.type===e.PING&&!n._contentWindowToIframeMap.has(t.source)){var s=r.guid;if(s){var l=document.querySelectorAll("iframe"),u=new A.default;return n._guidToCandidatesMap.set(s,u),void(0,h.default)(l).forEach(function(t,r){n._contentWindowToIframeMap.has(t.contentWindow)||(t.contentWindow.postMessage((0,c.default)({type:e.PONG,guid:s,idx:r}),"*"),u.set(r,t))})}var d=document.querySelector('iframe[src*="'+r.src+'"]');if(null===d&&r.src&&r.src.endsWith("/")&&(d=document.querySelector('iframe[src*="'+r.src.substring(0,r.src.length-1)+'"]')),null===d){var f="//"+window.location.host+"/";f&&r.src&&r.src.startsWith(f)&&(d=document.querySelector('iframe[src*="'+r.src.replace(f,"")+'"]'))}if(!d)return;n._contentWindowToIframeMap.set(d.contentWindow,d),n._iframeToContentWindowMap.set(d,d.contentWindow)}var _=0===n._contentWindowToIframeMap.size;if(r.type===e.ACK){var m=r.idx,p=r.guid,g=n._guidToCandidatesMap.get(p);if(!g)return;var E=g.get(m);if(!E)return;n._guidToCandidatesMap.delete(p),n._contentWindowToIframeMap.set(t.source,E),n._iframeToContentWindowMap.set(E,t.source)}var v=n._contentWindowToIframeMap.get(t.source);if(v){switch(r.type){case e.ENTER_FULLSCREEN:n._iframeToStyleMap.set(v,{width:v.width,height:v.height,style:{width:v.style.width,height:v.style.height,left:v.style.left,top:v.style.top,margin:v.style.margin,padding:v.style.padding,zIndex:v.style.zIndex,position:v.style.position,display:v.style.display}}),v.width="100%",v.height="100%",v.style.width="100%",v.style.height="100%",v.style.left="0",v.style.top="0",v.style.margin="0",v.style.padding="0",v.style.zIndex="9999999",v.style.position="fixed",v.style.display="block";var b=document.querySelector("#dl8-meta-viewport");b||(b=document.createElement("meta"),b.setAttribute("id","dl8-meta-viewport"),b.setAttribute("name","viewport"),e.isIOS1312OrHigher()?b.setAttribute("content","initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width, viewport-fit = contain"):b.setAttribute("content","initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width, viewport-fit = cover"),document.head.appendChild(b)),document.body.classList.add("x-dl8-fullscreen");break;case e.EXIT_FULLSCREEN:if(n._iframeToStyleMap.has(v)){var S=n._iframeToStyleMap.get(v),T=S.style,x=S.width,y=S.height;v.width=x,v.height=y,v.style.width=T.width,v.style.height=T.height,v.style.left=T.left,v.style.top=T.top,v.style.margin=T.margin,v.style.padding=T.padding,v.style.zIndex=T.zIndex,v.style.position=T.position,v.style.display=T.display}var C=document.querySelector("#dl8-meta-viewport");C&&document.head.removeChild(C);var w=document.querySelectorAll('meta[name="viewport"]'),M=w[w.length-1];if(M){var D=M.getAttribute("content");D&&D.indexOf("viewport-fit")===-1&&M.setAttribute("content",D+", viewport-fit=contain")}document.body.classList.remove("x-dl8-fullscreen");break;case e.ENABLE_DEVICE_MOTION_EVENTS:n._shouldDispatchDeviceMotionEvents=!0;break;case e.DISABLE_DEVICE_MOTION_EVENTS:n._shouldDispatchDeviceMotionEvents=!1;break;case e.REQUEST_DEVICE_MOTION_PERMISSIONS:e.requestIosDeviceMotionPermissions().then(function(t){n._postMessage({type:e.REQUEST_DEVICE_MOTION_PERMISSIONS_ACK,payload:{enabled:t}})}).catch(function(){n._postMessage({type:e.REQUEST_DEVICE_MOTION_PERMISSIONS_ACK,payload:{error:!0}})})}_&&n._contentWindowToIframeMap.size>0&&n._registerEventHandlers()}}},this._registerEventHandlers=function(){if(window.screen){var e=window.screen.orientation||window.screen.mozOrientation||window.screen.msOrientation;e&&e.addEventListener?e.addEventListener("change",n._dispatchScreenOrientationChangeEvents,!1):window.addEventListener("orientationchange",n._dispatchOrientationChangeEvents,!1)}else window.addEventListener("orientationchange",n._dispatchOrientationChangeEvents,!1);window.addEventListener("deviceorientation",n._dispatchDeviceOrientationEvents,!1),window.addEventListener("devicemotion",n._dispatchDeviceMotionEvents,!1),window.addEventListener("scroll",n._dispatchScrollEvents,!1)},this._dispatchScreenOrientationChangeEvents=function(){var t=window.screen.orientation||window.screen.mozOrientation||window.screen.msOrientation;n._postMessage({type:e.SCREEN_CHANGE,payload:{orientation:{angle:t.angle,type:t.type}}})},this._dispatchOrientationChangeEvents=function(){var t=window.orientation;n._postMessage({type:e.WINDOW_ORIENTATIONCHANGE,payload:{orientation:t}})},this._dispatchDeviceOrientationEvents=function(t){n._shouldDispatchDeviceMotionEvents&&n._postMessage({type:e.WINDOW_DEVICEORIENTATION,payload:{alpha:t.alpha,beta:t.beta,gamma:t.gamma,absolute:t.absolute,timeStamp:t.timeStamp}})},this._dispatchScrollEvents=function(t){n._postMessage({type:e.WINDOW_SCROLL,payload:{offset:window.pageYOffset||document.documentElement.scrollTop}})},this._dispatchDeviceMotionEvents=function(t){n._shouldDispatchDeviceMotionEvents&&n._postMessage({type:e.WINDOW_DEVICEMOTION,payload:{acceleration:{x:t.acceleration.x,y:t.acceleration.y,z:t.acceleration.z},accelerationIncludingGravity:{x:t.accelerationIncludingGravity.x,y:t.accelerationIncludingGravity.y,z:t.accelerationIncludingGravity.z},rotationRate:{alpha:t.rotationRate.alpha,beta:t.rotationRate.beta,gamma:t.rotationRate.gamma},interval:t.interval,timeStamp:t.timeStamp}})},this._sendPingUntilConnected=function(){n._connected||(parent.postMessage((0,c.default)({type:e.PING,src:window.location.href.replace(/http[s]{0,1}:/,""),guid:n._guid}),"*"),setTimeout(function(){n._sendPingUntilConnected()},500))},this._connected=!1,this._contentWindowToIframeMap=new A.default,this._iframeToContentWindowMap=new A.default,this._guidToCandidatesMap=new A.default,this._iframeToStyleMap=new A.default,this._connectedListeners=new u.default,this._registeredIframeLoadListeners=new u.default,this._guid=e.getGUID(),this._shouldDispatchDeviceMotionEvents=!0,e.isInIFrame())this._sendPingUntilConnected(),window.addEventListener("message",function(t){var r=void 0;try{r=JSON.parse(t.data)}catch(e){return}switch(r.type){case e.PONG:if(r.guid===n._guid){parent.postMessage((0,c.default)({type:e.ACK,guid:n._guid,idx:r.idx}),"*"),n._connected=!0;var i=!0,a=!1,o=void 0;try{for(var l,u=(0,s.default)(n._connectedListeners);!(i=(l=u.next()).done);i=!0){var d=l.value;d()}}catch(e){a=!0,o=e}finally{try{!i&&u.return&&u.return()}finally{if(a)throw o}}}}});else{window.addEventListener("message",this._receiveMessageFromIframe);var r=document.querySelectorAll("iframe"),i=r;setInterval(function(){r=document.querySelectorAll("iframe");var e=!0,t=!1,a=void 0;try{for(var o,l=(0,s.default)(i);!(e=(o=l.next()).done);e=!0){var u=o.value,d=(0,h.default)(r);d.indexOf(u)===-1&&(n._contentWindowToIframeMap.delete(n._iframeToContentWindowMap.get(u)),n._iframeToContentWindowMap.delete(u),n._registeredIframeLoadListeners.delete(u))}}catch(e){t=!0,a=e}finally{try{!e&&l.return&&l.return()}finally{if(t)throw a}}i=r},1e3)}}return(0,b.default)(e,null,[{key:"isInIFrame",value:function(){try{return window.self!==window.top}catch(e){return!0}}},{key:"isIPadOS",value:function(){return"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1&&!window.MSStream}},{key:"isIOS",value:function(){return/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent)||e.isIPadOS()}},{key:"isIOS13OrHigher",value:function(){var t=navigator.userAgent.match(/(iPhone|iPad); (CPU iPhone|CPU) OS (\d+)_(\d+)(_(\d+))?\s+/);return!(!t||t.length<4)&&(e.isIOS()&&parseInt(t[3],10)>=13)}},{key:"isIOS1312OrHigher",value:function(){var t=navigator.userAgent.match(/(iPhone|iPad); (CPU iPhone|CPU) OS (\d+)_(\d+)(_(\d+))?\s+/);if(!t||t.length<7)return!1;if(!e.isIOS())return!1;var n=parseInt(t[3],10);if(n>13)return!0;var r=parseInt(t[4],10);if(13===n&&r>1)return!0;var i=parseInt(t[6],10);return 13===n&&1===r&&i>=2}},{key:"requestIosDeviceMotionPermissions",value:function(){return new p.default(function(t,n){return e.isIOS13OrHigher()||e.isIPadOS()?("function"==typeof DeviceMotionEvent.requestPermission?DeviceMotionEvent.requestPermission().then(function(e){t("granted"===e?!0:!1)}).catch(function(){t(!1)}):n(new Error("no request permission API")),void("function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then(function(e){t("granted"===e?!0:!1)}).catch(function(){t(!1)}):n(new Error("no request permission API")))):void n(new Error("no request permission API"))})}},{key:"isMobileBrowser",value:function(){return function(t){return!(!/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t)&&!/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))||!!e.isIPadOS()}(navigator.userAgent||navigator.vendor||window.opera)}},{key:"getGUID",value:function(){return T[0]=Math.floor(268435456*Math.random()).toString(16),T[1]=Math.floor(65536*Math.random()).toString(16),T[2]=(Math.floor(4096*Math.random())+16384).toString(16),T[3]=(Math.floor(16384*Math.random())+32768).toString(16),T[4]=Math.floor(16777216*Math.random()).toString(16),T[5]=Math.floor(16777216*Math.random()).toString(16),T[0]+S.slice(0,8-T[0].length)+"-"+(T[1]+S.slice(0,4-T[1].length))+"-"+(T[2]+S.slice(0,4-T[2].length))+"-"+(T[3]+S.slice(0,4-T[3].length))+"-"+(T[4]+S.slice(0,6-T[4].length)+T[5]+S.slice(0,6-T[5].length))}},{key:"needsEventsFromParent",value:function(){return e.isMobileBrowser()&&e.isInIFrame()}},{key:"init",value:function(t){window.__dl8__iframe=new e(t)}},{key:"instance",get:function(){return window.__dl8__iframe}}]),(0,b.default)(e,[{key:"addConnectedListener",value:function(e){this._connectedListeners.add(e)}},{key:"removeConnectedListener",value:function(e){this._connectedListeners.delete(e)}},{key:"enterFullscreen",value:function(t){e.isInIFrame()&&(t&&e.isMobileBrowser()?parent.postMessage((0,c.default)({type:e.REDIRECT,protocol:location.protocol,host:location.host,pathname:location.pathname,hash:location.hash,search:location.search}),"*"):parent.postMessage((0,c.default)({type:e.ENTER_FULLSCREEN, src:window.location.href.replace(/http[s]{0,1}:/,"")}),"*"))}},{key:"exitFullscreen",value:function(){parent.postMessage((0,c.default)({type:e.EXIT_FULLSCREEN,src:window.location.href.replace(/http[s]{0,1}:/,"")}),"*")}},{key:"enableDeviceMotionEvents",value:function(){parent.postMessage((0,c.default)({type:e.ENABLE_DEVICE_MOTION_EVENTS,src:window.location.href.replace(/http[s]{0,1}:/,"")}),"*")}},{key:"disableDeviceMotionEvents",value:function(){parent.postMessage((0,c.default)({type:e.DISABLE_DEVICE_MOTION_EVENTS,src:window.location.href.replace(/http[s]{0,1}:/,"")}),"*")}},{key:"_handleDeviceMotionPermissionAck",value:function(t,n,r){var i=void 0;try{i=JSON.parse(r.data)}catch(e){return}switch(i.type){case e.REQUEST_DEVICE_MOTION_PERMISSIONS_ACK:window.removeEventListener("message",this._handleDeviceMotionPermissionAck),i.payload.error?n(new Error("no request permission API")):t(i.payload.enabled)}}},{key:"requestDeviceMotionPermissions",value:function(){var t=this;return new p.default(function(n,r){return e.isInIFrame()?(t._handleDeviceMotionPermissionAck=t._handleDeviceMotionPermissionAck.bind(t,n,r),window.addEventListener("message",t._handleDeviceMotionPermissionAck),void parent.postMessage((0,c.default)({type:e.REQUEST_DEVICE_MOTION_PERMISSIONS,src:window.location.href.replace(/http[s]{0,1}:/,"")}),"*")):void e.requestIosDeviceMotionPermissions().then(n).catch(r)})}},{key:"_postMessage",value:function(e){var t=!0,n=!1,r=void 0;try{for(var i,o=(0,s.default)(this._contentWindowToIframeMap);!(t=(i=o.next()).done);t=!0){var l=(0,a.default)(i.value,1),u=l[0];u.postMessage((0,c.default)(e),"*")}}catch(e){n=!0,r=e}finally{try{!t&&o.return&&o.return()}finally{if(n)throw r}}}},{key:"connected",get:function(){return this._connected}}]),e}();x.PING="x-dl8-ping",x.PONG="x-dl8-pong",x.ACK="x-dl8-ack",x.SCREEN_CHANGE="x-dl8-iframe-screen-change",x.WINDOW_ORIENTATIONCHANGE="x-dl8-iframe-window-orientationchange",x.WINDOW_DEVICEORIENTATION="x-dl8-iframe-window-deviceorientation",x.WINDOW_DEVICEMOTION="x-dl8-iframe-window-devicemotion",x.WINDOW_SCROLL="x-dl8-iframe-window-scroll",x.ENTER_FULLSCREEN="x-dl8-iframe-enter-fullscreen",x.EXIT_FULLSCREEN="x-dl8-iframe-exit-fullscreen",x.REDIRECT="x-dl8-iframe-redirect",x.ENABLE_DEVICE_MOTION_EVENTS="x-dl8-iframe-enable-device-motion-events",x.DISABLE_DEVICE_MOTION_EVENTS="x-dl8-iframe-disable-device-motion-events",x.REQUEST_DEVICE_MOTION_PERMISSIONS="x-dl8-iframe-request-device-motion-permissions",x.REQUEST_DEVICE_MOTION_PERMISSIONS_ACK="x-dl8-request-device-motion-permissions-ack"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Controller=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(18),A=n(7);t.Controller=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._name=A.Util.getParam(e,"name"),n._active=!1,n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"Controller",params:{name:this._name}}}}]),(0,c.default)(t,[{key:"update",value:function(e,t){}},{key:"$onAddedToScene",value:function(){}},{key:"$onRemovedFromScene",value:function(){}},{key:"onAddedToScene",value:function(e){this._active=!0,this.$onAddedToScene(e)}},{key:"onRemovedFromScene",value:function(e){this._active=!1,this.$onRemovedFromScene(e)}},{key:"name",get:function(){return this._name}},{key:"active",get:function(){return this._active}},{key:"$active",get:function(){return this._active}}]),t}(_.Serializable)},,function(e,t,n){var r=n(118);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(63);e.exports=!r(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},42,function(e,t,n){var r=n(68),i=n(335),a=n(125),o=n(165),s=Object.defineProperty;t.f=r?s:function(e,t,n){if(a(e),t=o(t,!0),a(n),i)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},,,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TrackingEvent=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(7),u=t.TrackingEvent=function(){function e(t){(0,a.default)(this,e),this._type=l.Util.getParamRequired(t,"type"),this._module=l.Util.getParam(t,"module"),this._simple=l.Util.getParam(t,"simple"),this._payload=l.Util.getParam(t,"payload",{}),this._ts=Date.now()}return(0,s.default)(e,[{key:"toJSON",value:function(){return{ts:this._ts,t:this._type,p:this._payload}}},{key:"isSimple",get:function(){return!!this._simple}},{key:"module",get:function(){return this._module}},{key:"type",get:function(){return this._type}},{key:"payload",get:function(){return this._payload}},{key:"ts",get:function(){return this._ts}}]),e}();u.ERROR=-1,u.INITIAL_LOAD=0,u.LEAVE_PAGE=1,u.START_PLAYER=2,u.EXIT_PLAYER=3,u.ADD_CONTENT=4,u.ENTER_VR=5,u.LEAVE_VR=6,u.NEW_VR_DEVICE=7,u.CAMERA_MODE_SWITCH=8,u.RECENTER=9,u.VR_CAMERA=10,u.VR_VELOCITY=11,u.VIDEO_PLAY=12,u.VIDEO_PAUSE=13,u.VIDEO_SEEK=14,u.VIDEO_ENDED=15,u.VIDEO_OPEN_MENU=16,u.VIDEO_QUALITY_SWITCH=17,u.ELEMENT_CONNECTED=18,u.ELEMENT_DISCONNECTED=19,u.START_WIZARD=20,u.EXIT_WIZARD=21,u.TOUR_PROBE_CHANGED=22,u.ACTIVATE_CONTENT=23,u.NEW_GAMEPAD=24,u.PERFORMANCE_RESULT=25,u.SIMPLE_VIEW="view"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Easing=void 0;var i=n(1),a=r(i),o=n(2),s=r(o);t.Easing=function(){function e(){(0,a.default)(this,e)}return(0,s.default)(e,null,[{key:"linearTween",value:function(e){return e}},{key:"easeInQuad",value:function(e){return Math.pow(e,2)}},{key:"easeOutQuad",value:function(e){return-(Math.pow(e-1,2)-1)}},{key:"easeInOutQuad",value:function(e){return(e/=.5)<1?.5*Math.pow(e,2):-.5*((e-=2)*e-2)}},{key:"easeInCubic",value:function(e){return Math.pow(e,3)}},{key:"easeOutCubic",value:function(e){return Math.pow(e-1,3)+1}},{key:"easeInOutCubic",value:function(e){return(e/=.5)<1?.5*Math.pow(e,3):.5*(Math.pow(e-2,3)+2)}},{key:"easeInQuart",value:function(e){return Math.pow(e,4)}},{key:"easeOutQuart",value:function(e){return-(Math.pow(e-1,4)-1)}},{key:"easeInOutQuart",value:function(e){return(e/=.5)<1?.5*Math.pow(e,4):-.5*((e-=2)*Math.pow(e,3)-2)}},{key:"easeInQuint",value:function(e){return Math.pow(e,5)}},{key:"easeOutQuint",value:function(e){return Math.pow(e-1,5)+1}},{key:"easeInOutQuint",value:function(e){return(e/=.5)<1?.5*Math.pow(e,5):.5*(Math.pow(e-2,5)+2)}},{key:"easeInSine",value:function(e){return-Math.cos(e*(Math.PI/2))+1}},{key:"easeOutSine",value:function(e){return Math.sin(e*(Math.PI/2))}},{key:"easeInOutSine",value:function(e){return-.5*(Math.cos(Math.PI*e)-1)}},{key:"easeInExpo",value:function(e){return 0===e?0:Math.pow(2,10*(e-1))}},{key:"easeOutExpo",value:function(e){return 1===e?1:-Math.pow(2,-10*e)+1}},{key:"easeInOutExpo",value:function(e){return 0===e?0:1===e?1:(e/=.5)<1?.5*Math.pow(2,10*(e-1)):.5*(-Math.pow(2,-10*--e)+2)}},{key:"easeInCirc",value:function(e){return-(Math.sqrt(1-e*e)-1)}},{key:"easeOutCirc",value:function(e){return Math.sqrt(1-Math.pow(e-1,2))}},{key:"easeInOutCirc",value:function(e){return(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},{key:"easeOutBounce",value:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}},{key:"easeInBack",value:function(e){var t=1.70158;return e*e*((t+1)*e-t)}},{key:"easeOutBack",value:function(e){var t=1.70158;return(e-=1)*e*((t+1)*e+t)+1}},{key:"easeInOutBack",value:function(e){var t=1.70158;return(e/=.5)<1?.5*(e*e*(((t*=1.525)+1)*e-t)):.5*((e-=2)*e*(((t*=1.525)+1)*e+t)+2)}},{key:"elastic",value:function(e){return-1*Math.pow(4,-8*e)*Math.sin((6*e-1)*(2*Math.PI)/2)+1}},{key:"swingFromTo",value:function(e){var t=1.70158;return(e/=.5)<1?.5*(e*e*(((t*=1.525)+1)*e-t)):.5*((e-=2)*e*(((t*=1.525)+1)*e+t)+2)}},{key:"swingFrom",value:function(e){var t=1.70158;return e*e*((t+1)*e-t)}},{key:"swingTo",value:function(e){var t=1.70158;return(e-=1)*e*((t+1)*e+t)+1}},{key:"bounce",value:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}},{key:"bouncePast",value:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?2-(7.5625*(e-=1.5/2.75)*e+.75):e<2.5/2.75?2-(7.5625*(e-=2.25/2.75)*e+.9375):2-(7.5625*(e-=2.625/2.75)*e+.984375)}},{key:"easeFromTo",value:function(e){return(e/=.5)<1?.5*Math.pow(e,4):-.5*((e-=2)*Math.pow(e,3)-2)}},{key:"easeFrom",value:function(e){return Math.pow(e,4)}},{key:"easeTo",value:function(e){return Math.pow(e,.25)}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.LoadingManager=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(10),u="loadingManagerLoadingStart",d="loadingManagerLoadingEnd",c="loadingManagerLoadingProgress",f="loadingManagerLoadingFinished",h="loadingManagerFirstLoadingFinished",_="loadingManagerIntermediateLoadingStarted",A="loadingManagerIntermediateLoadingProgress",m="loadingManagerIntermediateLoadingFinished";t.LoadingManager=function(){function e(){(0,a.default)(this,e),this._loadingStartCount=0,this._loadingEndCount=0,this._progress=0,this._firstLoad=!0,this._intermediateLoad=!1,l.Context.eventEmitter.onAsync(e.EVENT_LOADING_START,this._incLoadingCount.bind(this)),l.Context.eventEmitter.onAsync(e.EVENT_LOADING_END,this._decLoadingCount.bind(this))}return(0,s.default)(e,null,[{key:"EVENT_LOADING_START",get:function(){return u}},{key:"EVENT_LOADING_END",get:function(){return d}},{key:"EVENT_LOADING_PROGRESS",get:function(){return c}},{key:"EVENT_LOADING_FINISHED",get:function(){return f}},{key:"EVENT_FIRST_LOADING_FINISHED",get:function(){return h}},{key:"EVENT_INTERMEDIATE_LOADING_STARTED",get:function(){return _}},{key:"EVENT_INTERMEDIATE_LOADING_PROGRESS",get:function(){return A}},{key:"EVENT_INTERMEDIATE_LOADING_FINISHED",get:function(){return m}}]),(0,s.default)(e,[{key:"_incLoadingCount",value:function(){++this._loadingStartCount,l.Context.logger.debug(this,this._loadingEndCount+" / "+this._loadingStartCount),this._udpateProgress()}},{key:"_decLoadingCount",value:function(){++this._loadingEndCount,l.Context.logger.debug(this,this._loadingEndCount+" / "+this._loadingStartCount),this._udpateProgress()}},{key:"_udpateProgress",value:function(){this._loadingEndCount>0?this._progress=this._loadingEndCount/this._loadingStartCount:this._progress=0,l.Context.eventEmitter.emitOnce(this,e.EVENT_LOADING_PROGRESS),this._firstLoad?1===this._progress&&(this._firstLoad=!1,l.Context.eventEmitter.emitOnce(this,e.EVENT_FIRST_LOADING_FINISHED)):(this._intermediateLoad||(this._intermediateLoad=!0,l.Context.eventEmitter.emitOnce(this,e.EVENT_INTERMEDIATE_LOADING_STARTED)),l.Context.eventEmitter.emitOnce(this,e.EVENT_INTERMEDIATE_LOADING_PROGRESS),1===this._progress&&(this._intermediateLoad=!1,l.Context.eventEmitter.emitOnce(this,e.EVENT_INTERMEDIATE_LOADING_FINISHED))),1===this._progress&&l.Context.eventEmitter.emitOnce(this,e.EVENT_LOADING_FINISHED)}},{key:"progress",get:function(){return this._progress}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.DeviceManager=t.Eye=t.USER_HEIGHT=void 0;var i=n(34),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=(n(44),n(10)),c=n(7),f=n(12),h=n(49),_=n(29),A=t.USER_HEIGHT=1.6,m=t.Eye={LEFT:"left",RIGHT:"right"},p=t.DeviceManager=function(){function e(t){var n=this;(0,s.default)(this,e),this._updateHmdParams=function(){n._hmd&&(n._updateEyeParams(),n._initRenderSize(),n._updateViewport(m.LEFT),n._updateViewport(m.RIGHT),n._updateProjectionMatrix(m.LEFT),n._updateProjectionMatrix(m.RIGHT),n._updateEyeOffset(m.LEFT),n._updateEyeOffset(m.RIGHT),n._updateViewMatrix(m.LEFT),n._updateViewMatrix(m.RIGHT))},this._worldScale=c.Util.getParam(t,"worldScale",1),this._standing=c.Util.getParam(t,"standing",!1),this._fullscreenElement=c.Util.getParam(t,"fullscreenElement",document.body),this._hmd=null,this._hmdStatus=e.NOT_PRESENT,this._pose=null,this._hardwareSupport=!1,this._sensorTransform=new _.Transform,this._eyeParams={left:null,right:null},this._eyeOffset={},this._eyeOffset.left=new f.Vector3,this._eyeOffset.right=new f.Vector3,this._eyeOffsetLocation={},this._eyeOffsetLocation.left=new f.Vector3,this._eyeOffsetLocation.right=new f.Vector3,this._viewRect={},this._viewport={left:[],right:[]},this._renderSize=[],this._viewMatrix={left:new h.Matrix4,right:new h.Matrix4},this._inverseViewMatrix={left:new h.Matrix4,right:new h.Matrix4},this._projectionMatrix={left:new h.Matrix4,right:new h.Matrix4},this._inverseProjectionMatrix={left:new h.Matrix4,right:new h.Matrix4},this._state=e.STATE_INACTIVE,this._tmpMatrix=new h.Matrix4,this._tmpMatrix2=new h.Matrix4,this._tmpVec=new f.Vector3,this._hmdMounted=!0,this._inTransition=!1,this._frameData=null,this._depthRange=[1,100],this._referenceSpace=null}return(0,u.default)(e,[{key:"updateFrameData",value:function(e,t){}},{key:"update",value:function(t){(this._state===e.STATE_ACTIVE||d.Context.forceVrRaf)&&(this._sensorTransform.reset(),this._pose=this._frameData.pose,this._pose&&this._pose.orientation&&this._sensorTransform.rotation.copyFromArray(this._pose.orientation),this._pose&&this._pose.position&&this._sensorTransform.position.copyFromArray(this._pose.position),this._standing&&(this._sensorTransform.position.y+=A)),this._state===e.STATE_ACTIVE&&(this._frameData.leftProjectionMatrix&&this._frameData.rightProjectionMatrix&&(this._updateProjectionMatrix(m.LEFT),this._updateProjectionMatrix(m.RIGHT)),this._updateViewMatrix(m.LEFT),this._updateViewMatrix(m.RIGHT))}},{key:"enable",value:function(){}},{key:"disable",value:function(){}},{key:"getLeftViewMatrix",value:function(e){return this._tmpMatrix.copyFrom(this._viewMatrix.left).multLeft(e)}},{key:"getRightViewMatrix",value:function(e){return this._tmpMatrix.copyFrom(this._viewMatrix.right).multLeft(e)}},{key:"getLeftInverseViewMatrix",value:function(e){return this._tmpMatrix2.copyFrom(this._inverseViewMatrix.left).multRight(e)}},{key:"getRightInverseViewMatrix",value:function(e){return this._tmpMatrix2.copyFrom(this._inverseViewMatrix.right).multRight(e)}},{key:"getLeftProjectionMatrix",value:function(e){return e&&(this._projectionMatrix.left._storage[10]=e._storage[10],this._projectionMatrix.left._storage[14]=e._storage[14]),this._projectionMatrix.left}},{key:"getRightProjectionMatrix",value:function(e){return e&&(this._projectionMatrix.right._storage[10]=e._storage[10],this._projectionMatrix.right._storage[14]=e._storage[14]),this._projectionMatrix.right}},{key:"getLeftInverseProjectionMatrix",value:function(e){return e&&(this._inverseProjectionMatrix.left._storage[10]=e._storage[10],this._inverseProjectionMatrix.left._storage[14]=e._storage[14]),this._inverseProjectionMatrix.left}},{key:"getRightInverseProjectionMatrix",value:function(e){return e&&(this._inverseProjectionMatrix.right._storage[10]=e._storage[10],this._inverseProjectionMatrix.right._storage[14]=e._storage[14]),this._inverseProjectionMatrix.right}},{key:"getRightEyeOffsetLocation",value:function(e,t){return this._eyeOffsetLocation.right.copyFrom(e).mult(this._eyeOffset.right.magnitude()).add(t)}},{key:"getLeftEyeOffsetLocation",value:function(e,t){return this._eyeOffsetLocation.left.copyFrom(e).neg().mult(this._eyeOffset.left.magnitude()).add(t)}},{key:"_updateViewMatrix",value:function(e){this._viewMatrix[e].makeIdentity(),this._tmpVec.copyFrom(this._eyeOffset[e]),this._tmpVec.mult(-this._worldScale),this._viewMatrix[e].translateVector(this._tmpVec),this._inverseViewMatrix[e].copyFrom(this._viewMatrix[e]).invert()}},{key:"_updateProjectionMatrix",value:function(e){var t=void 0;if(t=e===m.LEFT?this._frameData.leftProjectionMatrix:this._frameData.rightProjectionMatrix)this._projectionMatrix[e].setAll(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],-t[8],-t[9],-t[10],-t[11],t[12],t[13],t[14],t[15]);else{var n=this._eyeParams[e].fieldOfView,r=Math.PI/180,i=Math.tan(n.upDegrees*r),a=-Math.tan(n.downDegrees*r),o=-Math.tan(n.leftDegrees*r),s=Math.tan(n.rightDegrees*r),l=1/(s-o),u=1/(i-a),d=this._projectionMatrix[e]._storage;d[0]=2*l,d[5]=2*u,d[8]=-(o+s)*l,d[9]=-(i+a)*u,d[11]=1,d[15]=0}this._inverseProjectionMatrix[e].copyFrom(this._projectionMatrix[e]).invert()}},{key:"_updateViewport",value:function(e){var t=this._viewRect[e];this._viewport[e][0]=t.x/this._renderSize[0],this._viewport[e][1]=t.width/this._renderSize[0]+this._viewport[e][0],this._viewport[e][3]=t.y/this._renderSize[1],this._viewport[e][2]=t.height/this._renderSize[1]+this._viewport[e][3]}},{key:"_initRenderSize",value:function(){var e=this._eyeParams[m.LEFT].renderWidth,t=this._eyeParams[m.LEFT].renderHeight,n=this._eyeParams[m.RIGHT].renderWidth,r=this._eyeParams[m.RIGHT].renderHeight,i={x:0,y:0,width:e,height:t},a={x:e,y:0,width:n,height:r};return this._renderSize[0]=e+n,this._renderSize[1]=Math.max(t,r),this._viewRect.left=i,this._viewRect.right=a,this._renderSize}},{key:"_updateEyeOffset",value:function(e){this._eyeOffset[e].copyFromArray(this._eyeParams[e].offset)}},{key:"_updateEyeParams",value:function(){}},{key:"updateDepthRange",value:function(e){this._depthRange=e}},{key:"init",value:function(){}},{key:"deinit",value:function(){this._hmd=null,this._hmdStatus=e.NOT_PRESENT,this._state=e.STATE_INACTIVE}},{key:"getGamepads",value:function(){return"function"==typeof navigator.getGamepads?(0,a.default)(navigator.getGamepads()):[]}},{key:"type",get:function(){}},{key:"standing",get:function(){return this._standing},set:function(e){this._standing=e}},{key:"renderWidth",get:function(){return this._renderSize[0]}},{key:"renderHeight",get:function(){return this._renderSize[1]}},{key:"hmdStatus",get:function(){return this._hmdStatus}},{key:"state",get:function(){return this._state}},{key:"hmd",get:function(){return this._hmd}},{key:"hmdMounted",get:function(){return this._hmdMounted}},{key:"needsSoftwareDistortion",get:function(){return!this._hardwareSupport&&c.Util.isMobileBrowser()}},{key:"hardwareVr",get:function(){return this._hardwareSupport}},{key:"leftRect",get:function(){return this._viewRect.left}},{key:"rightRect",get:function(){return this._viewRect.right}},{key:"worldScale",set:function(e){this._worldScale=e,this._updateViewMatrix(m.LEFT),this._updateViewMatrix(m.RIGHT)}},{key:"pose",get:function(){return this._pose}},{key:"hasPosition",get:function(){return!1}},{key:"sensorPosition",get:function(){return this._sensorTransform.position}},{key:"sensorOrientation",get:function(){return this._sensorTransform.rotation}},{key:"fullscreenElement",set:function(e){this._fullscreenElement=e}},{key:"timestamp",get:function(){return null}},{key:"leftViewport",get:function(){return this._viewport.left}},{key:"rightViewport",get:function(){return this._viewport.right}},{key:"frameData",get:function(){return this._frameData}},{key:"referenceSpace",get:function(){return this._referenceSpace}}]),e}();p.SUCCESSFUL="deviceSuccessful",p.FAILED="deviceFailed",p.NOT_PRESENT="deviceNotPresent",p.STATE_INACTIVE="deviceStateInactive",p.STATE_READY="deviceStateReady",p.STATE_ACTIVE="deviceStateActive",p.EVENT_DEVICE_READY="deviceManagerEventDeviceReady",p.EVENT_DEVICE_ACTIVATED="deviceManagerEventDeviceActivated",p.EVENT_DEVICE_DEACTIVATED="deviceManagerEventDeviceDeactivated",p.EVENT_DEVICE_MOUNTED="deviceManagerEventDeviceMounted",p.EVENT_DEVICE_UNMOUNTED="deviceManagerEventDeviceUnmounted",p.EVENT_INPUT_SOURCE_SELECT="deviceManagerEventInputSourceSelect",p.EVENT_INPUT_SOURCE_SELECT_START="deviceManagerEventInputSourceSelectStart",p.EVENT_INPUT_SOURCE_SELECT_END="deviceManagerEventInputSourceSelectEnd",p.TYPE_WEBXR="webxr",p.TYPE_WEBVR="webvr"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SurfaceMaterial=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(18),A=n(7),m=n(10),p=n(110),g=n(185),E=n(187),v=n(482),b=t.SurfaceMaterial=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._effect=void 0,n._twoSided=A.Util.getParam(e,"twoSided",!1),n._opaque=A.Util.getParam(e,"opaque",!0),n._refractive=A.Util.getParam(e,"refractive",!1),n._motionBlurred=A.Util.getParam(e,"motionBlurred",!1),n._ui=A.Util.getParam(e,"ui",!1),n._fullscreenQuad=A.Util.getParam(e,"fullscreenQuad",!1),n._writeDepth=A.Util.getParam(e,"writeDepth",null),n._readDepth=A.Util.getParam(e,"readDepth",!0),n._blendMode=A.Util.getParam(e,"blendMode",t.BLEND_MODE_STANDARD),n._overwriteSurface=A.Util.getParam(e,"overwriteSurface",!1),n._receivesShadow=A.Util.getParam(e,"receivesShadow",!0),n._castsShadow=A.Util.getParam(e,"castsShadow",!0),n._vrMonoOverride=A.Util.getParam(e,"vrMonoOverride",!1),n._discard=A.Util.getParam(e,"discard",t.DISCARD_NONE),n._name=A.Util.getParam(e,"name"),n._id=A.Util.getGUID(),n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"SurfaceMaterial",params:{twoSided:this._twoSided,opaque:this._opaque,refractive:this._refractive,motionBlurred:this._motionBlurred,ui:this._ui,fullscreenQuad:this._fullscreenQuad,writeDepth:this._writeDepth,readDepth:this._readDepth,blendMode:this._blendMode,overwriteSurface:this._overwriteSurface,receivesShadow:this._receivesShadow,castsShadow:this._castsShadow,vrMonoOverride:this._vrMonoOverride,discard:this._discard,name:this._name}}}}]),(0,c.default)(t,[{key:"$getConstructorParams",value:function(){return{twoSided:this._twoSided,opaque:this._opaque,refractive:this._refractive,motionBlurred:this._motionBlurred,ui:this._ui,fullscreenQuad:this._fullscreenQuad,writeDepth:this._writeDepth,readDepth:this._readDepth,blendMode:this._blendMode,overwriteSurface:this._overwriteSurface,receivesShadow:this._receivesShadow,castsShadow:this._castsShadow,vrMonoOverride:this._vrMonoOverride,discard:this._discard,name:this._name}}},{key:"clone",value:function(){return new t(this.$getConstructorParams())}},{key:"enable",value:function(){return this._effect||(this._effect=new E.Effect({shader:this.shader,onConfigure:this._configureEffect.bind(this)})),this._effect.isConfigurable}},{key:"dtor",value:function(){this._effect&&this._effect.dtor(),m.Context.eventEmitter.removeListener(p.PhysicalCamera.EVENT_HDR_PARAMS_CHANGED,this._updateHdrParamsInEffect),m.Context.eventEmitter.removeListener(g.RenderSystem.EVENT_RENDER_SIZE_CHANGED,this._updateRenderSizeParamsInEffect)}},{key:"_updateStatesInEffect",value:function(e){if(e&&e.isConfigurable)switch(e.vrMonoOverride=this._vrMonoOverride,e.states.alphaState.blendEnabled=!this._opaque&&(!this._refractive||this._refractive&&!m.Context.qualityManager.quality.blurredRefractionsEnabled)&&this._discard!==t.DISCARD_TRANSPARENT,e.states.zBufferState.writable=null===this._writeDepth?this._opaque:this._writeDepth,e.states.zBufferState.enabled=this._readDepth,e.states.zBufferState.compare=this._overwriteSurface?m.Context.gl.LEQUAL:m.Context.gl.LESS,e.states.cullState.enabled=!this._twoSided,e.setTwoSidedMaterialEnabled(this._twoSided),this._discard===t.DISCARD_OPAQUE?e.setDiscardOpaqueEnabled(!0):this._discard===t.DISCARD_TRANSPARENT?e.setDiscardTransparentEnabled(!0):e.setDiscardNoneEnabled(!0),e.setFullscreenEnabled(this._fullscreenQuad),this._blendMode){case t.BLEND_MODE_STANDARD:e.states.alphaState.blendFunc=[m.Context.gl.SRC_ALPHA,m.Context.gl.ONE_MINUS_SRC_ALPHA,m.Context.gl.ONE,m.Context.gl.ONE];break;case t.BLEND_MODE_ADDITIVE:e.states.alphaState.blendFunc=[m.Context.gl.SRC_ALPHA,m.Context.gl.ONE,m.Context.gl.ONE,m.Context.gl.ONE]}}},{key:"_updateHdrParamsInEffect",value:function(e,t){var n=m.Context.qualityManager.quality.hdrEnabled;e.isHighPrecisionBufferEnabled()!==n&&e.setHighPrecisionBufferEnabled(n),n||(e.params.fStop=t.fStop,e.params.shutterSpeed=t.shutterSpeed,e.params.lensTransmittance=t.lensTransmittance,e.params.filmSpeed=100*t.filmSpeed,e.isVignettingEnabled()!==m.Context.qualityManager.quality.vignettingEnabled&&e.setVignettingEnabled(m.Context.qualityManager.quality.vignettingEnabled),m.Context.qualityManager.quality.vignettingEnabled&&(e.params.focalLength=t.focalLength,e.params.opticalVignettingStrength=t.opticalVignettingStrength,e.params.distanceToFilm=t.lensDistanceToFilm,e.params.filmSize=t.filmSize),e.isColorGradientEnabled()!==t.gradientEnabled&&e.setColorGradientEnabled(t.gradientEnabled),t.gradientEnabled&&(e.params.gradientColorA=t.gradientColorA,e.params.gradientColorB=t.gradientColorB,e.params.gradientDirection=t.gradientDirection),e.isConfigurable&&(e.isTonemapSimpleEnabled()===!1&&t.toneMap===p.PhysicalCamera.TONEMAP_SIMPLE&&e.setTonemapSimpleEnabled(!0),e.isTonemapFilmicEnabled()===!1&&t.toneMap===p.PhysicalCamera.TONEMAP_FILMIC&&e.setTonemapFilmicEnabled(!0)))}},{key:"_updateRenderSizeParamsInEffect",value:function(e,t){e.params.size=t.renderSize}},{key:"$setupEvents",value:function(e){this._updateHdrParamsInEffect=this._updateHdrParamsInEffect.bind(this,e),m.Context.eventEmitter.on(p.PhysicalCamera.EVENT_HDR_PARAMS_CHANGED,this._updateHdrParamsInEffect),this._updateRenderSizeParamsInEffect=this._updateRenderSizeParamsInEffect.bind(this,e),m.Context.eventEmitter.on(g.RenderSystem.EVENT_RENDER_SIZE_CHANGED,this._updateRenderSizeParamsInEffect)}},{key:"_configureEffect",value:function(e){this.$setupEvents(e),this._updateStatesInEffect(e)}},{key:"id",get:function(){return this._id}},{key:"effect",get:function(){return this._effect}},{key:"opaque",get:function(){return this._opaque},set:function(e){e!==this._opaque&&(this._opaque=e,this._updateStatesInEffect(this._effect))}},{key:"vrMonoOverride",get:function(){return this._vrMonoOverride},set:function(e){e!==this._vrMonoOverride&&(this._vrMonoOverride=e,this._updateStatesInEffect(this._effect))}},{key:"discard",get:function(){return this._discard},set:function(e){e!==this._discard&&(this._discard=e,this._updateStatesInEffect(this._effect))}},{key:"refractive",get:function(){return this._refractive},set:function(e){e!==this._refractive&&(this._refractive=e,this._updateStatesInEffect(this._effect))}},{key:"motionBlurred",get:function(){return this._motionBlurred},set:function(e){e!==this._motionBlurred&&(this._motionBlurred=e,this._updateStatesInEffect(this._effect))}},{key:"fullscreenQuad",get:function(){return this._fullscreenQuad},set:function(e){e!==this._fullscreenQuad&&(this._fullscreenQuad=e,this._updateStatesInEffect(this._effect))}},{key:"ui",get:function(){return this._ui},set:function(e){e!==this._ui&&(this._ui=e,this._updateStatesInEffect(this._effect))}},{key:"writeDepth",get:function(){return this._writeDepth},set:function(e){e!==this._writeDepth&&(this._writeDepth=e,this._updateStatesInEffect(this._effect))}},{key:"readDepth",get:function(){return this._readDepth},set:function(e){e!==this._readDepth&&(this._readDepth=e,this._updateStatesInEffect(this._effect))}},{key:"twoSided",get:function(){return this._twoSided},set:function(e){e!==this._twoSided&&(this._twoSided=e,this._updateStatesInEffect(this._effect))}},{key:"blendMode",get:function(){return this._blendMode},set:function(e){e!==this._blendMode&&(this._blendMode=e,this._updateStatesInEffect(this._effect))}},{key:"overwriteSurface",get:function(){return this._overwriteSurface},set:function(e){e!==this._overwriteSurface&&this._updateStatesInEffect(this._effect),this._overwriteSurface=e}},{key:"receivesShadow",get:function(){return this._receivesShadow},set:function(e){this._receivesShadow=e}},{key:"castsShadow",get:function(){return this._castsShadow},set:function(e){this._castsShadow=e}},{key:"name",get:function(){return this._name},set:function(e){this._name=e}},{key:"shader",get:function(){return v.UberSurfaceShader}}]),t}(_.Serializable);b.BLEND_MODE_STANDARD="standard",b.BLEND_MODE_ADDITIVE="additive",b.DISCARD_TRANSPARENT="discardTransparent",b.DISCARD_OPAQUE="discardOpaque",b.DISCARD_NONE="discardNone"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(193),a=r(i);t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(53),i=n(123);e.exports=n(47)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(201),i=n(198);e.exports=function(e){return r(i(e))}},function(e,t,n){n(602);for(var r=n(35),i=n(80),a=n(101),o=n(37)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l<s.length;l++){var u=s[l],d=r[u],c=d&&d.prototype;c&&!c[o]&&i(c,o,u),a[u]=a.Array}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubFilterAbstractElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8HubFilterAbstractElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["filter-id"]),e=g.Dl8Element.assignContent(e,this,"filter-id"),e=g.Dl8Element.assignContent(e,this,"name"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TrackingManager=void 0;var i=n(14),a=r(i),o=n(45),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(7),h=n(61),_=n(116),A=n(73),m=t.TrackingManager=function(){function e(t){var n=this;(0,u.default)(this,e),this._onLoad=function(){n._error=0,n._block=!1},this._onError=function(){++n._error},this._update=function(){n._sync(),setTimeout(n._update,n._queueDrainIntervalMs)},this._updateInternal=function(){n._syncInternal(),setTimeout(n._updateInternal,n._queueDrainIntervalInternalMs)},this._syncInternal=function(){n._eventQueueInternal.forEach(function(t){var r=void 0;(r=e.TRACKING_EVENT_TO_CUSTOM_EVENT_MAP.get(t.t))&&n._trackingEvents.indexOf(r)!==-1&&document.dispatchEvent(new CustomEvent(r,{detail:t}))}),n._eventQueueInternal.length=0},this._sync=function(){if(n._error>0){if(n._error<e.MAX_RETRY_COUNT)return void(n._trackingImage.src=n._trackingImage.src);n._error=0,n._block=!1}if(!n._block&&0!==n._eventQueue.length){for(var t=[],r="",i=!1,a=void 0;n._eventQueue.length>0&&!i;){var o=n._eventQueue.shift();n._isIOS&&o.type===A.TrackingEvent.ELEMENT_CONNECTED&&(o.payload.c=""),t.push(o);try{if(a=(0,s.default)({s:n._sid,a:t}),n._useCompression&&(a=n._compress(a)),r=""+n._trackingRoot+n._queryParamString+encodeURIComponent(f.Util.base64EncodeUnicode(a)),r.length>e.MAX_URI_LENGTH){if(1===t.length)throw new Error("Payload was too large");n._eventQueue.unshift(t.pop()),a=(0,s.default)({s:n._sid,a:t}),n._useCompression&&(a=n._compress(a)),r=""+n._trackingRoot+n._queryParamString+encodeURIComponent(f.Util.base64EncodeUnicode(a));break}}catch(e){ t[0]._payload={_e:1},a=(0,s.default)({s:n._sid,a:t}),n._useCompression&&(a=n._compress(a)),r=""+n._trackingRoot+n._queryParamString+encodeURIComponent(f.Util.base64EncodeUnicode(a)),i=!0}}n._block=!0,n._trackingImage.src=r}},this._trackingRoot=f.Util.getParamRequired(t,"trackingRoot"),this._simpleTrackingRoot=f.Util.getParamRequired(t,"simpleTrackingRoot"),this._queueDrainIntervalMs=f.Util.getParam(t,"queueDrainIntervalMs",4e3),this._queueDrainIntervalInternalMs=f.Util.getParam(t,"queueDrainIntervalInternalMs",500),this._eventQueue=[],this._eventQueueInternal=[],window.addEventListener("beforeunload",this._sync),this._sid=f.Util.getGUID(),this._error=0,this._trackingImage=new Image,this._trackingImage.onload=this._onLoad,this._trackingImage.onerror=this._onError,this._useCompression=f.Util.getParam(t,"useCompression",!1),this._queryParamString=this._useCompression?e.URL_QUERY_PARAM_STRING_COMPRESSION:e.URL_QUERY_PARAM_STRING,this._trackingEvents=(0,_.trackingEvents)(),this._isIOS=f.Util.isIOS(),this._update(),this._updateInternal(),this._sparseTrackingProbability=(0,h.getAllowedFeature)("sparseTrackingProbability"),this._useSparseTracking=(0,h.getAllowedFeature)("useSparseTracking"),this._useExternalTracking=(0,h.getAllowedFeature)("useExternalTracking"),this._useInternalTracking=(0,h.getAllowedFeature)("useInternalTracking")}return(0,c.default)(e,null,[{key:"init",value:function(t){window.__dl8__tracker=new e(t)}},{key:"instance",get:function(){return window.__dl8__tracker}}]),(0,c.default)(e,[{key:"_compress",value:function(e){return pako.deflate(e,{to:"string"})}},{key:"_sendSimpleEvent",value:function(e){var t=new Image,n=(0,s.default)({s:this._sid,m:e.module,t:e.type,ts:e.ts,p:e.payload});t.src=this._simpleTrackingRoot+"?i="+encodeURIComponent(f.Util.base64EncodeUnicode(n))}},{key:"addEvent",value:function(t){if(!(t instanceof A.TrackingEvent))throw new Error("Event must be of type TrackingEvent");if(t.isSimple)return void this._sendSimpleEvent(t);if(this._useSparseTracking){if(e.SPARSE_EVENTS.indexOf(t.type)===-1)return;if(Math.random()>this._sparseTrackingProbability)return}this._useExternalTracking&&(this._eventQueue.push(t),this._eventQueue.length>e.MAX_HISTORY_EVENTS&&(this._eventQueue=this._eventQueue.splice(0,this._eventQueue.length-e.MAX_HISTORY_EVENTS))),this._useInternalTracking&&this._eventQueueInternal.push(JSON.parse((0,s.default)(t)))}}]),e}();m.MAX_RETRY_COUNT=5,m.MAX_URI_LENGTH=2048,m.MAX_HISTORY_EVENTS=1e3,m.URL_QUERY_PARAM_STRING="?q=",m.URL_QUERY_PARAM_STRING_COMPRESSION="?z=",m.TRACKING_EVENT_TO_CUSTOM_EVENT_MAP=new a.default([[A.TrackingEvent.INITIAL_LOAD,"x-dl8-tracking-initial-load"],[A.TrackingEvent.START_PLAYER,"x-dl8-tracking-start-player"],[A.TrackingEvent.EXIT_PLAYER,"x-dl8-tracking-exit-player"],[A.TrackingEvent.ADD_CONTENT,"x-dl8-tracking-add-content"],[A.TrackingEvent.ENTER_VR,"x-dl8-tracking-enter-vr"],[A.TrackingEvent.LEAVE_VR,"x-dl8-tracking-leave-vr"],[A.TrackingEvent.NEW_VR_DEVICE,"x-dl8-tracking-new-vr-device"],[A.TrackingEvent.CAMERA_MODE_SWITCH,"x-dl8-tracking-camera-mode-switch"],[A.TrackingEvent.RECENTER,"x-dl8-tracking-recenter"],[A.TrackingEvent.VR_CAMERA,"x-dl8-tracking-vr-camera"],[A.TrackingEvent.VR_VELOCITY,"x-dl8-tracking-vr-velocity"],[A.TrackingEvent.VIDEO_PLAY,"x-dl8-tracking-video-play"],[A.TrackingEvent.VIDEO_PAUSE,"x-dl8-tracking-video-pause"],[A.TrackingEvent.VIDEO_SEEK,"x-dl8-tracking-video-seek"],[A.TrackingEvent.VIDEO_ENDED,"x-dl8-tracking-video-ended"],[A.TrackingEvent.VIDEO_OPEN_MENU,"x-dl8-tracking-video-open-menu"],[A.TrackingEvent.VIDEO_QUALITY_SWITCH,"x-dl8-tracking-video-quality-switch"],[A.TrackingEvent.ELEMENT_CONNECTED,"x-dl8-tracking-element-connected"],[A.TrackingEvent.ACTIVATE_CONTENT,"x-dl8-tracking-activate-content"],[A.TrackingEvent.START_WIZARD,"x-dl8-tracking-start-wizard"],[A.TrackingEvent.EXIT_WIZARD,"x-dl8-tracking-exit-wizard"],[A.TrackingEvent.TOUR_PROBE_CHANGED,"x-dl8-tracking-tour-probe-changed"],[A.TrackingEvent.NEW_GAMEPAD,"x-dl8-tracking-new-gamepad"],[A.TrackingEvent.PERFORMANCE_RESULT,"x-dl8-tracking-performance-result"],[A.TrackingEvent.ERROR,"x-dl8-tracking-error"]]),m.SPARSE_EVENTS=[A.TrackingEvent.INITIAL_LOAD]},function(e,t,n){e.exports={default:n(573),__esModule:!0}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(34),a=r(i);t.default=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return(0,a.default)(e)}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var r=n(198);e.exports=function(e){return Object(r(e))}},function(e,t,n){var r=n(42);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},function(e,t,n){"use strict";var r=n(596)(!0);n(202)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(38),i=n(334),a=Function.call;e.exports=function(e,t,n){return i(a,r[e].prototype[t],n)}},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8EmbedElement=void 0;var i=n(46),a=r(i),o=n(34),s=r(o),l=n(99),u=r(l),d=n(9),c=r(d),f=n(4),h=r(f),_=n(1),A=r(_),m=n(6),p=r(m),g=n(8),E=r(g),v=n(2),b=r(v),S=n(5),T=r(S);n(343);var x=n(240),y=r(x),C=n(11),w=n(116),M=n(61),D=n(84),P=n(73);n(364),n(837);var R=n(22),I=!1,L=t.Dl8EmbedElement=function(e){function t(e){var n,r,i;return(0,A.default)(this,t),n=r=(0,p.default)(this,(t.__proto__||(0,h.default)(t)).call(this,e)),r.updateDimensions=function(){var e=r.getAttribute("width"),t=r.getAttribute("height"),n=r.getAttribute("aspect")||"16:10";if(n=n.split(":"),n=2===n.length?n[0]/n[1]:1.6,e||t){if(!e&&t){r.style.height=t;var i=r.offsetHeight;e=i*n+"px"}else if(e&&!t){r.style.width=e;var a=r.offsetWidth;t=a/n+"px"}}else{e="100%",r.style.width=e;var o=r.offsetWidth;t=o/n+"px"}r.style.width=e,r.style.height=t},e=n,e._container=null,e._faulty=!1,e._errorMessage="Problem with tag declaration encountered.",document.dispatchEvent(new CustomEvent("x-dl8-evt-element-created",{detail:{element:e}})),i=e,(0,p.default)(r,i)}return(0,T.default)(t,e),(0,b.default)(t,null,[{key:"_addDOMContentLoadedListener",value:function(e){t._domContentLoadedWasFired?e():t._domContentLoadedListeners.add(e)}}]),(0,b.default)(t,[{key:"$init",value:function(){(0,E.default)(t.prototype.__proto__||(0,h.default)(t.prototype),"$init",this).call(this),this.isRootElement&&this._wireEmbedUI()}},{key:"$getContentBadge",value:function(){}},{key:"setErrorState",value:function(e){var t;this._faulty=!0,this._errorMessage=e,this._createFaultyTag(this._container,this._errorMessage),D.TrackingManager.instance.addEvent(new P.TrackingEvent({type:P.TrackingEvent.ERROR,payload:{message:this._errorMessage,errorType:"Markup Error"}}));for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];(t=console).error.apply(t,[e].concat(r))}},{key:"$createContent",value:function(){var e={};return e=C.Dl8Element.assignContent(e,this,"dl8-element-id"),e=C.Dl8Element.assignContent(e,this,"title"),e=C.Dl8Element.assignContent(e,this,"date"),e=C.Dl8Element.assignContent(e,this,"heading-tag"),e=C.Dl8Element.assignContent(e,this,"duration"),e=C.Dl8Element.assignContent(e,this,"poster"),e=C.Dl8Element.assignContentDefault(e,this,"min-focal-length",10,JSON.parse),e=C.Dl8Element.assignContentDefault(e,this,"max-focal-length",80,JSON.parse),e=C.Dl8Element.assignContentDefault(e,this,"focal-length",15,JSON.parse),e=C.Dl8Element.assignContentDefault(e,this,"start-lat",0,parseFloat),e=C.Dl8Element.assignContentDefault(e,this,"start-lon",0,parseFloat),e=C.Dl8Element.assignContentDefault(e,this,"start-latitude",0,parseFloat),e=C.Dl8Element.assignContentDefault(e,this,"start-longitude",0,parseFloat),e=C.Dl8Element.assignContentDefault(e,this,"drag-controls-damping",.1,parseFloat,C.Dl8Element.validate(C.Dl8Element.validIfNumberBetween(.025,.2))),e=C.Dl8Element.assignContent(e,this,"preferred-controls"),e=C.Dl8Element.assignContent(e,this,"cors-fallback-url"),e=C.Dl8Element.assignContent(e,this,"cors-custom-heading"),e=C.Dl8Element.assignContent(e,this,"cors-custom-message"),e=C.Dl8Element.assignContent(e,this,"cors-custom-cta"),e=C.Dl8Element.assignContentBoolean(e,this,"cors-fallback-redirect-confirmation"),e=C.Dl8Element.assignContentBoolean(e,this,"cors-fallback-no-autostart"),e=C.Dl8Element.assignContentBoolean(e,this,"disable-scroll-capture"),e=C.Dl8Element.assignContentBoolean(e,this,"disable-touch-capture"),e=C.Dl8Element.assignContentBoolean(e,this,"disable-mouse-capture"),e=C.Dl8Element.assignContentBoolean(e,this,"autostart"),e=C.Dl8Element.assignContentBoolean(e,this,"autostart-vr"),e=C.Dl8Element.assignContentBoolean(e,this,"disable-3d-hud"),e=C.Dl8Element.assignContentBoolean(e,this,"enable-vertical-magic-window-dragging"),e=C.Dl8Element.assignContentBoolean(e,this,"disable-vertical-mouse-dragging"),e=C.Dl8Element.assignContentBoolean(e,this,"disable-vertical-touch-dragging"),e=C.Dl8Element.assignContentBoolean(e,this,"rotate-to-fullscreen"),e=C.Dl8Element.assignContentBoolean(e,this,"force-emulated-fullscreen"),e=C.Dl8Element.assignContentBoolean(e,this,"keep-constant-magnification"),(0,c.default)((0,E.default)(t.prototype.__proto__||(0,h.default)(t.prototype),"$createContent",this).call(this),e)}},{key:"$initStyle",value:function(){this.style.position="relative",this.style.display="block",this.style.margin="0",this.style.padding="0",this.style.zIndex="0",this.updateDimensions()}},{key:"start",value:function(e,t){this._showLoading(t),document.dispatchEvent(new CustomEvent("x-dl8-evt-start",{detail:{element:this,id:this._contentId,forceShowPlayButton:e,programmatic:t}}))}},{key:"exit",value:function(){document.dispatchEvent(new CustomEvent("x-dl8-evt-exit",{detail:{element:this,id:this._contentId}}))}},{key:"enterFullscreen",value:function(){document.dispatchEvent(new CustomEvent("x-dl8-evt-enter-fullscreen",{}))}},{key:"exitFullscreen",value:function(){document.dispatchEvent(new CustomEvent("x-dl8-evt-exit-fullscreen",{}))}},{key:"enableInterface",value:function(){document.dispatchEvent(new CustomEvent("x-dl8-evt-enable-interface",{}))}},{key:"disableInterface",value:function(){document.dispatchEvent(new CustomEvent("x-dl8-evt-disable-interface",{}))}},{key:"showContent",value:function(e){document.dispatchEvent(new CustomEvent("x-dl8-evt-show-content",{detail:{id:this._contentId,contentDesc:e}}))}},{key:"connectedCallback",value:function(){(0,E.default)(t.prototype.__proto__||(0,h.default)(t.prototype),"connectedCallback",this).call(this),this.isRootElement&&(window.addEventListener("resize",this.updateDimensions),this.$initStyle())}},{key:"disconnectedCallback",value:function(){this.isRootElement&&window.removeEventListener("resize",this.updateDimensions),document.dispatchEvent(new CustomEvent("x-dl8-evt-element-disconnected",{detail:{element:this,id:this._contentId}}))}},{key:"attributeChangedCallback",value:function(e,t,n){document.dispatchEvent(new CustomEvent("x-dl8-evt-element-attribute-changed",{detail:{element:this,attrName:e,oldVal:t,newVal:n}}))}},{key:"$allChildrenConnected",value:function(){document.dispatchEvent(new CustomEvent("x-dl8-evt-element-connected",{detail:{element:this,id:this._contentId}})),this.$tryToStart()}},{key:"$tryToStart",value:function(){var e=this;(window.location.hash.replace("#","")===this.getAttribute("dl8-element-id")||"true"===(0,M.getUrlVar)("dl8-autostart-player")||"true"===(0,M.getUrlVar)("dl8-start-from-cors-fallback")||this.hasAttribute("autostart")||(0,R.isVrBrowser)())&&this.isRootElement&&(I||(I=!0,t._addDOMContentLoadedListener(function(){e._delayedStart()})))}},{key:"_delayedStart",value:function(){var e=this;(0,u.default)(function(){e.parentElement&&e.start(!0,!0)})}},{key:"_showLoading",value:function(e){if(e){var t=this._container.querySelector(".dl8-play-button");t&&t.classList.add("dl8-play-button-hidden")}else{var n=document.createElement("div");n.classList.add("loader"),n.style.borderLeft="0.5em solid "+(0,w.getPrimaryColor)();var r=document.createElement("div");r.classList.add("loaderWrapper"),r.appendChild(n);var i=document.createElement("div");i.classList.add("dl8-loading-overlay"),i.appendChild(r),i.style.backgroundColor=(0,w.darkenColor)((0,w.getSecondaryColor)(),.5),this.appendChild(i)}}},{key:"hideLoading",value:function(){var e=this.querySelector(".dl8-loading-overlay");e&&this.removeChild(e);var t=this._container.querySelector(".dl8-play-button");t&&t.classList.remove("dl8-play-button-hidden")}},{key:"_createFaultyTag",value:function(e,t){if(e){var n=e.querySelector(".dl8-play-button");n&&e.removeChild(n);var r=e.querySelector(".dl8-faulty-tag-text");if(r)r.innerHTML=t;else{var i=document.createElement("faultyTag");i.classList.add("dl8-button"),i.classList.add("dl8-faulty-tag"),i.style.backgroundColor=(0,w.darkenColor)((0,w.getSecondaryColor)(),.5,.35),i.id="dl8-faulty-tag",e.appendChild(i);var a=document.createElement("div");a.classList.add("dl8-faulty-tag-text"),a.innerHTML=t,a.style.backgroundColor=(0,w.darkenColor)((0,w.getSecondaryColor)(),.5,.35),e.appendChild(a)}}}},{key:"_wireEmbedUI",value:function(){var e=this,t=this._contentId,n=(0,s.default)(document.querySelectorAll('button[x-dl8-for="'+t+'"]'));if(this._container=document.createElement("div"),this._container.classList.add("dl8-embed-container"),0===n.length){if(this._faulty)this._createFaultyTag(this._container,this._errorMessage);else{var r=document.createElement("button");r.classList.add("dl8-button"),r.classList.add("dl8-play-button"),r.style.backgroundColor=(0,w.darkenColor)((0,w.getSecondaryColor)(),.5,.35),r.setAttribute("x-dl8-for",t),C.Dl8Element.copyAttribute(r,"title",this,"title"),C.Dl8Element.copyAttribute(r,"author",this,"author"),r.onclick=function(){return e.start()},this._container.appendChild(r)}if((0,w.shouldDisplayBrandLogo)()){var i=(0,w.getBrandLogo)(),a=(0,w.getBrandUrl)(),o=(0,w.getBrandName)(),l=document.createElement("a");l.classList.add("dl8-logo"),l.target="_blank",i?(a&&(l.href=a),o&&(l.title=o)):(l.href="https://delight-xr.com/?utm_source=dvr-embed-logo",l.title="Delight XR Player");var u=document.createElement("img");u.src=i||y.default,l.appendChild(u),this._container.appendChild(l)}var d=document.createElement("div");if(d.classList.add("dl8-title"),(0,w.shouldDisplayTitle)()){var c=document.createElement("h3");c.innerHTML=this.getAttribute("title")||"",d.appendChild(c)}var f=this.getAttribute("author");if(f){var h=document.createElement("p"),_=this.getAttribute("author-href");_?h.innerHTML='by <a href="'+_+'" target="_blank">'+this.getAttribute("author")+"</a>":h.innerHTML="by "+this.getAttribute("author"),d.appendChild(h)}if(this._container.appendChild(d),(0,w.shouldDisplayContentBadge)()){var A=document.createElement("div");A.classList.add("dl8-tags");var m=document.createElement("div"),p=document.createElement("i"),g=document.createElement("span"),E="",v="not-defined",b=this.$getContentBadge();b&&(E=b.name,v=b.iconClass),g.innerHTML=E,p.classList.add("dl8-icon-embed"),p.classList.add(v),m.appendChild(p),m.appendChild(g),A.appendChild(m),this._container.appendChild(A)}var S=document.createElement("div");S.classList.add("dl8-gradient-top"),this._container.appendChild(S);var T=document.createElement("div");T.classList.add("dl8-gradient-bottom"),this._container.appendChild(T),this.getAttribute("poster")?(this._container.style.backgroundImage='url("'+this.getAttribute("poster")+'")',this._container.style.backgroundSize="cover",this._container.style.backgroundRepeat="no-repeat",this._container.style.backgroundPosition="50%"):this._container.style.backgroundColor=(0,w.darkenColor)((0,w.getSecondaryColor)(),.2),this.appendChild(this._container)}}},{key:"isRootElement",get:function(){return!this.parentElement||!this.parentElement.isDl8Element}}]),t}(C.Dl8Element);L._domContentLoadedWasFired=!1,L._domContentLoadedListeners=new a.default,function(){"complete"===document.readyState||"loaded"===document.readyState||"interactive"===document.readyState?L._domContentLoadedWasFired=!0:document.addEventListener("DOMContentLoaded",function(){L._domContentLoadedWasFired=!0,L._domContentLoadedListeners.forEach(function(e){e()}),L._domContentLoadedListeners.clear()})}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Camera=void 0;var i=n(4),a=r(i),o=n(9),s=r(o),l=n(1),u=r(l),d=n(6),c=r(d),f=n(2),h=r(f),_=n(5),A=r(_),m=n(18),p=n(12),g=n(17),E=n(49),v=n(36),b=n(137),S=6,T=0,x=1,y=2,C=3,w=4,M=5;t.Camera=function(e){function t(e){(0,u.default)(this,t);var n=(0,c.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._renderer=null,n._viewMatrix=new E.Matrix4,n._projectionMatrix=new E.Matrix4,n._viewProjectionMatrix=new E.Matrix4,n._inverseViewMatrix=new E.Matrix4,n._inverseProjectionMatrix=new E.Matrix4,n._location=new p.Vector3(0,0,0),n._dVector=new p.Vector3(0,0,-1),n._uVector=new p.Vector3(0,1,0),n._rVector=new p.Vector3(1,0,0),n._frustum=[1,100,-.5,.5,-.5,.5],n._viewport=[0,1,1,0],n._depthRange=[0,1],n._perspective=!0,n._tmpVec=new p.Vector3,n._tmpVec2=new p.Vector3,n._tmpVec3=new p.Vector3,n}return(0,A.default)(t,e),(0,h.default)(t,[{key:"$serialize",value:function(){return{name:"Camera",aux:{_viewMatrix:this._viewMatrix,_projectionMatrix:this._projectionMatrix,_viewProjectionMatrix:this._viewProjectionMatrix,_inverseViewMatrix:this._inverseViewMatrix,_inverseProjectionMatrix:this._inverseProjectionMatrix,_location:this._location,_dVector:this._dVector,_uVector:this._uVector,_rVector:this._rVector,_frustum:this._frustum,_viewport:this._viewport,_depthRange:this._depthRange,_perspective:this._perspective}}}},{key:"$deserialize",value:function(e){(0,s.default)(this,e)}}],[{key:"PLANE_COUNT",get:function(){return S}},{key:"DMIN",get:function(){return T}},{key:"DMAX",get:function(){return x}},{key:"UMIN",get:function(){return y}},{key:"UMAX",get:function(){return C}},{key:"RMIN",get:function(){return w}},{key:"RMAX",get:function(){return M}}]),(0,h.default)(t,[{key:"_updateViewMatrix",value:function(){this._viewMatrix._storage[0]=this._rVector.x,this._viewMatrix._storage[1]=this._uVector.x,this._viewMatrix._storage[2]=this._dVector.x,this._viewMatrix._storage[3]=0,this._viewMatrix._storage[4]=this._rVector.y,this._viewMatrix._storage[5]=this._uVector.y,this._viewMatrix._storage[6]=this._dVector.y,this._viewMatrix._storage[7]=0,this._viewMatrix._storage[8]=this._rVector.z,this._viewMatrix._storage[9]=this._uVector.z,this._viewMatrix._storage[10]=this._dVector.z,this._viewMatrix._storage[11]=0,this._viewMatrix._storage[12]=-this._rVector.dot(this._location),this._viewMatrix._storage[13]=-this._uVector.dot(this._location),this._viewMatrix._storage[14]=-this._dVector.dot(this._location),this._viewMatrix._storage[15]=1,this._inverseViewMatrix.copyFrom(this._viewMatrix),this._inverseViewMatrix.invert(),this._viewProjectionMatrix.copyFrom(this._viewMatrix),this._viewProjectionMatrix.multRight(this._projectionMatrix)}},{key:"_updateProjectionMatrix",value:function(){var e=this._frustum[0],t=this._frustum[1],n=this._frustum[2],r=this._frustum[3],i=this._frustum[4],a=this._frustum[5],o=1/(a-i),s=1/(r-n),l=1/(t-e);this._perspective?(this._projectionMatrix._storage[0]=2*e*o,this._projectionMatrix._storage[1]=0,this._projectionMatrix._storage[2]=0,this._projectionMatrix._storage[3]=0,this._projectionMatrix._storage[4]=0,this._projectionMatrix._storage[5]=2*e*s,this._projectionMatrix._storage[6]=0,this._projectionMatrix._storage[7]=0,this._projectionMatrix._storage[8]=-(i+a)*o,this._projectionMatrix._storage[9]=-(n+r)*s,this._projectionMatrix._storage[10]=t*l,this._projectionMatrix._storage[11]=1,this._projectionMatrix._storage[12]=0,this._projectionMatrix._storage[13]=0,this._projectionMatrix._storage[14]=-t*e*l,this._projectionMatrix._storage[15]=0):(this._projectionMatrix._storage[0]=2*o,this._projectionMatrix._storage[1]=0,this._projectionMatrix._storage[2]=0,this._projectionMatrix._storage[3]=0,this._projectionMatrix._storage[4]=0,this._projectionMatrix._storage[5]=2*s,this._projectionMatrix._storage[6]=0,this._projectionMatrix._storage[7]=0,this._projectionMatrix._storage[8]=0,this._projectionMatrix._storage[9]=0,this._projectionMatrix._storage[10]=l,this._projectionMatrix._storage[11]=0,this._projectionMatrix._storage[12]=-(i+a)*o,this._projectionMatrix._storage[13]=-(n+r)*s,this._projectionMatrix._storage[14]=-e*l,this._projectionMatrix._storage[15]=1),this._inverseProjectionMatrix.copyFrom(this._projectionMatrix),this._inverseProjectionMatrix.invert(),this._viewProjectionMatrix.copyFrom(this._viewMatrix),this._viewProjectionMatrix.multRight(this._projectionMatrix)}},{key:"saveState",value:function(){return{dVector:new p.Vector3(this._dVector),uVector:new p.Vector3(this._uVector),rVector:new p.Vector3(this._rVector),location:new p.Vector3(this._location),frustum:this._frustum.slice(),viewport:this._viewport.slice(),depthRange:this._depthRange.slice(),perspective:this._perspective}}},{key:"equals",value:function(e){var t=this._dVector.equals(e.dVector)&&this._uVector.equals(e.uVector)&&this._rVector.equals(e.rVector)&&this._location.equals(e.location);if(!t)return!1;for(var n=0;n<this._frustum.length;++n)t=t&&e.frustum[n]===this._frustum[n];if(!t)return!1;for(var r=0;r<this._viewport.length;++r)t=t&&e.viewport[r]===this._viewport[r];if(!t)return!1;for(var i=0;i<this._depthRange.length;++i)t=t&&e.depthRange[i]===this._depthRange[i];return t&&e.perspective===this._perspective}},{key:"restoreState",value:function(e){this.perspective=e.perspective,this.setFrame(e.location,e.dVector,e.uVector,e.rVector),this.setFrustumRaw(e.frustum),this.setViewportRaw(e.viewport),this.setDepthRange(e.depthRange[0],e.depthRange[1])}},{key:"setFrame",value:function(e,t,n,r){this._location.copyFrom(e),this._dVector.copyFrom(t).normalize(),this._uVector.copyFrom(n).normalize(),this._rVector.copyFrom(r).normalize(),this._updateViewMatrix(),this._renderer&&this._renderer.updateViewMatrix(this._viewMatrix,this._inverseViewMatrix,this._location)}},{key:"setFrustumOrtho",value:function(e,t,n,r,i,a){this._frustum[4]=e,this._frustum[5]=t,this._frustum[2]=n,this._frustum[3]=r,this._frustum[0]=i,this._frustum[1]=a,this._updateProjectionMatrix(),this._renderer&&this._renderer.updateProjectionMatrix(this._projectionMatrix,this._inverseProjectionMatrix)}},{key:"setFrustum",value:function(e,t,n,r){var i=.5*(e*(Math.PI/180));this._frustum[3]=n*Math.tan(i),this._frustum[5]=t*this._frustum[3],this._frustum[2]=-this._frustum[3],this._frustum[4]=-this._frustum[5],this._frustum[0]=n,this._frustum[1]=r,this._updateProjectionMatrix(),this._renderer&&this._renderer.updateProjectionMatrix(this._projectionMatrix,this._inverseProjectionMatrix)}},{key:"setFrustumRaw",value:function(e){for(var t=0;t<e.length;++t)this._frustum[t]=e[t];this._updateProjectionMatrix(),this._renderer&&this._renderer.updateProjectionMatrix(this._projectionMatrix,this._inverseProjectionMatrix)}},{key:"setViewport",value:function(e,t,n,r){this._viewport[0]=e,this._viewport[1]=t,this._viewport[2]=n,this._viewport[3]=r,this._renderer&&this._renderer.onViewportChange()}},{key:"setViewportRaw",value:function(e){for(var t=0;t<e.length;++t)this._viewport[t]=e[t];this._renderer&&this._renderer.onViewportChange()}},{key:"setDepthRange",value:function(e,t){this._depthRange[0]=e,this._depthRange[1]=t,this._renderer&&this._renderer.onDepthRangeChange()}},{key:"getPickRay",value:function(e,t,n,r,i){return this.getPickRayNorm(e/n,(r-t)/r,i)}},{key:"getPickRayNorm",value:function(e,n,r){r=r||new b.Ray3,e=g.MathUtil.clamp(e,this._viewport[0],this._viewport[1]),n=g.MathUtil.clamp(n,this._viewport[3],this._viewport[2]);var i=(e-this._viewport[0])/(this._viewport[1]-this._viewport[0]),a=(1-i)*this._frustum[t.RMIN]+i*this._frustum[t.RMAX],o=(n-this._viewport[3])/(this._viewport[2]-this._viewport[3]),s=(1-o)*this._frustum[t.UMIN]+o*this._frustum[t.UMAX];return this._tmpVec.copyFrom(this._dVector),this._tmpVec.mult(this._frustum[t.DMIN]),this._tmpVec2.copyFrom(this._rVector),this._tmpVec2.mult(a),this._tmpVec3.copyFrom(this._uVector),this._tmpVec3.mult(s),this._tmpVec.add(this._tmpVec2),this._tmpVec.add(this._tmpVec3),this._tmpVec.normalize(),r.origin=this._location,r.direction=this._tmpVec,r}},{key:"lookDirection",value:function(e,t){this._tmpVec2.copyFrom(e),0===this._tmpVec2.magnitude()&&(this._tmpVec2.z=-1);var n=p.Vector3.Y_AXIS;void 0!==t&&(n=t),this._tmpVec2.cross(n).normalize(),0===this._tmpVec2.magnitude()&&(e.x+=1e-4,this._tmpVec2.copyFrom(e),this._tmpVec2.cross(this._uVector).normalize()),this._tmpVec3.copyFrom(this._tmpVec2),this._tmpVec3.cross(e).normalize(),this.setFrame(this._location,e,this._tmpVec3,this._tmpVec2)}},{key:"lookAt",value:function(e,t){this._tmpVec.copyFrom(e),this._tmpVec.sub(this._location),this.lookDirection(this._tmpVec,t)}},{key:"getQuaternion",value:function(e){return e=e||new v.Quaternion,e.fromLookRotation(this.dVector,this.rVector,this.uVector)}},{key:"perspective",get:function(){return this._perspective},set:function(e){this._perspective=e,this._updateProjectionMatrix(),this._renderer&&this._renderer.updateProjectionMatrix(this._projectionMatrix,this._inverseProjectionMatrix)}},{key:"far",get:function(){return this._frustum[x]}},{key:"near",get:function(){return this._frustum[T]}},{key:"frustum",get:function(){return this._frustum}},{key:"viewport",get:function(){return this._viewport}},{key:"uVector",get:function(){return this._uVector}},{key:"dVector",get:function(){return this._dVector}},{key:"rVector",get:function(){return this._rVector}},{key:"location",get:function(){return this._location},set:function(e){this._location.copyFrom(e),this._updateViewMatrix(),this._renderer&&this._renderer.updateViewMatrix(this._viewMatrix,this._inverseViewMatrix,this._location)}},{key:"depthRange",get:function(){return this._depthRange}},{key:"renderer",get:function(){return this._renderer},set:function(e){this._renderer=e}},{key:"viewMatrix",get:function(){return this._viewMatrix}},{key:"inverseViewMatrix",get:function(){return this._inverseViewMatrix}},{key:"projectionMatrix",get:function(){return this._projectionMatrix}},{key:"viewProjectionMatrix",get:function(){return this._viewProjectionMatrix}},{key:"inverseProjectionMatrix",get:function(){return this._inverseProjectionMatrix}},{key:"transformMatrix",get:function(){var e=new E.Matrix4,t=new p.Vector3(this._dVector).neg();return e._storage[0]=this._rVector.x,e._storage[1]=this._uVector.x,e._storage[2]=t.x,e._storage[3]=0,e._storage[4]=this._rVector.y,e._storage[5]=this._uVector.y,e._storage[6]=t.y,e._storage[7]=0,e._storage[8]=this._rVector.z,e._storage[9]=this._uVector.z,e._storage[10]=t.z,e._storage[11]=0,e._storage[12]=this._rVector.dot(this._location),e._storage[13]=this._uVector.dot(this._location),e._storage[14]=t.dot(this._location),e._storage[15]=1,e}}]),t}(m.Serializable)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Attributes=void 0;var i=n(4),a=r(i),o=n(9),s=r(o),l=n(1),u=r(l),d=n(6),c=r(d),f=n(2),h=r(f),_=n(5),A=r(_),m=n(18),p=n(7),g=t.Attributes=function(e){function t(e){(0,u.default)(this,t);var n=(0,c.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._customLayout=p.Util.getParam(e,"customLayout",!1),n._channelCount=0,n._semanticsInfo={},n._semanticUpdateNeeded=!0,n._attributes={},n._attributeOrder=[],n}return(0,A.default)(t,e),(0,h.default)(t,[{key:"$serialize",value:function(){return{name:"Attributes",aux:{_channelCount:this._channelCount,_customLayout:this._customLayout,_semanticsInfo:this._semanticsInfo,_semanticUpdateNeeded:this._semanticUpdateNeeded,_attributes:this._attributes,_attributeOrder:this._attributeOrder}}}},{key:"$deserialize",value:function(e,t){(0,s.default)(this,e)}}],[{key:"_createSemantic",value:function(e,t,n,r,i,a){return{name:e,index:t,channels:n,componentType:r,byteStride:i,byteOffset:a}}}]),(0,h.default)(t,[{key:"getAttributeOffset",value:function(e){if(!(e in this._attributes))throw new Error('unknown attribute "'+e+'"');return this._attributes[e].byteOffset}},{key:"getSemanticsInfo",value:function(){if(this._semanticUpdateNeeded){this._semanticUpdateNeeded=!1,this._semanticsInfo={};for(var e=0,n=0;n<this._attributeOrder.length;++n){var r=this._attributeOrder[n],i=this._attributes[r],a=i.byteStride,o=i.byteOffset,s=i.channels,l=i.componentType;this._semanticsInfo[r]=t._createSemantic(r,e++,s,l,a,o)}}return this._semanticsInfo}},{key:"hasColor",value:function(e){return this.hasAttribute("color"+e)}},{key:"hasTextureCoord",value:function(e){return this.hasAttribute("texCoord"+e)}},{key:"hasAttribute",value:function(e){return void 0!==this._attributes[e]}},{key:"hasNormal",value:function(){return this.hasAttribute(t.NORMAL)}},{key:"hasTangent",value:function(){return this.hasAttribute(t.TANGENT)}},{key:"hasPosition",value:function(){return this.hasAttribute(t.POSITION)}},{key:"setPositionChannels",value:function(e){this.setAttribute(t.POSITION,e),this._updateOffsets()}},{key:"setNormalChannels",value:function(e){this.setAttribute(t.NORMAL,e),this._updateOffsets()}},{key:"setColorChannels",value:function(e,t){this.setAttribute("color"+e,t),this._updateOffsets()}},{key:"setTextureChannels",value:function(e,t){this.setAttribute("texCoord"+e,t),this._updateOffsets()}},{key:"getAttributeChannels",value:function(e){var t=this._attributes[e];if(!t)throw new Error('unknown attribute "'+e+'"');return t.channels}},{key:"setAttribute",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5126,r=arguments[3],i=arguments[4];p.Util.assert(t<=4,'Attributes: tried to set an attribute "'+e+'" with channels > 4 ('+t+")"),this._attributeOrder.indexOf(e)===-1&&this._attributeOrder.push(e);var a=p.Util.componentTypeToTypedArrayCtor(n).BYTES_PER_ELEMENT;this._attributes[e]={channels:t,componentType:n,bytesPerElement:a,byteStride:r,byteOffset:i},this._channelCount+=t,this._updateOffsets()}},{key:"getAttributeIteratorInfo",value:function(e){var t=this._attributes[e];if(!t)throw new Error('unknown attribute "'+e+'"');return{byteOffset:t.byteOffset,byteStride:t.byteStride}}},{key:"_updateOffsets",value:function(){if(!this._customLayout){for(var e=0,t=0;t<this._attributeOrder.length;++t){var n=this._attributeOrder[t],r=this._attributes[n];r.byteOffset=e,e+=r.channels*r.bytesPerElement}for(var i in this._attributes){var a=this._attributes[i];a.byteStride=e}}this._semanticUpdateNeeded=!0}},{key:"channelCount",get:function(){return this._channelCount}}]),t}(m.Serializable);g.POSITION="position",g.NORMAL="normal",g.COLOR0="color0",g.TEXCOORD0="texCoord0",g.TEXCOORD1="texCoord1",g.TANGENT="tangent"},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.XHRRequest=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(267),u=n(10),d=n(7),c="get",f="post",h={},_={};t.XHRRequest=function(){function e(t){(0,a.default)(this,e),this._requestType=d.Util.getParam(t,"requestType",e.GET),this._onAbort=d.Util.getParam(t,"onAbort",function(){}),this._onProgress=d.Util.getParam(t,"onProgress",function(){}),this._onError=d.Util.getParam(t,"onError",function(){}),this._onLoad=d.Util.getParam(t,"onLoad",function(){}),this._onLoad=d.Util.getParam(t,"onLoad",function(){}),this._uri=d.Util.getParamRequired(t,"uri"),this._packedPngRequest=d.Util.getParam(t,"packedPngRequest"),this._gzipRequest=d.Util.getParam(t,"gzipRequest"),this._data=d.Util.getParam(t,"data"),this._cors=d.Util.getParam(t,"cors",!0),this._noCache=d.Util.getParam(t,"noCache"),this._responseType=d.Util.getParam(t,"responseType"),this._contentType=d.Util.getParam(t,"contentType"),this._loadCallbacks=[this._onLoad], this._errorCallbacks=[this._onError],this._progressCallbacks=[this._onProgress],this._abortCallbacks=[this._onAbort],this._request=null,this._tryCount=0,l.ResourceManager.registerResource(this)}return(0,s.default)(e,null,[{key:"request",value:function(t){return new e(t).send()}},{key:"GET",get:function(){return c}},{key:"POST",get:function(){return f}}]),(0,s.default)(e,[{key:"addLoad",value:function(e){this._loadCallbacks.push(e)}},{key:"addProgress",value:function(e){this._progressCallbacks.push(e)}},{key:"addError",value:function(e){this._errorCallbacks.push(e)}},{key:"addAbort",value:function(e){this._abortCallbacks.push(e)}},{key:"cancel",value:function(){var e=this._deleteFromPool();e&&e.request.abort()}},{key:"deleteFromResourceManager",value:function(){l.ResourceManager.unregisterResource(this)}},{key:"onLowRam",value:function(){var e=0;for(var t in _){var n=_[t];"arraybuffer"===n.responseType&&(e+=n.response.byteLength,delete _[t])}l.ResourceManager.deallocateBytesRam(e)}},{key:"_setCrossOrigin",value:function(e,t){void 0!==u.Context.crossOrigin&&!t.startsWith("data:")&&(t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//"))?e.crossOrigin=u.Context.crossOrigin:e.crossOrigin=null}},{key:"_deleteFromPool",value:function(){var e=h[this._uri];if(e)return delete h[this._uri],e}},{key:"_unpackDataFromPng",value:function(e,t,n){var r=new Image;r.onload=function(){var n=document.createElement("canvas"),i=n.getContext("2d"),a=r.width,o=r.height;n.width=n.style.width=a,n.height=n.style.height=o,i.drawImage(r,0,0);for(var s=i.getImageData(0,0,a,o).data,l=new Uint8ClampedArray(s.length/4*3),u=0,d=0;u<s.length;u+=4,d+=3)l[d]=s[u],l[d+1]=s[u+1],l[d+2]=s[u+2];e.response=l.buffer,t()},r.onerror=n,this._setCrossOrigin(r,e.src),r.src=e.src}},{key:"_unpackDataFromGz",value:function(e,t){throw new Error("zlib currently disabled in this build")}},{key:"send",value:function(){if(this._requestType===e.GET){if(void 0!==_[this._uri]&&!this._noCache)return void 0!==this._onLoad&&this._onLoad(_[this._uri]),this;if(void 0!==h[this._uri]){var t=h[this._uri];return t.addLoad(this._onLoad),t.addError(this._onError),t.addProgress(this._onProgress),t.addAbort(this._onAbort),this}}if(this._packedPngRequest)this._request={responseType:"arraybuffer",src:this._uri},this._unpackDataFromPng(this._request,this._handleLoad.bind(this,this._request),this._handleError.bind(this,this._request));else{if(this._cors&&void 0!==u.Context.crossOrigin){if(this._requestType===e.GET)this._request=this._createCORSRequest("GET",this._uri);else{if(this._requestType!==e.POST)throw new Error("invalid request type "+this._requestType);this._request=this._createCORSRequest("POST",this._uri)}if(null===this._request)throw new Error("CORS requested, but not supported")}else{if(window.XMLHttpRequest)this._request=new XMLHttpRequest;else{if(!window.ActiveXObject)throw new Error("XMLHttpRequest is disabled");this._request=new ActiveXObject("MSXML2.XMLHTTP.3.0")}if(this._requestType===e.GET)this._request.open("GET",this._uri,!0);else{if(this._requestType!==e.POST)throw new Error("invalid request type "+this._requestType);this._request.open("POST",this._uri,!0)}}this._noCache&&(this._request.setRequestHeader("Cache-Control","no-cache"),this._request.setRequestHeader("Pragma","no-cache")),this._contentType&&this._request.setRequestHeader("Content-Type",this._contentType),this._responseType&&(this._request.responseType=this._responseType),this._request.addEventListener("load",this._handleLoad.bind(this,this._request),!1),this._request.addEventListener("abort",this._handleAbort.bind(this,this._request),!1),this._request.addEventListener("progress",this._handleProgress.bind(this,this._request),!1),this._request.addEventListener("error",this._handleError.bind(this,this._request),!1),h[this._uri]=this,this._data?this._request.send(this._data):this._request.send()}return this}},{key:"_createCORSRequest",value:function(e,t){var n=new XMLHttpRequest;return"withCredentials"in n?n.open(e,t,!0):"undefined"!=typeof XDomainRequest?(n=new XDomainRequest,n.open(e,t)):n=null,n}},{key:"_handleLoad",value:function(e){var t=this;if(this._deleteFromPool(),this._gzipRequest&&"arraybuffer"===this._responseType){var n={};this._unpackDataFromGz(e.response,function(r,i){if(r)throw new Error(r);n.response=i.buffer,n.responseUrl=e.responseUrl,n.responseType=e.responseType,e=n,_[t._uri]=e,"arraybuffer"===t._responseType&&l.ResourceManager.allocateBytesRam(e.response.byteLength);for(var a=0,o=t._loadCallbacks.length;a<o;++a)t._loadCallbacks[a]&&t._loadCallbacks[a](e)})}else{_[this._uri]=e,"arraybuffer"===this._responseType&&l.ResourceManager.allocateBytesRam(e.response.byteLength);for(var r=0,i=this._loadCallbacks.length;r<i;++r)this._loadCallbacks[r]&&this._loadCallbacks[r](e)}}},{key:"_handleAbort",value:function(e){for(var t=0,n=this._abortCallbacks.length;t<n;++t)this._abortCallbacks[t]&&this._abortCallbacks[t](e)}},{key:"_handleError",value:function(e){for(var t=0,n=this._errorCallbacks.length;t<n;++t)this._errorCallbacks[t]&&this._errorCallbacks[t](e)}},{key:"_handleProgress",value:function(e){for(var t=0,n=this._progressCallbacks.length;t<n;++t)this._progressCallbacks[t]&&this._progressCallbacks[t](e)}},{key:"request",get:function(){return this._request}}]),e}()},,function(e,t,n){e.exports={default:n(577),__esModule:!0}},function(e,t,n){var r=n(67),i=n(312),a=n(310),o=n(52),s=n(155),l=n(214),u={},d={},t=e.exports=function(e,t,n,c,f){var h,_,A,m,p=f?function(){return e}:l(e),g=r(n,c,t?2:1),E=0;if("function"!=typeof p)throw TypeError(e+" is not iterable!");if(a(p)){for(h=s(e.length);h>E;E++)if(m=t?g(o(_=e[E])[0],_[1]):g(e[E]),m===u||m===d)return m}else for(A=p.call(e);!(_=A.next()).done;)if(m=i(A,g,_.value,t),m===u||m===d)return m};t.BREAK=u,t.RETURN=d},function(e,t){e.exports={}},function(e,t,n){var r=n(319),i=n(200);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t){},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},,,,function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8VideoElement=void 0;var a=n(86),o=i(a),s=n(9),l=i(s),u=n(34),d=i(u),c=n(14),f=i(c),h=n(4),_=i(h),A=n(26),m=i(A),p=n(1),g=i(p),E=n(6),v=i(E),b=n(8),S=i(b),T=n(2),x=i(T),y=n(5),C=i(y),w=n(15),M=r(w),D=n(11),P=n(93),R=n(428),I=n(254),L=n(427),O=n(395),N=n(394),B=n(61),F=n(84),k=n(73),U=n(116),V=n(554),G=void 0,H=void 0,z=void 0,Q=void 0;t.Dl8VideoElement=function(e){function t(e){var n,r;return(0,g.default)(this,t),e=n=(0,v.default)(this,(t.__proto__||(0,_.default)(t)).call(this,e)),e._contentError=!1,e._eventListenerNameToParamsMap=new f.default,r=e,(0,v.default)(n,r)}return(0,C.default)(t,e),(0,x.default)(t,null,[{key:"getOrCreateGlobalHlsStream",value:function(e,t,n){if(!z){var r={abrController:t};n&&"use-credentials"===n.getAttribute("crossorigin")&&(r.xhrSetup=function(e){e.withCredentials=!0}),z=new e(r)}return z}},{key:"getOrCreateGlobalDashStream",value:function(e){return Q||(Q=new e.Player(t.globalVideoElement),Q.addEventListener("error",function(){throw new Error("DASH player error: "+event.detail)})),Q}},{key:"registerElement",value:function(){R.Dl8VideoPreviewSpriteElement.registerElement(),(0,B.getAllowedFeature)("recommendationEnabled")&&I.Dl8RecommendationElement.registerElement(),L.Dl8TrackElement.registerElement(),(0,B.getAllowedFeature)("affiliateEnabled")&&O.Dl8AffiliateElement.registerElement(),(0,B.getAllowedFeature)("advertisementEnabled")&&N.Dl8AdvertisementElement.registerElement(),D.Dl8Element._registerElement("dl8-video",t)}},{key:"globalVideoElement",get:function(){return G||(G=document.createElement("video"),G.setAttribute("style","display: none;"),G.setAttribute("webkit-playsinline",""),G.setAttribute("playsinline",""),(0,B.needsIOSHack)()&&G.addEventListener("canplay",function(){t.globalAudioElement.src=G.currentSrc,t.globalAudioElement.currentTime=0})),G}},{key:"globalAudioElement",get:function(){return H||(H=new Audio),H}},{key:"HLS",get:function(){return new m.default(function(e,t){n.e(3,function(t){var r=n(345),i=n(41).Renderer,a=(0,B.isIE)(),o=(0,V.isMobileBrowser)(),s=r.DefaultConfig;if(s){var l=s.abrController,u=function(e){function t(){return(0,g.default)(this,t),(0,v.default)(this,(t.__proto__||(0,_.default)(t)).apply(this,arguments))}return(0,C.default)(t,e),(0,x.default)(t,[{key:"_findBestLevel",value:function(e,n,r,s,l,u,d,c,f){var h=(0,S.default)(t.prototype.__proto__||(0,_.default)(t.prototype),"_findBestLevel",this).call(this,e,n,r,s,l,u,d,c,f),A=2048;i.MAX_TEXTURE_SIZE&&(A=i.MAX_TEXTURE_SIZE);for(var m=Math.max(h,s);m>=s;m--){var p=f[m],g=p.width,E=p.height;if(Math.max(g,E)<=A){if(!a||g*E<=2073600)break;if(!o||g*E<=8294400)break}}return m}}]),t}(l);e({HLS:r,AbrController:u})}else e({HLS:r})})})}},{key:"DASH",get:function(){return new m.default(function(e,t){n.e(2,function(t){var r=n(362);r.polyfill.installAll(),e(r)})})}}]),(0,x.default)(t,[{key:"play",value:function(){document.dispatchEvent(new CustomEvent("x-dl8-evt-video-play",{detail:{id:this._contentId}}))}},{key:"pause",value:function(){document.dispatchEvent(new CustomEvent("x-dl8-evt-video-pause",{detail:{id:this._contentId}}))}},{key:"seek",value:function(e){document.dispatchEvent(new CustomEvent("x-dl8-evt-video-seek",{detail:{id:this._contentId,t:e}}))}},{key:"mute",value:function(){document.dispatchEvent(new CustomEvent("x-dl8-evt-video-mute",{detail:{id:this._contentId}}))}},{key:"unmute",value:function(){document.dispatchEvent(new CustomEvent("x-dl8-evt-video-unmute",{detail:{id:this._contentId}}))}},{key:"deinit",value:function(){var e=this,n=this.contentElement;return(0,B.needsIOSHack)()&&(t.globalAudioElement.audioElement.pause(),t.globalAudioElement.audioElement.src=""),n.oncanplaythrough=null,n.readyState>0&&(n.currentTime=0),n.pause(),(0,d.default)(n.children).filter(function(e){return"SOURCE"===e.tagName}).forEach(function(t){e.appendChild(t)}),(0,d.default)(n.children).filter(function(e){return"TRACK"===e.tagName}).forEach(function(t){var r=e.querySelector('dl8-track[dl8-id="'+t.getAttribute("x-dl8-parent-id")+'"]');r?r.appendChild(t):n.removeChild(t)}),this._isDashStream?this._detachDash():this._isHlsStream?this._detachHls():m.default.resolve()}},{key:"_detachHls",value:function(){var e=this;return new m.default(function(n,r){t.HLS.then(function(r){var i=r.HLS,a=r.AbrController,o=t.getOrCreateGlobalHlsStream(i,a,e),s=function e(){o.off(i.Events.MEDIA_DETACHED,e),o.destroy(),z=void 0,n()};o.on(i.Events.MEDIA_DETACHED,s),o.detachMedia(t.globalVideoElement),e._hlsEventEmitterCb&&(o.off(i.Events.MANIFEST_PARSED,e._hlsEventEmitterCb),e._hlsEventEmitterCb=void 0)}).catch(r)})}},{key:"_detachDash",value:function(){return new m.default(function(e,n){t.DASH.then(function(r){var i=t.getOrCreateGlobalDashStream(r);i.destroy().then(function(){t.globalVideoElement.removeAttribute("src"),Q=null,e()}).catch(n)}).catch(n)})}},{key:"_hlsManifestParsed",value:function(e,t){var n=this;e.onerror=function(t){n.setErrorState("No playable video source found.",e.src,t)},t()}},{key:"attachTracks",value:function(){var e=this;return new m.default(function(n,r){try{(0,d.default)(e.children).filter(function(e){return"DL8-TRACK"===e.tagName}).forEach(function(e){return t.globalVideoElement.appendChild(e.track)}),n()}catch(e){r(e)}})}},{key:"attachSources",value:function(){var e=this;return new m.default(function(n,r){var i=t.globalVideoElement;D.Dl8Element.copyAttribute(i,"crossorigin",e,"crossorigin"),D.Dl8Element.copyAttribute(i,"preload",e,"preload"),i.controls=e.hasAttribute("use-native-controls"),(0,B.isIOS10OrHigher)()||D.Dl8Element.copyBooleanAttribute(i,"loop",e,"loop"),D.Dl8Element.copyBooleanAttribute(i,"muted",e,"muted"),D.Dl8Element.copyAttribute(i,"title",e,"title"),(0,U.shouldCopyPosterToVideoElement)()&&D.Dl8Element.copyAttribute(i,"poster",e,"poster"),i.muted=i.hasAttribute("muted");var a=(0,d.default)(e.children).filter(function(e){return"SOURCE"===e.tagName}),o=a.filter(function(e){return e.hasAttribute("type")&&"application/x-mpegurl"===e.getAttribute("type")});e._hasHlsSources=o.length>0;var s=a.filter(function(e){return e.hasAttribute("type")&&"application/dash+xml"===e.getAttribute("type")});e._hasDashSources=s.length>0;var l=a.filter(function(e){return e.hasAttribute("audio-format")&&M.SPATIAL_AUDIO_FORMATS.has(e.getAttribute("audio-format"))});if(!(0,B.getAllowedFeature)("spatialAudioEnabled")&&l.length>0)throw new Error("Spatial audio is not enabled on this copy of Delight XR");if(!(0,B.getAllowedFeature)("adaptiveStreamingEnabled")&&(e._hasHlsSources||e._hasDashSources))throw new Error("Adaptive streaming is not enabled on this copy of Delight XR");new m.default(function(n,r){if((0,B.isSafari)()||(0,B.isIOS)()){if(e._hasDashSources&&(s.forEach(function(t){return e.removeChild(t)}),s.length===a.length))throw F.TrackingManager.instance.addEvent(new k.TrackingEvent({type:k.TrackingEvent.ERROR,payload:{message:"DASH stream was requested but not supported by this browser.",errorType:"DASH Error"}})),new Error("DASH stream was requested but not supported by this browser.");(0,B.isIOS)()&&(0,d.default)(e.children).filter(function(e){return"SOURCE"===e.tagName}).length!==o.length&&(o.forEach(function(t){return e.removeChild(t)}),e._hasHlsSources=!1),n()}else e._hasDashSources?t.DASH.then(function(t){if(!t.Player.isBrowserSupported()&&s.length===(0,d.default)(e.children).filter(function(e){return"SOURCE"===e.tagName}).length)throw F.TrackingManager.instance.addEvent(new k.TrackingEvent({type:k.TrackingEvent.ERROR,payload:{message:"DASH stream was requested but not supported by this browser.",errorType:"DASH Error"}})),new Error("DASH stream was requested but not supported by this browser.");t.Player.isBrowserSupported()?e._isDashStream=!0:e._isDashStream=!1,n()}):e._hasHlsSources?t.HLS.then(function(t){var r=t.HLS,i=!1;if("function"==typeof r.isSupported&&(i=r.isSupported()),!i&&o.length===(0,d.default)(e.children).filter(function(e){return"SOURCE"===e.tagName}).length)throw F.TrackingManager.instance.addEvent(new k.TrackingEvent({type:k.TrackingEvent.ERROR,payload:{message:"HLS stream was requested but not supported by this browser.",errorType:"HLS Error"}})),new Error("HLS stream was requested but not supported by this browser.");i?e._isHlsStream=!0:e._isHlsStream=!1,n()}):n()}).then(function(){if(e._isDashStream){var o=a.filter(function(e){return e.hasAttribute("type")&&"application/dash+xml"===e.getAttribute("type")}),s=o[0];t.DASH.then(function(e){i.appendChild(s);var a=t.getOrCreateGlobalDashStream(e);a.load(s.src).then(function(){n()}).catch(function(e){F.TrackingManager.instance.addEvent(new k.TrackingEvent({type:k.TrackingEvent.ERROR,payload:{message:"DASH video load failed",errorType:"DASH Error"}})),r(new Error("DASH video load failed"))})})}else if(e._isHlsStream){var l=a.filter(function(e){return e.hasAttribute("type")&&"application/x-mpegurl"===e.getAttribute("type")}),u=l[0];t.HLS.then(function(a){var o=a.HLS,s=a.AbrController;i.appendChild(u);var l=t.getOrCreateGlobalHlsStream(o,s,e);l.on(o.Events.ERROR,function(){F.TrackingManager.instance.addEvent(new k.TrackingEvent({type:k.TrackingEvent.ERROR,payload:{message:"HLS video load failed",errorType:"HLS Error"}})),r(new Error("HLS video load failed"))}),e._hlsEventEmitterCb=e._hlsManifestParsed.bind(e,u,n),l.on(o.Events.MANIFEST_PARSED,e._hlsEventEmitterCb),l.loadSource(u.src),l.attachMedia(i)}).catch(function(e){r(new Error("HLS video load failed"))})}else{var c=void 0;(0,d.default)(e.children).filter(function(e){return"SOURCE"===e.tagName}).forEach(function(t){"MONO_FLAT"===e.getAttribute("format")&&document.querySelector("meta[name=dl8-customization-no-vr-button]")||e._setCrossOrigin(t.getAttribute("src")),i.appendChild(t),c=t}),c&&(c.onerror=function(t){e.setErrorState("No playable video source found.",c.src,t)}),n()}}).catch(r)})}},{key:"$getSupportedChildrenTags",value:function(){return["dl8-video-preview-sprite","dl8-track"].concat((0,B.getAllowedFeature)("recommendationEnabled")?["dl8-recommendation"]:[]).concat((0,B.getAllowedFeature)("affiliateEnabled")?["dl8-affiliate"]:[]).concat((0,B.getAllowedFeature)("advertisementEnabled")?["dl8-advertisement"]:[])}},{key:"$getContentBadge",value:function(){return{name:"Video",iconClass:"iconVideo"}}},{key:"$createContent",value:function(){var e={};switch(0===(0,d.default)(this.children).filter(function(e){return"SOURCE"===e.tagName}).length&&!this._contentError,D.Dl8Element.checkMandatoryAttributes(this,["format"]),e=D.Dl8Element.assignContent(e,this,"format"),e=(0,l.default)(e,(0,B.getCustomFormat)(e)),e.format){case M.CONTENT_MODE_STEREO_360_LR:case M.CONTENT_MODE_STEREO_360_TB:case M.CONTENT_MODE_STEREO_180_LR:case M.CONTENT_MODE_STEREO_180_TB:case M.CONTENT_MODE_STEREO_180_LR_SPHERICAL:case M.CONTENT_MODE_STEREO_180_TB_SPHERICAL:case M.CONTENT_MODE_STEREO_FISHEYE_LR:case M.CONTENT_MODE_STEREO_FLAT_LR:case M.CONTENT_MODE_STEREO_FLAT_LR_SQUARE:case M.CONTENT_MODE_STEREO_FLAT_TB:case M.CONTENT_MODE_STEREO_FLAT_TB_SQUARE:case M.CONTENT_MODE_STEREO_MESH:case M.CONTENT_MODE_MONO_360:case M.CONTENT_MODE_MONO_180:case M.CONTENT_MODE_MONO_FLAT:break;default:throw new Error("Unsupported video format for "+this.tagName+" detected.")}return e=D.Dl8Element.assignContent(e,this,"room-format"),e.roomFormat&&(this.getAttribute("room-src-left")&&this.getAttribute("room-src-right")?e=(0,l.default)(e,{eyesPreSeparated:!0,srcLeft:this.getAttribute("room-src-left"),srcRight:this.getAttribute("room-src-right")}):this.getAttribute("room-src-left")||this.getAttribute("room-src-right")?D.Dl8Element.checkMandatoryAttributes(this,["room-src-left","room-src-right"]):(D.Dl8Element.checkMandatoryAttributes(this,["room-src"]),e=(0,l.default)(e,{src:this.getAttribute("room-src")}))),e=D.Dl8Element.assignContentBoolean(e,this,"muted"),e=D.Dl8Element.assignContentBoolean(e,this,"loop"),e=D.Dl8Element.assignContentBoolean(e,this,"paused"),e=D.Dl8Element.assignContentDefault(e,this,"preload","auto"),e=D.Dl8Element.assignContent(e,this,"crossorigin"),e=D.Dl8Element.assignContentDefault(e,this,"fps",30,function(e){return parseInt(e,10)},D.Dl8Element.validate(D.Dl8Element.validIfNumberBetween(1,240),"fps must be between 1 and 240")),e=D.Dl8Element.assignContentBoolean(e,this,"disable-tap-to-unmute"),e=D.Dl8Element.assignContentBoolean(e,this,"use-native-controls"),e=D.Dl8Element.assignChildrenContent(e,this,"dl8-video-preview-sprite"),e=D.Dl8Element.assignChildrenContent(e,this,"dl8-track"),(0,B.getAllowedFeature)("recommendationEnabled")&&(e=D.Dl8Element.assignChildrenContent(e,this,"dl8-recommendation")),(0,B.getAllowedFeature)("affiliateEnabled")&&(e=D.Dl8Element.assignChildrenContent(e,this,"dl8-affiliate")),(0,B.getAllowedFeature)("advertisementEnabled")&&(e=D.Dl8Element.assignChildrenContent(e,this,"dl8-advertisement")),(0,l.default)((0,S.default)(t.prototype.__proto__||(0,_.default)(t.prototype),"$createContent",this).call(this),{element:t.globalVideoElement,audioElement:(0,B.needsIOSHack)()?t.globalAudioElement:void 0,type:M.CONTENT_TYPE_VIDEO},e)}},{key:"addEventListener",value:function(e,t){var n=void 0;(n=this._eventListenerNameToParamsMap.get(e))||this._eventListenerNameToParamsMap.set(e,n=new f.default);for(var r=arguments.length,i=Array(r>2?r-2:0),a=2;a<r;a++)i[a-2]=arguments[a];n.set(t,[e,t].concat(i)),this._isEventMirror&&this._addEventListener.apply(this,[e,t].concat(i))}},{key:"_addEventListener",value:function(e,n){var r;if(!this.hasAttribute("loop")||"ended"!==e||!(0,B.isIOS10OrHigher)()){for(var i=arguments.length,a=Array(i>2?i-2:0),o=2;o<i;o++)a[o-2]=arguments[o];(r=t.globalVideoElement).addEventListener.apply(r,[e,n].concat(a))}}},{key:"_removeEventListener",value:function(e,n){for(var r,i=arguments.length,a=Array(i>2?i-2:0),o=2;o<i;o++)a[o-2]=arguments[o];(r=t.globalVideoElement).removeEventListener.apply(r,[e,n].concat(a))}},{key:"removeEventListener",value:function(e,t){var n=this._eventListenerNameToParamsMap.get(e);if(n){var r=n.get(t);if(r&&(n.delete(t),this._isEventMirror)){for(var i=arguments.length,a=Array(i>2?i-2:0),o=2;o<i;o++)a[o-2]=arguments[o];this._removeEventListener.apply(this,[e,t].concat(a))}}}},{key:"_enableVideoEventMirror",value:function(){var e=this;this._isEventMirror=!0,this._eventListenerNameToParamsMap.forEach(function(t){t.forEach(function(t){return e._addEventListener.apply(e,(0,o.default)(t))})})}},{key:"_disableVideoEventMirror",value:function(){var e=this;this._isEventMirror=!1,this._eventListenerNameToParamsMap.forEach(function(t){t.forEach(function(t){return e._removeEventListener.apply(e,(0,o.default)(t))})})}},{key:"_setCrossOrigin",value:function(e){e&&!e.startsWith("data:")&&(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//"))&&(!this.hasAttribute("crossorigin")||"anonymous"!==this.getAttribute("crossorigin")&&"use-credentials"!==this.getAttribute("crossorigin"))&&t.globalVideoElement.setAttribute("crossorigin","anonymous")}},{key:"contentElement",get:function(){return t.globalVideoElement}},{key:"contentError",set:function(e){this._contentError=e},get:function(){return this._contentError}},{key:"currentTime",get:function(){return this.contentElement.currentTime}},{key:"duration",get:function(){return this.contentElement.duration}}]),t}(P.Dl8EmbedElement)},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PhysicalCamera=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(8),c=r(d),f=n(2),h=r(f),_=n(5),A=r(_),m=n(7),p=n(10),g=n(17),E=n(23),v=n(24),b=n(28),S=n(94),T=n(178),x=n(32),y=n(859),C=r(y),w=n(860),M=r(w),D=n(861),P=r(D),R=n(862),I=r(R),L=n(863),O=r(L),N=n(366),B=r(N),F=n(864),k=r(F),U=t.PhysicalCamera=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._updateAspect=function(e){n._filmWidth=e.width/e.height*n._filmHeight,n._updateRenderCamera(),p.Context.eventEmitter.emit(n,t.EVENT_ASPECT_CHANGED)},n._nearPlane=m.Util.getParam(e,"nearPlane",.1),n._farPlane=m.Util.getParam(e,"farPlane",100),n._filmHeight=m.Util.getParam(e,"filmHeight",24),n._filmWidth=p.Context.renderer.width/p.Context.renderer.height*n._filmHeight,n._filmSpeed=m.Util.getParam(e,"filmSpeed",470),n._focalDistance=m.Util.getParam(e,"focalDistance",10),n._focalLength=m.Util.getParam(e,"focalLength",50),n._fStop=m.Util.getParam(e,"fStop",16),n._shutterSpeed=m.Util.getParam(e,"shutterSpeed",.004),n._gradientEnabled=m.Util.getParam(e,"gradientEnabled",!1),n._gradientColorA=m.Util.getParam(e,"gradientColorA",new E.ColorRGBA(E.ColorRGBA.BLACK_TRANSPARENT)),n._gradientColorB=m.Util.getParam(e,"gradientColorB",new E.ColorRGBA(E.ColorRGBA.BLACK_TRANSPARENT)),n._gradientDirection=m.Util.getParam(e,"gradientDirection",[0,1]),n._autoFocus=m.Util.getParam(e,"autoFocus",!0),n._autoFocusSpeed=m.Util.getParam(e,"autoFocusSpeed",.2),n._autoFocusPositionX=m.Util.getParam(e,"autoFocusPositionX",.5),n._autoFocusPositionY=m.Util.getParam(e,"autoFocusPositionY",.5),n._autoFocusRegionSize=m.Util.getParam(e,"autoFocusRegionSize",.02),n._autoExposure=m.Util.getParam(e,"autoExposure",!1),n._autoExposureSpeed=m.Util.getParam(e,"autoExposureSpeed",.1),n._autoExposurePositionX=m.Util.getParam(e,"autoExposurePositionX",.5),n._autoExposurePositionY=m.Util.getParam(e,"autoExposurePositionY",.5),n._autoExposureRegionSize=m.Util.getParam(e,"autoExposureRegionSize",.6),n._optimalEV=m.Util.getParam(e,"optimalEV",.114),n._autoExposureMode=m.Util.getParam(e,"autoExposureMode",t.EXPOSURE_APERTURE_PRIORITY),n._cocThreshold=m.Util.getParam(e,"cocThreshold",2),n._cocThresholdRange=m.Util.getParam(e,"cocThresholdRange",3),n._apertureImages=[C.default,M.default,P.default,I.default],n._pupilImage=O.default,n._apertureIlluminationCoefficients=[176.23/256,.69359375,178.59/256,171.61/256],n._glareThreshold=m.Util.getParam(e,"glareThreshold",2),n._glareVisibility=m.Util.getParam(e,"glareVisibility",1),n._ghostingThreshold=m.Util.getParam(e,"ghostingThreshold",2),n._ghostingVisibility=m.Util.getParam(e,"ghostingVisibility",.01),n._opticalVignettingStrength=m.Util.getParam(e,"opticalVignettingStrength",1),n._lensDirtAmount=m.Util.getParam(e,"lensDirtAmount",1),n.lensDirtSrc=m.Util.getParam(e,"lensDirtSrc",B.default),n._grain=B.default,n.gradingLutSrc=m.Util.getParam(e,"gradingLutSrc",k.default),n._gradingHue=m.Util.getParam(e,"gradingHue",1),n._gradingSaturation=m.Util.getParam(e,"gradingSaturation",1),n._gradingValue=m.Util.getParam(e,"gradingValue",1),n._toneMap=m.Util.getParam(e,"toneMap",t.TONEMAP_FILMIC),n._tiltShiftBlurAmount=m.Util.getParam(e,"tiltShiftBlurAmount",0),n._chromaticAbberationAmount=m.Util.getParam(e,"chromaticAbberationAmount",.001),n._sharpenAmount=m.Util.getParam(e,"sharpenAmount",.5),n._keepConstantMagnification=m.Util.getParam(e,"keepConstantMagnification",!1),n._minFStop=1.4,n._maxFStop=22,n._minFocalDistance=.1,n._lensTransmittance=1,n._minShutterSpeed=0,n._maxShutterSpeed=128,n._minFilmSpeed=25,n._maxFilmSpeed=1600,n._kn=1,n._camera=new S.Camera,n._projection=[0,0,0,0],n._updateRenderCamera(),p.Context.eventEmitter.emit(n,t.EVENT_HDR_PARAMS_CHANGED),p.Context.eventEmitter.on(T.Application.EVENT_RESIZE,n._updateAspect),n}return(0,A.default)(t,e),(0,h.default)(t,[{key:"$serialize",value:function(){return{name:"PhysicalCamera",params:{nearPlane:this._nearPlane,farPlane:this._farPlane,filmHeight:this._filmHeight,filmWidth:this._filmWidth,filmSpeed:this._filmSpeed,focalDistance:this._focalDistance,focalLength:this._focalLength,fStop:this._fStop,shutterSpeed:this._shutterSpeed,gradientEnabled:this._gradientEnabled,gradientColorA:this._gradientColorA,gradientColorB:this._gradientColorB,gradientDirection:this._gradientDirection,autoFocus:this._autoFocus,autoFocusSpeed:this._autoFocusSpeed,autoFocusPositionX:this._autoFocusPositionX,autoFocusPositionY:this._autoFocusPositionY,autoFocusRegionSize:this._autoFocusRegionSize,autoExposure:this._autoExposure,autoExposureSpeed:this._autoExposureSpeed,autoExposurePositionX:this._autoExposurePositionX,autoExposurePositionY:this._autoExposurePositionY,autoExposureRegionSize:this._autoExposureRegionSize,optimalEV:this._optimalEV,autoExposureMode:this._autoExposureMode,cocThreshold:this._cocThreshold,cocThresholdRange:this._cocThresholdRange,apertureImages:this._apertureImages,pupilImage:this._pupilImage,apertureIlluminationCoefficients:this._apertureIlluminationCoefficients,glareThreshold:this._glareThreshold,glareVisibility:this._glareVisibility,ghostingThreshold:this._ghostingThreshold,ghostingVisibility:this._ghostingVisibility,opticalVignettingStrength:this._opticalVignettingStrength,lensDirtAmount:this._lensDirtAmount,lensDirtSrc:this.lensDirtSrc,grain:this._grain,gradingLutSrc:this.gradingLutSrc,gradingHue:this._gradingHue,gradingSaturation:this._gradingSaturation,gradingValue:this._gradingValue,toneMap:this._toneMap,tiltShiftBlurAmount:this._tiltShiftBlurAmount,chromaticAbberationAmount:this._chromaticAbberationAmount,sharpenAmount:this._sharpenAmount,keepConstantMagnification:this._keepConstantMagnification}}}}]),(0,h.default)(t,[{key:"makeActive",value:function(){return this.$scene?void p.Context.eventEmitter.emit(this,t.EVENT_MADE_ACTIVE):void p.Context.logger.warn(this,"tried to activate camera that is not in scene.")}},{key:"dtor",value:function(){(0,c.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"dtor",this).call(this),p.Context.eventEmitter.removeListener(T.Application.EVENT_RESIZE,this._updateAspect)}},{key:"_setFocalDistance",value:function(e){e<this._minFocalDistance?this._focalDistance!==this._minFocalDistance&&(this._focalDistance=this._minFocalDistance,this._updateRenderCamera(),p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED)):this._focalDistance!==e&&(this._focalDistance=e,this._updateRenderCamera(),p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))}},{key:"setLens",value:function(e,t,n){this.focalLength=(e-1)*(1/t-1/n)}},{key:"setLensPower",value:function(e){this.focalLength=1/e}},{key:"openingUpByOneStop",value:function(){var e=this._focalLength/this._fStop;e+=e*Math.sqrt(2);var t=this._focalLength/e;this.fStop=t}},{key:"closingDownByOneStop",value:function(){var e=this._focalLength/this._fStop;e-=e*Math.sqrt(2),this.fStop=this._focalLength/e}},{key:"adjustFocalDistance",value:function(e){this._autoFocus&&this._setFocalDistance(this._focalDistance+this._autoFocusSpeed*(e-this._focalDistance))}},{key:"adjustExposure",value:function(e){this._autoExposure&&(this._autoExposureMode===t.EXPOSURE_SHUTTER_PRIORITY?this.fStop=this._fStop*Math.pow(e/Math.max(this._optimalEV,1e-4),.5*this._autoExposureSpeed):this._autoExposureMode===t.EXPOSURE_APERTURE_PRIORITY&&(this.shutterSpeed=this._shutterSpeed*Math.pow(this._optimalEV/Math.max(e,1e-4),this._autoExposureSpeed)))}},{key:"lookDirection",value:function(e,t){return this.updateTransform(),this._camera.lookDirection(e,t)}},{key:"lookAt",value:function(e,t){return this.updateTransform(),this._camera.lookAt(e,t)}},{key:"getPickRayNorm",value:function(e,t,n){return this.updateTransform(),this._camera.getPickRayNorm(e,t,n)}},{key:"getPickRay",value:function(e,t,n,r,i){return this.updateTransform(),this._camera.getPickRay(e,t,n,r,i)}},{key:"$onTransformUpdated",value:function(){this._camera.location=this.worldTransform.position}},{key:"_updateProjection",value:function(){var e=this._camera.frustum[S.Camera.DMAX]/(this._camera.frustum[S.Camera.DMAX]-this._camera.frustum[S.Camera.DMIN]),n=-this._camera.frustum[S.Camera.DMAX]*this._camera.frustum[S.Camera.DMIN]/(this._camera.frustum[S.Camera.DMAX]-this._camera.frustum[S.Camera.DMIN]),r=this._camera.frustum[S.Camera.DMIN],i=this._camera.frustum[S.Camera.DMAX];e===this._projection[0]&&n===this._projection[1]&&r===this._projection[2]&&i===this._projection[3]||(this._projection[0]=e,this._projection[1]=n,this._projection[2]=r,this._projection[3]=i,p.Context.eventEmitter.emit(this,t.EVENT_CAMERA_PROJECTION_CHANGED))}},{key:"_updateRenderCamera",value:function(){this._camera.setFrustum(this.fov,this.aspect,this._nearPlane,this._farPlane),this._updateProjection()}},{key:"visible",get:function(){return this._visible},set:function(e){this._visible!==e&&(this._visible=e,p.Context.eventEmitter.emit(this,v.Scene.EVENT_SCENELIST_NEEDS_UPDATE),e&&this.$scene&&this.makeActive())}},{key:"camera",get:function(){return this._camera}},{key:"filmHeight",set:function(e){this._filmHeight=e,this._filmWidth=p.Context.renderer.width/p.Context.renderer.height*this._filmHeight,this._updateRenderCamera()},get:function(){return this._filmHeight}},{key:"filmWidth",set:function(e){this._filmWidth!==e&&(this._filmWidth=e,this._updateRenderCamera(),p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._filmWidth}},{key:"cocThresholdRange",set:function(e){this._cocThresholdRange!==e&&(this._cocThresholdRange=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._cocThresholdRange}},{key:"cocThreshold",set:function(e){this._cocThreshold!==e&&(this._cocThreshold=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._cocThreshold}},{key:"focalLength",set:function(e){this._focalLength!==e&&(this._focalLength=e,this._updateRenderCamera(),p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._focalLength}},{key:"autoFocus",set:function(e){this._autoFocus=e},get:function(){return this._autoFocus}},{key:"autoFocusSpeed",set:function(e){this._autoFocusSpeed=e},get:function(){return this._autoFocusSpeed}},{key:"autoFocusPositionX",set:function(e){this._autoFocusPositionX!==e&&(this._autoFocusPositionX=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED)); },get:function(){return this._autoFocusPositionX}},{key:"autoFocusPositionY",set:function(e){this._autoFocusPositionY!==e&&(this._autoFocusPositionY=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._autoFocusPositionY}},{key:"autoFocusRegionSize",set:function(e){this._autoFocusRegionSize!==e&&(this._autoFocusRegionSize=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._autoFocusRegionSize}},{key:"autoExposure",set:function(e){this._autoExposure=e},get:function(){return this._autoExposure}},{key:"autoExposurePositionX",set:function(e){this._autoExposurePositionX!==e&&(this._autoExposurePositionX=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._autoExposurePositionX}},{key:"autoExposurePositionY",set:function(e){this._autoExposurePositionY!==e&&(this._autoExposurePositionY=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._autoExposurePositionY}},{key:"autoExposureRegionSize",set:function(e){this._autoExposureRegionSize!==e&&(this._autoExposureRegionSize=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._autoExposureRegionSize}},{key:"autoExposureMode",set:function(e){this._autoExposureMode=e},get:function(){return this._autoExposureMode}},{key:"autoExposureSpeed",set:function(e){this._autoExposureSpeed=e},get:function(){return this._autoExposureSpeed}},{key:"optimalEV",set:function(e){this._optimalEV=e},get:function(){return this._optimalEV}},{key:"kn",set:function(e){this._kn!==e&&(this._kn=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._kn}},{key:"focalDistance",set:function(e){this._autoFocus||this._setFocalDistance(e)},get:function(){return this._focalDistance}},{key:"minFocalDistance",set:function(e){this._minFocalDistance=e},get:function(){return this._minFocalDistance}},{key:"fStop",set:function(e){var n=g.MathUtil.clamp(e,this._minFStop,this._maxFStop);this._fStop!==n&&(this._fStop=n,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._fStop}},{key:"minFStop",set:function(e){this._minFStop=e},get:function(){return this._minFStop}},{key:"maxFStop",set:function(e){this._maxFStop=e},get:function(){return this._maxFStop}},{key:"shutterSpeed",set:function(e){var n=g.MathUtil.clamp(e,this._minShutterSpeed,this._maxShutterSpeed);this._shutterSpeed!==n&&(this._shutterSpeed=n,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._shutterSpeed}},{key:"minShutterSpeed",set:function(e){this._minShutterSpeed=e},get:function(){return this._minShutterSpeed}},{key:"maxShutterSpeed",set:function(e){this._maxShutterSpeed=e},get:function(){return this._maxShutterSpeed}},{key:"filmSpeed",set:function(e){var n=g.MathUtil.clamp(e,this._minFilmSpeed,this._maxFilmSpeed);n!==this._filmSpeed&&(this._filmSpeed=n,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._filmSpeed}},{key:"minFilmSpeed",set:function(e){this._minFilmSpeed=e},get:function(){return this._minFilmSpeed}},{key:"maxFilmSpeed",set:function(e){this._maxFilmSpeed=e},get:function(){return this._maxFilmSpeed}},{key:"lensTransmittance",set:function(e){this._lensTransmittance!==e&&(this._lensTransmittance=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._lensTransmittance}},{key:"lensDirtAmount",set:function(e){e!==this._lensDirtAmount&&(this._lensDirtAmount=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._lensDirtAmount}},{key:"lensDirt",set:function(e){e!==this._lensDirt&&(this._lensDirt=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._lensDirt}},{key:"lensDirtSrc",set:function(e){var n=this;if(this._lensDirtSrc!==e){var r=new x.Texture({type:x.Texture.IMAGE,data:[e],generateMipmaps:!1,immediateLoad:!1,onLoaded:function(){n._lensDirtSrc=e,p.Context.eventEmitter.emit(n,t.EVENT_HDR_PARAMS_CHANGED)}});this._lensDirt&&this._lensDirt.dtor(),this._lensDirt=r,this._lensDirtSrc=e}},get:function(){return this._lensDirtSrc}},{key:"ghostingVisibility",set:function(e){e!==this._ghostingVisibility&&(this._ghostingVisibility=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._ghostingVisibility}},{key:"ghostingThreshold",set:function(e){e!==this._ghostingThreshold&&(this._ghostingThreshold=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._ghostingThreshold}},{key:"glareVisibility",set:function(e){e!==this._glareVisibility&&(this._glareVisibility=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._glareVisibility}},{key:"glareThreshold",set:function(e){e!==this._glareThreshold&&(this._glareThreshold=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._glareThreshold}},{key:"opticalVignettingStrength",set:function(e){e!==this._opticalVignettingStrength&&(this._opticalVignettingStrength=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._opticalVignettingStrength}},{key:"grain",set:function(e){e!==this._grain&&(this._grain=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._grain}},{key:"apertureImages",set:function(e){m.Util.deepEqual(e,this._apertureImages)||(this._apertureImages=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._apertureImages}},{key:"pupilImage",set:function(e){e!==this._pupilImage&&(this._pupilImage=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._pupilImage}},{key:"apertureIlluminationCoefficients",set:function(e){m.Util.deepEqual(this._apertureIlluminationCoefficients,e)||(this._apertureIlluminationCoefficients=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._apertureIlluminationCoefficients}},{key:"gradientEnabled",set:function(e){e!==this._gradientEnabled&&(this._gradientEnabled=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._gradientEnabled}},{key:"gradientColorA",set:function(e){e.equals(this._gradientColorA)||(this._gradientColorA=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._gradientColorA}},{key:"gradientColorB",set:function(e){e.equals(this._gradientColorB)||(this._gradientColorB=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._gradientColorB}},{key:"gradientDirection",set:function(e){m.Util.deepEqual(e,this._gradientDirection)||(this._gradientDirection=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._gradientDirection}},{key:"projection",get:function(){return this._projection}},{key:"grainAmount",get:function(){return(this._filmSpeed-this._minFilmSpeed)/(this._maxFilmSpeed-this._minFilmSpeed)}},{key:"lensDiameter",get:function(){return this._focalLength/this._fStop}},{key:"exposureValue",get:function(){return Math.log(this._fStop*this._fStop/this._shutterSpeed)/Math.log(2)}},{key:"fov",get:function(){var e=this._focalLength;this._keepConstantMagnification&&(e*=this.aspect);var t=e/(1e3*this._focalDistance-e);return g.MathUtil.radToDeg(2*Math.atan(this.frameSize/(2*e*(t+1))))}},{key:"frameSize",get:function(){return this._keepConstantMagnification?Math.min(this._filmHeight,this._filmWidth):this._filmHeight}},{key:"aspect",get:function(){return this._filmWidth/this._filmHeight}},{key:"lensDistanceToFilm",get:function(){return this._focalLength*this._focalDistance*1e3/(1e3*this._focalDistance-this._focalLength)}},{key:"apertureIdx",get:function(){return Math.round((this._apertureImages.length-1)*(this._fStop-this._minFStop)/(this._maxFStop-this._minFStop))}},{key:"gradingLutSrc",set:function(e){var n=this;if(this._gradingLutSrc!==e){var r=new x.Texture({type:x.Texture.IMAGE,data:[e],generateMipmaps:!1,immediateLoad:!1,filterType:{min:x.Texture.NEAREST,mag:x.Texture.NEAREST},onLoaded:function(){n._gradingLutSrc=e,p.Context.eventEmitter.emit(n,t.EVENT_HDR_PARAMS_CHANGED)}});this._gradinglut&&this._gradinglut.dtor(),this._gradingLut=r,this._gradingLutSrc=e}},get:function(){return this._gradingLutSrc}},{key:"gradingLut",set:function(e){this._gradingLut!==e&&(this._gradingLut=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._gradingLut}},{key:"chromaticAbberationAmount",set:function(e){e!==this._chromaticAbberationAmount&&(this._chromaticAbberationAmount=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._chromaticAbberationAmount}},{key:"sharpenAmount",set:function(e){e!==this._sharpenAmount&&(this._sharpenAmount=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))},get:function(){return this._sharpenAmount}},{key:"gradingHue",get:function(){return this._gradingHue},set:function(e){this._gradingHue=e}},{key:"gradingSaturation",get:function(){return this._gradingSaturation},set:function(e){this._gradingSaturation=e}},{key:"gradingValue",get:function(){return this._gradingValue},set:function(e){this._gradingValue=e}},{key:"farPlane",set:function(e){this._farPlane!==e&&(this._farPlane=e,this._updateRenderCamera())},get:function(){return this._farPlane}},{key:"nearPlane",set:function(e){this._nearPlane!==e&&(this._nearPlane=e,this._updateRenderCamera())},get:function(){return this._nearPlane}},{key:"uVector",get:function(){return this._camera.uVector}},{key:"dVector",get:function(){return this._camera.dVector}},{key:"rVector",get:function(){return this._camera.rVector}},{key:"toneMap",get:function(){return this._toneMap},set:function(e){m.Util.deepEqual(e,this._toneMap)||(this._toneMap=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))}},{key:"tiltShiftBlurAmount",get:function(){return this._tiltShiftBlurAmount},set:function(e){m.Util.deepEqual(e,this._tiltShiftBlurAmount)||(this._tiltShiftBlurAmount=e,p.Context.eventEmitter.emit(this,t.EVENT_HDR_PARAMS_CHANGED))}},{key:"keepConstantMagnification",get:function(){return this._keepConstantMagnification},set:function(e){this._keepConstantMagnification=e}}]),t}(b.SpatialNode);U.EXPOSURE_APERTURE_PRIORITY="aperturePriority",U.EXPOSURE_SHUTTER_PRIORITY="shutterPriority",U.EXPOSURE_PROGRAM="program",U.TONEMAP_SIMPLE="tonemapSimple",U.TONEMAP_FILMIC="tonemapFilmic",U.EVENT_HDR_PARAMS_CHANGED="physicalCameraEventHdrParamsChanged",U.EVENT_CAMERA_PROJECTION_CHANGED="physicalCameraEventProjectionChanged",U.EVENT_MADE_ACTIVE="physicalCameraEventMadeActive",U.EVENT_ASPECT_CHANGED="physicalCameraEventAspectChanged"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.AxisAlignedBoundingBox=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(6),c=r(d),f=n(5),h=r(f),_=n(12),A=n(7),m=n(17),p=n(10),g=n(18),E=n(95),v=function(e){function t(e){(0,s.default)(this,t);var n=(0,c.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._min=A.Util.getParam(e,"min",(new _.Vector3).copyFrom(_.Vector3.POSITIVE_INFINITY)),n._max=A.Util.getParam(e,"max",(new _.Vector3).copyFrom(_.Vector3.NEGATIVE_INFINITY)),n._center=new _.Vector3,n._tmp=new _.Vector3,n._amin=[],n._amax=[],n._minTmp=[],n._maxTmp=[],n._matrixTmp=[],n._p=new _.Vector3,n._n=new _.Vector3,n}return(0,h.default)(t,e),(0,u.default)(t,[{key:"$serialize",value:function(){return{name:"AxisAlignedBoundingBox",params:{min:this._min,max:this._max}}}},{key:"_calcCenter",value:function(e,t){this._center.copyFrom(e).add(t).mult(.5)}},{key:"reset",value:function(){this._min.copyFrom(_.Vector3.POSITIVE_INFINITY),this._max.copyFrom(_.Vector3.NEGATIVE_INFINITY)}},{key:"whichSide",value:function(e){var t=e.normal;this._p.copyFrom(this._min),t.x>=0&&(this._p.x=this._max.x),t.y>=0&&(this._p.y=this._max.y),t.z>=0&&(this._p.z=this._max.z);var n=A.Util.orientationPlanePoint(e,this._p);if(n<0)return-1;this._n.copyFrom(this._max),t.x>=0&&(this._n.x=this._min.x),t.y>=0&&(this._n.y=this._min.y),t.z>=0&&(this._n.z=this._min.z);var r=A.Util.orientationPlanePoint(e,this._n);return r<0&&n<0?-1:r>0&&n>0?1:0}},{key:"transform",value:function(e){this._amin[0]=this._min.x,this._amin[1]=this._min.y,this._amin[2]=this._min.z,this._amax[0]=this._max.x,this._amax[1]=this._max.y,this._amax[2]=this._max.z,this._minTmp[0]=e.matrix._storage[12],this._minTmp[1]=e.matrix._storage[13],this._minTmp[2]=e.matrix._storage[14],this._maxTmp[0]=e.matrix._storage[12],this._maxTmp[1]=e.matrix._storage[13],this._maxTmp[2]=e.matrix._storage[14];var t=0,n=0;e.matrix.copyToArray(this._matrixTmp);for(var r=0;r<3;++r)for(var i=0;i<3;++i)t=this._matrixTmp[r+4*i]*this._amin[i],n=this._matrixTmp[r+4*i]*this._amax[i],t<n?(this._minTmp[r]+=t,this._maxTmp[r]+=n):(this._minTmp[r]+=n,this._maxTmp[r]+=t);return this._min.set(this._minTmp[0],this._minTmp[1],this._minTmp[2]),this._max.set(this._maxTmp[0],this._maxTmp[1],this._maxTmp[2]),this}},{key:"copyFrom",value:function(e){return this._max.x=e.max.x,this._max.y=e.max.y,this._max.z=e.max.z,this._min.x=e.min.x,this._min.y=e.min.y,this._min.z=e.min.z,this}},{key:"merge",value:function(e){return this._max.x=Math.max(e.max.x,this._max.x),this._max.y=Math.max(e.max.y,this._max.y),this._max.z=Math.max(e.max.z,this._max.z),this._min.x=Math.min(e.min.x,this._min.x),this._min.y=Math.min(e.min.y,this._min.y),this._min.z=Math.min(e.min.z,this._min.z),this}},{key:"calculateFromVertexBuffer",value:function(e){var t=e.vertexData,n=e.attributes;if(3!==n.getAttributeChannels(E.Attributes.POSITION))return void p.Context.logger.warn(this,"Could not calculate bounding box for geometry without position channels");var r=n.getAttributeIteratorInfo(E.Attributes.POSITION),i=r.byteStride,a=r.byteOffset,o=e.sizeBytes/e.size(),s=a/o,l=i/o;this._max.x=this._max.y=this._max.z=Number.NEGATIVE_INFINITY,this._min.x=this._min.y=this._min.z=Number.POSITIVE_INFINITY;for(var u=this._tmp,d=s;d<t.length;d+=l)u.x=t[d],u.y=t[d+1],u.z=t[d+2],this._max.x=Math.max(u.x,this._max.x),this._max.y=Math.max(u.y,this._max.y),this._max.z=Math.max(u.z,this._max.z),this._min.x=Math.min(u.x,this._min.x),this._min.y=Math.min(u.y,this._min.y),this._min.z=Math.min(u.z,this._min.z);this._min.x===this._max.x&&(this._min.x-=m.MathUtil.ZERO_TOLERANCE,this._max.x+=m.MathUtil.ZERO_TOLERANCE),this._min.y===this._max.y&&(this._min.y-=m.MathUtil.ZERO_TOLERANCE,this._max.y+=m.MathUtil.ZERO_TOLERANCE),this._min.z===this._max.z&&(this._min.z-=m.MathUtil.ZERO_TOLERANCE,this._max.z+=m.MathUtil.ZERO_TOLERANCE)}},{key:"valid",get:function(){return!(this._min.equals(_.Vector3.POSITIVE_INFINITY)&&this._max.equals(_.Vector3.NEGATIVE_INFINITY))}},{key:"min",get:function(){return this._min},set:function(e){this._min.copyFrom(e)}},{key:"max",get:function(){return this._max},set:function(e){this._max.copyFrom(e)}},{key:"center",get:function(){return this._calcCenter(this._min,this._max),this._center}},{key:"radius",get:function(){return this._tmp.copyFrom(this._max).sub(this._min),.5*this._tmp.magnitude()}}]),t}(g.Serializable);t.AxisAlignedBoundingBox=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Vector4=void 0;var i=n(14),a=r(i),o=n(51),s=r(o),l=n(4),u=r(l),d=n(1),c=r(d),f=n(6),h=r(f),_=n(2),A=r(_),m=n(5),p=r(m),g=n(17),E=n(18),v=t.Vector4=function(e){function t(){(0,c.default)(this,t);var e=(0,h.default)(this,(t.__proto__||(0,u.default)(t)).call(this));return 1===arguments.length?"object"===(0,s.default)(arguments[0])?e.load(arguments[0]):"number"==typeof arguments[0]?e.x=e.y=e.z=e.w=arguments[0]:e.zero():4===arguments.length?(e.x=arguments[0],e.y=arguments[1],e.z=arguments[2],e.w=arguments[3]):e.zero(),e}return(0,p.default)(t,e),(0,A.default)(t,[{key:"$serialize",value:function(){return{name:"Vector4",paras:[this.x,this.y,this.z,this.w]}}}],[{key:"sub",value:function(e,n){var r=new t;return r.copyFrom(e),r.sub(n),r}},{key:"add",value:function(e,n){var r=new t;return r.copyFrom(e),r.add(n),r}},{key:"tmp",value:function(e){var n=void 0;return(n=t._pool.get(e))||t._pool.set(e,n=new t),n}}]),(0,A.default)(t,[{key:"load",value:function(){if(1!==arguments.length||"object"!==(0,s.default)(arguments[0]))throw Error("trying to instantiate Vector4 with incompatible type");var e=arguments[0];return"length"in e&&4===e.length?(this.x=e[0],this.y=e[1],this.z=e[2],this.w=e[3]):arguments[0]instanceof t&&(this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w),this}},{key:"copyFrom",value:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this}},{key:"zero",value:function(){return this.x=0,this.y=0,this.z=0,this.w=0,this}},{key:"mult",value:function(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}},{key:"div",value:function(e){return this.x/=e,this.y/=e,this.z/=e,this.w/=e,this}},{key:"add",value:function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}},{key:"addScalar",value:function(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}},{key:"sub",value:function(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}},{key:"normalize",value:function(){var e=this.magnitude(),t=void 0;return t=0===e?0:1/e,this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}},{key:"neg",value:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}},{key:"set",value:function(e,t,n,r){return this.x=e,this.y=t,this.z=n,this.w=r,this}},{key:"equals",value:function(e){return this.x===e.x&&this.y===e.y&&this.z===e.z&&this.w===e.w}},{key:"almostEquals",value:function(e,t){return g.MathUtil.almostEquals(this.x,e.x,t)&&g.MathUtil.almostEquals(this.y,e.y,t)&&g.MathUtil.almostEquals(this.z,e.z,t)&&g.MathUtil.almostEquals(this.w,e.w,t)}},{key:"magnitudeSquared",value:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}},{key:"magnitude",value:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}},{key:"setMagnitude",value:function(e){var t=this.magnitude();return 0!==t&&e!==t&&this.mult(e/t),this}},{key:"distanceSquared",value:function(e){return(e.x-this.x)*(e.x-this.x)+(e.y-this.y)*(e.y-this.y)+(e.z-this.z)*(e.z-this.z)+(e.w-this.w)*(e.w-this.w)}},{key:"distance",value:function(e){return Math.sqrt((e.x-this.x)*(e.x-this.x)+(e.y-this.y)*(e.y-this.y)+(e.z-this.z)*(e.z-this.z)+(e.w-this.w)*(e.w-this.w))}},{key:"max",value:function(e){return this.x=Math.max(e.x,this.x),this.y=Math.max(e.y,this.y),this.z=Math.max(e.z,this.z),this.w=Math.max(e.w,this.w),this}},{key:"min",value:function(e){return this.x=Math.min(e.x,this.x),this.y=Math.min(e.y,this.y),this.z=Math.min(e.z,this.z),this.w=Math.min(e.w,this.w),this}},{key:"get",value:function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w}}},{key:"getAsArray",value:function(){return[this.x,this.y,this.z,this.w]}},{key:"getAsFloat32Array",value:function(){return new Float32Array(this.getAsArray())}},{key:"toString",value:function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}]),t}(E.Serializable);v.ZERO=new v(0,0,0,0),v.ONE=new v(1,1,1,1),v._pool=new a.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ViewerLibrary=void 0;var i=n(14),a=r(i),o=n(138);t.ViewerLibrary=new a.default([["Samsung Gear VR SM-R320",new o.CardboardViewer({id:"Samsung Gear VR SM-R320",label:"Samsung Gear VR Innovator Edition",url:"https://www.samsung.com/us/business/support/owners/product/gear-vr-innovator-edition-sm-r320/",interLensDistance:.05999999865889549,baselineLensDistance:.03500000014901161,fov:48,screenLensDistance:.04100000113248825,distortionCoefficients:[.2150000035762787,.20999999344348907],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!0})],["Samsung Gear VR SM-R322",new o.CardboardViewer({id:"Samsung Gear VR SM-R322",label:"Samsung Gear VR",url:"https://www.samsung.com/us/mobile/virtual-reality/gear-vr/gear-vr-sm-r322nzwaxar/",interLensDistance:.05999999865889549,screenLensDistance:.03500000014901161,fov:50,baselineLensDistance:.03400000184774399,distortionCoefficients:[.05000000074505806,.25],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!0})],["POP! CARDBOARD 3.0",new o.CardboardViewer({id:"POP! CARDBOARD 3.0",label:"POP! CARDBOARD 3.0",url:"http://mrcardboard.eu/",interLensDistance:.050999999046325684,screenLensDistance:.0430000014603138,fov:50,baselineLensDistance:.03700000047683716,distortionCoefficients:[.33000001311302185,.009999999776482582],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Alcatel VR Viewer V1",new o.CardboardViewer({id:"Alcatel VR Viewer V1",label:"Alcatel VR Viewer V1",url:"http://www.alcatelonetouch.us/virtual-reality-goggles",interLensDistance:.05999999865889549,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.5,.5],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["Baofeng Mojing 4",new o.CardboardViewer({id:"Baofeng Mojing 4",label:"Baofeng Mojing 4",url:"http://www.mojing.cn/product_1000023.html",interLensDistance:.0560000017285347,screenLensDistance:.06300000101327896,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.6100000143051147,1.1299999952316284],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["FiiT VR",new o.CardboardViewer({id:"FiiT VR",label:"FiiT VR",url:"http://fiitvr.com/",interLensDistance:.06300000101327896,screenLensDistance:.04100000113248825,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.20999999344348907,.20999999344348907],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["J-Deal",new o.CardboardViewer({id:"J-Deal",label:"J-Deal",url:"https://www.amazon.com/j-deal%C3%82%C2%AE-virtual-cardboard-smartphones-cellphones/dp/b013qwa0sk",interLensDistance:.06800000369548798,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.019999999552965164,.019999999552965164],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["Powis ViewR",new o.CardboardViewer({id:"Powis ViewR",label:"Powis ViewR",url:"http://powiscustom.com/",interLensDistance:.06350000202655792,screenLensDistance:.06095999851822853,fov:50,baselineLensDistance:.033782001584768295,distortionCoefficients:[.2813781201839447,.4941614866256714],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["Teefan VRA TF-VRA88004",new o.CardboardViewer({id:"Teefan VRA TF-VRA88004",label:"Teefan VRA TF-VRA88004",url:"https://www.virtual-reality-shop.co.uk/teefan/",interLensDistance:.05999999865889549,screenLensDistance:.06199999898672104,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["Unicorn VR",new o.CardboardViewer({id:"Unicorn VR",label:"Unicorn VR",url:"http://www.novovr.com/products/unicornvr-version-3d-vr-virtual-reality-glasses",interLensDistance:.06700000166893005,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.30000001192092896,.30000001192092896],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["Wearality Sky 0.1",new o.CardboardViewer({id:"Wearality Sky 0.1",label:"Wearality Sky 0.1",url:"http://www.wearality.com/wearalitysky/",interLensDistance:.06599999964237213,screenLensDistance:.029999999329447746,fov:75,baselineLensDistance:.03500000014901161,distortionCoefficients:[.11999999731779099,.15000000596046448],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["2VR Stimuli VR",new o.CardboardViewer({id:"2VR Stimuli VR",label:"2VR Stimuli VR",url:"http://www.stimuli.us/",interLensDistance:.06300000101327896,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03200000151991844,distortionCoefficients:[.0010000000474974513,.0010000000474974513],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["ZeissVROne",new o.CardboardViewer({id:"ZeissVROne",label:"Zeiss VR One",url:"http://vrone.us/",interLensDistance:.06199999898672104,screenLensDistance:.03700000047683716,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.10000000149011612,1],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["ZeissVROnePlus",new o.CardboardViewer({id:"ZeissVROnePlus",label:"Zeiss VR One Plus",url:"http://vrone.us/",interLensDistance:.06199999898672104,screenLensDistance:.03700000047683716,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.10000000149011612,1],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Zebronics IHUAQI VR",new o.CardboardViewer({id:"Zebronics IHUAQI VR",label:"Zebronics IHUAQ IVR",url:"https://zebronics.com/products/vr-headset/zeb-vr",interLensDistance:.057999998331069946,screenLensDistance:.06499999761581421,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.029999999329447746],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["YK14 VR Glasses",new o.CardboardViewer({id:"YK14 VR Glasses",label:"YK14 VR Glasses",url:"https://www.virtual-reality-shop.co.uk/yk14-vr-glasses/",interLensDistance:.054999999701976776,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Yay 3D Nexus7",new o.CardboardViewer({id:"Yay 3D Nexus7",label:"Yay 3D Nexus7",url:"http://www.yay3d.com/",interLensDistance:.07000000029802322,screenLensDistance:.05000000074505806,fov:55,baselineLensDistance:.05000000074505806,distortionCoefficients:[.44999998807907104,0],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Xiaomi VR",new o.CardboardViewer({id:"Xiaomi VR",label:"Xiaomi VR",url:"http://www.mi.com/mivr/?cfrom=search",interLensDistance:.05999999865889549,screenLensDistance:.06499999761581421,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Vrizzmo Revolt",new o.CardboardViewer({id:"Vrizzmo Revolt",label:"Vrizzmo Revolt",url:"https://www.vrizzmo.com/",interLensDistance:.06199999898672104,screenLensDistance:.03478889912366867,fov:73.28800201416016,baselineLensDistance:.03500000014901161,distortionCoefficients:[.1026500016450882,.9568099975585938],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Ritech VRGO",new o.CardboardViewer({id:"Ritech VRGO",label:"Ritech VRGO",url:"http://www.ritech3d.com/vrgo",interLensDistance:.06700000166893005,screenLensDistance:.03500000014901161,fov:60,baselineLensDistance:.04100000113248825,distortionCoefficients:[.05000000074505806,.05000000074505806],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Viotek Spectre",new o.CardboardViewer({id:"Viotek Spectre",label:"Viotek Spectre",url:"http://www.ritech3d.com/vrgo",interLensDistance:.06700000166893005,screenLensDistance:.03500000014901161,fov:60,baselineLensDistance:.04100000113248825,distortionCoefficients:[.05000000074505806,.05000000074505806],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Pro HT 360°VR",new o.CardboardViewer({id:"Pro HT 360°VR",label:"Pro HT 360°VR",url:"https://www.virtual-reality-shop.co.uk/vr-world-3d/",interLensDistance:.054999999701976776,screenLensDistance:.05000000074505806,fov:100,baselineLensDistance:.03500000014901161,distortionCoefficients:[.23999999463558197,-.07000000029802322],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["ANSIO VR World 5thGen",new o.CardboardViewer({id:"ANSIO VR World 5thGen",label:"ANSIO VR World 5thGen",url:"https://www.virtual-reality-shop.co.uk/vr-world-3d/",interLensDistance:.054999999701976776,screenLensDistance:.05000000074505806,fov:100,baselineLensDistance:.03500000014901161,distortionCoefficients:[.23999999463558197,-.07000000029802322],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Real Feel",new o.CardboardViewer({id:"VR Real Feel",label:"VR Real Feel",url:"http://www.vr-entertain.com/",interLensDistance:.05999999865889549,screenLensDistance:.06499999761581421,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Habor",new o.CardboardViewer({id:"Habor",label:"Habor",url:"http://www.virtualrealitytechnologyshop.com/habor-3d-vr-virtual-reality-headset-for-smartphones-for-3d-moviesgames-black/",interLensDistance:.07000000029802322,screenLensDistance:.06499999761581421,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.6399999856948853,.3400000035762787],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Park V3",new o.CardboardViewer({id:"VR Park V3",label:"VR Park V3",url:"http://www.virtualrealitytechnologyshop.com/habor-3d-vr-virtual-reality-headset-for-smartphones-for-3d-moviesgames-black/",interLensDistance:.07000000029802322,screenLensDistance:.06499999761581421,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.6399999856948853,.3400000035762787],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["MSRM-LBVR",new o.CardboardViewer({id:"MSRM-LBVR",label:"MSRM-LBVR",url:"https://www.amazon.com/MSRM-Glasses-Microsoft-3-5-6-0inches-Bluetooth/dp/B01L7B44Y8/ref=cm_cr_arp_d_product_top?ie=UTF8",interLensDistance:.07000000029802322,screenLensDistance:.06499999761581421,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.6399999856948853,.3400000035762787],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Park V1",new o.CardboardViewer({id:"VR Park V1",label:"VR Park V1",url:"http://www.pompmall.com/vr-park-v1-3d.html",interLensDistance:.05999999865889549,screenLensDistance:.07000000029802322,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.44999998807907104,.44999998807907104],magnet:!0,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Lion Eye i7",new o.CardboardViewer({id:"VR Lion Eye i7",label:"VR Lion Eye i7",url:"https://www.amazon.com/dp/B01K6JVD64?tag=fakespot0e-20",interLensDistance:.05999999865889549,screenLensDistance:.0689999982714653,fov:50,baselineLensDistance:.04100000113248825,distortionCoefficients:[-.4300000071525574,1.899999976158142],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Kix",new o.CardboardViewer({id:"VR Kix",label:"Adaptive Designs VR KiX",url:"https://vrkix.com/",interLensDistance:.05000000074505806,screenLensDistance:.03099999949336052, fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,-.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Fold Leelbox",new o.CardboardViewer({id:"VR Fold Leelbox",label:"VR Fold Leelbox",url:"https://www.virtual-reality-shop.co.uk/vr-fold/",interLensDistance:.06300000101327896,screenLensDistance:.05882380157709122,fov:63.08428192138672,baselineLensDistance:.03500000014901161,distortionCoefficients:[.03446999937295914,.3912000060081482],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Fortune Group VR Empire",new o.CardboardViewer({id:"Fortune Group VR Empire",label:"Fortune Group VR Empire",url:"http://vr3d.guide/product/vr-empire-virtual-reality-3d-glasses-headset-with-120-fov-stereo-headset-phone-answering-button-for-4-0-6-2-inch-smartphone/",interLensDistance:.06199999898672104,screenLensDistance:.03500000014901161,fov:65,baselineLensDistance:.04149999842047691,distortionCoefficients:[.6000000238418579,.6000000238418579],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Case RK6th V6",new o.CardboardViewer({id:"VR Case RK6th V6",label:"VR Case RK6th V6",url:"https://www.virtual-reality-shop.co.uk/vr-case-v6/",interLensDistance:.05999999865889549,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Case RK5th NoButton",new o.CardboardViewer({id:"VR Case RK5th NoButton",label:"VR Case RK5th NoButton",url:"https://www.gearbest.com/vr-headset/pp_343126.html",interLensDistance:.06800000369548798,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.019999999552965164,.019999999552965164],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Box",new o.CardboardViewer({id:"VR Box",label:"VR Box",interLensDistance:.06800000369548798,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.019999999552965164,.019999999552965164],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["VR Case RK3 Plus",new o.CardboardViewer({id:"VR Case RK3 Plus",label:"VR Case RK3 Plus",url:"https://www.amazon.in/Virtual-Reality-Glasses-Bluetooth-Control/dp/B01E99EMDS",interLensDistance:.061000000685453415,screenLensDistance:.06199999898672104,fov:27,baselineLensDistance:.03500000014901161,distortionCoefficients:[.20000000298023224,.07999999821186066],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["MVMT VR 360",new o.CardboardViewer({id:"MVMT VR 360",label:"MVMT VR 360",url:"https://www.amazon.in/Virtual-Reality-Glasses-Bluetooth-Control/dp/B01E99EMDS",interLensDistance:.061000000685453415,screenLensDistance:.06199999898672104,fov:27,baselineLensDistance:.03500000014901161,distortionCoefficients:[.20000000298023224,.07999999821186066],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Vue FX",new o.CardboardViewer({id:"VR Vue FX",label:"VR Vue FX",url:"https://www.amazon.in/Virtual-Reality-Glasses-Bluetooth-Control/dp/B01E99EMDS",interLensDistance:.061000000685453415,screenLensDistance:.06199999898672104,fov:27,baselineLensDistance:.03500000014901161,distortionCoefficients:[.20000000298023224,.07999999821186066],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Box 2",new o.CardboardViewer({id:"VR Box 2",label:"VR Box 2",url:"http://www.umidigi.com/page-umi_index.html",interLensDistance:.06300000101327896,screenLensDistance:.06681880354881287,fov:60.0290641784668,baselineLensDistance:.03999999910593033,distortionCoefficients:[.2640700042247772,.34213000535964966],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Atill 3D VR",new o.CardboardViewer({id:"Atill 3D VR",label:"Atill 3D VR",url:"http://www.virtualrealitytechnologyshop.com/atill-3d-vr-virtual-reality-headset-3d-glasses-for-3d-movies-and-gamesfocal-and-pupil-distance-adjustable-headset-for-iphone-samsung-moto-lg-nexus-htc-blackwhite/",interLensDistance:.06300000101327896,screenLensDistance:.06681880354881287,fov:60.0290641784668,baselineLensDistance:.03999999910593033,distortionCoefficients:[.2640700042247772,.34213000535964966],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Hootoo HT-VR001",new o.CardboardViewer({id:"Hootoo HT-VR001",label:"Hootoo HT-VR001",url:"http://www.hootoo.com/ht-vr01-3d-virtual-reality-glasses.html",interLensDistance:.06300000101327896,screenLensDistance:.06681880354881287,fov:60.0290641784668,baselineLensDistance:.03999999910593033,distortionCoefficients:[.2640700042247772,.34213000535964966],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Ion VR 360",new o.CardboardViewer({id:"Ion VR 360",label:"Ion VR 360",url:"http://www.iononline.nl/ion-vr360-3d-virtual-reality-bril.html",interLensDistance:.06300000101327896,screenLensDistance:.06681880354881287,fov:60.0290641784668,baselineLensDistance:.03999999910593033,distortionCoefficients:[.2640700042247772,.34213000535964966],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Vue II",new o.CardboardViewer({id:"VR Vue II",label:"VR Vue II",url:"https://www.amazon.com/Xtreme-Vue-Virtual-Reality-Viewer/dp/B01MG1W8X2",interLensDistance:.06300000101327896,screenLensDistance:.06681880354881287,fov:60.0290641784668,baselineLensDistance:.03999999910593033,distortionCoefficients:[.2640700042247772,.34213000535964966],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Quest VR",new o.CardboardViewer({id:"Quest VR",label:"Quest VR",interLensDistance:.06300000101327896,screenLensDistance:.06681880354881287,fov:60.0290641784668,baselineLensDistance:.03999999910593033,distortionCoefficients:[.2640700042247772,.34213000535964966],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Art+Vision",new o.CardboardViewer({id:"Art+Vision",label:"Art+Vision",url:"https://www.amazon.com/Art-Vision-Virtual-Reality-Smartphones/dp/B01LMR3ZAQ",interLensDistance:.06300000101327896,screenLensDistance:.06681880354881287,fov:60.0290641784668,baselineLensDistance:.03999999910593033,distortionCoefficients:[.2640700042247772,.34213000535964966],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Vision VR",new o.CardboardViewer({id:"Vision VR",label:"Vision VR",interLensDistance:.06300000101327896,screenLensDistance:.06681880354881287,fov:60.0290641784668,baselineLensDistance:.03999999910593033,distortionCoefficients:[.2640700042247772,.34213000535964966],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Vokano Matrix",new o.CardboardViewer({id:"Vokano Matrix",label:"Vokano Matrix",url:"https://www.takealot.com/volkano-matrix-series-virtual-reality-headset/PLID41221131",interLensDistance:.06300000101327896,screenLensDistance:.06681880354881287,fov:60.0290641784668,baselineLensDistance:.03999999910593033,distortionCoefficients:[.2640700042247772,.34213000535964966],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["NeuTab",new o.CardboardViewer({id:"NeuTab",label:"NeuTab",url:"https://www.amazon.com/NeuTab-Virtual-Reality-Controller-Immersive/dp/B074F3H9M6",interLensDistance:.06300000101327896,screenLensDistance:.06681880354881287,fov:60.0290641784668,baselineLensDistance:.03999999910593033,distortionCoefficients:[.2640700042247772,.34213000535964966],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Denver VRC-22",new o.CardboardViewer({id:"Denver VRC-22",label:"Denver VRC-22",url:"http://www.denver-electronics.com/denver-vrc-22/",interLensDistance:.06300000101327896,screenLensDistance:.06681880354881287,fov:60.0290641784668,baselineLensDistance:.03999999910593033,distortionCoefficients:[.2640700042247772,.34213000535964966],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Boss",new o.CardboardViewer({id:"VR Boss",label:"VR Boss",url:"https://www.gearbest.com/vr-headset/pp_423475.html",interLensDistance:.05999999865889549,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.05000000074505806,distortionCoefficients:[.5099999904632568,.1599999964237213],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Vox+Z3",new o.CardboardViewer({id:"Vox+Z3",label:"Vox+Z3",url:"http://www.vox-vr.com/vox-z3-vr-virtual-reality-headset-vr-glasses.html",interLensDistance:.06499999761581421,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.18000000715255737,-.05000000074505806],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VOX+Gear Plus",new o.CardboardViewer({id:"VOX+Gear Plus",label:"VOX+Gear Plus",url:"http://www.vox-vr.com/vox-gear-plus-vr-virtual-reality-headset-vr-glasses.html",interLensDistance:.06499999761581421,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.18000000715255737,-.05000000074505806],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["EvoVR Ultra MI-VRH03",new o.CardboardViewer({id:"EvoVR Ultra MI-VRH03",label:"EvoVR Ultra MI-VRH03",url:"https://www.walmart.com/ip/Evo-VR-MI-VRH03-199-Evo-Ultra-Virtual-Reality-Headset/53585010",interLensDistance:.06499999761581421,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.18000000715255737,-.05000000074505806],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VOX+FE",new o.CardboardViewer({id:"VOX+FE",label:"VOX+FE",url:"http://vox-vr.com/",interLensDistance:.06499999761581421,screenLensDistance:.03500000014901161,fov:50,baselineLensDistance:.041999999433755875,distortionCoefficients:[.25,.25],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Vizor Gamer",new o.CardboardViewer({id:"Vizor Gamer",label:"Vizor Gamer",url:"https://www.menkind.co.uk/vizor-gamer",interLensDistance:.05999999865889549,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Visionsky VR Mini",new o.CardboardViewer({id:"Visionsky VR Mini",label:"Visionsky VR Mini",url:"https://www.amazon.com/Visionsky-Virtual-Reality-Headset-Glasses-Android/dp/B0761YV1CQ",interLensDistance:.05999999865889549,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Virtual Vizor 63mm",new o.CardboardViewer({id:"Virtual Vizor 63mm",label:"Virtual Vizor 63mm",url:"http://www.virtualvizor.com/shop_details.php?productid=2",interLensDistance:.05999999865889549,screenLensDistance:.06300000101327896,fov:50,baselineLensDistance:.035999998450279236,distortionCoefficients:[.15000000596046448,.009999999776482582],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Virtual Vizor 39mm",new o.CardboardViewer({id:"Virtual Vizor 39mm",label:"Virtua Vizor 39mm",url:"http://www.virtualvizor.com/shop_details.php?productid=1",interLensDistance:.06300000101327896,screenLensDistance:.0429919995367527,fov:48.30946350097656,baselineLensDistance:.041999999433755875,distortionCoefficients:[.3265700042247772,-.032760001718997955],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Viewbox from Evomade",new o.CardboardViewer({id:"Viewbox from Evomade",label:"Viewbox from Evomade",url:"http://evomade.com/",interLensDistance:.06199999898672104,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.4000000059604645,.15000000596046448],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["ViarBox",new o.CardboardViewer({id:"ViarBox",label:"ViarBox",url:"http://www.viarbox.eu/",interLensDistance:.06300000101327896,screenLensDistance:.0430000014603138,fov:50,baselineLensDistance:.039000000804662704,distortionCoefficients:[-.07999999821186066,.07999999821186066],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Vethien",new o.CardboardViewer({id:"Vethien",label:"Vethien",url:"https://www.gearbest.com/vr-headset/pp_347168.html",interLensDistance:.05999999865889549,screenLensDistance:.06199999898672104,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.25,.03999999910593033],magnet:!0,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["EmergeTechnologies Utopia 360",new o.CardboardViewer({id:"EmergeTechnologies Utopia 360",label:"EmergeTechnologies Utopia 360",url:"http://www.myretrak.com/vr/",interLensDistance:.05900000035762787,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Unofficial Cardboard 2.0 Plus",new o.CardboardViewer({id:"Unofficial Cardboard 2.0 Plus",label:"Unofficial Cardboard 2.0 Plus",url:"http://www.unofficialcardboard.com/",interLensDistance:.06400000303983688,screenLensDistance:.04699999839067459,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3400000035762787,.550000011920929],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Umidigi 3D",new o.CardboardViewer({id:"Umidigi 3D",label:"Umidigi 3D",url:"http://www.umidigi.com/accessories-show.html?id=6",interLensDistance:.05999999865889549,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.30000001192092896,.30000001192092896],magnet:!0,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Box 6",new o.CardboardViewer({id:"VR Box 6",label:"VR Box 6",url:"http://www.umidigi.com/accessories-show.html?id=6",interLensDistance:.05999999865889549,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.30000001192092896,.30000001192092896],magnet:!0,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Box 3",new o.CardboardViewer({id:"VR Box 3",label:"VR Box 3",url:"http://www.umidigi.com/accessories-show.html?id=5",interLensDistance:.05999999865889549,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.30000001192092896,.30000001192092896],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!0})],["UCVR",new o.CardboardViewer({id:"UCVR",label:"UCVR",url:"https://www.gearbest.com/vr-headset/pp_327206.html",interLensDistance:.0560000017285347,screenLensDistance:.028999999165534973,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.07000000029802322,.029999999329447746],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["DomoGoggles",new o.CardboardViewer({id:"DomoGoggles",label:"DomoGoggles",url:"https://www.facebook.com/media/set/?set=a.623018187842471.1073741829.618967724914184&type=3",interLensDistance:.0560000017285347,screenLensDistance:.028999999165534973,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.07000000029802322,.029999999329447746],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Tzumi DreamVision Pro",new o.CardboardViewer({id:"Tzumi DreamVision Pro",label:"Tzumi DreamVision Pro",url:"https://www.walmart.com/ip/Tzumi-Dream-Vision-Pro-Virtual-Reality-Headset-Black-2016/169609170",interLensDistance:.05999999865889549,screenLensDistance:.04399999976158142,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,-.009999999776482582],magnet:!0,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Tzumi Dreamvision",new o.CardboardViewer({id:"Tzumi Dreamvision",label:"Tzumi Dreamvision",url:"https://www.amazon.com/Tzumi-Smartphone-Retracteable-Capability-Lightweight/dp/B01N2IEZNH",interLensDistance:.03400000184774399,screenLensDistance:.05700000002980232,fov:50,baselineLensDistance:.04127499833703041,distortionCoefficients:[-.4300000071525574,.6899999976158142],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["TT 3D viewer",new o.CardboardViewer({id:"TT 3D viewer",label:"TTInternational 3D VR Viewer",url:"http://www.3d-vr-viewer.com/cardboard/",interLensDistance:.054999999701976776,screenLensDistance:.035999998450279236,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.10000000149011612,1],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["TrueDepth 3D VR",new o.CardboardViewer({id:"TrueDepth 3D VR",label:"TrueDepth 3D VR",url:"http://truedepth3d.com/product/true-depth-3d-new-vr-infernotm-ultimate-experience-premium-virtual-reality-with-bluetooth-headphones-and-bluetooth-game-pad-compatible-with-4-6-inch-android-smartphones/",interLensDistance:.05999999865889549,screenLensDistance:.06199999898672104,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Teleport VR HeadsetAutonomous",new o.CardboardViewer({id:"Teleport VR HeadsetAutonomous",label:"Teleport VR HeadsetAutonomous",url:"https://www.autonomous.ai/teleport-vr-headset",interLensDistance:.06400000303983688,screenLensDistance:.039000000804662704,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.33500000834465027,.5450000166893005],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Teefan TF-VRA88003",new o.CardboardViewer({id:"Teefan TF-VRA88003",label:"Teefan TF-VRA88003",interLensDistance:.05999999865889549,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[0,0],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Teefan TF-VRA88001",new o.CardboardViewer({id:"Teefan TF-VRA88001",label:"Teefan TF-VRA88001",interLensDistance:.05999999865889549,screenLensDistance:.057999998331069946,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Teefan TF-VRA88002",new o.CardboardViewer({id:"Teefan TF-VRA88002",label:"Teefan TF-VRA88002",interLensDistance:.06199999898672104,screenLensDistance:.06700000166893005,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Sytros VR",new o.CardboardViewer({id:"Sytros VR",label:"Sytros VR",url:"http://www.sytros.com/product/sytros-vr-headset/",interLensDistance:.03999999910593033,screenLensDistance:.06400000303983688,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.009999999776482582,-.009999999776482582],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Goji VR",new o.CardboardViewer({id:"Goji VR",label:"Goji VR",url:"https://www.carphonewarehouse.com/goji/vr-headset.html#!colour=black&dealType=sf",interLensDistance:.03999999910593033,screenLensDistance:.06400000303983688,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.009999999776482582,-.009999999776482582],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Box 360",new o.CardboardViewer({id:"VR Box 360",label:"VR Box 360",interLensDistance:.03999999910593033,screenLensDistance:.06400000303983688,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.009999999776482582,-.009999999776482582],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Excelvan VR",new o.CardboardViewer({id:"Excelvan VR",label:"Excelvan VR",url:"https://www.amazon.de/Excelvan-Universal-Einstellbar-3D-Filme-Smartphone/dp/B01KV0V30O",interLensDistance:.03999999910593033,screenLensDistance:.06400000303983688,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.009999999776482582,-.009999999776482582],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["GateWay VR",new o.CardboardViewer({id:"GateWay VR",label:"GateWay VR",url:"https://www.vrstudio.ro/en/",interLensDistance:.03999999910593033,screenLensDistance:.06400000303983688,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.009999999776482582,-.009999999776482582],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Sunnypeak VRG-11600",new o.CardboardViewer({id:"Sunnypeak VRG-11600",label:"Sunnypeak VR G-11600",url:"https://www.virtual-reality-shop.co.uk/sunnypeak-vr/",interLensDistance:.05999999865889549,screenLensDistance:.06199999898672104,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Sunnypeak VRG-11400",new o.CardboardViewer({id:"Sunnypeak VRG-11400",label:"Sunnypeak VR G-11400",url:"https://www.virtual-reality-shop.co.uk/sunnypeak-vr/",interLensDistance:.05999999865889549,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Sunnypeak VRG-11200",new o.CardboardViewer({id:"Sunnypeak VRG-11200",label:"Sunnypeak VR G-11200",url:"https://www.virtual-reality-shop.co.uk/sunnypeak-vr/",interLensDistance:.05999999865889549,screenLensDistance:.06300000101327896,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[0,0],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Sunnypeak VRG-10200",new o.CardboardViewer({id:"Sunnypeak VRG-10200",label:"Sunnypeak VR G-10200",url:"https://www.virtual-reality-shop.co.uk/sunnypeak-vr/",interLensDistance:.05999999865889549,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["AVR061",new o.CardboardViewer({id:"AVR061",label:"AVR061",url:"https://www.virtual-reality-shop.co.uk/sunnypeak-vr/",interLensDistance:.05999999865889549,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Sunnypeak VRG-10700",new o.CardboardViewer({id:"Sunnypeak VRG-10700",label:"Sunnypeak VR G-10700",url:"https://www.virtual-reality-shop.co.uk/sunnypeak-vr/",interLensDistance:.05999999865889549,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Xtreme Virtual Reality Viewer",new o.CardboardViewer({id:"Xtreme Virtual Reality Viewer",label:"Xtreme Virtual Reality Viewer",url:"https://www.virtual-reality-shop.co.uk/sunnypeak-vr/",interLensDistance:.05999999865889549,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["StarLight VR",new o.CardboardViewer({id:"StarLight VR",label:"StarLight VR",url:"http://www.starlightvr.com/",interLensDistance:.06300000101327896,screenLensDistance:.06616640090942383,fov:60.27174758911133,baselineLensDistance:.03500000014901161,distortionCoefficients:[.2966899871826172,.3743399977684021],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Sunnypeak VR",new o.CardboardViewer({id:"Sunnypeak VR",label:"Sunnypeak VR",url:"https://www.virtual-reality-shop.co.uk/sunnypeak-vr/",interLensDistance:.06300000101327896,screenLensDistance:.06616640090942383,fov:60.27174758911133,baselineLensDistance:.03500000014901161,distortionCoefficients:[.2966899871826172,.3743399977684021],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Archos",new o.CardboardViewer({id:"Archos",label:"Archos",url:"https://www.archos.com/us/products/objects/cself/avr/index.html",interLensDistance:.06300000101327896,screenLensDistance:.06616640090942383,fov:60.27174758911133,baselineLensDistance:.03500000014901161,distortionCoefficients:[.2966899871826172,.3743399977684021],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["ColorCross",new o.CardboardViewer({id:"ColorCross",label:"ColorCross VR",url:"https://www.archos.com/us/products/objects/cself/avr/index.html",interLensDistance:.06300000101327896,screenLensDistance:.06616640090942383,fov:60.27174758911133,baselineLensDistance:.03500000014901161,distortionCoefficients:[.2966899871826172,.3743399977684021],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Sunnypeak VR G-12100",new o.CardboardViewer({id:"Sunnypeak VR G-12100",label:"Sunnypeak VR G-12100",url:"https://www.virtual-reality-shop.co.uk/sunnypeak-vr/",interLensDistance:.07500000298023224,screenLensDistance:.04600000008940697,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.5,.5],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Sunnypeak VRG-11100",new o.CardboardViewer({id:"Sunnypeak VRG-11100",label:"Sunnypeak VR G-11100",url:"https://www.virtual-reality-shop.co.uk/sunnypeak-vr/",interLensDistance:.06199999898672104,screenLensDistance:.06700000166893005,fov:50,baselineLensDistance:.04500000178813934,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Taffware",new o.CardboardViewer({id:"Taffware",label:"Taffware",url:"https://www.virtual-reality-shop.co.uk/sunnypeak-vr/",interLensDistance:.06199999898672104,screenLensDistance:.06700000166893005,fov:50,baselineLensDistance:.04500000178813934,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["BrevisStooksy VR-Spektiv iP6+",new o.CardboardViewer({id:"BrevisStooksy VR-Spektiv iP6+",label:"BrevisStooksy VR-Spektiv iP6+",url:"https://www.stooksy.com/VR-Spektiv/",interLensDistance:.05999999865889549,screenLensDistance:.06800000369548798,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["BrevisStooksy VR-Spektiv XL",new o.CardboardViewer({id:"BrevisStooksy VR-Spektiv XL",label:"BrevisStooksy VR-Spektiv XL",url:"https://www.stooksy.com/VR-Spektiv/",interLensDistance:.05999999865889549,screenLensDistance:.06800000369548798,fov:50,baselineLensDistance:.03400000184774399,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["BrevisStooksky VR-Spektiv",new o.CardboardViewer({id:"BrevisStooksky VR-Spektiv",label:"BrevisStooksky VR-Spektiv",url:"https://www.stooksy.com/VR-Spektiv/",interLensDistance:.05999999865889549,screenLensDistance:.06800000369548798,fov:50,baselineLensDistance:.03400000184774399,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Starmo VR",new o.CardboardViewer({id:"Starmo VR",label:"Starmo VR",url:"https://www.amazon.co.uk/STARMO-Glasses-Headset-Adjustable-Smartphone/dp/B01GQFZ3VI",interLensDistance:.032999999821186066,screenLensDistance:.04600000008940697,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.019999999552965164,-.10999999940395355],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Soyan",new o.CardboardViewer({id:"Soyan",label:"Soyan VR",url:"https://www.mymemory.com/soyan-universal-vr-3d-smartphone-headset.html",interLensDistance:.050999999046325684,screenLensDistance:.02500000037252903,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[0,-.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Snail VR",new o.CardboardViewer({id:"Snail VR",label:"Snail VR",url:"https://www.gearbest.com/home-gadgets/pp_193396.html",interLensDistance:.04399999976158142,screenLensDistance:.04100000113248825,fov:50,baselineLensDistance:.03700000047683716,distortionCoefficients:[.10999999940395355,-.05999999865889549],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Silmien VR",new o.CardboardViewer({id:"Silmien VR",label:"Silmien VR",url:"https://www.amazon.com/SILMIEN-Replaceable-Near-Sighted-Adjustable-Separately/dp/B06ZZQTP3F",interLensDistance:.07000000029802322,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.25,.25],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Shinecon Y005",new o.CardboardViewer({id:"VR Shinecon Y005",label:"Shinecon Y005",url:"http://www.shinecon.com/",interLensDistance:.05999999865889549,screenLensDistance:.050999999046325684,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,-.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Shinecon Y003",new o.CardboardViewer({id:"VR Shinecon Y003",label:"Shinecon Y003",url:"http://www.shinecon.com/",interLensDistance:.054999999701976776,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,-.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1 })],["VR Shinecon UA03",new o.CardboardViewer({id:"VR Shinecon UA03",label:"Shinecon UA03",url:"http://www.shinecon.com/",interLensDistance:.05999999865889549,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Shinecon 4",new o.CardboardViewer({id:"VR Shinecon 4",label:"Shinecon G04",url:"http://www.shinecon.com/",interLensDistance:.05999999865889549,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["VR Shinecon 2",new o.CardboardViewer({id:"VR Shinecon 2",label:"Shinecon G02",url:"http://www.shinecon.com/",interLensDistance:.05999999865889549,screenLensDistance:.03700000047683716,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.11999999731779099,.14000000059604645],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Fiit VR 2N",new o.CardboardViewer({id:"Fiit VR 2N",label:"Fiit VR 2N",url:"http://www.fiitvr.com/pro2n.html",interLensDistance:.05999999865889549,screenLensDistance:.03700000047683716,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.11999999731779099,.14000000059604645],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Rohs VR Glasses",new o.CardboardViewer({id:"Rohs VR Glasses",label:"Rohs VR Glasses",url:"https://www.virtual-reality-shop.co.uk/rohs-vr-glasses/",interLensDistance:.05999999865889549,screenLensDistance:.07000000029802322,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Ritech VMAX",new o.CardboardViewer({id:"Ritech VMAX",label:"Ritech VMAX",url:"http://www.ritech3d.com/vmax",interLensDistance:.0689999982714653,screenLensDistance:.06300000101327896,fov:50,baselineLensDistance:.041999999433755875,distortionCoefficients:[.09000000357627869,-.09000000357627869],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Ritech Riem 3 Plus",new o.CardboardViewer({id:"Ritech Riem 3 Plus",label:"Ritech Riem 3 Plus",url:"http://www.ritech3d.com/yk3plus",interLensDistance:.0689999982714653,screenLensDistance:.05900000035762787,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.10000000149011612,.10000000149011612],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Ritech Riem 3",new o.CardboardViewer({id:"Ritech Riem 3",label:"Ritech Riem 3",url:"https://www.ritech.co/",interLensDistance:.05999999865889549,screenLensDistance:.06499999761581421,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3400000035762787,.23999999463558197],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Magicoo",new o.CardboardViewer({id:"Magicoo",label:"Magicoo",url:"https://www.gearbest.com/vr-headset/pp_275153.html",interLensDistance:.05999999865889549,screenLensDistance:.06499999761581421,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3400000035762787,.23999999463558197],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Topmaxions",new o.CardboardViewer({id:"Topmaxions",label:"Topmaxions",url:"https://www.gearbest.com/vr-headset/pp_275153.html",interLensDistance:.05999999865889549,screenLensDistance:.06499999761581421,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3400000035762787,.23999999463558197],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Ritech Riem 2",new o.CardboardViewer({id:"Ritech Riem 2",label:"Ritech Riem 2",url:"https://www.ritech.co/",interLensDistance:.06199999898672104,screenLensDistance:.04800000041723251,fov:68,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Refugio3D L-Version",new o.CardboardViewer({id:"Refugio3D L-Version",label:"Refugio 3D L-Version",url:"http://www.refugio3d.net/",interLensDistance:.05299999937415123,screenLensDistance:.029999999329447746,fov:50,baselineLensDistance:.03400000184774399,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Qualiview VR",new o.CardboardViewer({id:"Qualiview VR",label:"Qualiview VR",url:"https://www.qualiview.nl/",interLensDistance:.05999999865889549,screenLensDistance:.050999999046325684,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Procus VR Pop-Tech",new o.CardboardViewer({id:"Procus VR Pop-Tech",label:"Procus VR Pop-Tech",url:"http://www.procusvr.com/",interLensDistance:.06199999898672104,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.36000001430511475,.36000001430511475],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Polaroid VR",new o.CardboardViewer({id:"Polaroid VR",label:"Polaroid VR",url:"https://www.amazon.de/Polaroid-9133-Virtual-Reality-Headset-multi/dp/B01M6UOHBL",interLensDistance:.05770000070333481,screenLensDistance:.04899999871850014,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.07999999821186066,.12999999523162842],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["IrusuTechnologies Play VR",new o.CardboardViewer({id:"IrusuTechnologies Play VR",label:"IrusuTechnologies Play VR",url:"http://irusu.co.in/product/player-headset/",interLensDistance:.05999999865889549,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.035999998450279236,distortionCoefficients:[.09000000357627869,.07000000029802322],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Planet VR Box",new o.CardboardViewer({id:"Planet VR Box",label:"Planet VR Box",url:"http://planetvr.ru/google-cardboard-kupit/google-cardboard-pvr-box-graphical.html",interLensDistance:.06300000101327896,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.10999999940395355,.03999999910593033],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Oxygen DRB-2012",new o.CardboardViewer({id:"Oxygen DRB-2012",label:"Oxygen DRB-2012",interLensDistance:.041999999433755875,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.035999998450279236,distortionCoefficients:[.03999999910593033,.05000000074505806],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["NRK Monster VR",new o.CardboardViewer({id:"NRK Monster VR",label:"NRK Monster VR",url:"http://www.monstervr.com/",interLensDistance:.041999999433755875,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.035999998450279236,distortionCoefficients:[.03999999910593033,.05000000074505806],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Owl V2 VR",new o.CardboardViewer({id:"Owl V2 VR",label:"Owl V2 VR",url:"http://www.owlvr.com/",interLensDistance:.06400000303983688,screenLensDistance:.039000000804662704,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3400000035762787,.550000011920929],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["OWL VR",new o.CardboardViewer({id:"OWL VR",label:"Owl VR",url:"http://www.owlvr.com/",interLensDistance:.05700000002980232,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.46000000834465027,.23000000417232513],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Onn VR",new o.CardboardViewer({id:"Onn VR",label:"Onn VR",interLensDistance:.029999999329447746,screenLensDistance:.019999999552965164,fov:50,baselineLensDistance:.02500000037252903,distortionCoefficients:[.5,.5],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Dreamcore OnePlus Loop VR[52.0/64.5]v1",new o.CardboardViewer({id:"Dreamcore OnePlus Loop VR[52.0/64.5]v1",label:"Dreamcore OnePlus Loop VR v1",url:"https://oneplus.net/oneplus-loop-vr",interLensDistance:.06449999660253525,screenLensDistance:.052000001072883606,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.10499999672174454,.25999999046325684],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["OnePlus Cardboard v1.1",new o.CardboardViewer({id:"OnePlus Cardboard v1.1",label:"OnePlus Cardboard v1.1",url:"https://oneplus.net/de/cardboard",interLensDistance:.05999999865889549,screenLensDistance:.03500000014901161,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Nextcore Noon VR Pro",new o.CardboardViewer({id:"Nextcore Noon VR Pro",label:"Nextcore Noon VR Pro",url:"https://www.noonvr.com/en/view/product_pro",interLensDistance:.06199999898672104,screenLensDistance:.03500000014901161,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.14000000059604645,.14000000059604645],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["NoonVR",new o.CardboardViewer({id:"NoonVR",label:"Nextcore Noon VR",url:"http://www.noonvr.com/",interLensDistance:.06199999898672104,screenLensDistance:.03500000014901161,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.14000000059604645,.14000000059604645],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Musttrue VR Magic",new o.CardboardViewer({id:"Musttrue VR Magic",label:"Musttrue VR Magic",url:"https://www.amazon.com/Musttrue-Magnetic-Trigger-Upgraded-Children/dp/B01M0TJL0Z",interLensDistance:.05999999865889549,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Telcom MTT VR 6",new o.CardboardViewer({id:"Telcom MTT VR 6",label:"Telcom MTT VR 6",url:"https://www.mtt.co.in/products/mtt-vr-headset-glass-advanced-virtual-reality-glasses-for-smartphones-vr-glass?variant=22741518726",interLensDistance:.06499999761581421,screenLensDistance:.052000001072883606,fov:96,baselineLensDistance:.03500000014901161,distortionCoefficients:[.10000000149011612,.019999999552965164],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Victony MSRM VR",new o.CardboardViewer({id:"Victony MSRM VR",label:"Victony MSRM VR",url:"http://www.victony.com/",interLensDistance:.05999999865889549,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.04500000178813934,distortionCoefficients:[-.029999999329447746,.30000001192092896],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Just-VR - Shade",new o.CardboardViewer({id:"Just-VR - Shade",label:"Just-VR - Shade",url:"https://just-vr.com/",interLensDistance:.05999999865889549,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.04500000178813934,distortionCoefficients:[.5099999904632568,.1599999964237213],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Virtoba M6 VR",new o.CardboardViewer({id:"Virtoba M6 VR",label:"Virtoba M6 VR",url:"http://www.victony.com/",interLensDistance:.05999999865889549,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.04500000178813934,distortionCoefficients:[-.029999999329447746,.30000001192092896],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["ZBang VR",new o.CardboardViewer({id:"ZBang VR",label:"ZBang VR",url:"http://www.victony.com/",interLensDistance:.05999999865889549,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.04500000178813934,distortionCoefficients:[-.029999999329447746,.30000001192092896],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Motoraux",new o.CardboardViewer({id:"Motoraux",label:"Motoraux",interLensDistance:.06599999964237213,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.10999999940395355,.2800000011920929],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Monoprice VR Viewer",new o.CardboardViewer({id:"Monoprice VR Viewer",label:"Monoprice VR Viewer",url:"https://www.monoprice.com/product?p_id=16199",interLensDistance:.07000000029802322,screenLensDistance:.03999999910593033,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.09000000357627869,.03999999910593033],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Mona VR Mask",new o.CardboardViewer({id:"Mona VR Mask",label:"Mona VR Mask",url:"https://monavr.com/",interLensDistance:.06199999898672104,screenLensDistance:.04500000178813934,fov:55,baselineLensDistance:.03200000151991844,distortionCoefficients:[.28999999165534973,-.05000000074505806],magnet:!0,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Moke VR",new o.CardboardViewer({id:"Moke VR",label:"Moke VR",url:"https://www.gearbest.com/vr-headset/pp_657887.html",interLensDistance:.05999999865889549,screenLensDistance:.05999999865889549,fov:50,baselineLensDistance:.05000000074505806,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Modecom FreeHands MC-G3",new o.CardboardViewer({id:"Modecom FreeHands MC-G3",label:"Modecom FreeHands MC-G3",url:"http://modecom.com/en/freehands-mc-g3dc/",interLensDistance:.06199999898672104,screenLensDistance:.03799999877810478,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.25,.20000000298023224],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Merge VR",new o.CardboardViewer({id:"Merge VR",label:"Merge VR 360°",url:"http://www.mergevr.com/",interLensDistance:.06300000101327896,screenLensDistance:.039557598531246185,fov:71.1501693725586,baselineLensDistance:.02850000001490116,distortionCoefficients:[.038759998977184296,.29464998841285706],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Dodocase Memo 3D VR",new o.CardboardViewer({id:"Dodocase Memo 3D VR",label:"Dodocase Memo 3D VR",url:"https://www.amazon.de/ELEGIANT-3d-Brille-3d-Virtuelle-5-6-iPhone-Smartphone/dp/B01ET6NHG4",interLensDistance:.05999999865889549,screenLensDistance:.03956440091133118,fov:44.391510009765625,baselineLensDistance:.03799999877810478,distortionCoefficients:[.28466999530792236,.6047899723052979],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["SMART VR",new o.CardboardViewer({id:"SMART VR",label:"SMART VR",url:"https://www.dodocase.com/products/smartvr",interLensDistance:.05999999865889549,screenLensDistance:.03956440091133118,fov:44.391510009765625,baselineLensDistance:.03799999877810478,distortionCoefficients:[.28466999530792236,.6047899723052979],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["MattelView-Master VR Deluxe",new o.CardboardViewer({id:"MattelView-Master VR Deluxe",label:"MattelView-Master VR Deluxe",url:"http://www.view-master.com/",interLensDistance:.06400000303983688,screenLensDistance:.039000000804662704,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3400000035762787,.550000011920929],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Lion VR Mini",new o.CardboardViewer({id:"Lion VR Mini",label:"Lion VR Mini",interLensDistance:.05299999937415123,screenLensDistance:.054999999701976776,fov:50,baselineLensDistance:.03200000151991844,distortionCoefficients:[.12999999523162842,.10999999940395355],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["LingVR",new o.CardboardViewer({id:"LingVR",label:"Ling VR",url:"http://lingvr.com/en/",interLensDistance:.054999999701976776,screenLensDistance:.03500000014901161,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3199999928474426,-.019999999552965164],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Leji VR Mini",new o.CardboardViewer({id:"Leji VR Mini",label:"Leji VR Mini",url:"https://www.gearbest.com/virtual-reality/pp_366934.html",interLensDistance:.06400000303983688,screenLensDistance:.039000000804662704,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3400000035762787,.550000011920929],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Lakento MVR",new o.CardboardViewer({id:"Lakento MVR",label:"Lakento MVR",url:"https://www.lakento.com/products/en/lakento-mvr.html",interLensDistance:.06599999964237213,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.041999999433755875,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["DOMO nHance VRC57",new o.CardboardViewer({id:"DOMO nHance VRC57",label:"DOMO nHance VRC57",url:"https://www.amazon.in/VRC57-Universal-Virtual-Reality-Headset/dp/B00X6431RQ",interLensDistance:.06599999964237213,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.041999999433755875,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["JiDome VR Glasses",new o.CardboardViewer({id:"JiDome VR Glasses",label:"JiDome VR Glasses",url:"https://www.gearbest.com/vr-headset-c_12105/vh01_jidome/",interLensDistance:.05999999865889549,screenLensDistance:.032999999821186066,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,-.009999999776482582],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Intempo Engage",new o.CardboardViewer({id:"Intempo Engage",label:"Intempo Engage",url:"https://www.amazon.co.uk/Intempo-EE1413-Virtual-Reality-Headset-White/dp/B01GI21LQK",interLensDistance:.061000000685453415,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.039000000804662704,distortionCoefficients:[.1899999976158142,.09000000357627869],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Tepoinn 3D VR",new o.CardboardViewer({id:"Tepoinn 3D VR",label:"Tepoinn 3D VR",url:"https://www.amazon.de/tepoinn-VR-Headset-verstellbare-Smartphone-schwarz/dp/B018VLZL7G",interLensDistance:.061000000685453415,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.039000000804662704,distortionCoefficients:[.1899999976158142,.09000000357627869],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Immerse VR Headset",new o.CardboardViewer({id:"Immerse VR Headset",label:"Immerse VR Headset",url:"http://www.immerseheadset.com/",interLensDistance:.054999999701976776,screenLensDistance:.05400000140070915,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.11999999731779099,.1599999964237213],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["iBlue Illusion Mask 3D",new o.CardboardViewer({id:"iBlue Illusion Mask 3D",label:"iBlue Illusion Mask 3D",url:"http://iblue.eu/",interLensDistance:.0689999982714653,screenLensDistance:.06700000166893005,fov:50,baselineLensDistance:.03400000184774399,distortionCoefficients:[.07000000029802322,.6600000262260437],magnet:!0,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["IAmCardboard Headset",new o.CardboardViewer({id:"IAmCardboard Headset",label:"IAmCardboard Headset",url:"http://www.imcardboard.com/cardboard.html",interLensDistance:.06400000303983688,screenLensDistance:.04699999839067459,fov:50,baselineLensDistance:.04500000178813934,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["IAC Giant EVA Headset",new o.CardboardViewer({id:"IAC Giant EVA Headset",label:"IAmCardboard Giant EVA Headset",url:"http://www.imcardboard.com/eva/giant-version-v2-0-eva-vr-kit-with-nfc-black.html",interLensDistance:.06400000303983688,screenLensDistance:.04699999839067459,fov:50,baselineLensDistance:.04500000178813934,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Hootoo HT-VR002",new o.CardboardViewer({id:"Hootoo HT-VR002",label:"Hootoo HT-VR002",url:"https://www.hootoo.com/",interLensDistance:.06300000101327896,screenLensDistance:.04100000113248825,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.20999999344348907,.20999999344348907],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Freefly VR",new o.CardboardViewer({id:"Freefly VR",label:"Proteus Freefly VR",url:"http://www.freeflyvr.com/",interLensDistance:.06300000101327896,screenLensDistance:.04100000113248825,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.20999999344348907,.20999999344348907],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Homido V2",new o.CardboardViewer({id:"Homido V2",label:"Homido V2",url:"http://www.homido.com/en/shop/products/homido-hmd-v2",interLensDistance:.06199999898672104,screenLensDistance:.03400000184774399,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.1899999976158142,.07999999821186066],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!0})],["Homido Mini",new o.CardboardViewer({id:"Homido Mini",label:"Homido Mini",url:"http://www.homido.com/en/mini",interLensDistance:.06430000066757202,screenLensDistance:.05017539858818054,fov:45.01373291015625,baselineLensDistance:.03240000084042549,distortionCoefficients:[.29050999879837036,.11975999921560287],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Homido Grab",new o.CardboardViewer({id:"Homido Grab",label:"Homido Grab",url:"http://www.homido.com/en/shop/products/grab",interLensDistance:.061000000685453415,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.17000000178813934,.12999999523162842],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!0})],["Homido",new o.CardboardViewer({id:"Homido",label:"Homido V1",url:"http://www.homido.com/en",interLensDistance:.05999999865889549,screenLensDistance:.04012329876422882,fov:48.34605026245117,baselineLensDistance:.037700001150369644,distortionCoefficients:[.22600999474525452,.3597399890422821],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Habor 3D Goggles",new o.CardboardViewer({id:"Habor 3D Goggles",label:"Habor 3D Goggles",url:"http://www.virtualrealitytechnologyshop.com/habor-3d-vr-virtual-reality-headset-for-smartphones-for-3d-moviesgames-black/",interLensDistance:.05999999865889549,screenLensDistance:.04399999976158142,fov:50,baselineLensDistance:.0430000014603138,distortionCoefficients:[.03999999910593033,.10999999940395355],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["CardboardV2",new o.CardboardViewer({id:"CardboardV2",label:"Cardboard 2.0",url:"http://www.imcardboard.com/eva/giant-version-v2-0-eva-vr-kit-with-nfc-black.html",interLensDistance:.05999999865889549,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.25,.25],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["CardboardV1",new o.CardboardViewer({id:"CardboardV1",label:"Cardboard 1.0",url:"http://www.imcardboard.com/cardboard.html",interLensDistance:.06400000303983688,screenLensDistance:.04699999839067459,fov:50,baselineLensDistance:.04500000178813934,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Goji G6PVR17 Cardboard",new o.CardboardViewer({id:"Goji G6PVR17 Cardboard",label:"Goji G6PVR17 Cardboard",url:"https://www.carphonewarehouse.com/goji/vr-headset.html#!colour=black&dealType=sf",interLensDistance:.06800000369548798,screenLensDistance:.039000000804662704,fov:60,baselineLensDistance:.0430000014603138,distortionCoefficients:[.699999988079071,.30000001192092896],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Gepro VR Glasses",new o.CardboardViewer({id:"Gepro VR Glasses",label:"Gepro VR Glasses",url:"https://www.gearbest.com/vr-headset/pp_469447.html",interLensDistance:.05999999865889549,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["SamsungGear VR 2016",new o.CardboardViewer({id:"SamsungGear VR 2016",label:"Samsung Gear VR 2016",url:"http://www.samsung.com/global/galaxy/wearables/gear-vr/",interLensDistance:.06300000101327896,screenLensDistance:.03991759940981865,fov:47.966121673583984,baselineLensDistance:.03500000014901161,distortionCoefficients:[.36917999386787415,-.27654001116752625,.9192699790000916,0],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!0})],["Gear VR 2015",new o.CardboardViewer({id:"Gear VR 2015",label:"Samsung Gear VR 2015",url:"http://www.samsung.com/global/galaxy/wearables/gear-vr/",interLensDistance:.05999999865889549,screenLensDistance:.04100000113248825,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.20999999344348907,.20999999344348907],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!0})],["FTLL VR",new o.CardboardViewer({id:"FTLL VR",label:"FTLL VR",url:"https://www.amazon.de/FTLL-Virtual-Reality-Headset-Samsung-black/dp/B01JZ6G8AA",interLensDistance:.05999999865889549,screenLensDistance:.07000000029802322,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.44999998807907104,.44999998807907104],magnet:!0,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Arcci VR",new o.CardboardViewer({id:"Arcci VR",label:"Arcci VR",url:"https://www.amazon.co.uk/ARCCI-Headset-Virtual-Adjustable-Smartphone-wei/dp/B01D46TCOG",interLensDistance:.05999999865889549,screenLensDistance:.07000000029802322,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.44999998807907104,.44999998807907104],magnet:!0,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["FlyingTiger VR Goggles",new o.CardboardViewer({id:"FlyingTiger VR Goggles",label:"FlyingTiger VR Goggles",url:"http://us.flyingtiger.com/en/vr",interLensDistance:.05999999865889549,screenLensDistance:.0430000014603138,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.18000000715255737,.9100000262260437],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["FiiT VR 3F",new o.CardboardViewer({id:"FiiT VR 3F",label:"FiiT VR 3F",url:"http://www.fiitvr.com/pro3f.html",interLensDistance:.05000000074505806,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["FiiT VR 2S",new o.CardboardViewer({id:"FiiT VR 2S",label:"FiiT VR 2S",url:"http://www.fiitvr.com/pro2s.html",interLensDistance:.05999999865889549,screenLensDistance:.03700000047683716,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.11999999731779099,.14000000059604645],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Fiit VR IGoeShopping",new o.CardboardViewer({id:"Fiit VR IGoeShopping",label:"Fiit VR IGoeShopping",url:"http://fiitvr.com/",interLensDistance:.05700000002980232,screenLensDistance:.04899999871850014,fov:50,baselineLensDistance:.039000000804662704,distortionCoefficients:[.14000000059604645,.10000000149011612],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Fibrum Pro",new o.CardboardViewer({id:"Fibrum Pro",label:"Fibrum Pro",url:"http://fibrum.com/",interLensDistance:.05999999865889549,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.5450000166893005,.5450000166893005],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Evo VR One MI-VRH02",new o.CardboardViewer({id:"Evo VR One MI-VRH02",label:"Evo VR One MI-VRH02",url:"https://www.walmart.com/ip/Evo-VR-MI-VRH03-199-Evo-Ultra-Virtual-Reality-Headset/53585010",interLensDistance:.06599999964237213,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.10999999940395355,.2800000011920929],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Evo VR MI-VRH01",new o.CardboardViewer({id:"Evo VR MI-VRH01",label:"Evo VR MI-VRH01",url:"https://www.bestbuy.com/site/evo-vr-one-virtual-reality-headset-black/5442009.p?skuId=5442009",interLensDistance:.06800000369548798,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.019999999552965164,.019999999552965164],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Evo Mega",new o.CardboardViewer({id:"Evo Mega",label:"Evo Mega",url:"https://www.amazon.com/Merkury-Innovations-Headphones-Virtual-Smartphones/dp/B01MSYR79S",interLensDistance:.06300000101327896,screenLensDistance:.04100000113248825,fov:51,baselineLensDistance:.03500000014901161,distortionCoefficients:[.019999999552965164,.019999999552965164],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0, overlap:0,phoneFixed:!1})],["Whirlpool ePerspective",new o.CardboardViewer({id:"Whirlpool ePerspective",label:"Whirlpool ePerspective",interLensDistance:.06300000101327896,screenLensDistance:.061000000685453415,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.05000000074505806,-.05999999865889549],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Durovis Dive 7",new o.CardboardViewer({id:"Durovis Dive 7",label:"Durovis Dive 7",url:"https://www.durovis.com/en/product.html?id=5",interLensDistance:.054999999701976776,screenLensDistance:.06800000369548798,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.4000000059604645,-.18000000715255737],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Durovis Dive 5",new o.CardboardViewer({id:"Durovis Dive 5",label:"Durovis Dive 5",url:"https://www.durovis.com/en/product.html?id=1",interLensDistance:.06300000101327896,screenLensDistance:.04479590058326721,fov:45.54069137573242,baselineLensDistance:.03500000014901161,distortionCoefficients:[.41385000944137573,-.01193000003695488],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Dynamic Virtual Viewer",new o.CardboardViewer({id:"Dynamic Virtual Viewer",label:"Dynamic Virtual Viewer",url:"https://www.amazon.com/Dynamic-Virtual-Viewer-Smartphone-Compatible/dp/B01EVV5XW8",interLensDistance:.035999998450279236,screenLensDistance:.05400000140070915,fov:50,baselineLensDistance:.026000000536441803,distortionCoefficients:[-.009999999776482582,-.14000000059604645],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["DSCVR",new o.CardboardViewer({id:"DSCVR",label:"IAmCardboard Dscvr",url:"http://www.imcardboard.com/dscvr.html",interLensDistance:.06355500221252441,screenLensDistance:.03969759866595268,fov:46.45320510864258,baselineLensDistance:.03500000014901161,distortionCoefficients:[.18324999511241913,.811959981918335],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["D-Scope Pro VR",new o.CardboardViewer({id:"D-Scope Pro VR",label:"D-Scope Pro VR",url:"http://ceyeapro.com/",interLensDistance:.05999999865889549,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.032999999821186066,distortionCoefficients:[.009999999776482582,-.009999999776482582],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["TheVideoRealm DreamVision Pro",new o.CardboardViewer({id:"TheVideoRealm DreamVision Pro",label:"TheVideoRealm DreamVision Pro",url:"http://www.dreamvision.net/",interLensDistance:.05999999865889549,screenLensDistance:.04399999976158142,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,-.009999999776482582],magnet:!0,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Dodocase VR v1.1",new o.CardboardViewer({id:"Dodocase VR v1.1",label:"Dodocase VR v1.1",url:"https://www.dodocasevr.com/",interLensDistance:.05999999865889549,screenLensDistance:.03799999877810478,fov:50,baselineLensDistance:.03099999949336052,distortionCoefficients:[.30000001192092896,.5699999928474426],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Destek 2016 v3",new o.CardboardViewer({id:"Destek 2016 v3",label:"DESTEK 2016 V3",url:"https://www.destekgear.com/",interLensDistance:.06499999761581421,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[-.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Destek 2017 v4",new o.CardboardViewer({id:"Destek 2017 v4",label:"DESTEK 2017 V4",url:"https://www.destekgear.com/destek-v4-vr-headset-w-controller",interLensDistance:.0611969493329525,screenLensDistance:.04788984730839729,fov:33.84120178222656,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,.28158679604530334],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Deepoon Kankan V2Y",new o.CardboardViewer({id:"Deepoon Kankan V2Y",label:"Deepoon Kankan V2Y",url:"http://en.deepoon.com/kankan.html",interLensDistance:.05999999865889549,screenLensDistance:.03999999910593033,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[-.25999999046325684,.8399999737739563],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["DeePoon V3",new o.CardboardViewer({id:"DeePoon V3",label:"DeePoon V3",url:"http://en.deepoon.com/",interLensDistance:.06400000303983688,screenLensDistance:.029999999329447746,fov:50,baselineLensDistance:.041999999433755875,distortionCoefficients:[-.009999999776482582,0],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Defairy VRSH020",new o.CardboardViewer({id:"Defairy VRSH020",label:"Defairy VR SH020",url:"https://www.amazon.de/DEFAIRY-Virtual-Cardboard-Verstellbarkeit-Bluetooth/dp/B0188MHU0O",interLensDistance:.06199999898672104,screenLensDistance:.06700000166893005,fov:50,baselineLensDistance:.041999999433755875,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Daydream View",new o.CardboardViewer({id:"Daydream View",label:"Daydream View",url:"https://vr.google.com/daydream/headset/",interLensDistance:.06499999761581421,screenLensDistance:.03999999910593033,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.5,.10000000149011612],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Cynoculars",new o.CardboardViewer({id:"Cynoculars",label:"Cynoculars",url:"http://cynoculars.com/",interLensDistance:.05999999865889549,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03400000184774399,distortionCoefficients:[-.019999999552965164,-.019999999552965164],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Converge VR DK3",new o.CardboardViewer({id:"Converge VR DK3",label:"Converge VR DK3",url:"http://www.convergevr.com/product/converge-vr-dk3/",interLensDistance:.06400000303983688,screenLensDistance:.04100000113248825,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.20999999344348907,.20999999344348907],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Cobra VR",new o.CardboardViewer({id:"Cobra VR",label:"HandStands Cobra VR",url:"http://handstandspromo.com/ProductDetails/?productId=550648007",interLensDistance:.061000000685453415,screenLensDistance:.04399999976158142,fov:50,baselineLensDistance:.03700000047683716,distortionCoefficients:[.4779999852180481,-.20999999344348907],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["ClasOhlson Cardboard VR Viewerv1",new o.CardboardViewer({id:"ClasOhlson Cardboard VR Viewerv1",label:"ClasOhlson Cardboard VR Viewerv1",url:"http://www.clasohlson.com/fi/VR-glas%C3%B6gon-f%C3%B6r-smartphone/38-7214",interLensDistance:.05000000074505806,screenLensDistance:.03799999877810478,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.1599999964237213,.05000000074505806],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Circle VR",new o.CardboardViewer({id:"Circle VR",label:"Circle VR",url:"http://www.circlect.com/circle-vr-glass.html",interLensDistance:.054999999701976776,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.5099999904632568,.1599999964237213],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Circle VR Prime",new o.CardboardViewer({id:"Circle VR Prime",label:"Circle VR Prime",url:"http://www.circlect.com/circle-vr-glass.html",interLensDistance:.054999999701976776,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.5099999904632568,.1599999964237213],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Cellularline Zion VR",new o.CardboardViewer({id:"Cellularline Zion VR",label:"Cellularline Zion VR",url:"https://www.cellularline.com/xc_en/products/zion-vr-universale.html",interLensDistance:.06499999761581421,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.019999999552965164,.019999999552965164],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["C1-Glass",new o.CardboardViewer({id:"C1-Glass",label:"GoggleTech C1-Glass",url:"http://goggletech.net/",interLensDistance:.05999999865889549,screenLensDistance:.05833449959754944,fov:63.276981353759766,baselineLensDistance:.03500000014901161,distortionCoefficients:[.263949990272522,.06370999664068222],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["BoxGlass",new o.CardboardViewer({id:"BoxGlass",label:"BoxGlass v1.0",url:"http://boxglass.ru/",interLensDistance:.06300000101327896,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.035999998450279236,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["BoboVR Z5",new o.CardboardViewer({id:"BoboVR Z5",label:"Bobo VR Z5",url:"http://www.bobovr.com/product/bobovrz5/",interLensDistance:.05999999865889549,screenLensDistance:.03500000014901161,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.6000000238418579,.6000000238418579],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["BoboVR Z3",new o.CardboardViewer({id:"BoboVR Z3",label:"Bobo VR Z3",url:"http://www.bobovr.com/product/bobovrz3/",interLensDistance:.06599999964237213,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.10999999940395355,.2800000011920929],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Stark VR Pro Retina",new o.CardboardViewer({id:"Stark VR Pro Retina",label:"Stark VR Pro Retina",url:"https://www.starkvrpro.com/",interLensDistance:.06599999964237213,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.10999999940395355,.2800000011920929],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Vision VR 360",new o.CardboardViewer({id:"Vision VR 360",label:"Vision VR 360",url:"http://www.bobovr.com/product/bobovrz3/",interLensDistance:.06599999964237213,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.10999999940395355,.2800000011920929],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Evo VR MI-VRH02",new o.CardboardViewer({id:"Evo VR MI-VRH02",label:"Evo VR MI-VRH02",url:"http://www.bobovr.com/product/bobovrz3/",interLensDistance:.06599999964237213,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.10999999940395355,.2800000011920929],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["BMW-Mini Cardboard",new o.CardboardViewer({id:"BMW-Mini Cardboard",label:"BMW-Mini Cardboard",url:"http://www.mini.com/360/en/index.html",interLensDistance:.05999999865889549,screenLensDistance:.05000000074505806,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.7799999713897705,.4399999976158142],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["BlitzWolf BW-VR3v6",new o.CardboardViewer({id:"BlitzWolf BW-VR3v6",label:"BlitzWolf BW-VR3v6",url:"http://www.blitzwolf.com/BlitzWolf-BW-VR3-3D-VR-Glasses-Virtual-Reality-Headset-For-3.5-6.3-inch-Mobile-Phone-p-119.html",interLensDistance:.06300000101327896,screenLensDistance:.03700000047683716,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.012000000104308128,.014000000432133675],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["BlitzWolf",new o.CardboardViewer({id:"BlitzWolf",label:"BlitzWolf",url:"http://www.blitzwolf.com/BlitzWolf-Virtual-Reality-3D-Movies-Games-Glasses-Google-Cardboard-Upgraded-Version-for-3.5-to-6.0-inch-Android-Samsung-Galaxy-Note,-IOS-iPhone-6-6s-Plus-p-41.html",interLensDistance:.05999999865889549,screenLensDistance:.06199999898672104,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.25,.03999999910593033],magnet:!0,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Shinecon 3D VR Headset",new o.CardboardViewer({id:"Shinecon 3D VR Headset",label:"Shinecon VR G01",url:"http://www.shinecon.com/vr-glasses/vr-glasses-for-mobile-phone/vr-shinecon-g01-classical-design-immersive-3d.html",interLensDistance:.05999999865889549,screenLensDistance:.06199999898672104,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.25,.03999999910593033],magnet:!0,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Baofeng Mojing XM",new o.CardboardViewer({id:"Baofeng Mojing XM",label:"Baofeng Mojing XMD",url:"http://www.mojing.cn/product_1000030.html",interLensDistance:.05999999865889549,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.035999998450279236,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Baofeng Mojing XD",new o.CardboardViewer({id:"Baofeng Mojing XD",label:"Baofeng Mojing XD",url:"http://www.mojing.cn/product_1000030.html",interLensDistance:.05999999865889549,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.035999998450279236,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Baofeng Mojing S1",new o.CardboardViewer({id:"Baofeng Mojing S1",label:"Baofeng Mojing S1",url:"http://www.mojing.cn/product_1000041.html",interLensDistance:.05999999865889549,screenLensDistance:.03999999910593033,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Baofeng Mojing Q",new o.CardboardViewer({id:"Baofeng Mojing Q",label:"Baofeng Mojing Q",url:"http://www.mojing.cn/product_1000042.html",interLensDistance:.05999999865889549,screenLensDistance:.04100000113248825,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,-.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Baofeng Mojing 3",new o.CardboardViewer({id:"Baofeng Mojing 3",label:"Baofeng Mojing 3",url:"http://www.mojing.cn/product_1000018.html",interLensDistance:.05999999865889549,screenLensDistance:.029999999329447746,fov:75,baselineLensDistance:.03700000047683716,distortionCoefficients:[.07000000029802322,.15000000596046448],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Baofeng Mojing 2",new o.CardboardViewer({id:"Baofeng Mojing 2",label:"Baofeng Mojing 2",url:"http://www.mojing.cn/",interLensDistance:.06300000101327896,screenLensDistance:.06923790276050568,fov:59.139488220214844,baselineLensDistance:.039500001817941666,distortionCoefficients:[.052480001002550125,.10796999931335449],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Baofeng Small Mojing",new o.CardboardViewer({id:"Baofeng Small Mojing",label:"Baofeng Small Mojing",url:"http://www.mojing.cn/product_1000013.html",interLensDistance:.06300000101327896,screenLensDistance:.05827660113573074,fov:63.299827575683594,baselineLensDistance:.03500000014901161,distortionCoefficients:[.20845000445842743,.057339999824762344],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["AZ360 VR",new o.CardboardViewer({id:"AZ360 VR",label:"AZ360 VR",url:"https://tv.azpm.org/arizona360/",interLensDistance:.057999998331069946,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.20000000298023224,.6100000143051147],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Aura VR Go",new o.CardboardViewer({id:"Aura VR Go",label:"Aura VR Go",url:"http://auravr.com/",interLensDistance:.05999999865889549,screenLensDistance:.03999999910593033,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Baofeng Small Mojing",new o.CardboardViewer({id:"Baofeng Small Mojing",label:"Baofeng Small Mojing",url:"http://www.mojing.cn/product_1000013.html",interLensDistance:.06499999761581421,screenLensDistance:.054999999701976776,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.15000000596046448,.2199999988079071],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["Baofeng Mojing 3",new o.CardboardViewer({id:"Baofeng Mojing 3",label:"Baofeng Mojing",url:"http://www.mojing.cn/product_1000018.html",interLensDistance:.05999999865889549,screenLensDistance:.029999999329447746,fov:75,baselineLensDistance:.03700000047683716,distortionCoefficients:[.07000000029802322,.15000000596046448],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["Baofeng Mojing 4",new o.CardboardViewer({id:"Baofeng Mojing 4",label:"Baofeng Mojing 4",url:"http://www.mojing.cn/product_1000023.html",interLensDistance:.0560000017285347,screenLensDistance:.06300000101327896,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.6100000143051147,1.1299999952316284],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0})],["Aura VR",new o.CardboardViewer({id:"Aura VR",label:"Aura VR",url:"http://auravr.com/",interLensDistance:.05999999865889549,screenLensDistance:.03999999910593033,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Aura VR v2",new o.CardboardViewer({id:"Aura VR v2",label:"Aura VRv2",url:"http://auravr.com/",interLensDistance:.05999999865889549,screenLensDistance:.03999999910593033,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Arunners",new o.CardboardViewer({id:"Arunners",label:"Arunners",url:"http://www.incredisonic.com/",interLensDistance:.06499999761581421,screenLensDistance:.07999999821186066,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.019999999552965164,.019999999552965164],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["IncrediSonic M700 VUE Series VR Glasses",new o.CardboardViewer({id:"IncrediSonic M700 VUE Series VR Glasses",label:"IncrediSonic M700 VUE Series VR Glasses",url:"http://www.incredisonic.com/",interLensDistance:.06499999761581421,screenLensDistance:.07999999821186066,fov:50,baselineLensDistance:.03999999910593033,distortionCoefficients:[.019999999552965164,.019999999552965164],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Virtoba X5",new o.CardboardViewer({id:"Virtoba X5",label:"Virtoba X5",url:"http://www.bobovr.com/product/bobovrz4/",interLensDistance:.06277000159025192,screenLensDistance:.040980901569128036,fov:47.25382995605469,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3406600058078766,-.09816999733448029],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Archos VR Glasses 2",new o.CardboardViewer({id:"Archos VR Glasses 2",label:"Archos VR Glasses 2",url:"https://www.archos.com/us/products/objects/cself/avr2/index.html",interLensDistance:.06277000159025192,screenLensDistance:.040980901569128036,fov:47.25382995605469,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3406600058078766,-.09816999733448029],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["BoboVR Z4",new o.CardboardViewer({id:"BoboVR Z4",label:"Bobo VR Z4",url:"http://www.bobovr.com/product/bobovrz4/",interLensDistance:.06277000159025192,screenLensDistance:.040980901569128036,fov:47.25382995605469,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3406600058078766,-.09816999733448029],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["BoboVR",new o.CardboardViewer({id:"BoboVR",label:"Bobo VR",url:"http://www.bobovr.com/",interLensDistance:.06277000159025192,screenLensDistance:.040980901569128036,fov:47.25382995605469,baselineLensDistance:.03500000014901161,distortionCoefficients:[.3406600058078766,-.09816999733448029],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["JetRockIndustrial Archgon VRock Portable",new o.CardboardViewer({id:"JetRockIndustrial Archgon VRock Portable",label:"JetRockIndustrial Archgon VRock Portable",url:"https://www.amazon.com/Archgon-Portable-Virtual-Foldable-6S-Black/dp/B01D4HVC6G",interLensDistance:.05999999865889549,screenLensDistance:.052000001072883606,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.15000000596046448,.15000000596046448],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Ant VR",new o.CardboardViewer({id:"Ant VR",label:"Ant VR",url:"http://www.antvr.com/",interLensDistance:.06332500278949738,screenLensDistance:.04832259938120842,fov:67.36170959472656,baselineLensDistance:.03500000014901161,distortionCoefficients:[.04938000068068504,.07039999961853027],magnet:!1,primaryButton:2,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Aluminium 120 VR",new o.CardboardViewer({id:"Aluminium 120 VR",label:"Aluminium 120 VR",url:"https://www.virtual-reality-shop.co.uk/aluminium-120-vr/",interLensDistance:.06499999761581421,screenLensDistance:.04899999871850014,fov:50,baselineLensDistance:.029999999329447746,distortionCoefficients:[.5099999904632568,.16009999811649323],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Alian Cardboard v1.1",new o.CardboardViewer({id:"Alian Cardboard v1.1",label:"Alian Cardboard v1.1",url:"http://aliancardboard.com/",interLensDistance:.06300000101327896,screenLensDistance:.027000000700354576,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[0,0],magnet:!0,primaryButton:1,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Xiaomi VR Play 2",new o.CardboardViewer({id:"Xiaomi VR Play 2",label:"Xiaomi VR Play 2",thumb:"http://www.hypergridbusiness.com/wp-content/uploads/2017/03/Xiaomi-Play-2-square.jpg",interLensDistance:.05999999865889549,screenLensDistance:.041999999433755875,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,-.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["XG VR Xingear",new o.CardboardViewer({id:"XG VR Xingear",label:"XG VR Xingear",thumb:"http://www.hypergridbusiness.com/wp-content/uploads/2016/01/XG-VR-Xingear-headset.jpg",interLensDistance:.06300000101327896,screenLensDistance:.03999999910593033,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.27000001072883606,.27000001072883606],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Windup VR",new o.CardboardViewer({id:"Windup VR",label:"Windup VR",thumb:"http://www.hypergridbusiness.com/wp-content/uploads/2015/10/Windup-VR-square.jpg",interLensDistance:.06499999761581421,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.029999999329447746,-.009999999776482582],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Weebo3D",new o.CardboardViewer({id:"Weebo3D",label:"Weebo3D",thumb:"http://www.hypergridbusiness.com/wp-content/uploads/2015/10/Weebo3D.jpg",interLensDistance:.06199999898672104,screenLensDistance:.04500000178813934,fov:50,baselineLensDistance:.03400000184774399,distortionCoefficients:[.25,.18000000715255737],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["4smarts VR Glasses",new o.CardboardViewer({id:"4smarts VR Glasses",label:"4smarts VR Glasses",thumb:"http://www.hypergridbusiness.com/wp-content/uploads/2015/10/4smarts-VR-Glasses-square.jpg",interLensDistance:.06499999761581421,screenLensDistance:.052000001072883606,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["Alcatel VR15",new o.CardboardViewer({id:"Alcatel VR15",label:"Alcatel VR15",thumb:"http://www.hypergridbusiness.com/wp- content/uploads/2015/10/Alcatel-IDOL-4-VR-Headset-1.jpg",interLensDistance:.05999999865889549,screenLensDistance:.03999999910593033,fov:50,baselineLensDistance:.03799999877810478,distortionCoefficients:[.5099999904632568,.1599999964237213],magnet:!1,primaryButton:3,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})],["XiaomoVR",new o.CardboardViewer({id:"XiaomoVR",label:"XiaomoVR",thumb:"http://www.hypergridbusiness.com/wp-content/uploads/2015/10/Xiaomovr-square.jpg",interLensDistance:.05999999865889549,screenLensDistance:.06499999761581421,fov:50,baselineLensDistance:.03500000014901161,distortionCoefficients:[.009999999776482582,.009999999776482582],magnet:!1,primaryButton:0,vignettingStrength:0,chromaticAberrationStrength:0,overlap:0,phoneFixed:!1})]])},,,function(e,t,n){"use strict";function r(){return B("dl8-customization-use-webgl-stats")}function i(){return!B("dl8-customization-no-compass")}function a(){return!!document.querySelector("meta[name=dl8-customization-skip-vr-wizard]")}function o(){return!!document.querySelector("meta[name=dl8-save-adaptive-quality]")}function s(){return!!document.querySelector("meta[name=dl8-customization-force-native-vr-resolution]")}function l(){var e=F("dl8-customization-primary-color");return e&&k(e)?e:"#00e573"}function u(){var e=F("dl8-customization-secondary-color");return e&&k(e)?e:"#2b2b2b"}function d(){return(0,W.getAllowedFeature)("whiteLabelEnabled")}function c(){var e=F("dl8-customization-brand-logo");if(e){if(d())return e;console.error("Brand logo customization is not enabled on this copy of Delight XR")}return null}function f(){var e=F("dl8-customization-brand-watermark-logo");if(e){if(d())return e;console.error("Brand watermark customization is not enabled on this copy of Delight XR")}return null}function h(){var e=F("dl8-customization-brand-url");if(e){if(d())return e;console.error("Brand URL customization is not enabled on this copy of Delight XR")}return null}function _(){var e=F("dl8-customization-brand-name");if(e){if(d())return e;console.error("Brand name customization is not enabled on this copy of Delight XR")}return null}function A(){var e=F("dl8-content-language");return O(e?e:B("dl8-prefer-user-language")&&navigator.language?navigator.language.split("-")[0]:document.documentElement.lang)}function m(){return!d()||!B("dl8-customization-no-brand-logo")}function p(){return!d()||!B("dl8-customization-no-brand-watermark-logo")}function g(){return B("dl8-customization-save-volume-level")}function E(){return!B("dl8-customization-no-content-badge")}function v(){return B("dl8-beta-use-samsungvr-deeplink")}function b(){return B("dl8-beta-use-carmel-deeplink")}function S(){return B("dl8-beta-use-iframe-redirect")}function T(){return!B("dl8-customization-no-exit-button")}function x(){return!B("dl8-customization-no-vr-button")}function y(){return!B("dl8-customization-no-settings-button")}function C(){return!B("dl8-customization-no-fullscreen-button")}function w(){return!B("dl8-customization-no-controls")}function M(){return!B("dl8-customization-no-title")}function D(){return B("dl8-customization-mobile-mute-button")}function P(){return B("dl8-internal-never-start-engine")}function R(){return B("dl8-internal-use-shader-resource-hack")}function I(){return B("dl8-internal-copy-poster-to-video-element")}function L(){var e=F("dl8-beta-tracking-events");return e?e.split(" "):[]}function O(e){return X.SUPPORTED_LANGUAGES.indexOf(e)!==-1?e:X.DEFAULT_LANGUAGE}function N(){return B("dl8-beta-immediate-load")}function B(e){return!!document.querySelector("meta[name="+e+"]")}function F(e){var t=document.querySelector("meta[name="+e+"]");return t?t.getAttribute("content"):null}function k(e){return/^#(?:[0-9a-f]{3}){1,2}$/i.test(e)}function U(e,t){return t=t||[0,0,0],e=e.split(""),t[0]=parseInt(e[0]+e[e[3]?1:0],16)/255,t[1]=parseInt(e[e[3]?2:1]+(e[3]||e[1]),16)/255,t[2]=parseInt((e[4]||e[2])+(e[5]||e[2]),16)/255,t}function V(e,t){return t=t||[0,0,0],U(e.substring(1),t),t}function G(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+6*(t-e)*(2/3-n):e}function H(e,t){t=t||[0,0,0];var n=e[0],r=e[1],i=e[2];if(0===r)t[0]=t[1]=t[2]=i;else{var a=i<=.5?i*(1+r):i+r-i*r,o=2*i-a;t[0]=G(o,a,n+1/3),t[1]=G(o,a,n),t[2]=G(o,a,n-1/3)}return t}function z(e,t){t=t||[0,0,0];var n=e[0],r=e[1],i=e[2],a=Math.max(n,r,i),o=Math.min(n,r,i),s=void 0,l=void 0,u=(o+a)/2;if(o===a)s=0,l=0;else{var d=a-o;switch(l=u<=.5?d/(a+o):d/(2-a-o),a){case n:s=(r-i)/d+(r<i?6:0);break;case r:s=(i-n)/d+2;break;case i:s=(n-r)/d+4}s/=6}return t[0]=s,t[1]=l,t[2]=u,t}function Q(e,t,n){var r=z(V(e));r[2]=r[2]*t;var i=H(r);return n?"rgba("+Math.round(255*i[0])+", "+Math.round(255*i[1])+", "+Math.round(255*i[2])+", "+n+")":"rgb("+Math.round(255*i[0])+", "+Math.round(255*i[1])+", "+Math.round(255*i[2])+")"}Object.defineProperty(t,"__esModule",{value:!0}),t.enableWebGLStats=r,t.shouldDisplayCompass=i,t.shouldSkipWizard=a,t.shouldSaveAdaptiveQuality=o,t.forceNativeVrResolution=s,t.getPrimaryColor=l,t.getSecondaryColor=u,t.getWhiteLabel=d,t.getBrandLogo=c,t.getBrandWatermarkLogo=f,t.getBrandUrl=h,t.getBrandName=_,t.getLanguage=A,t.shouldDisplayBrandLogo=m,t.shouldDisplayBrandWatermarkLogo=p,t.shouldSaveVolumeLevel=g,t.shouldDisplayContentBadge=E,t.shouldDisplaySamsungVRDirectLink=v,t.shouldDisplayCarmelDirectLink=b,t.shouldUseIFrameRedirect=S,t.shouldDisplayExitButton=T,t.shouldDisplayVrButton=x,t.shouldDisplaySettingsButton=y,t.shouldDisplayFullscreenButton=C,t.shouldDisplayControls=w,t.shouldDisplayTitle=M,t.shouldDisplayMuteButton=D,t.shouldNeverStartEngine=P,t.shouldUseShaderResourceHack=R,t.shouldCopyPosterToVideoElement=I, t.trackingEvents=L,t.immediateLoad=N,t.darkenColor=Q;var X=n(15),W=n(61)},function(e,t,n){e.exports={default:n(562),__esModule:!0}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=!0},function(e,t,n){var r=n(156)("meta"),i=n(42),a=n(79),o=n(53).f,s=0,l=Object.isExtensible||function(){return!0},u=!n(87)(function(){return l(Object.preventExtensions({}))}),d=function(e){o(e,r,{value:{i:"O"+ ++s,w:{}}})},c=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,r)){if(!l(e))return"F";if(!t)return"E";d(e)}return e[r].i},f=function(e,t){if(!a(e,r)){if(!l(e))return!0;if(!t)return!1;d(e)}return e[r].w},h=function(e){return u&&_.NEED&&l(e)&&!a(e,r)&&d(e),e},_=e.exports={KEY:r,NEED:!1,fastKey:c,getWeak:f,onFreeze:h}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(53).f,i=n(79),a=n(37)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},function(e,t,n){var r=n(69);e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){var r=n(68),i=n(70),a=n(159);e.exports=r?function(e,t,n){return i.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(68),i=n(225),a=n(159),o=n(128),s=n(165),l=n(55),u=n(335),d=Object.getOwnPropertyDescriptor;t.f=r?d:function(e,t){if(e=o(e),t=s(t,!0),u)try{return d(e,t)}catch(e){}if(l(e,t))return a(!i.f.call(e,t),e[t])}},function(e,t,n){var r=n(218),i=n(104);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(231),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},,,,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Geometry=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(8),c=r(d),f=n(2),h=r(f),_=n(5),A=r(_),m=n(18),p=n(19),g=r(p),E=n(58),v=n(10),b=n(7),S=n(111),T=0,x=t.Geometry=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._indexBuffer=b.Util.getParamRequired(e,"indexBuffer"),n._vertexBuffer=b.Util.getParamRequired(e,"vertexBuffer"),n.addResourceDependency(n._indexBuffer),n.addResourceDependency(n._vertexBuffer),n.loaded=!0,T+=(n._indexBuffer?n._indexBuffer.sizeBytes:0)+n._vertexBuffer.sizeBytes,n._visible=b.Util.getParam(e,"visible",!0),n._rendered=!1,n._culled=!1,n._offset=0,n._offsetAlign=0,n._type=n._resolveGeometryType(b.Util.getParam(e,"type",t.TRIANGLES)),n._boundingVolume=b.Util.getParam(e,"boundingVolume",new S.AxisAlignedBoundingBox),n._calculateBoundingVolume=b.Util.getParam(e,"calculateBoundingVolume",!1),n._calculateBoundingVolume&&n._updateBoundingVolume(),n}return(0,A.default)(t,e),(0,h.default)(t,[{key:"$serialize",value:function(){return{name:"Geometry",params:{indexBuffer:this._indexBuffer,vertexBuffer:this._vertexBuffer,visible:this._visible,type:t.glTypeToGeometryType(this._type),boundingVolume:this._boundingVolume,calculateBoundingVolume:this._calculateBoundingVolume}}}}],[{key:"glTypeToGeometryType",value:function(e){switch(e){case v.Context.gl.POINTS:return t.POINTS;case v.Context.gl.LINES:return t.LINES;case v.Context.gl.LINE_LOOP:return t.LINE_LOOP;case v.Context.gl.LINE_STRIP:return t.LINE_STRIP;case v.Context.gl.TRIANGLES:return t.TRIANGLES;case v.Context.gl.TRIANGLE_STRIP:return t.TRIANGLE_STRIP;case v.Context.gl.TRIANGLE_FAN:return t.TRIANGLE_FAN;default:throw new Error("invalid geometry type: "+e)}}}]),(0,h.default)(t,[{key:"dtor",value:function(){this._indexBuffer&&this._indexBuffer.dtor(),this._vertexBuffer&&this._vertexBuffer.dtor(),(0,c.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"dtor",this).call(this)}},{key:"whichSide",value:function(e){return this._boundingVolume.whichSide(e)}},{key:"_updateBoundingVolume",value:function(){this._boundingVolume.calculateFromVertexBuffer(this._vertexBuffer)}},{key:"_resolveGeometryType",value:function(e){switch(e){case t.POINTS:return this._offsetAlign=1,v.Context.gl.POINTS;case t.LINES:return this._offsetAlign=2,v.Context.gl.LINES;case t.LINE_LOOP:return this._offsetAlign=1,v.Context.gl.LINE_LOOP;case t.LINE_STRIP:return this._offsetAlign=1,v.Context.gl.LINE_STRIP;case t.TRIANGLES:return this._offsetAlign=3,v.Context.gl.TRIANGLES;case t.TRIANGLE_STRIP:return this._offsetAlign=3,v.Context.gl.TRIANGLE_STRIP;case t.TRIANGLE_FAN:return this._offsetAlign=3,v.Context.gl.TRIANGLE_FAN;default:throw Error("invalid geometry type: "+e)}}},{key:"offset",set:function(e){var t=this._indexBuffer.indexBytes*this._offsetAlign;this._offset=Math.max((e/t|0)*t,0)},get:function(){return this._offset}},{key:"culled",set:function(e){this._culled=e},get:function(){return this._culled}},{key:"rendered",set:function(e){this._rendered=e},get:function(){return this._rendered}},{key:"indexBuffer",get:function(){return this._indexBuffer}},{key:"vertexBuffer",get:function(){return this._vertexBuffer}},{key:"type",get:function(){return this._type},set:function(e){this._type=this._resolveGeometryType(e)}},{key:"visible",get:function(){return this._visible},set:function(e){this._visible=e}},{key:"boundingVolume",get:function(){return this._boundingVolume}}]),t}((0,g.default)(E.Resource,m.Serializable));x.POINTS="points",x.LINES="lines",x.LINE_LOOP="lineLoop",x.LINE_STRIP="lineStrip",x.TRIANGLES="triangles",x.TRIANGLE_STRIP="triangleStrip",x.TRIANGLE_FAN="triangleFan"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.IndexBuffer=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(8),c=r(d),f=n(2),h=r(f),_=n(5),A=r(_),m=n(18),p=n(58),g=n(7),E=n(10),v=n(19),b=r(v),S={};t.IndexBuffer=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._indexDataType=null,n._indexDataNative=null,n._indexBytes=null,n._indexDataHash=null,n._internalType=null,n._bufferId=null,n._locked=!1,n._fullDataUploadNeeded=!0,n._partialDataUploadNeeded=!1,n._usageType=g.Util.getParam(e,"usageType",E.Context.gl.STATIC_DRAW),n._asyncHashUint32Array=E.Context.async.makeAsync(g.Util.hashUint32Array),n._asyncHashUint16Array=E.Context.async.makeAsync(g.Util.hashUint16Array),n._assignOptimalBuffer(e.data),n}return(0,A.default)(t,e),(0,h.default)(t,[{key:"$serialize",value:function(){return{name:"IndexBuffer",params:{usageType:this._usageType,data:this._indexDataNative}}}}]),(0,h.default)(t,[{key:"dtor",value:function(){null===this._bufferId||null!==this._indexDataHash&&1!==S[this._indexDataHash].count||(E.Context.gl.deleteBuffer(this._bufferId),this._bufferId=null,delete S[this._indexDataHash]),this._fullDataUploadNeeded=!0,(0,c.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"dtor",this).call(this)}},{key:"lock",value:function(){this._locked=!0}},{key:"unlock",value:function(){null!=this._bufferId&&(this._fullDataUploadNeeded?(E.Context.gl.bindBuffer(E.Context.gl.ELEMENT_ARRAY_BUFFER,this._bufferId),E.Context.gl.bufferData(E.Context.gl.ELEMENT_ARRAY_BUFFER,this._indexDataNative,this._usageType),this._fullDataUploadNeeded=!1):this._partialDataUploadNeeded&&(E.Context.gl.bindBuffer(E.Context.gl.ELEMENT_ARRAY_BUFFER,this._bufferId),E.Context.gl.bufferSubData(E.Context.gl.ELEMENT_ARRAY_BUFFER,0,this._indexDataNative),this._partialDataUploadNeeded=!1),this._locked=!1)}},{key:"enable",value:function(){if(this.loaded){if(null==this._bufferId){var e=S[this._indexDataHash];void 0===e?(this._bufferId=E.Context.gl.createBuffer(),E.Context.logger.debug(this,"created index buffer ("+E.Context.getError()+")"),this._indexDataHash&&(S[this._indexDataHash]={bufferId:this._bufferId,count:1})):(this._bufferId=e.bufferId,e.count++,this._fullDataUploadNeeded=!1,this._partialDataUploadNeeded=!1),this.unlock()}E.Context.gl.bindBuffer(E.Context.gl.ELEMENT_ARRAY_BUFFER,this._bufferId)}return this.loaded}},{key:"disable",value:function(){E.Context.gl.bindBuffer(E.Context.gl.ELEMENT_ARRAY_BUFFER,null)}},{key:"size",value:function(){return this._indexDataNative.length}},{key:"_assignOptimalBuffer",value:function(e){if(e instanceof Uint16Array)this._indexDataNative=e,this._internalType=E.Context.gl.UNSIGNED_SHORT;else if(e instanceof Uint32Array){this._internalType=E.Context.gl.UNSIGNED_SHORT;for(var t=e.length-1;t>=0;--t)if(e[t]>65535){this._indexDataNative=e,this._internalType=E.Context.gl.UNSIGNED_INT;break}if(this._internalType===E.Context.gl.UNSIGNED_SHORT)this._indexDataNative=new Uint16Array(e);else if(!E.Context.glExtensionManager.has.elementIndexUint)throw new Error("geometry with vtx count > 65535 encountered and no elementIndexUint extension found.")}else{if(!Array.isArray(e))throw new Error("data param to index buffer is not an array");this._internalType=E.Context.gl.UNSIGNED_SHORT;for(var n=e.length-1;n>=0;--n)if(e[n]>65535){this._indexDataNative=new Uint32Array(e),this._internalType=E.Context.gl.UNSIGNED_INT;break}if(this._internalType===E.Context.gl.UNSIGNED_SHORT)this._indexDataNative=new Uint16Array(e);else if(!E.Context.glExtensionManager.has.elementIndexUint)throw new Error("geometry with vtx count > 65535 encountered and no elementIndexUint extension found.")}this.markLoading();this._internalType===E.Context.gl.UNSIGNED_SHORT,this.loaded=!0,this._indexBytes=this._internalType===E.Context.gl.UNSIGNED_INT?4:2}},{key:"internalType",get:function(){return this._internalType}},{key:"indexBytes",get:function(){return this._indexBytes}},{key:"sizeBytes",get:function(){return this._indexDataNative.byteLength}},{key:"indexDataNative",get:function(){if(null==this._bufferId)return null;if(!this._locked)throw new Error("tried to access native index data in unlocked state");return this._partialDataUploadNeeded=!0,E.Context.debug&&this._usageType===E.Context.gl.STATIC_DRAW&&E.Context.logger.debug(this,"NOTE: using STATIC_DRAW as a usage type when modifiying VBO data on the fly might not be performant, use STREAM_DRAW or DYNAMIC_DRAW instead."),this._indexDataNative},set:function(e){if(!(this._internalType!==E.Context.gl.UNSIGNED_INT||e instanceof Uint32Array))throw new Error("tried to set an non Uint32Array as native data of UNSIGNED_INT index buffer");if(this._internalType===E.Context.gl.UNSIGNED_SHORT&&!(e instanceof Uint16Array))throw new Error("tried to set an non Uint16Array as native data of UNSIGNED_SHORT index buffer");this._indexDataNative=e,this._fullDataUploadNeeded=!0}},{key:"indexDataNativeRaw",get:function(){return this._indexDataNative}}]),t}((0,b.default)(p.Resource,m.Serializable))},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.VertexBuffer=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(8),c=r(d),f=n(2),h=r(f),_=n(5),A=r(_),m=n(18),p=n(58),g=n(7),E=n(10),v=n(19),b=r(v),S={},T=t.VertexBuffer=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._count=g.Util.getParam(e,"count"),n._attributes=g.Util.getParam(e,"attributes"),n._vertexData=g.Util.getParam(e,"vertexData"),n._usageType=g.Util.getParam(e,"usageType",E.Context.gl.STATIC_DRAW),n._vertexDataType=g.Util.getParam(e,"vertexDataType",t.ARRAY),n._vertexDataNative=g.Util.getParam(e,"vertexDataNative"),n._bufferId=null,n._locked=!1,n._fullDataUploadNeeded=!0,n._partialDataUploadNeeded=!1,n._vertexDataHash=null,n._asyncHashFloat32Array=E.Context.async.makeAsync(g.Util.hashFloat32Array),n.markLoading(),n._vertexDataType===t.NATIVE?n.loaded=!0:n.loaded=!0,n}return(0,A.default)(t,e),(0,h.default)(t,[{key:"$serialize",value:function(){return{name:"VertexBuffer",params:{attributes:this._attributes,vertexData:this._vertexData,usageType:this._usageType,vertexDataType:this._vertexDataType,vertexDataNative:this._vertexDataNative}}}}]),(0,h.default)(t,[{key:"size",value:function(){return this._vertexDataType===t.NATIVE?this._count?this._count:this._vertexDataNative.length:this._vertexData.length}},{key:"lock",value:function(){this._locked=!0}},{key:"unlock",value:function(){null!==this._bufferId&&(this._fullDataUploadNeeded?(this._vertexDataType===t.ARRAY&&(this._vertexDataNative=new Float32Array(this._vertexData)),E.Context.gl.bindBuffer(E.Context.gl.ARRAY_BUFFER,this._bufferId),E.Context.gl.bufferData(E.Context.gl.ARRAY_BUFFER,this._vertexDataNative,this._usageType),this._fullDataUploadNeeded=!1):this._partialDataUploadNeeded&&(E.Context.gl.bindBuffer(E.Context.gl.ARRAY_BUFFER,this._bufferId),E.Context.gl.bufferSubData(E.Context.gl.ARRAY_BUFFER,0,this._vertexDataNative),this._partialDataUploadNeeded=!1),this._locked=!1)}},{key:"enable",value:function(){if(this.loaded){if(null==this._bufferId){if(this._vertexDataType===t.NATIVE){var e=S[this._vertexDataHash];void 0===e?(this._bufferId=E.Context.gl.createBuffer(),E.Context.logger.debug(this,"created vertex buffer ("+E.Context.getError()+")"),this._vertexDataHash&&(S[this._vertexDataHash]={bufferId:this._bufferId,count:1})):(this._bufferId=e.bufferId,e.count++,this._fullDataUploadNeeded=!1,this._partialDataUploadNeeded=!1,E.Context.logger.debug(this,"taking bufferId from cache with hash: "+this._vertexDataHash+" usage now: "+e.count))}else this._bufferId=E.Context.gl.createBuffer(),E.Context.logger.debug(this,"created vertex buffer ("+E.Context.getError()+")");this.unlock()}E.Context.gl.bindBuffer(E.Context.gl.ARRAY_BUFFER,this._bufferId),this._enableAttributes()}return this.loaded}},{key:"disable",value:function(){if(this.loaded){var e=this._attributes.getSemanticsInfo();for(var t in e)E.Context.gl.disableVertexAttribArray(e[t].index)}E.Context.gl.bindBuffer(E.Context.gl.ARRAY_BUFFER,null)}},{key:"dtor",value:function(){null===this._bufferId||null!==this._vertexDataHash&&1!==S[this._vertexDataHash].count||(E.Context.gl.deleteBuffer(this._bufferId),this._bufferId=null,delete S[this._vertexDataHash]),this._fullDataUploadNeeded=!0,(0,c.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"dtor",this).call(this)}},{key:"_enableAttributes",value:function(){var e=this._attributes.getSemanticsInfo();for(var t in e){var n=e[t];E.Context.gl.enableVertexAttribArray(n.index),E.Context.gl.vertexAttribPointer(n.index,n.channels,n.componentType,!1,n.byteStride,n.byteOffset)}}},{key:"sizeBytes",get:function(){return this._vertexDataType===t.NATIVE?this._count?this._count*this._vertexDataNative.BYTES_PER_ELEMENT:this._vertexDataNative.byteLength:4*this._vertexData.length}},{key:"vertexCount",get:function(){return this.size()/this._attributes.channelCount}},{key:"dataType",set:function(e){this._vertexDataType=e}},{key:"vertexData",set:function(e){if(this._vertexDataType===t.NATIVE)throw Error("tried setting indexData on native vertex buffer. use VertexBuffer.ARRAY as a type instead");if(!this._locked)throw Error("tried to alter vertexData in unlocked buffer state");this._vertexData=e,this._fullDataUploadNeeded=!0},get:function(){return this._vertexData}},{key:"attributes",get:function(){return this._attributes}},{key:"vertexDataNative",get:function(){if(null==this._bufferId)return null;if(!this._locked)throw Error("tried to access native vertex data in unlocked state");return this._partialDataUploadNeeded=!0,E.Context.debug&&this._usageType===E.Context.gl.STATIC_DRAW&&E.Context.logger.debug(this,"NOTE: using STATIC_DRAW as a usage type when modifiying VBO data on the fly might not be performant, use STREAM_DRAW or DYNAMIC_DRAW instead."),this._vertexDataNative},set:function(e){this._vertexDataNative=e,this._fullDataUploadNeeded=!0}},{key:"vertexDataNativeRaw",get:function(){return this._vertexDataNative}}]),t}((0,b.default)(p.Resource,m.Serializable));T.NATIVE="native",T.ARRAY="array"},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Ray3=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(12),A=n(7),m=n(18);t.Ray3=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._origin=new _.Vector3,n._direction=new _.Vector3,n._invDirection=new _.Vector3,n.origin=A.Util.getParam(e,"origin",new _.Vector3),n.direction=A.Util.getParam(e,"direction",new _.Vector3(1,0,0)),n._tmp=new _.Vector3,n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"Ray3",params:{origin:this._origin,direction:this._direction}}}}]),(0,c.default)(t,[{key:"copyFrom",value:function(e){return this._origin.copyFrom(e._origin),this._direction.copyFrom(e._direction),this._invDirection.copyFrom(e._invDirection),this}},{key:"transformBy",value:function(e){e.transformPoint(this._origin),e.transformDirection(this._direction),this._invDirection.set(1/this._direction.x,1/this._direction.y,1/this._direction.z)}},{key:"inverseTransformBy",value:function(e){e.inverseTransformPoint(this._origin),e.inverseTransformDirection(this._direction),this._invDirection.set(1/this._direction.x,1/this._direction.y,1/this._direction.z)}},{key:"distanceToPointSquared",value:function(e){var t=this._tmp.copyFrom(e).sub(this._origin).dot(this._direction);return t<0?this._origin.distanceSquared(e):(this._tmp.copyFrom(this._direction).mult(t).add(this._origin),this._tmp.distanceSquared(e))}},{key:"toString",value:function(){return"direction = "+this._direction.toString()+", origin = "+this._origin.toString()}},{key:"origin",get:function(){return this._origin},set:function(e){this._origin.copyFrom(e)}},{key:"direction",get:function(){return this._direction},set:function(e){this._direction.copyFrom(e),this._invDirection.set(1/this._direction.x,1/this._direction.y,1/this._direction.z)}},{key:"invDirection",get:function(){return this._invDirection}}]),t}(m.Serializable)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CardboardViewer=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l="vrViewerChanged";t.CardboardViewer=function(){function e(t){(0,a.default)(this,e),this.id=t.id,this.label=t.label,this.url=t.url,this.fov=t.fov,this.interLensDistance=t.interLensDistance,this.baselineLensDistance=t.baselineLensDistance,this.screenLensDistance=t.screenLensDistance,this.distortionCoefficients=t.distortionCoefficients,this.inverseCoefficients=t.inverseCoefficients,this.primaryButton=t.primaryButton,this.magnet=t.magnet,this.vignettingStrength=t.vignettingStrength,this.chromaticAberrationStrength=t.chromaticAberrationStrength,this.overlap=t.overlap,this.phoneFixed=t.phoneFixed,this.thumb=t.thumb}return(0,s.default)(e,null,[{key:"EVENT_VR_VIEWER_CHANGED",get:function(){return l}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.IBLNode=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(8),c=r(d),f=n(2),h=r(f),_=n(5),A=r(_),m=n(7),p=n(32),g=n(12),E=n(10),v=n(48),b=n(28),S=n(97),T=n(19),x=r(T),y=t.IBLNode=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._rotationEnabled=m.Util.getParam(e,"rotationEnabled",!1),n._uri=m.Util.getParamRequired(e,"uri"),n._basePath=n._uri.split(/[^\/]*$/)[0],n._loaded=!1,n._radianceTexelSizeHalf=[0,0],n._load(),n}return(0,A.default)(t,e),(0,h.default)(t,[{key:"$serialize",value:function(){return{name:"IBLNode",params:{rotationEnabled:this._rotationEnabled,uri:this._uri}}}}],[{key:"_getCubeOrLatLong",value:function(e){return E.Context.qualityManager.quality.useCubeIBL&&E.Context.glExtensionManager.has.shaderTextureLod&&!m.Util.isFirefox()?{type:t.CUBE,data:e.cube}:{type:t.LAT_LONG,data:e.latlong}}}]),(0,h.default)(t,[{key:"_load",value:function(){S.XHRRequest.request({uri:this._uri,noCache:!1,onLoad:this._parseJson.bind(this),onError:this._abortLoad.bind(this)})}},{key:"_parseParams",value:function(e){this._specularPowerLookup=m.Util.getParam(e,"specularPowerLookup",!1),this._mipOffset=m.Util.getParam(e,"mipOffset",3),this._mipUserScale=m.Util.getParam(e,"mipUserScale",.3636),this._localizedEnvironment=m.Util.getParam(e,"localizedEnvironment",!1),this._offset=m.Util.getParam(e,"localizedEnvironmentOffset",new g.Vector3),this._localizedEnvironmentMin=m.Util.getParam(e,"localizedEnvironmentMin",new g.Vector3),this._localizedEnvironmentMax=m.Util.getParam(e,"localizedEnvironmentMax",new g.Vector3)}},{key:"_parseJson",value:function(e){if(4!==e.readyState||e.status>=300)throw new Error("error requesting iblDesc! readyState: "+e.readyState+", status: "+e.status);var n=JSON.parse(e.response);this._parseParams(n);var r=t._getCubeOrLatLong(n.data),i=this._basePath+m.Util.getParamRequired(r.data,"radianceTexturePath"),a=this._basePath+m.Util.getParamRequired(r.data,"irradianceTexturePath");this._type=m.Util.getParamRequired(r,"type"),this._radianceTexture=this.addActiveResource(new p.Texture({type:p.Texture.IMAGE,data:[i],onLoaded:this._onTextureLoaded.bind(this),generateMipmaps:!1,filterType:{min:this._type!==t.CUBE?p.Texture.LINEAR:p.Texture.LINEAR_MIPMAP_LINEAR,mag:this._type!==t.CUBE?p.Texture.LINEAR:p.Texture.LINEAR},immediateLoad:!1})),this._irradianceTexture=this.addActiveResource(new p.Texture({type:p.Texture.IMAGE,data:[a],onLoaded:this._onTextureLoaded.bind(this),generateMipmaps:!1,filterType:{min:this._type!==t.CUBE?p.Texture.LINEAR:p.Texture.LINEAR_MIPMAP_LINEAR,mag:this._type!==t.CUBE?p.Texture.LINEAR:p.Texture.LINEAR},immediateLoad:!1})),this._irradianceTexture.preload(),this._radianceTexture.preload()}},{key:"_abortLoad",value:function(){E.Context.logger.error(this,"could not load iblDesc. uri was: "+this._uri)}},{key:"$onAddedToScene",value:function(e){(0,c.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"$onAddedToScene",this).call(this,e)}},{key:"_onTextureLoaded",value:function(){this._irradianceTexture.loaded&&this._radianceTexture.loaded&&(this._loaded=!0,this._radianceTexelSizeHalf=[.5/this._radianceTexture.width,.5/this._radianceTexture.height],E.Context.eventEmitter.emit(this,t.EVENT_IBL_NODE_CHANGED))}},{key:"$onTransformUpdated",value:function(){this._loaded&&(this._localizedEnvironment||this._rotationEnabled)&&E.Context.eventEmitter.emit(this,t.EVENT_IBL_NODE_CHANGED)}},{key:"emitIBLNodeChange",value:function(){E.Context.eventEmitter.emit(this,t.EVENT_IBL_NODE_CHANGED)}},{key:"dtor",value:function(){void 0!==this._radianceTexture&&(this._radianceTexture.dtor(),this._radianceTexture=void 0),void 0!==this._irradianceTexture&&(this._irradianceTexture.dtor(),this._irradianceTexture=void 0),this.dtorActiveResources(),(0,c.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"dtor",this).call(this)}},{key:"loaded",get:function(){return this._loaded}},{key:"rotationEnabled",get:function(){return this._rotationEnabled},set:function(e){this._rotationEnabled!==e&&(this._rotationEnabled=e,this._loaded&&E.Context.eventEmitter.emit(this,t.EVENT_IBL_NODE_CHANGED))}},{key:"radianceTexture",get:function(){return this._radianceTexture},set:function(e){this._radianceTexture=e}},{key:"irradianceTexture",get:function(){return this._irradianceTexture},set:function(e){this._irradianceTexture=e}},{key:"radianceTexelSizeHalf",get:function(){return this._radianceTexelSizeHalf}},{key:"type",get:function(){return this._type}},{key:"radianceTextureWidth",get:function(){return this._radianceTexture.width}},{key:"irradianceTextureWidth",get:function(){return this._irradianceTexture.width}},{key:"radianceTextureHeight",get:function(){return this._radianceTexture.height}},{key:"irradianceTextureHeight",get:function(){return this._irradianceTexture.height}},{key:"localizedEnvironment",get:function(){return this._localizedEnvironment},set:function(e){this._localizedEnvironment=e}},{key:"localizedEnvironmentOffset",get:function(){return this._localizedEnvironmentOffset},set:function(e){this._localizedEnvironmentOffset=e}},{key:"localizedEnvironmentMin",get:function(){return this._localizedEnvironmentMin},set:function(e){this._localizedEnvironmentMin=e}},{key:"localizedEnvironmentMax",get:function(){return this._localizedEnvironmentMax},set:function(e){this._localizedEnvironmentMax=e}},{key:"localizedEnvironmentMatrix",get:function(){return this.worldTransform.matrix}},{key:"localizedEnvironmentInverseMatrix",get:function(){return this.worldTransform.inverseMatrix}},{key:"specularPowerLookup",get:function(){return this._specularPowerLookup},set:function(e){this._specularPowerLookup=e}},{key:"mipOffset",get:function(){return this._mipOffset},set:function(e){this._mipOffset=e}},{key:"mipUserScale",get:function(){return this._mipUserScale},set:function(e){this._mipUserScale=e}}]),t}((0,x.default)(b.SpatialNode,v.ResourceTracker));y.CUBE="cube",y.LAT_LONG="latlong",y.EVENT_IBL_NODE_CHANGED="iblNodeEventIblNodeChanged"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Light=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(8),c=r(d),f=n(2),h=r(f),_=n(5),A=r(_),m=n(7),p=n(49),g=n(10),E=n(24),v=n(28),b=n(40),S=t.Light=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._color=m.Util.getParam(e,"color",new b.ColorRGB(b.ColorRGB.WHITE)),n._intensity=m.Util.getParam(e,"intensity",1),n._castsShadow=m.Util.getParam(e,"castsShadow",!1),n._viewMatrix=m.Util.getParam(e,"viewMatrix",new p.Matrix4),n._lensFlareDesc=m.Util.getParam(e,"lensFlareDesc"),n._colorHDR=new b.ColorRGB,n}return(0,A.default)(t,e),(0,h.default)(t,[{key:"$serialize",value:function(){return{name:"Light",params:{color:this._color,intensity:this._intensity,castsShadow:this._castsShadow,viewMatrix:this._viewMatrix,lensFlareDesc:this._lensFlareDesc}}}}]),(0,h.default)(t,[{key:"getShaderParams",value:function(){}},{key:"update",value:function(e){(0,c.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"update",this).call(this,e),this._lensFlareDesc&&this._lensFlareDesc.update(e)}},{key:"color",get:function(){return this._color},set:function(e){this._color=e}},{key:"intensity",get:function(){return this._intensity},set:function(e){this._intensity=e}},{key:"lightName",get:function(){return"Light"}},{key:"castsShadow",get:function(){return this._castsShadow},set:function(e){e!==this._castsShadow&&(this._castsShadow=e,g.Context.eventEmitter.emit(this,E.Scene.EVENT_SCENELIST_NEEDS_UPDATE))}},{key:"lensFlareDesc",get:function(){return this._lensFlareDesc},set:function(e){void 0!==e&&(this._lensFlareDesc&&(this._lensFlareDesc.trackedLight=void 0),this._lensFlareDesc=e,this._lensFlareDesc.trackedLight=this)}},{key:"hasFlares",get:function(){return void 0!==this._lensFlareDesc}},{key:"viewMatrix",get:function(){return this._viewMatrix},set:function(e){this._viewMatrix=e}}]),t}(v.SpatialNode);S.VIEW_SPACE="viewSpace",S.WORLD_SPACE="worldSpace"},,,,,,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(4),a=r(i),o=n(194),s=r(o);t.default=function e(t,n,r,i){var o=(0,s.default)(t,n);if(void 0===o){var l=(0,a.default)(t);null!==l&&e(l,n,r,i)}else if("value"in o&&o.writable)o.value=r;else{var u=o.set;void 0!==u&&u.call(i,r)}return r}},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(119),i=n(37)("toStringTag"),a="Arguments"==r(function(){return arguments}()),o=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,n,s;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=o(t=Object(e),i))?n:a?r(t):"Object"==(s=r(t))&&"function"==typeof t.callee?"Arguments":s}},function(e,t,n){"use strict";var r=n(35),i=n(30),a=n(121),o=n(87),s=n(80),l=n(152),u=n(100),d=n(147),c=n(42),f=n(124),h=n(53).f,_=n(197)(0),A=n(47);e.exports=function(e,t,n,m,p,g){var E=r[e],v=E,b=p?"set":"add",S=v&&v.prototype,T={};return A&&"function"==typeof v&&(g||S.forEach&&!o(function(){(new v).entries().next()}))?(v=t(function(t,n){d(t,v,e,"_c"),t._c=new E,void 0!=n&&u(n,p,t[b],t)}),_("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in S&&(!g||"clear"!=e)&&s(v.prototype,e,function(n,r){if(d(this,v,e),!t&&g&&!c(n))return"get"==e&&void 0;var i=this._c[e](0===n?0:n,r);return t?this:i})}),g||h(v.prototype,"size",{get:function(){return this._c.size}})):(v=m.getConstructor(t,e,p,b),l(v.prototype,n),a.NEED=!0),f(v,e),T[e]=v,i(i.G+i.W+i.F,T),g||m.setStrong(v,e,p),v}},function(e,t,n){var r=n(52),i=n(593),a=n(200),o=n(207)("IE_PROTO"),s=function(){},l="prototype",u=function(){var e,t=n(199)("iframe"),r=a.length,i="<",o=">";for(t.style.display="none",n(308).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(i+"script"+o+"document.F=Object"+i+"/script"+o),e.close(),u=e.F;r--;)delete u[l][a[r]];return u()};e.exports=Object.create||function(e,t){var n;return null!==e?(s[l]=r(e),n=new s,s[l]=null,n[o]=e):n=u(),void 0===t?n:i(n,t)}},function(e,t,n){var r=n(30),i=n(16),a=n(87);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],o={};o[e]=t(n),r(r.S+r.F*a(function(){n(1)}),"Object",o)}},function(e,t,n){var r=n(80);e.exports=function(e,t,n){for(var i in t)n&&e[i]?e[i]=t[i]:r(e,i,t[i]);return e}},function(e,t,n){"use strict";var r=n(30),i=n(118),a=n(67),o=n(100);e.exports=function(e){r(r.S,e,{from:function(e){var t,n,r,s,l=arguments[1];return i(this),t=void 0!==l,t&&i(l),void 0==e?new this:(n=[],t?(r=0,s=a(l,arguments[2],2),o(e,!1,function(e){n.push(s(e,r++))})):o(e,!1,n.push,n),new this(n))}})}},function(e,t,n){"use strict";var r=n(30);e.exports=function(e){r(r.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},function(e,t,n){var r=n(210),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(334),i=n(218),a=n(164),o=n(129),s=n(330),l=[].push,u=function(e){var t=1==e,n=2==e,u=3==e,d=4==e,c=6==e,f=5==e||c;return function(h,_,A,m){for(var p,g,E=a(h),v=i(E),b=r(_,A,3),S=o(v.length),T=0,x=m||s,y=t?x(h,S):n?x(h,0):void 0;S>T;T++)if((f||T in v)&&(p=v[T],g=b(p,T,E),e))if(t)y[T]=g;else if(g)switch(e){case 3:return!0;case 5:return p;case 6:return T;case 2:l.call(y,p)}else if(d)return!1;return c?-1:u||d?d:y}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6)}},119,123,function(e,t,n){var r=n(163),i=n(38),a=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?a(r[e])||a(i[e]):r[e]&&r[e][t]||i[e]&&i[e][t]}},101,function(e,t){e.exports=!1},function(e,t,n){var r=n(38);e.exports=r},function(e,t,n){var r=n(104);e.exports=function(e){return Object(r(e))}},function(e,t,n){var r=n(69);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},,,,function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiLz48L3N2Zz4="},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8ExternalContentElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(15); t.Dl8ExternalContentElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["url"]),e=g.Dl8Element.assignContent(e,this,"url"),e=g.Dl8Element.assignContent(e,this,"title"),e=g.Dl8Element.assignContent(e,this,"poster"),e=g.Dl8Element.assignContent(e,this,"window-name"),e=g.Dl8Element.assignContent(e,this,"window-features"),e=g.Dl8Element.assignContentBoolean(e,this,"autostart"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),{type:E.CONTENT_TYPE_EXTERNAL},e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-external-content",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubActionFilterElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8HubActionFilterElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["for","filter"]),e=g.Dl8Element.assignContent(e,this,"for"),e=g.Dl8Element.assignContent(e,this,"filter"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-action-filter",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubActionSetTitleElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8HubActionSetTitleElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["for","value"]),e=g.Dl8Element.assignContent(e,this,"for"),e=g.Dl8Element.assignContent(e,this,"value"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-action-set-title",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubActionSortElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8HubActionSortElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["for","sorter"]),e=g.Dl8Element.assignContent(e,this,"for"),e=g.Dl8Element.assignContent(e,this,"sorter"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-action-sort",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubGroupElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(171),v=n(173),b=n(172);t.Dl8HubGroupElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-hub-action-filter","dl8-hub-action-sort","dl8-hub-action-set-title"]}},{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-action-filter"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-action-sort"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-action-set-title"),e=g.Dl8Element.assignContent(e,this,"title"),e=g.Dl8Element.assignContent(e,this,"poster"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){E.Dl8HubActionFilterElement.registerElement(),v.Dl8HubActionSortElement.registerElement(),b.Dl8HubActionSetTitleElement.registerElement(),g.Dl8Element._registerElement("dl8-hub-group",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TourHotspotBaseElement=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(11);t.Dl8TourHotspotBaseElement=function(){function e(){(0,a.default)(this,e)}return(0,s.default)(e,[{key:"$createBaseContent",value:function(){var e={};return e=l.Dl8Element.assignContent(e,this,"title"),e=l.Dl8Element.assignContent(e,this,"icon"),e=l.Dl8Element.assignContentBoolean(e,this,"icon-keep-aspect"),e=l.Dl8Element.assignContentBoolean(e,this,"icon-no-cutout-circle"),this.hasAttribute("lat")||this.hasAttribute("lon")?(e=l.Dl8Element.assignContentDefault(e,this,"lat",0,parseFloat),e=l.Dl8Element.assignContentDefault(e,this,"lon",0,parseFloat)):(e=l.Dl8Element.assignContentDefault(e,this,"latitude",0,parseFloat),e=l.Dl8Element.assignContentDefault(e,this,"longitude",0,parseFloat)),e=l.Dl8Element.assignContentDefault(e,this,"distance",1,parseFloat),e=l.Dl8Element.assignContentDefault(e,this,"hover-scale",1.25,parseFloat),e=l.Dl8Element.assignContentDefault(e,this,"active-scale",1.25,parseFloat),e=l.Dl8Element.assignContentBoolean(e,this,"custom-positioning"),e=l.Dl8Element.assignContentDefault(e,this,"position-x",0,parseFloat),e=l.Dl8Element.assignContentDefault(e,this,"position-y",0,parseFloat),e=l.Dl8Element.assignContentDefault(e,this,"position-z",0,parseFloat),e=l.Dl8Element.assignContentDefault(e,this,"rotate-x",0,parseFloat),e=l.Dl8Element.assignContentDefault(e,this,"rotate-y",0,parseFloat),e=l.Dl8Element.assignContentDefault(e,this,"rotate-z",0,parseFloat),e=l.Dl8Element.assignContent(e,this,"probe-transition"),e=l.Dl8Element.assignContentDefault(e,this,"distance",1,parseFloat),e=l.Dl8Element.assignContentDefault(e,this,"size","auto",function(e){return"auto"===e?parseFloat(e):e})}}]),e}()},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Intersection=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(492),u=n(491),d=n(12),c=new d.Vector3,f=new d.Vector3,h=new d.Vector3,_=new d.Vector3;t.Intersection=function(){function e(){(0,a.default)(this,e)}return(0,s.default)(e,null,[{key:"circleWithLineSegment",value:function(e,t){if(!e instanceof u.Circle&&!t instanceof l.LineSegment)throw new Error("wrong argument types supplied");var n=e.center.x-t.a.x,r=e.center.y-t.a.y,i=t.b.x-t.a.x,a=t.b.y-t.a.y,o=(n*i+r*a)/(i*i+a*a);if(o>0&&o<1&&o<e.radius){var s=new d.Vector3(t.a.x+o*i,t.a.y+o*a,0),c=(s.x-e.center.x)*(s.x-e.center.x)+(s.y-e.center.y)*(s.y-e.center.y);if(c<=e.radius*e.radius)return{intersect:!0,point:s,normal:t.normal,penetrationDepth:Math.sqrt(e.radius*e.radius-c)}}return{intersect:!1,point:null,normal:null,penetrationDepth:0}}},{key:"rayWithCylinder",value:function(e,t,n,r,i,a){c.copyFrom(e.origin),c.y=c.y-.5*n,d.Vector3.crossOut(e.direction,d.Vector3.Y_AXIS,f);var o=void 0;if(0===(o=f.magnitude()))return!1;f.normalize();var s=Math.abs(c.dot(f)),l=s<=t;if(l){d.Vector3.crossOut(c,d.Vector3.Y_AXIS,h);var u=-h.dot(f)/o;d.Vector3.crossOut(f,d.Vector3.Y_AXIS,h),h.normalize();var A=Math.abs(Math.sqrt(t*t-s*s)/e.direction.dot(h)),m=u+A;if(_.copyFrom(e.direction).mult(m).add(e.origin),_.y>.5*n||_.y<.5*-n)return!1;var p=Math.atan2(_.x,-_.z);if(r>p)return!1;if(i<p)return!1;a&&(a.t=m,a.pos.copyFrom(_))}return l}},{key:"rayWithAABB",value:function(e,t,n){var r=e.invDirection,i=e.origin,a=t.min,o=t.max,s=(a.x-i.x)*r.x,l=(o.x-i.x)*r.x,u=(a.y-i.y)*r.y,d=(o.y-i.y)*r.y,c=(a.z-i.z)*r.z,f=(o.z-i.z)*r.z,h=Math.max(Math.max(Math.min(s,l),Math.min(u,d)),Math.min(c,f)),_=Math.min(Math.min(Math.max(s,l),Math.max(u,d)),Math.max(c,f));return!(_<0||h>_)&&(n&&(n.pos.copyFrom(e.direction).mult(h).add(e.origin),n.t=h),!0)}},{key:"rayWithEllipsoid",value:function(e,t){var n=new d.Vector3(e.origin),r=new d.Vector3(e.direction);r.normalize();var i=t.origin,a=t.radii;n.sub(i);var o=n.x*n.x/(a.x*a.x)+n.y*n.y/(a.y*a.y)+n.z*n.z/(a.z*a.z),s=2*n.x*n.x/(a.x*a.x)+2*n.y*n.y/(a.y*a.y)+2*n.z*n.z/(a.z*a.z),l=n.x*n.x/(a.x*a.x)+n.y*n.y/(a.y*a.y)+n.z*n.z/(a.z*a.z)-1,u=s*s-4*o*l;if(u<0)return-1;u=Math.sqrt(u);var c=(-s+u)/(2*o),f=(-s-u)/(2*o);return c<f?c:f}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Application=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(7),u=n(17),d=n(273),c=n(32),f=n(185),h=n(44),_=n(76),A=n(24),m=n(10),p=n(266),g=n(180),E=n(75),v=32,b="performanceUltraLow",S="performanceLow",T="performanceMedium",x="performanceHigh",y="performanceSuperMedium",C="performanceSuper",w="performanceUltra",M="applicationEventResize",D="applicationEventFullscreenEnter",P="applicationEventFullscreenExit";t.Application=function(){function e(t){var n=this;(0,a.default)(this,e),this._resetRenderSystem=function(){n._onResetStart(),m.Context.deviceManager.hardwareVr||!l.Util.isIOS10OrHigher()&&!l.Util.isAndroid()?(n._renderSystem.reset(m.Context.deviceManager.state===_.DeviceManager.STATE_ACTIVE,m.Context.deviceManager.state===_.DeviceManager.STATE_ACTIVE&&m.Context.deviceManager.needsSoftwareDistortion),n._onResize(),n._onResetEnd()):setTimeout(function(){n._renderSystem.reset(m.Context.deviceManager.state===_.DeviceManager.STATE_ACTIVE,m.Context.deviceManager.state===_.DeviceManager.STATE_ACTIVE&&m.Context.deviceManager.needsSoftwareDistortion),n._onResize(),n._onResetEnd()},1e3)},this._tryDegrade=function(){if(!m.Context.qualityManager.forcedQuality&&n.$qualitySettings){var e=void 0;e=l.Util.isMobileBrowser()?g.QualityManager.ORDER_QUALITY_MOBILE:g.QualityManager.ORDER_QUALITY_DESKTOP;var t=e.indexOf(n._degradedQuality||m.Context.qualityManager.selectedQuality);if(0!==t&&t!==-1){var r=t-1;n._degradedQuality=e[r];for(var i=n.$dynamicQualityParams.length-1;i>=0;--i)n.$qualitySettings[e[t]][n.$dynamicQualityParams[i]]!==n.$qualitySettings[e[r]][n.$dynamicQualityParams[i]]&&n.$changeQualitySetting(n.$dynamicQualityParams[i],n.$qualitySettings[e[r]][n.$dynamicQualityParams[i]])}}},this._checkForMissingCapabilities=function(){n.$setupRequiredExtensions(n._requiredExtensions);var e=n._getMissingRequiredExtensions();if(e.length>0)throw void 0!==n._onMissingExtensions&&n._onMissingExtensions(e),Error("missing extensions");for(var t=0,r=n._requiredCapabilities.length;t<r;++t)if("floatingPointFramebufferAttachments"===n._requiredCapabilities[t]){var i=new c.Texture({type:c.Texture.EMPTY,data:{width:1,height:1},format:c.Texture.FLOATING_POINT,generateMipmaps:!1});i.allocate();var a=new d.Framebuffer;a.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,i,m.Context.gl.TEXTURE_2D,0);try{a.enable()}catch(e){throw void 0!==n._onMissingCapabilities&&n._onMissingCapabilities(["floating-point texture framebuffer attachments"]),Error("missing capabilities")}a.dtor(),i.dtor()}},this._onFullscreenChanged=function(){document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?m.Context.eventEmitter.emit(n,e.EVENT_FULLSCREEN_ENTER):m.Context.eventEmitter.emit(n,e.EVENT_FULLSCREEN_EXIT),m.Context.deviceManager.state!==_.DeviceManager.STATE_ACTIVE&&n._resetRenderSystem()},m.Context.onNoWebGL=l.Util.getParam(t,"onNoWebGL",e._defaultNoWebGL),this._maxDevicePixelRatio=l.Util.getParam(t,"maxDevicePixelRatio",8),m.Context.devicePixelRatio=u.MathUtil.clamp(m.Context.devicePixelRatio,0,this._maxDevicePixelRatio),this._localDataBasePath=l.Util.getParam(t,"localDataBasePath","./"),this._canvas=l.Util.getParamRequired(t,"canvas"),this._enablePerformanceTest=l.Util.getParam(t,"enablePerformanceTest",!0),this._onPerformanceResult=l.Util.getParam(t,"onPerformanceResult",function(){}),this._canvasBlendEnabled=l.Util.getParam(t,"canvasBlendEnabled",!1),this._antialiasEnabled=l.Util.getParam(t,"antialiasEnabled",!1),this._ovrSamples=l.Util.getParam(t,"ovrSamples",-1),this._width=l.Util.getParam(t,"width",this._canvas.offsetWidth*m.Context.devicePixelRatio),this._height=l.Util.getParam(t,"height",this._canvas.offsetHeight*m.Context.devicePixelRatio),this._maxFPS=l.Util.getParam(t,"maxFPS",60),this._maxTiming=l.Util.getParam(t,"maxTiming",120),this._fixedTimesteps=l.Util.getParam(t,"fixedTimesteps",!1),this._requiredExtensions=l.Util.getParam(t,"requiredExtensions",[]),this._requiredCapabilities=l.Util.getParam(t,"requiredCapabilities",[]),this._fullscreenElement=l.Util.getParam(t,"fullscreenElement",document.documentElement),m.Context.useShaderResourceHack=l.Util.getParam(t,"useShaderResourceHack",!1),this._onMissingCapabilities=l.Util.getParam(t,"onMissingCapabilities",e._defaultMissingCapabilities),this._onMissingExtensions=l.Util.getParam(t,"onMissingExtensions",e._defaultMissingExtensions),this._onLoadFinished=l.Util.getParam(t,"onLoadFinished",function(){}),this._onLoadProgress=l.Util.getParam(t,"onLoadProgress",function(){}),this._onLoadIntermediateFinished=l.Util.getParam(t,"onLoadIntermediateFinished",function(){}),this._onLoadIntermediateStarted=l.Util.getParam(t,"onLoadIntermediateStarted",function(){}),this._onLoadIntermediateProgress=l.Util.getParam(t,"onLoadIntermediateProgress",function(){}),this.$onReady=l.Util.getParam(t,"onReady",function(){}),this._onResetStart=l.Util.getParam(t,"onResetStart",function(){}),this._onResetEnd=l.Util.getParam(t,"onResetEnd",function(){}),this._fps=0,this._accumDt=0,this._frameCount=0,this._fpsSampleInterval=t._fpsSampleInterval||10,this._renderSystem=null,this.performanceTiming=void 0,this.performance=void 0,this.$qualitySettings=null,this.$dynamicQualityParams=[],this._degradedQuality=null,this._inited=!1,this._paused=!0}return(0,s.default)(e,null,[{key:"_defaultMissingCapabilities",value:function(e){for(var t="missing extensions: ",n=0;n<e.length;++n)t+=e[n],n<e.length-1&&(t+=", ");throw Error(t)}},{key:"_defaultMissingExtensions",value:function(e){for(var t="missing extensions: ",n=0;n<e.length;++n)t+=e[n],n<e.length-1&&(t+=", ");throw new Error(t)}},{key:"_defaultNoWebGL",value:function(){throw Error("no webgl support")}},{key:"_createTexture",value:function(e,t,n,r){for(var i=t*n*4,a=new Uint8Array(i),o=0;o<i;o+=4)a[o]=r[0],a[o+1]=r[1],a[o+2]=r[2],a[o+3]=r[3];var s=e.createTexture();return e.bindTexture(e.TEXTURE_2D,s),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,n,0,e.RGBA,e.UNSIGNED_BYTE,a),s}},{key:"_measureShaderPerformance",value:function(t,n,r){var i=e.PERFORMANCE_ITER,a=r.createShader(r.VERTEX_SHADER),o="precision highp float;\nattribute vec3 attr;\nvoid main() {\n gl_Position = vec4(attr, 1.0);\n}\n";if(r.shaderSource(a,o),r.compileShader(a),!r.getShaderParameter(a,r.COMPILE_STATUS))return void t(null,new Error("error compiling shader for performance measurement: ("+r.getShaderInfoLog(a)+")"));var s="#define ANTICACHE "+(255*Math.random()|0)+"\nprecision highp float; uniform sampler2D tex;\nfloat rand(vec2 co) { return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); } \n void main() { \n float anticache = float(ANTICACHE)/255.0; \n vec4 color = vec4(vec3(1.0), 1.0); \n for(int i = 0; i < 32; ++i) { \n color += texture2D(tex, vec2(rand(gl_FragCoord.xy))); \n color += texture2D(tex, vec2(rand(gl_FragCoord.xy/2.0))); \n color.r *= sin(color.g); \n color.r /= cos(color.b); \n }\n gl_FragColor = vec4(color.rgb * anticache, 1.0);\n }\n",u=r.createShader(r.FRAGMENT_SHADER);if(r.shaderSource(u,s),r.compileShader(u),!r.getShaderParameter(u,r.COMPILE_STATUS))return void t(null,new Error("error compiling shader for performance measurement: ("+r.getShaderInfoLog(u)+")"));var d=r.createProgram();r.attachShader(d,a),r.attachShader(d,u),r.linkProgram(d),r.clearColor(1,0,0,1),r.clearDepth(1),r.clear(r.DEPTH_BUFFER_BIT|r.COLOR_BUFFER_BIT),r.useProgram(d);var c=r.getUniformLocation(d,"tex");r.activeTexture(r.TEXTURE0);var f=e._createTexture(r,64,64,[255,255,0,255]);r.bindTexture(r.TEXTURE_2D,f),r.uniform1i(c,0);var h=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,h),r.bufferData(r.ARRAY_BUFFER,new Float32Array([1,1,1,-1,1,1,-1,-1,1,1,-1,1]),r.STATIC_DRAW);var _=r.getAttribLocation(d,"attr");r.enableVertexAttribArray(_),r.vertexAttribPointer(_,3,r.FLOAT,!1,12,0);var A=r.createBuffer();r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,A),r.bufferData(r.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),r.STATIC_DRAW);for(var m=new Uint8Array(16384),p=l.Util.performanceNow(),g=0,E=0;E<i&&(r.clear(r.DEPTH_BUFFER_BIT|r.COLOR_BUFFER_BIT),r.drawElements(r.TRIANGLES,6,r.UNSIGNED_SHORT,0),r.drawElements(r.TRIANGLES,6,r.UNSIGNED_SHORT,0),r.drawElements(r.TRIANGLES,6,r.UNSIGNED_SHORT,0),r.drawElements(r.TRIANGLES,6,r.UNSIGNED_SHORT,0),r.drawElements(r.TRIANGLES,6,r.UNSIGNED_SHORT,0),r.drawElements(r.TRIANGLES,6,r.UNSIGNED_SHORT,0),!(E%(i/32|0)===0&&(r.readPixels(0,0,64,64,r.RGBA,r.UNSIGNED_BYTE,m),r.flush(),g=(l.Util.performanceNow()-p)/i,g>n)));++E);r.readPixels(0,0,64,64,r.RGBA,r.UNSIGNED_BYTE,m),r.flush();var v=m[64];v=v,g=(l.Util.performanceNow()-p)/i,r.deleteShader(a),r.deleteShader(u),r.deleteProgram(d),r.deleteTexture(f),r.deleteBuffer(h),r.deleteBuffer(A),r.clearColor(0,0,0,1),r.clearDepth(1),r.clear(r.DEPTH_BUFFER_BIT|r.COLOR_BUFFER_BIT),t(g,null)}},{key:"PERFORMANCE_ITER",get:function(){return v}},{key:"PERFORMANCE_ULTRA_LOW",get:function(){return b}},{key:"PERFORMANCE_LOW",get:function(){return S}},{key:"PERFORMANCE_MEDIUM",get:function(){return T}},{key:"PERFORMANCE_HIGH",get:function(){return x}},{key:"PERFORMANCE_SUPER_MEDIUM",get:function(){return y}},{key:"PERFORMANCE_SUPER",get:function(){return C}},{key:"PERFORMANCE_ULTRA",get:function(){return w}},{key:"EVENT_RESIZE",get:function(){return M}},{key:"EVENT_FULLSCREEN_ENTER",get:function(){return D}},{key:"EVENT_FULLSCREEN_EXIT",get:function(){return P}}]),(0,s.default)(e,[{key:"dtor",value:function(){this._inited&&(this._scene.dtor(),this._renderSystem.dtor())}},{key:"$makeLocalPath",value:function(e){return this._localDataBasePath+e}},{key:"run",value:function(){m.Context.onFrame=this.$update.bind(this),m.Context.onResize=this._onResize.bind(this);try{m.Context.initEngine(this,this._canvas,this._canvasBlendEnabled,this._antialiasEnabled,this._ovrSamples,this._width,this._height,this._maxFPS,this._fixedTimesteps,this._checkForMissingCapabilities,this._enablePerformanceTest?e._measureShaderPerformance.bind(this,this._onPerformanceResultImpl.bind(this),this._maxTiming):void 0),m.Context.documentEventDispatcher.addEventListener(h.GlobalEvent.FULLSCREEN_CHANGE,this._onFullscreenChanged),m.Context.documentEventDispatcher.addEventListener(h.GlobalEvent.ORIENTATION_CHANGE,this._resetRenderSystem),this._initImpl()}catch(e){return"function"==typeof m.Context.onNoWebGL&&m.Context.onNoWebGL(e),null}return this._paused=!1,this}},{key:"resume",value:function(){this._paused=!1,m.Context.resumeEngine()}},{key:"pause",value:function(){this._paused=!0,m.Context.pauseEngine()}},{key:"enableVr",value:function(){return m.Context.deviceManager.enable()}},{key:"disableVr",value:function(){return m.Context.deviceManager.disable()}},{key:"exitFullscreen",value:function(){(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement)&&(document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen())}},{key:"enterFullscreen",value:function(){var e=this._fullscreenElement;document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement||(e.requestFullscreen?e.requestFullscreen():e.msRequestFullscreen?e.msRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen&&e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT))}},{key:"lockPointer",value:function(){var e=this.canvas,t=e.requestPointerLock||e.mozRequestPointerLock||e.webkitRequestPointerLock;t&&t.call(e)}},{key:"unlockPointer",value:function(){var e=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock;e&&e.call(document)}},{key:"isPointerLocked",value:function(){var e=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement;return e===this.canvas}},{key:"resize",value:function(){this._onResize()}},{key:"$setupRequiredExtensions",value:function(){}},{key:"$initQuality",value:function(){}},{key:"$init",value:function(){}},{key:"_initImpl",value:function(){var e=this;m.Context.eventEmitter.emit(this,E.LoadingManager.EVENT_LOADING_START),m.Context.eventEmitter.on(E.LoadingManager.EVENT_LOADING_PROGRESS,function(t){return e._onLoadProgress(t.progress)}),m.Context.eventEmitter.on(E.LoadingManager.EVENT_FIRST_LOADING_FINISHED,this._onLoadFinished.bind(this,this)),m.Context.eventEmitter.on(E.LoadingManager.EVENT_INTERMEDIATE_LOADING_STARTED,this._onLoadIntermediateStarted.bind(this,this)),m.Context.eventEmitter.on(E.LoadingManager.EVENT_INTERMEDIATE_LOADING_PROGRESS,function(t){return e._onLoadIntermediateProgress(t.progress)}),m.Context.eventEmitter.on(E.LoadingManager.EVENT_INTERMEDIATE_LOADING_FINISHED,this._onLoadIntermediateFinished.bind(this,this)),m.Context.eventEmitter.on(_.DeviceManager.EVENT_DEVICE_ACTIVATED,this._resetRenderSystem),m.Context.eventEmitter.on(_.DeviceManager.EVENT_DEVICE_DEACTIVATED,this._resetRenderSystem),this.$initQuality(),this._initDegradationEvents(),this._scene=new A.Scene,this._renderSystem=new f.RenderSystem({canvasBlendEnabled:this._canvasBlendEnabled,antialiasEnabled:this._antialiasEnabled}),m.Context.deviceManager.fullscreenElement=this._fullscreenElement,this.resize(),this.$init(),this._inited=!0,m.Context.eventEmitter.emit(this,E.LoadingManager.EVENT_LOADING_END)}},{key:"$update",value:function(e){++this._frameCount,this._accumDt+=e,this._accumDt>this._fpsSampleInterval&&(0===this._fps?this._fps=this._frameCount/this._accumDt:this._fps=.5*(this._fps+this._frameCount/this._accumDt),this._frameCount=0,this._accumDt=0,m.Context.logger.info(this,"fps",this._fps)),this._scene.update(e),this._renderSystem.update(e),this._renderSystem.render(this._scene)}},{key:"$floatingpointAttachmentSupport",value:function(){if(!m.Context.glExtensionManager.has.textureFloat)return!1;var e=!0,t=new c.Texture({type:c.Texture.EMPTY,data:{width:1,height:1},format:c.Texture.FLOATING_POINT,generateMipmaps:!1});t.allocate();var n=new d.Framebuffer;n.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,t,m.Context.gl.TEXTURE_2D,0);try{n.enable()}catch(t){e=!1}return n.dtor(),t.dtor(),e}},{key:"$changeQualitySetting",value:function(){}},{key:"_initDegradationEvents",value:function(){m.Context.degradationManager.addEventListener(p.DegradationManager.PERFORMANCE_DEGRADED,this._tryDegrade)}},{key:"_timingToPerformance",value:function(t){return t<9?e.PERFORMANCE_ULTRA:t<11?e.PERFORMANCE_SUPER:t<12?e.PERFORMANCE_SUPER_MEDIUM:t<70?e.PERFORMANCE_HIGH:t<this._maxTiming?e.PERFORMANCE_LOW:e.PERFORMANCE_ULTRA_LOW}},{key:"_getMissingRequiredExtensions",value:function(){for(var e=[],t=0;t<this._requiredExtensions.length;++t)m.Context.glExtensionManager.has[this._requiredExtensions[t]]||e.push(this._requiredExtensions[t]);return e}},{key:"_onPerformanceResultImpl",value:function(t,n){return null!=n?(m.Context.logger.error(this,n),this.performance=e.PERFORMANCE_ULTRA_LOW,void(this.performanceTiming=this._maxTiming)):(this.performance=this._timingToPerformance(t),this.performanceTiming=t,void this._onPerformanceResult(this.performance,this.performanceTiming))}},{key:"_onResize",value:function(){m.Context.deviceManager.state===_.DeviceManager.STATE_ACTIVE?(this._width=m.Context.deviceManager.renderWidth,this._height=m.Context.deviceManager.renderHeight):(this._width=this._canvas.offsetWidth*m.Context.devicePixelRatio,this._height=this._canvas.offsetHeight*m.Context.devicePixelRatio),m.Context.eventEmitter.emit(this,e.EVENT_RESIZE)}},{key:"fps",get:function(){return this._fps}},{key:"canvas",get:function(){return this._canvas}},{key:"width",get:function(){return this._width}},{key:"height",get:function(){return this._height}},{key:"localDataBasePath",get:function(){return this._localDataBasePath}},{key:"paused",get:function(){return this._paused}},{key:"$renderSystem",get:function(){return this._renderSystem}},{key:"$scene",get:function(){return this._scene}},{key:"activeCamera",get:function(){return this.$scene.activeCamera}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.EventListener=void 0;var i=n(46),a=r(i),o=n(14),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d);t.EventListener=function(){function e(){(0,u.default)(this,e),this._eventListeners=new s.default}return(0,c.default)(e,[{key:"initializer",value:function(){this._eventListeners=new s.default}}]),(0,c.default)(e,[{key:"addEventListener",value:function(e,t){var n=void 0;(n=this._eventListeners.get(e))||this._eventListeners.set(e,n=new a.default),n.add(t)}},{key:"removeEventListener",value:function(e,t){var n=this._eventListeners.get(e);n&&(n.delete(t),0===n.size&&this._eventListeners.delete(e))}},{key:"removeAllEventListeners",value:function(e){this._eventListeners.delete(e)}},{key:"$hasEventListener",value:function(e){return this._eventListeners.has(e)}},{key:"$emitEvent",value:function(e,t,n){var r=this._eventListeners.get(e);r&&(n&&n(t),r.forEach(function(e){return e(t)}))}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.QualityManager=void 0;var i=n(9),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(178),c=n(267),f=n(7),h=n(41),_=n(187),A=n(10),m="ultra",p="super",g="superMedium",E="high",v="low",b="lowlow",S="mobileLow",T="mobileHigh",x=[b,v,E,g,p,m],y=[S,T],C="veryTiny",w="tiny",M="small",D="medium",P="large",R="qualityManagerEventRequestedTexturesUnavailable",I="qualityManagerEventRequestedTexturesAvailable",L="qualityManagerEventRequestedtexturesDegraded",O={256:C,512:w,1024:M,2048:D,4096:P},N={};N[C]=256,N[w]=512,N[M]=1024,N[D]=2048,N[P]=4096;var B="manual",F="automatic";t.QualityManager=function(){function e(t){(0,s.default)(this,e);var n=f.Util.isFirefoxWindows()?256:1024;this.performanceTiming=t.performanceTiming,this.performance=t.performance,this._availableTextureFormats=void 0,this._globalSettings={},this._qualitySettings={},this._presetQualitySettings={},this._qualitySettings[m]={},this._presetQualitySettings[m]=this._adjustForMissingFeatures({usePackedPngDds:!1,usePackedPngBin:!1,gzip:!1,ramLimitMbytes:4096,iblSamples:n,globalFramebufferScaleRatio:1,supersampleScale:2,ghostingEnabled:!0,shadowMapSize:2048,shadowsEnabled:!0,bloomEnabled:!0,dofEnabled:!0,lowEndDofEnabled:!1,refractionDispersionEnabled:!0,halfresDof:!1,hdrEnabled:!0,automaticTextureSelection:!1,useDds:!0,textureSize:e._adjustTextureQualityForTextures(D),fxaaEnabled:!0,forceUint8Textures:!1,iblEnabled:!0,normalData:!0,videoTexturesEnabled:!0,highPrecisionFloat:!0,envBrdfLut:!0,useCubeIBL:!0,enableLights:!0,vignettingEnabled:!0,grainEnabled:!0,dynamicColorGradingEnabled:!0,lensDirtEnabled:!0,chromaticAbberationEnabled:!1,sharpenImageEnabled:!1,vramMbytes:4096}),(0,a.default)(this._qualitySettings[m],this._presetQualitySettings[m]),this._qualitySettings[p]={},this._presetQualitySettings[p]=this._adjustForMissingFeatures({usePackedPngDds:!1,usePackedPngBin:!1,gzip:!1,ramLimitMbytes:2048,iblSamples:n,globalFramebufferScaleRatio:1,supersampleScale:1,ghostingEnabled:!0,shadowMapSize:1024,shadowsEnabled:!0,bloomEnabled:!0,dofEnabled:!1,lowEndDofEnabled:!0,refractionDispersionEnabled:!0,halfresDof:!1,hdrEnabled:!0,automaticTextureSelection:!1,useDds:!0,textureSize:e._adjustTextureQualityForTextures(D),fxaaEnabled:!0,forceUint8Textures:!1,iblEnabled:!0,normalData:!0,videoTexturesEnabled:!0,highPrecisionFloat:!0,envBrdfLut:!0,useCubeIBL:!0,enableLights:!0,vignettingEnabled:!0,grainEnabled:!0,dynamicColorGradingEnabled:!0,lensDirtEnabled:!0,vramMbytes:2048}),(0,a.default)(this._qualitySettings[p],this._presetQualitySettings[p]),this._qualitySettings[g]={},this._presetQualitySettings[g]=this._adjustForMissingFeatures({usePackedPngDds:!1,usePackedPngBin:!1,gzip:!1,ramLimitMbytes:2048,iblSamples:n,globalFramebufferScaleRatio:1,supersampleScale:1,ghostingEnabled:!0,shadowMapSize:1024,shadowsEnabled:!1,bloomEnabled:!0,dofEnabled:!1,lowEndDofEnabled:!0,refractionDispersionEnabled:!0,halfresDof:!0,hdrEnabled:!0,automaticTextureSelection:!1,useDds:!0,textureSize:e._adjustTextureQualityForTextures(M),fxaaEnabled:!0,forceUint8Textures:!1,iblEnabled:!0,normalData:!0,videoTexturesEnabled:!0,highPrecisionFloat:!0,envBrdfLut:!0,useCubeIBL:!0,enableLights:!0,vignettingEnabled:!0,grainEnabled:!0,dynamicColorGradingEnabled:!0,lensDirtEnabled:!0,vramMbytes:1024}),(0,a.default)(this._qualitySettings[g],this._presetQualitySettings[g]),this._qualitySettings[E]={},this._presetQualitySettings[E]=this._adjustForMissingFeatures({usePackedPngDds:!1,usePackedPngBin:!1,gzip:!1,ramLimitMbytes:1024,iblSamples:n,globalFramebufferScaleRatio:1,supersampleScale:1,ghostingEnabled:!0,shadowMapSize:1024,shadowsEnabled:!1,bloomEnabled:!0,dofEnabled:!1,lowEndDofEnabled:!0,refractionDispersionEnabled:!0,halfresDof:!0,hdrEnabled:!1,automaticTextureSelection:!1,useDds:!0,textureSize:e._adjustTextureQualityForTextures(M),fxaaEnabled:!0,forceUint8Textures:!1,iblEnabled:!0,normalData:!0,videoTexturesEnabled:!1,highPrecisionFloat:!0,envBrdfLut:!1,useCubeIBL:!0,enableLights:!0,vignettingEnabled:!0,grainEnabled:!0,dynamicColorGradingEnabled:!0,lensDirtEnabled:!0,vramMbytes:1024}),(0,a.default)(this._qualitySettings[E],this._presetQualitySettings[E]),this._qualitySettings[v]={},this._presetQualitySettings[v]=this._adjustForMissingFeatures({usePackedPngDds:!1,usePackedPngBin:!1,gzip:!1,ramLimitMbytes:1024,iblSamples:n,globalFramebufferScaleRatio:.5,supersampleScale:1,ghostingEnabled:!1,shadowMapSize:512,shadowsEnabled:!1,bloomEnabled:!1,dofEnabled:!1,lowEndDofEnabled:!1,refractionDispersionEnabled:!1,hdrEnabled:!1,automaticTextureSelection:!1,useDds:!0,textureSize:e._adjustTextureQualityForTextures(w),fxaaEnabled:!0,forceUint8Textures:!0,iblEnabled:!0,normalData:!0,videoTexturesEnabled:!1,highPrecisionFloat:!0,envBrdfLut:!1,useCubeIBL:!0,enableLights:!1,vignettingEnabled:!0,grainEnabled:!0,dynamicColorGradingEnabled:!0,lensDirtEnabled:!0,vramMbytes:512}),(0,a.default)(this._qualitySettings[v],this._presetQualitySettings[v]),this._qualitySettings[b]={},this._presetQualitySettings[b]=this._adjustForMissingFeatures({usePackedPngDds:!1,usePackedPngBin:!1,gzip:!1,ramLimitMbytes:1024,iblSamples:n,globalFramebufferScaleRatio:.5,supersampleScale:1,ghostingEnabled:!1,shadowMapSize:512,shadowsEnabled:!1,bloomEnabled:!1,dofEnabled:!1,lowEndDofEnabled:!1,refractionDispersionEnabled:!1,hdrEnabled:!1,automaticTextureSelection:!1,useDds:!0,textureSize:e._adjustTextureQualityForTextures(w),fxaaEnabled:!1,forceUint8Textures:!0,iblEnabled:!0,normalData:!0,videoTexturesEnabled:!1, highPrecisionFloat:!0,envBrdfLut:!1,useCubeIBL:!0,enableLights:!1,waterRendering:!0,vignettingEnabled:!0,grainEnabled:!0,dynamicColorGradingEnabled:!0,lensDirtEnabled:!0,vramMbytes:256}),(0,a.default)(this._qualitySettings[b],this._presetQualitySettings[b]),this._qualitySettings[S]={},this._presetQualitySettings[S]=this._adjustForMissingFeatures({usePackedPngDds:!1,usePackedPngBin:!1,gzip:!1,ramLimitMbytes:256,iblSamples:n,globalFramebufferScaleRatio:.5,supersampleScale:1,ghostingEnabled:!1,shadowMapSize:512,shadowsEnabled:!1,bloomEnabled:!1,dofEnabled:!1,lowEndDofEnabled:!1,refractionDispersionEnabled:!1,hdrEnabled:!1,automaticTextureSelection:!1,usePvr:!0,textureSize:e._adjustTextureQualityForTextures(w),fxaaEnabled:!1,forceUint8Textures:!0,iblEnabled:!0,normalData:!0,highPrecisionFloat:!0,envBrdfLut:!1,videoTexturesEnabled:!1,useCubeIBL:!0,enableLights:!1,waterRendering:!1,lowQualityWater:!0,vignettingEnabled:!0,grainEnabled:!0,dynamicColorGradingEnabled:!0,lensDirtEnabled:!0,vramMbytes:256}),(0,a.default)(this._qualitySettings[S],this._presetQualitySettings[S]),this._qualitySettings[T]={},this._presetQualitySettings[T]=this._adjustForMissingFeatures({usePackedPngDds:!1,usePackedPngBin:!1,gzip:!1,ramLimitMbytes:256,iblSamples:n,globalFramebufferScaleRatio:1,supersampleScale:1,ghostingEnabled:!0,shadowMapSize:512,shadowsEnabled:!1,bloomEnabled:!0,dofEnabled:!1,lowEndDofEnabled:!1,refractionDispersionEnabled:!0,halfresDof:!0,hdrEnabled:!1,automaticTextureSelection:!1,usePvr:!0,textureSize:e._adjustTextureQualityForTextures(M),fxaaEnabled:!0,forceUint8Textures:!0,iblEnabled:!0,highPrecisionFloat:!0,envBrdfLut:!0,normalData:!0,videoTexturesEnabled:!1,useCubeIBL:!0,enableLights:!0,waterRendering:!0,vignettingEnabled:!0,grainEnabled:!0,dynamicColorGradingEnabled:!0,lensDirtEnabled:!0,vramMbytes:256}),(0,a.default)(this._qualitySettings[T],this._presetQualitySettings[T]),this._forcedQuality=e._getForcedQuality();var r=this._forcedQuality||this._performanceToQuality(this.performance);A.Context.logger.info("selected quality: "+r+" (manual override: "+this._forcedQuality+") timing: "+this.performanceTiming);var i=this._qualitySettings[r];this._selectedQuality=r,e._setResourceLimits(i),this._applyHighPrecisionFloat(i.highPrecisionFloat)}return(0,u.default)(e,null,[{key:"_adjustTextureQualityForCubeMaps",value:function(e){return 512===h.Renderer.MAX_CUBE_MAP_TEXTURE_SIZE?w:1024!==h.Renderer.MAX_CUBE_MAP_TEXTURE_SIZE||e!==P&&e!==D?e:M}},{key:"_adjustTextureQualityForTextures",value:function(e){var t=h.Renderer.MAX_TEXTURE_SIZE;if(t<256)throw new Error("MAX_TEXTURE_SIZE is too small for this application to work");if(t<N[e]){if(void 0===O[t])throw new Error("no mapping from MAX_TEXTURE_SIZE ("+t+") to content found");return O[t]}return e}},{key:"_setResourceLimits",value:function(e){c.ResourceManager.RAM_LIMIT_BYTES=1024*e.ramLimitMbytes*1024}},{key:"_getForcedQuality",value:function(){var e=[m,p,g,E,v,b,T,S],t=f.Util.getUrlVar("quality");return e.indexOf(t)===-1&&(t=void 0),t}},{key:"_getCompressedTexFormat",value:function(e){var t="default";return A.Context.glExtensionManager.has.compressedTextureS3TC&&e.useDds?t=e.usePackedPngDds?"pngdds":"dds":A.Context.glExtensionManager.has.compressedTexturePVRTC&&e.usePvr&&(t="pvr"),t}},{key:"_makeSetting",value:function(e,t,n,r){e[t]={type:n,value:r}}},{key:"QUALITY_ULTRA",get:function(){return m}},{key:"QUALITY_SUPER",get:function(){return p}},{key:"QUALITY_SUPER_MEDIUM",get:function(){return g}},{key:"QUALITY_HIGH",get:function(){return E}},{key:"QUALITY_LOW",get:function(){return v}},{key:"QUALITY_ULTRA_LOW",get:function(){return b}},{key:"QUALITY_MOBILE_LOW",get:function(){return S}},{key:"QUALITY_MOBILE_HIGH",get:function(){return T}},{key:"ORDER_QUALITY_DESKTOP",get:function(){return x}},{key:"ORDER_QUALITY_MOBILE",get:function(){return y}},{key:"QUALITY_TEXTURE_SIZE_VERY_TINY",get:function(){return C}},{key:"QUALITY_TEXTURE_SIZE_TINY",get:function(){return w}},{key:"QUALITY_TEXTURE_SIZE_SMALL",get:function(){return M}},{key:"QUALITY_TEXTURE_SIZE_MEDIUM",get:function(){return D}},{key:"QUALITY_TEXTURE_SIZE_LARGE",get:function(){return P}},{key:"MANUAL",get:function(){return B}},{key:"AUTOMATIC",get:function(){return F}},{key:"EVENT_REQUESTED_TEXTURES_UNAVAILABLE",get:function(){return R}},{key:"EVENT_REQUESTED_TEXTURES_AVAILABLE",get:function(){return I}},{key:"EVENT_REQUESTED_TEXTURES_DEGRADED",get:function(){return L}}]),(0,u.default)(e,[{key:"set",value:function(t,n,r){e._makeSetting(this._globalSettings,t,n,r),this._applyGlobalSettings()}},{key:"selectOptimalTextureSet",value:function(e,t){void 0!==e&&void 0!==t&&this._validateTextureFormats(e,t)}},{key:"_adjustForMissingFeatures",value:function(e){return(f.Util.isIE()||f.Util.isEdge())&&(e.envBrdfLut=!1),A.Context.glExtensionManager.has.textureFloat||(e.hdrEnabled=!1),A.Context.glExtensionManager.has.standardDerivatives||(e.shadowsEnabled=!1),e.videoTexturesEnabled=e.videoTexturesEnabled&&!f.Util.isSafari(),e}},{key:"_validateTextureFormats",value:function(t,n){if(this.quality.automaticTextureSelection){for(var r,i=this.compressedTexFormat,a=.8*this.quality.vramMbytes*1024*1024-n,o=t.sort(function(e,t){return("default"===e.f?e.r*e.r*4:e.s)-("default"===t.f?t.r*t.r*4:t.s)}),s=void 0,l=void 0,u=h.Renderer.MAX_TEXTURE_SIZE,d=0,c=o.length;d<c;++d){var f=o[d];r="default"===f.f?f.r*f.r*4:f.s,r<=a&&f.r<=u&&(f.f===i?s=f:"default"===f.f&&(l=f))}s?(this.quality.textureSize=O[s.r],A.Context.eventEmitter.emit(this,e.EVENT_REQUESTED_TEXTURES_AVAILABLE)):l?("dds"===i?this.quality.useDds=!1:"pvr"===i&&(this.quality.usePvr=!1),this.quality.textureSize=O[l.r],A.Context.eventEmitter.emit(this,e.EVENT_REQUESTED_TEXTURES_DEGRADED)):A.Context.eventEmitter.emit(this,e.EVENT_REQUESTED_TEXTURES_UNAVAILABLE)}}},{key:"_applyGlobalSettings",value:function(){var t=this._qualitySettings[this._selectedQuality],n=this._globalSettings;for(var r in n){var i=n[r];i.type===e.MANUAL?t[r]=i.value:i.type===e.AUTOMATIC&&(t[r]=this._presetQualitySettings[this._selectedQuality][r]),"highPrecisionFloat"===r&&this._applyHighPrecisionFloat(t.highPrecisionFloat)}}},{key:"_applyHighPrecisionFloat",value:function(e){_.Effect.useHighPrecisionFloat=h.Renderer.SUPPORTS_HIGHP&&e}},{key:"_performanceToQuality",value:function(e){if(void 0===e)return b;if(f.Util.isMobileBrowser())return this.performanceTiming<100?T:S;switch(e){case d.Application.PERFORMANCE_ULTRA:return m;case d.Application.PERFORMANCE_SUPER:return p;case d.Application.PERFORMANCE_SUPER_MEDIUM:return g;case d.Application.PERFORMANCE_HIGH:return E;case d.Application.PERFORMANCE_LOW:return v;case d.Application.PERFORMANCE_ULTRA_LOW:return b}return b}},{key:"getAdjustedTexPath",value:function(e){return this.quality.automaticTextureSelection&&null===/.*?_dl8PS-([ci])-([0-1])-([0-9]+)-([0-9]+)-([0-9]+)_.*/g.exec(e)?"default"!==this.compressedTexFormat?f.Util.getBasePath(e)+"/s/"+this.textureSize+"/"+f.Util.getFileFromPathWithoutExt(e)+this.compressedTexFormat:f.Util.getBasePath(e)+"/s/"+this.textureSize+"/"+f.Util.getFileFromPath(e):e}},{key:"forcedQuality",get:function(){return void 0!==this._forcedQuality}},{key:"selectedQuality",get:function(){return this._selectedQuality}},{key:"quality",get:function(){return this._qualitySettings[this._selectedQuality]}},{key:"compressedTexFormat",get:function(){return e._getCompressedTexFormat(this._qualitySettings[this._selectedQuality])}},{key:"textureSize",get:function(){return N[this._qualitySettings[this._selectedQuality].textureSize]}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PhoneManager=void 0;var i=n(45),a=r(i),o=n(86),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(14),h=r(f),_=n(497),A=n(10),m="EVENT_VR_PHONE_CHANGED",p=new h.default([["NEXUS_7",'{"type":"android","rules":[{"ua":"Nexus 7"}]}'],["ASUS_Z00AD",'{"type":"android","rules":[{"ua":"ASUS_Z00AD"}]}'],["ASUS_Z012S",'{"type":"android","rules":[{"ua":"ASUS_Z012S"}]}'],["ASUS_X018D",'{"type":"android","rules":[{"ua":"ASUS_X018D"}]}'],["ASUS_T00I",'{"type":"android","rules":[{"ua":"ASUS_T00I"}]}'],["ASUS_X00ID",'{"type":"android","rules":[{"ua":"ASUS_X00ID"}]}'],["ASUS_Z01GD",'{"type":"android","rules":[{"ua":"ASUS_Z01GD"}]}'],["ASUS_T00J",'{"type":"android","rules":[{"ua":"ASUS_T00J"}]}'],["ASUS_T00Q",'{"type":"android","rules":[{"ua":"ASUS_T00Q"}]}'],["HTC6435LVW",'{"type":"android","rules":[{"ua":"HTC6435LVW"}]}'],["HTC_10",'{"type":"android","rules":[{"ua":"HTC 10"}]}'],["HTC_ONE_XL",'{"type":"android","rules":[{"ua":"HTC One XL"}]}'],["NEXUS_9",'{"type":"android","rules":[{"ua":"Nexus 9"}]}'],["HTC_ONE_M9",'{"type":"android","rules":[{"ua":"HTC One M9"}]}'],["HTC_ONE_M8",'{"type":"android","rules":[{"ua":"HTC One_M8"}]}'],["HTC_ONE",'{"type":"android","rules":[{"ua":"HTC One"}]}'],["HTC_U_11",'{"type":"android","rules":[{"ua":"HTC U11"}]}'],["HTC_U_11_PLUS",'{"type":"android","rules":[{"ua":"HTC U11 Plus"}]}'],["HTC_U_ULTRA",'{"type":"android","rules":[{"ua":"HTC U Ultra"}]}'],["HTC_U_PLAY",'{"type":"android","rules":[{"ua":"HTC U Play"}]}'],["HUAWEI_HONOR_8",'{"type":"android","rules":[{"ua":"Honor 8"}]}'],["HUAWEI_HONOR_8_PRO",'{"type":"android","rules":[{"ua":"Honor 8 Pro"}]}'],["HUAWEI_MATE_9",'{"type":"android","rules":[{"ua":"Mate 9"}]}'],["HUAWEI_P9",'{"type":"android","rules":[{"ua":"P9"}]}'],["HUAWEI_P10",'{"type":"android","rules":[{"ua":"P10"}]}'],["HUAWEI_P10_PLUS",'{"type":"android","rules":[{"ua":"P10 Plus"}]}'],["HUAWEI_P8_LITE",'{"type":"android","rules":[{"ua":"ALE-L21"}]}'],["HUAWEI_P10_LITE",'{"type":"android","rules":[{"ua":"WAS-TL10"}]}'],["HUAWEI_HONOR_7X",'{"type":"android","rules":[{"ua":"BND-L24"}]}'],["HUAWEI_HONOR_9",'{"type":"android","rules":[{"ua":"STF-TL10"}]}'],["HUAWEI_HONOR_VIEW_10",'{"type":"android","rules":[{"ua":"BKL-L09"}]}'],["HUAWEI_MATE_10",'{"type":"android","rules":[{"ua":"ALP-L09"}]}'],["HUAWEI_MATE_10_LITE",'{"type":"android","rules":[{"ua":"RNE-L22"}]}'],["HUAWEI_MATE_10_PRO",'{"type":"android","rules":[{"ua":"BLA-L29"}]}'],["PH_1",'{"type":"android","rules":[{"ua":"PH-1"}]}'],["NEXUS_6P",'{"type":"android","rules":[{"ua":"Nexus 6P"}]}'],["NEXUS_5X",'{"type":"android","rules":[{"ua":"Nexus 5X"}]}'],["LGMS345",'{"type":"android","rules":[{"ua":"LGMS345"}]}'],["LG_D800",'{"type":"android","rules":[{"ua":"LG-D800"}]}'],["LG_D850",'{"type":"android","rules":[{"ua":"LG-D850"}]}'],["VS985_4G",'{"type":"android","rules":[{"ua":"VS985 4G"}]}'],["NEXUS_5_",'{"type":"android","rules":[{"ua":"Nexus 5 "}]}'],["NEXUS_4",'{"type":"android","rules":[{"ua":"Nexus 4"}]}'],["LG_P769",'{"type":"android","rules":[{"ua":"LG-P769"}]}'],["LG_H810",'{"type":"android","rules":[{"ua":"LG-H810"}]}'],["LG_H812",'{"type":"android","rules":[{"ua":"LG-H812"}]}'],["LG_H815",'{"type":"android","rules":[{"ua":"LG-H815"}]}'],["LG_H831",'{"type":"android","rules":[{"ua":"LG-H831"}]}'],["LG_LS993",'{"type":"android","rules":[{"ua":"LG-LS993"}]}'],["LG_H900",'{"type":"android","rules":[{"ua":"LG-H900"}]}'],["LG_H910",'{"type":"android","rules":[{"ua":"LG-H910"}]}'],["LGMS323",'{"type":"android","rules":[{"ua":"LGMS323"}]}'],["LGLS996",'{"type":"android","rules":[{"ua":"LGLS996"}]}'],["LG_M250",'{"type":"android","rules":[{"ua":"LG-M250"}]}'],["LG_H930",'{"type":"android","rules":[{"ua":"LG-H930"}]}'],["4560MMX",'{"type":"android","rules":[{"ua":"4560MMX"}]}'],["MICROMAX_A250",'{"type":"android","rules":[{"ua":"Micromax A250"}]}'],["MICROMAX_AQ4501",'{"type":"android","rules":[{"ua":"Micromax AQ4501"}]}'],["MICROMAX_C1",'{"type":"android","rules":[{"ua":"Micromax C1"}]}'],["MICROMAX_HS2",'{"type":"android","rules":[{"ua":"Micromax HS2"}]}'],["MICROMAX_BHARAT_5",'{"type":"android","rules":[{"ua":"Micromax Bharat 5"}]}'],["DROID_RAZR",'{"type":"android","rules":[{"ua":"DROID RAZR"}]}'],["XT830C",'{"type":"android","rules":[{"ua":"XT830C"}]}'],["XT1021",'{"type":"android","rules":[{"ua":"XT1021"}]}'],["XT1023",'{"type":"android","rules":[{"ua":"XT1023"}]}'],["XT1028",'{"type":"android","rules":[{"ua":"XT1028"}]}'],["XT1034",'{"type":"android","rules":[{"ua":"XT1034"}]}'],["XT1053",'{"type":"android","rules":[{"ua":"XT1053"}]}'],["XT1562",'{"type":"android","rules":[{"ua":"XT1562"}]}'],["NEXUS_6_",'{"type":"android","rules":[{"ua":"Nexus 6 "}]}'],["PIXEL",'{"type":"android","rules":[{"ua":"Pixel B"}]}'],["PIXEL_XL",'{"type":"android","rules":[{"ua":"Pixel XL B"}]}'],["PIXEL_2",'{"type":"android","rules":[{"ua":"Pixel 2"}]}'],["PIXEL_2_XL",'{"type":"android","rules":[{"ua":"Pixel 2 XL"}]}'],["RAZER_PHONE",'{"type":"android","rules":[{"ua":"Razer Phone"}]}'],["TA_1028",'{"type":"android","rules":[{"ua":"TA-1028"}]}'],["TA_1053",'{"type":"android","rules":[{"ua":"TA-1053"}]}'],["TA_1000",'{"type":"android","rules":[{"ua":"TA-1000"}]}'],["NOKIA_7_PLUS",'{"type":"android","rules":[{"ua":"Nokia 7 plus"}]}'],["TA_1004",'{"type":"android","rules":[{"ua":"TA-1004"}]}'],["NOKIA_8_SIROCCO",'{"type":"android","rules":[{"ua":"Nokia 8 Sirocco"}]}'],["XT1063",'{"type":"android","rules":[{"ua":"XT1063"}]}'],["XT1064",'{"type":"android","rules":[{"ua":"XT1064"}]}'],["XT1092",'{"type":"android","rules":[{"ua":"XT1092"}]}'],["XT1095",'{"type":"android","rules":[{"ua":"XT1095"}]}'],["XT1650",'{"type":"android","rules":[{"ua":"XT1650"}]}'],["XT1676",'{"type":"android","rules":[{"ua":"XT1676"}]}'],["XT1686",'{"type":"android","rules":[{"ua":"XT1686"}]}'],["XT1710_02",'{"type":"android","rules":[{"ua":"XT1710-02"}]}'],["XT1789_05",'{"type":"android","rules":[{"ua":"XT1789-05"}]}'],["MOTO_X4",'{"type":"android","rules":[{"ua":"moto x4"}]}'],["A0001",'{"type":"android","rules":[{"ua":"A0001"}]}'],["A5000",'{"type":"android","rules":[{"ua":"A5000"}]}'],["A5010",'{"type":"android","rules":[{"ua":"A5010"}]}'],["ONE_E1005",'{"type":"android","rules":[{"ua":"ONE E1005"}]}'],["ONE_A2005",'{"type":"android","rules":[{"ua":"ONE A2005"}]}'],["ONE_A300",'{"type":"android","rules":[{"ua":"ONE A300"}]}'],["ONE_A3010",'{"type":"android","rules":[{"ua":"ONE A3010"}]}'],["X909",'{"type":"android","rules":[{"ua":"X909"}]}'],["CPH1727",'{"type":"android","rules":[{"ua":"CPH1727"}]}'],["CPH1725",'{"type":"android","rules":[{"ua":"CPH1725"}]}'],["CPH1729",'{"type":"android","rules":[{"ua":"CPH1729"}]}'],["CPH1717",'{"type":"android","rules":[{"ua":"CPH1717"}]}'],["GT_I9082",'{"type":"android","rules":[{"ua":"GT-I9082"}]}'],["SM_G360",'{"type":"android","rules":[{"ua":"SM-G360"}]}'],["NEXUS_S",'{"type":"android","rules":[{"ua":"Nexus S"}]}'],["SM_T230",'{"type":"android","rules":[{"ua":"SM-T230"}]}'],["SGH_T399",'{"type":"android","rules":[{"ua":"SGH-T399"}]}'],["SM_N900",'{"type":"android","rules":[{"ua":"SM-N900"}]}'],["GT_I950",'{"type":"android","rules":[{"ua":"GT-I950"}]}'],["SM_G900",'{"type":"android","rules":[{"ua":"SM-G900"}]}'],["SM_G800",'{"type":"android","rules":[{"ua":"SM-G800"}]}'],["SM_G906",'{"type":"android","rules":[{"ua":"SM-G906"}]}'],["SM_T535",'{"type":"android","rules":[{"ua":"SM-T535"}]}'],["SM_N920",'{"type":"android","rules":[{"ua":"SM-N920"}]}'],["SM_N930",'{"type":"android","rules":[{"ua":"SM-N930"}]}'],["GT_I9300",'{"type":"android","rules":[{"ua":"GT-I9300"}]}'],["GT_I9195",'{"type":"android","rules":[{"ua":"GT-I9195"}]}'],["SPH_L520",'{"type":"android","rules":[{"ua":"SPH-L520"}]}'],["SGH_I717",'{"type":"android","rules":[{"ua":"SGH-I717"}]}'],["SPH_D710",'{"type":"android","rules":[{"ua":"SPH-D710"}]}'],["GT_N7100",'{"type":"android","rules":[{"ua":"GT-N7100"}]}'],["SCH_I605",'{"type":"android","rules":[{"ua":"SCH-I605"}]}'],["GALAXY_NEXUS",'{"type":"android","rules":[{"ua":"Galaxy Nexus"}]}'],["SM_N910",'{"type":"android","rules":[{"ua":"SM-N910"}]}'],["SM_G130",'{"type":"android","rules":[{"ua":"SM-G130"}]}'],["SM_G928",'{"type":"android","rules":[{"ua":"SM-G928"}]}'],["SM_G920",'{"type":"android","rules":[{"ua":"SM-G920"}]}'],["SM_G925",'{"type":"android","rules":[{"ua":"SM-G925"}]}'],["SM_G930",'{"type":"android","rules":[{"ua":"SM-G930"}]}'],["SM_G935",'{"type":"android","rules":[{"ua":"SM-G935"}]}'],["SM_G950",'{"type":"android","rules":[{"ua":"SM-G950"}]}'],["SM_G955",'{"type":"android","rules":[{"ua":"SM-G955"}]}'],["SM_N935",'{"type":"android","rules":[{"ua":"SM-N935"}]}'],["SM_A320",'{"type":"android","rules":[{"ua":"SM-A320"}]}'],["SM_A520",'{"type":"android","rules":[{"ua":"SM-A520"}]}'],["SM_A720",'{"type":"android","rules":[{"ua":"SM-A720"}]}'],["SM_A530",'{"type":"android","rules":[{"ua":"SM-A530"}]}'],["SM_A730",'{"type":"android","rules":[{"ua":"SM-A730"}]}'],["SM_C5000",'{"type":"android","rules":[{"ua":"SM-C5000"}]}'],["SM_C5010",'{"type":"android","rules":[{"ua":"SM-C5010"}]}'],["SM_C7000",'{"type":"android","rules":[{"ua":"SM-C7000"}]}'],["SM_C701",'{"type":"android","rules":[{"ua":"SM-C701"}]}'],["SM_C900",'{"type":"android","rules":[{"ua":"SM-C900"}]}'],["GT_N5110",'{"type":"android","rules":[{"ua":"GT-N5110"}]}'],["SM_J530",'{"type":"android","rules":[{"ua":"SM-J530"}]}'],["SM_G570",'{"type":"android","rules":[{"ua":"SM-G570"}]}'],["SM_S727",'{"type":"android","rules":[{"ua":"SM-S727"}]}'],["SM_J701",'{"type":"android","rules":[{"ua":"SM-J701"}]}'],["SM_J730",'{"type":"android","rules":[{"ua":"SM-J730"}]}'],["SM_G610",'{"type":"android","rules":[{"ua":"SM-G610"}]}'],["SM_G615",'{"type":"android","rules":[{"ua":"SM-G615"}]}'],["SM_G960",'{"type":"android","rules":[{"ua":"SM-G960"}]}'],["SM_G965",'{"type":"android","rules":[{"ua":"SM-G965"}]}'],["SM_G970",'{"type":"android","rules":[{"ua":"SM-G970"}]}'],["SM_G975",'{"type":"android","rules":[{"ua":"SM-G975"}]}'],["C6903",'{"type":"android","rules":[{"ua":"C6903"}]}'],["D6653",'{"type":"android","rules":[{"ua":"D6653"}]}'],["E6653",'{"type":"android","rules":[{"ua":"E6653"}]}'],["E6853",'{"type":"android","rules":[{"ua":"E6853"}]}'],["F5121",'{"type":"android","rules":[{"ua":"F5121"}]}'],["F833",'{"type":"android","rules":[{"ua":"F833"}]}'],["SGP321",'{"type":"android","rules":[{"ua":"SGP321"}]}'],["G3121",'{"type":"android","rules":[{"ua":"G3121"}]}'],["G3421",'{"type":"android","rules":[{"ua":"G3421"}]}'],["H3113",'{"type":"android","rules":[{"ua":"H3113"}]}'],["H4233",'{"type":"android","rules":[{"ua":"H4233"}]}'],["G8141",'{"type":"android","rules":[{"ua":"G8141"}]}'],["G8341",'{"type":"android","rules":[{"ua":"G8341"}]}'],["G8441",'{"type":"android","rules":[{"ua":"G8441"}]}'],["H8216",'{"type":"android","rules":[{"ua":"H8216"}]}'],["H8314",'{"type":"android","rules":[{"ua":"H8314"}]}'],["G8231",'{"type":"android","rules":[{"ua":"G8231"}]}'],["ALCATEL_ONE_TOUCH_FIERCE",'{"type":"android","rules":[{"ua":"ALCATEL ONE TOUCH Fierce"}]}'],["ALCATEL_IDOL_4S",'{"type":"android","rules":[{"ua":"ALCATEL IDOL 4S"}]}'],["ALCATEL_IDOL_4",'{"type":"android","rules":[{"ua":"ALCATEL IDOL 4"}]}'],["THL_5000",'{"type":"android","rules":[{"ua":"thl 5000"}]}'],["XIAOMI_MI_5",'{"type":"android","rules":[{"ua":"MI 5"}]}'],["XIAOMI_MI_6",'{"type":"android","rules":[{"ua":"MI 6"}]}'],["XIAOMI_REDMI_3",'{"type":"android","rules":[{"ua":"Redmi 3"}]}'],["XIAOMI_MI_NOTE_3",'{"type":"android","rules":[{"ua":"Mi Note 3"}]}'],["XIAOMI_REDMI_NOTE_5A",'{"type":"android","rules":[{"ua":"Redmi Note 5A"}]}'],["XIAOMI_Redmi_4A",'{"type":"android","rules":[{"ua":"Redmi 4A"}]}'],["XIAOMI_MIX_2",'{"type":"android","rules":[{"ua":"MIX 2"}]}'],["ZTE_AXON_7",'{"type":"android","rules":[{"ua":"ZTE Axon 7"}]}'],["ZTE_BLADE_L2",'{"type":"android","rules":[{"ua":"ZTE Blade L2"}]}'],["LENOVO_P2",'{"type":"android","rules":[{"ua":"Lenovo P2"}]}'],["VIVO_1716",'{"type":"android","rules":[{"ua":"vivo 1716"}]}'],["VIVO_1718",'{"type":"android","rules":[{"ua":"vivo 1718"}]}'],["BBA100_2",'{"type":"android","rules":[{"ua":"BBA100-2"}]}'],["BBD100_1",'{"type":"android","rules":[{"ua":"BBD100-1"}]}'],["IPHONE_4",'{"type":"ios","variant":"iphone4","rules":[{"res":[640,960]}]}'],["IPHONE_4S",'{"type":"ios","variant":"iphone4s","rules":[{"res":[640,960]}]}'],["IPHONE_5",'{"type":"ios","variant":"iphone5","rules":[{"res":[640,1136]}]}'],["IPHONE_5S",'{"type":"ios","variant":"iphone5s","rules":[{"res":[640,1136]}]}'],["IPHONE_SE",'{"type":"ios","variant":"iphoneSe","rules":[{"res":[640,1136]}]}'],["IPHONE_6",'{"type":"ios","variant":"iphone6","rules":[{"res":[750,1334]}]}'],["IPHONE_6S",'{"type":"ios","variant":"iphone6s","rules":[{"res":[750,1334]}]}'],["IPHONE_6_PLUS",'{"type":"ios","variant":"iphone6plus","rules":[{"res":[1242,2208]}]}'],["IPHONE_6S_PLUS",'{"type":"ios","variant":"iphone6splus","rules":[{"res":[1242,2208]}]}'],["IPHONE_7",'{"type":"ios","variant":"iphone7","rules":[{"res":[750,1334]}]}'],["IPHONE_7_PLUS",'{"type":"ios","variant":"iphone7plus","rules":[{"res":[1242,2208]}]}'],["IPHONE_8",'{"type":"ios","variant":"iphone8","rules":[{"res":[750,1334]}]}'],["IPHONE_8_PLUS",'{"type":"ios","variant":"iphone8plus","rules":[{"res":[1242,2208]}]}'],["IPHONE_X",'{"type":"ios","variant":"iphonex","rules":[{"res":[1125,2436]}]}'],["IPHONE_XS",'{"type":"ios","variant":"iphonexs","rules":[{"res":[1125,2436]}]}'],["IPHONE_XS_MAX",'{"type":"ios","variant":"iphonexsmax","rules":[{"res":[1242,2688]}]}'],["IPHONE_XR",'{"type":"ios","variant":"iphonexr","rules":[{"res":[828,1792]}]}']]);t.PhoneManager=function(){function e(){var t=this;(0,u.default)(this,e),this._dpdb=new _.Dpdb(!1),this._phoneHashToIdxMap=new h.default(this._dpdb.devices.map(function(e,n){return[t._hashDevice(e),n]})),this._phoneHashToNameMap=new h.default([].concat((0,s.default)(p.entries())).map(function(e){return e.reverse()})),A.Context.eventEmitter.emit(this,e.EVENT_VR_PHONE_CHANGED)}return(0,c.default)(e,null,[{key:"EVENT_VR_PHONE_CHANGED",get:function(){return m}}]),(0,c.default)(e,[{key:"resetPhone",value:function(){this._dpdb.resetDevice(),A.Context.eventEmitter.emit(this,e.EVENT_VR_PHONE_CHANGED)}},{key:"_hashDevice",value:function(e){return(0,a.default)({type:e.type,variant:e.variant,rules:e.rules})}},{key:"dpdb",get:function(){return this._dpdb}},{key:"selectedPhone",get:function(){if(void 0!==this._dpdb.device)return this._phoneHashToNameMap.get(this._hashDevice(this._dpdb.device))},set:function(t){this._dpdb.device=this._phoneHashToIdxMap.get(p.get(t)),A.Context.eventEmitter.emit(this,e.EVENT_VR_PHONE_CHANGED)}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SkyboxMaterial=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(8),c=r(d),f=n(2),h=r(f),_=n(5),A=r(_),m=n(7),p=n(58),g=n(17),E=n(77),v=n(188),b=n(23),S=t.SkyboxMaterial=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._textureLoaded=function(){n._updateModeInEffect(n._effect),n._texture&&"function"==typeof n._texture.removeEventListener&&n._texture.removeEventListener(n._textureLoaded)},n._texture=m.Util.getParam(e,"texture"),n._texture&&"function"==typeof n._texture.addEventListener&&n._texture.addEventListener(p.Resource.LOADED,n._textureLoaded),n._color=m.Util.getParam(e,"color",new b.ColorRGBA(1,1,1,1)),n._mode=m.Util.getParam(e,"mode",t.CUBE),n._stereoFormat=m.Util.getParam(e,"stereoFormat",t.STEREO_FORMAT_180_LR_SPHERICAL),n._useMipmappedTexture=m.Util.getParam(e,"useMipmappedTexture",!1),n._useFlippedY=m.Util.getParam(e,"useFlippedY",!1),n._convertToBGRA=m.Util.getParam(e,"convertToBGRA",!1),n._shCoeffs=m.Util.getParam(e,"shCoeffs",new Array(9)),n._gammaSpace=m.Util.getParam(e,"gammaSpace",!1),n._formatParams=m.Util.getParam(e,"formatParams"),n._lockToCamera=m.Util.getParam(e,"lockToCamera",!0),n}return(0,A.default)(t,e),(0,h.default)(t,[{key:"$serialize",value:function(){return{name:"SkyboxMaterial",params:{texture:this._texture,color:this._color,mode:this._mode,stereoFormat:this._stereoFormat,useMipmappedTexture:this._useMipmappedTexture,useFlippedY:this._useFlippedY,shCoeffs:this._shCoeffs,gammaSpace:this._gammaSpace,convertToBGRA:this._convertToBGRA,formatParams:this._formatParams}}}}]),(0,h.default)(t,[{key:"_updateColorInEffect",value:function(e){e&&e.isConfigurable&&(this.color?(e.setUnlitColorEnabled(!0),e.params.color=this._color):e.setUnlitColorEnabled(!1))}},{key:"_updateGammaSpaceInEffect",value:function(e){e&&e.isConfigurable&&e.setGammaSpaceEnabled(this._gammaSpace)}},{key:"_updateLockToCameraInEffect",value:function(e){e&&e.isConfigurable&&e.setLockToCameraPositionEnabled(this._lockToCamera)}},{key:"_updateModeInEffect",value:function(e){if(e&&e.isConfigurable){if(e.setConvertToBGRAEnabled(this._convertToBGRA),this._mode===t.CUBE)e.setSkyBoxEnabled(!0),e.setCubemapFormatEnabled(!0),e.setEnvHasMipmapsEnabled(this._useMipmappedTexture),e.textures.skyTexture=this._texture;else if(this._mode===t.LATLONG)e.setSkyBoxEnabled(!0),e.setLatlongFormatEnabled(!0),e.setEnvHasMipmapsEnabled(this._useMipmappedTexture),e.setFlippedLatlongYEnabled(this._useFlippedY),e.textures.skyTexture=this._texture;else if(this._mode===t.LATLONG_180)e.setSkyBoxEnabled(!0),e.setLatlongFormatEnabled(!0),e.setMono180Enabled(!0),e.setEnvHasMipmapsEnabled(this._useMipmappedTexture),e.setFlippedLatlongYEnabled(this._useFlippedY),e.textures.skyTexture=this._texture;else if(this._mode===t.SH)e.setSkyBoxSHEnabled(!0),e.params.shCoeffs=this._shCoeffs;else if(this._mode===t.STEREOSCOPIC)if(e.setSkyBoxEnabled(!0),e.setStereoscopicFormatEnabled(!0),e.textures.skyTexture=this._texture,e.setStereoscopicPreSeparatedEnabled(this._texture instanceof v.VrUniform),e.setFlippedLatlongYEnabled(this._useFlippedY),this._stereoFormat===t.STEREO_FORMAT_180_LR_SPHERICAL)e.setStereoscopic180LrSphericalEnabled(!0);else if(this._stereoFormat===t.STEREO_FORMAT_360_LR)e.setStereoscopic360LrEnabled(!0);else if(this._stereoFormat===t.STEREO_FORMAT_180_TB_SPHERICAL)e.setStereoscopic180TbSphericalEnabled(!0);else if(this._stereoFormat===t.STEREO_FORMAT_360_TB)e.setStereoscopic360TbEnabled(!0);else if(this._stereoFormat===t.STEREO_FORMAT_180_LR)e.setStereoscopic180LrEnabled(!0);else if(this._stereoFormat===t.STEREO_FORMAT_180_TB)e.setStereoscopic180TbEnabled(!0);else if(this._stereoFormat===t.STEREO_FORMAT_FISHEYE_LR){e.setStereoscopicFisheyeLrEnabled(!0);var n=1;this._texture.width&&this._texture.height&&(n=.5*this._texture.width/this._texture.height);var r=180;this._formatParams&&this._formatParams.fov&&(r=this._formatParams.fov);var i=180;this._formatParams&&this._formatParams.magnification&&(i=this._formatParams.magnification),e.params.fisheyeParams=[g.MathUtil.degToRad(r),i,n]}else{if(this._stereoFormat!==t.STEREO_FORMAT_CUBEMAP)throw new Error("invalid stereo format supplied: "+this._stereoFormat);e.setStereoscopicCubemapEnabled(!0)}var a=this._texture instanceof v.VrUniform?this._texture.left:this._texture;a&&a.isRgbm?(e.params.rgbmMaxRange=a.rgbmFactor,e.setRgbmInputEnabled(!0)):e.setRgbmInputEnabled(!1)}}},{key:"_configureEffect",value:function(e){e.setUnlitEnabled(!0),this._updateModeInEffect(e),this._updateColorInEffect(e),this._updateGammaSpaceInEffect(e),this._updateLockToCameraInEffect(e),this._overwriteSurface=!1,this._writeDepth=!1,this._readDepth=!0,(0,c.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"_configureEffect",this).call(this,e)}},{key:"texture",get:function(){return this._texture},set:function(e){this._texture&&"function"==typeof this._texture.removeEventListener&&this._texture.removeEventListener(this._textureLoaded),this._texture=e,this._texture&&"function"==typeof this._texture.addEventListener&&this._texture.addEventListener(p.Resource.LOADED,this._textureLoaded),this._updateModeInEffect(this._effect)}},{key:"opacity",set:function(e){this._color.a=e,this._updateColorInEffect(this._effect)},get:function(){return this._color.a}},{key:"color",get:function(){return this._color},set:function(e){this._color=e,this._updateColorInEffect(this._effect)}},{key:"convertToBGRA",set:function(e){this._convertToBGRA=e,this._updateModeInEffect(this._effect)},get:function(){return this._convertToBGRA}},{key:"mode",set:function(e){this._mode=e,this._updateModeInEffect(this._effect)},get:function(){return this._mode}},{key:"stereoFormat",set:function(e){this._stereoFormat=e,this._updateModeInEffect(this._effect)},get:function(){return this._stereoFormat}},{key:"gammaSpace",set:function(e){this._gammaSpace=e,this._updateGammaSpaceInEffect(this._effect)},get:function(){return this._gammaSpace}},{key:"lockToCamera",set:function(e){this._lockToCamera=e,this._updateLockToCameraInEffect(this._effect)},get:function(){return this._lockToCamera}}]),t}(E.SurfaceMaterial);S.LATLONG="LATLONG",S.LATLONG_180="LATLONG_180",S.STEREOSCOPIC="STEREOSCOPIC",S.STEREO_FORMAT_180_LR_SPHERICAL="STEREO_180_LR_SPHERICAL",S.STEREO_FORMAT_360_LR="STEREO_360_LR",S.STEREO_FORMAT_180_TB_SPHERICAL="STEREO_180_TB_SPHERICAL",S.STEREO_FORMAT_360_TB="STEREO_360_TB",S.STEREO_FORMAT_180_LR="STEREO_180_LR",S.STEREO_FORMAT_180_TB="STEREO_180_TB",S.STEREO_FORMAT_FISHEYE_LR="STEREO_FISHEYE_LR",S.STEREO_FORMAT_CUBEMAP="STEREO_CUBEMAP",S.CUBE="CUBE",S.SH="SH",S.UNIFORM="UNIFORM"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CardboardVRDisplay=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(184),A=n(509),m=n(138),p=n(181),g=n(10),E={LEFT:"left",RIGHT:"right"},v="hmdParamsChanged";t.CardboardVRDisplay=function(e){function t(){(0,s.default)(this,t);var e=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this));return e._displayName="Cardboard VRDisplay (webvr-polyfill)",e._capabilities.hasOrientation=!0,e._capabilities.canPresent=!0,e._deviceInfo=new A.DeviceInfo(g.Context.phoneManager.dpdb.deviceParams),g.Context.eventEmitter.on(m.CardboardViewer.EVENT_VR_VIEWER_CHANGED,e._onViewerChanged.bind(e)),g.Context.eventEmitter.on(p.PhoneManager.EVENT_VR_PHONE_CHANGED,e._onPhoneChanged.bind(e)),e}return(0,h.default)(t,e),(0,c.default)(t,null,[{key:"EVENT_HMD_PARAMS_CHANGED",get:function(){return v}}]),(0,c.default)(t,[{key:"getImmediatePose",value:function(){return{position:g.Context.poseSensor.getPosition(),orientation:g.Context.poseSensor.getOrientation(),linearVelocity:null,linearAcceleration:null,angularVelocity:null,angularAcceleration:null}}},{key:"resetPose",value:function(){g.Context.poseSensor.resetPose()}},{key:"getEyeParameters",value:function(e){var t=[.5*this._deviceInfo.viewer.interLensDistance,0,0],n=void 0;if(e===E.LEFT)t[0]*=-1,n=this._deviceInfo.getFieldOfViewLeftEye();else{if(e!==E.RIGHT)return g.Context.logger.error(this,"Invalid eye provided: %s",e),null;n=this._deviceInfo.getFieldOfViewRightEye()}return{fieldOfView:n,offset:t,renderWidth:.5*this._deviceInfo.device.width,renderHeight:this._deviceInfo.device.height}}},{key:"_onPhoneChanged",value:function(e){this._deviceInfo.updateDeviceParams(e.dpdb.deviceParams),g.Context.eventEmitter.emit(this,t.EVENT_HMD_PARAMS_CHANGED)}},{key:"_onViewerChanged",value:function(e){this._deviceInfo.viewer=e,g.Context.eventEmitter.emit(this,t.EVENT_HMD_PARAMS_CHANGED)}}]),t}(_.VRDisplay)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.VRDisplay=void 0;var i=n(26),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(189),c=n(529),f=n(531),h=n(7),_=1337;t.VRDisplay=function(){function e(){(0,s.default)(this,e),this._displayId=_++,this._displayName="webvr-polyfill displayName",this._isConnected=!0,this._isPresenting=!1,this._capabilities={hasPosition:!1,hasOrientation:!1,hasExternalDisplay:!1,canPresent:!1,maxLayers:1},this._stageParameters=null,this._waitingForPresent=!1,this._layer=null,this._fullscreenElement=null,this._fullscreenWrapper=null,h.Util.isAndroid()?this._wakelock=new c.AndroidWakeLock:h.Util.isIOS()?this._wakelock=new f.IOSWakeLock:this._wakelock=new d.WakeLock}return(0,u.default)(e,[{key:"getPose",value:function(){return this.getImmediatePose()}},{key:"getImmediatePose",value:function(){return null}},{key:"requestAnimationFrame",value:function(e){return window.requestAnimationFrame(e)}},{key:"cancelAnimationFrame",value:function(e){return window.cancelAnimationFrame(e)}},{key:"_wrapForFullscreen", value:function(e){if(h.Util.isIOS())return e;if(this._fullscreenWrapper||(this._fullscreenWrapper=document.createElement("div"),this._fullscreenWrapper.style.width="100%",this._fullscreenWrapper.style.height="100%",this._fullscreenWrapper.style.position="absolute",this._fullscreenWrapper.style.left="0",this._fullscreenWrapper.style.top="0",this._fullscreenWrapper.style.zIndex="3000"),this._fullscreenElement===e)return this._fullscreenWrapper;this._removeFullscreenWrapper(),this._fullscreenElement=e;var t=this._fullscreenElement.parentElement;return t.insertBefore(this._fullscreenWrapper,this._fullscreenElement),t.removeChild(this._fullscreenElement),this._fullscreenWrapper.insertBefore(this._fullscreenElement,this._fullscreenWrapper.firstChild),this._fullscreenWrapper}},{key:"_removeFullscreenWrapper",value:function(){if(this._fullscreenElement){var e=this._fullscreenElement;this._fullscreenElement=null;var t=this._fullscreenWrapper.parentElement;return this._fullscreenWrapper.removeChild(e),t.insertBefore(e,this._fullscreenWrapper),t.removeChild(this._fullscreenWrapper),e}}},{key:"requestPresent",value:function(e){var t=this;return e instanceof Array||(e=[e]),new a.default(function(n,r){if(!t.capabilities.canPresent)return void r(new Error("VRDisplay is not capable of presenting."));if(0===e.length||e.length>t.capabilities.maxLayers)return void r(new Error("Invalid number of layers."));if(t._layer=e[0],t._waitingForPresent)return void r(new Error("Already waiting for present."));if(t.isPresenting)return void r(new Error("Already presenting."));if(t._layer&&t._layer.source){var i=t._layer.source,a=function(){var e=h.Util.getFullscreenElement();this._isPresenting=i===e,this._fireVRDisplayPresentChange(),this.isPresenting?(this._waitingForPresent=!1,this._beginPresent(),setTimeout(function(){screen.orientation&&screen.orientation.lock&&screen.orientation.lock("landscape"),n()},1e3)):(screen.orientation&&screen.orientation.unlock&&screen.orientation.unlock(),this._wakelock.release(),this._endPresent(),h.Util.removeFullscreenListeners())}.bind(t),o=function(){this._waitingForPresent&&(h.Util.removeFullscreenListeners(),this._wakelock.release(),this._waitingForPresent=!1,this._isPresenting=!1,r(new Error("Unable to present.")))}.bind(t);h.Util.addFullscreenListeners(i,a,o),h.Util.requestFullscreen(i)?(t._wakelock.request(),t._waitingForPresent=!0):h.Util.isIOS()&&(t._wakelock.request(),t._isPresenting=!0,t._fireVRDisplayPresentChange(),t._beginPresent(),n())}t._waitingForPresent||h.Util.isIOS()||(h.Util.exitFullscreen(),r(new Error("Unable to present.")))})}},{key:"_fireVRDisplayPresentChange",value:function(){var e=new CustomEvent("vrdisplaypresentchange",{detail:{vrdisplay:this}});window.dispatchEvent(e)}},{key:"exitPresent",value:function(){var e=this,t=this.isPresenting;return this._isPresenting=!1,this._layer=null,this._wakelock.release(),new a.default(function(n,r){t?(!h.Util.exitFullscreen()&&h.Util.isIOS()&&e._endPresent(),n()):r(new Error("Was not presenting to VRDisplay."))})}},{key:"getLayers",value:function(){return this._layer?[this._layer]:[]}},{key:"_beginPresent",value:function(){}},{key:"_endPresent",value:function(){}},{key:"submitFrame",value:function(e){}},{key:"getEyeParameters",value:function(e){return null}},{key:"displayId",get:function(){return this._displayId}},{key:"displayName",get:function(){return this._displayName}},{key:"isConnected",get:function(){return this._isConnected}},{key:"isPresenting",get:function(){return this._isPresenting}},{key:"capabilities",get:function(){return this._capabilities}},{key:"stageParameters",get:function(){return this._stageParameters}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.RenderSystem=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(7),u=n(17),d=n(60),c=n(12),f=n(112),h=n(23),_=n(40),A=n(49),m=n(10),p=n(187),g=n(39),E=n(95),v=n(135),b=n(134),S=n(133),T=n(24),x=n(273),y=n(515),C=n(32),w=n(94),M=n(110),D=n(29),P=n(183),R=n(465),I=n(474),L=n(475),O=n(458),N=n(459),B=n(264),F=n(478),k=n(473),U=n(467),V=n(471),G=n(462),H=n(477),z=n(476),Q=n(464),X=n(461),W=n(472),j=n(456),Y=n(457),q=n(460),Z=n(468),K=n(469),J=n(466),$=n(479),ee=n(481),te=n(480),ne=n(470),re=n(463),ie=n(443),ae=r(ie),oe=n(865),se=r(oe),le=n(366),ue=r(le),de=n(866),ce=r(de),fe="renderSystemEventBrdfTextureRendered",he="renderSystemEventRenderSizeChanged",_e="renderSystemEventRefractiveParamsChanged",Ae="renderSystemEventSsaoParamsChanged",me="renderSystemEventShadowParamsChanged",pe="renderSystemEventEnvMapRenderEnable",ge="renderSystemEventEnvMapRenderDisable",Ee=new D.Transform,ve=64,be=7,Se=16,Te=128,xe=6,ye=1024;t.RenderSystem=function(){function e(t){var n=this;(0,a.default)(this,e),this._updatePhysicalCamera=function(e){var t=!1;if(void 0===n._physicalCamera&&(t=!0),n._physicalCamera=e,m.Context.renderer.camera=e.camera,t){var r=Math.max(1,m.Context.renderer.canvas.width=m.Context.renderer.canvas.offsetWidth*m.Context.devicePixelRatio),i=Math.max(1,m.Context.renderer.canvas.height=m.Context.renderer.canvas.offsetHeight*m.Context.devicePixelRatio);n._setupPostProcessEffect(r,i)}},this._updateProjection=function(e){n._projection=e.projection},this._updateDebug=function(e){if(n._finalPassEffect){if(n._oldFinalPassBaseTexture)return n._finalPassEffect.textures.baseTexture=n._oldFinalPassBaseTexture,n._oldFinalPassBaseTexture=void 0,void m.Context.logger.info(n,"resetting debug tex");n._oldFinalPassBaseTexture=n._finalPassEffect.textures.baseTexture,n._finalPassEffect.textures.baseTexture=e,m.Context.logger.info(n,"setting debug tex")}},this._updatePhysicalCameraShaderParams=function(){if(n._dofEnabled&&(void 0===n._cocEffect.params.fDLS&&(n._cocEffect.params.fDLS=new c.Vector3),n._cocEffect.params.fDLS.x=n._physicalCamera.focalDistance,n._cocEffect.params.fDLS.y=n._physicalCamera.focalLength,n._cocEffect.params.fDLS.z=n._physicalCamera.fStop),(n._dofEnabled||n._lowEndDofEnabled)&&n._physicalCamera.autoExposure){var e=n._physicalCamera.autoFocusRegionSize,t=n._physicalCamera.autoFocusRegionSize,r=n._physicalCamera.autoFocusPositionX+(n._vrEnabled?.25:0);n._autoFocusRegionEffect.params.bl=[r-.5*e,n._physicalCamera.autoFocusPositionY-.5*t],n._autoFocusRegionEffect.params.tr=[r+.5*e,n._physicalCamera.autoFocusPositionY+.5*t],n._autoFocusEffect.params.mipmapLevel=Math.log(n._autoFocusRegionSize)/Math.log(2)}if(n._dofEnabled&&(n._splatEffect.params.filmHeight=n._physicalCamera.filmHeight,n._splatEffect.params.fStop=n._physicalCamera.fStop,n._splatEffect.textures.apertureTexture=n._apertureTextures[n._physicalCamera.apertureIdx],n._splatEffect.params.opticalVignettingStrength=n._physicalCamera.opticalVignettingStrength,n._splatEffect.params.focalLength=n._physicalCamera.focalLength,n._splatEffect.params.kn=n._physicalCamera.kn,n._opticsEffect.params.filmSize=[n._physicalCamera.filmWidth,n._physicalCamera.filmHeight],n._opticsEffect.params.cocThreshold=n._physicalCamera.cocThreshold,n._opticsEffect.params.cocThresholdRange=n._physicalCamera.cocThresholdRange),n._hdrEnabled){if(n._physicalCamera.autoExposure){var i=n._physicalCamera.autoExposureRegionSize,a=n._physicalCamera.autoExposureRegionSize,o=n._physicalCamera.autoExposurePositionX+(n._vrEnabled?.25:0);n._autoExposureRegionEffect.params.bl=[o-.5*i,n._physicalCamera.autoExposurePositionY-.5*a],n._autoExposureRegionEffect.params.tr=[o+.5*i,n._physicalCamera.autoExposurePositionY+.5*a],n._autoExposureEffect.params.mipmapLevel=Math.log(n._autoExposureRegionSize)/Math.log(2)}n._vignettingEnabled&&(n._finalPassEffect.params.focalLength=n._physicalCamera.focalLength,n._finalPassEffect.params.opticalVignettingStrength=n._physicalCamera.opticalVignettingStrength,n._finalPassEffect.params.distanceToFilm=n._physicalCamera.lensDistanceToFilm,n._finalPassEffect.params.filmSize=[n._physicalCamera.filmWidth,n._physicalCamera.filmHeight],n._finalPassEffect.params.fStop=n._physicalCamera.fStop),n.noFinalPassNeeded||(n._finalPassEffect.isConfigurable&&n._finalPassEffect.isColorGradientEnabled()!==n._physicalCamera.gradientEnabled&&n._finalPassEffect.setColorGradientEnabled(n._physicalCamera.gradientEnabled),n._physicalCamera.gradientEnabled&&(n._finalPassEffect.params.gradientColorA=n._physicalCamera.gradientColorA,n._finalPassEffect.params.gradientColorB=n._physicalCamera.gradientColorB,n._finalPassEffect.params.gradientDirection=n._physicalCamera.gradientDirection)),n._opticsEffect.params.fStop=n._physicalCamera.fStop,n._opticsEffect.params.shutterSpeed=n._physicalCamera.shutterSpeed,n._opticsEffect.params.lensTransmittance=n._physicalCamera.lensTransmittance,n._opticsEffect.params.filmSpeed=100*n._physicalCamera.filmSpeed,n._opticsEffect.params.apertureIlluminationCoefficient=n._physicalCamera.apertureIlluminationCoefficients[n._physicalCamera.apertureIdx]}n._bloomEnabled&&(n._brightnessExtractionEffect.params.glareThreshold=n._physicalCamera.glareThreshold,n._finalPassEffect.params.glareVisibility=n._physicalCamera.glareVisibility,n._ghostingEnabled&&(n._ghosting1Effect.params.ghostingThreshold=n._physicalCamera.ghostingThreshold,n._finalPassEffect.params.ghostingVisibility=n._physicalCamera.ghostingVisibility)),n._dynamicColorGradingEnabled&&(n._dynamicGradingEffect.textures.rgbLut=n._physicalCamera.gradingLut),n._lensDirtEnabled&&(n._finalPassEffect.textures.lensDirtTexture=n._physicalCamera.lensDirt,n._finalPassEffect.params.dirtVisibility=n._physicalCamera.lensDirtAmount),n._grainEnabled&&(n._grainTexture&&n._grainTexture._data[0]!==n._physicalCamera.grain&&(n._grainTexture.dtor(),n._grainTexture=null),n._grainTexture||(n._grainTexture=n._cache(new C.Texture({type:C.Texture.IMAGE,data:[n._physicalCamera.grain],generateMipmaps:!1}))),n._finalPassEffect.textures.grainTexture=n._grainTexture,n._finalPassEffect.params.grainTextureSize=512,n._finalPassEffect.params.grainPanning=n._grainPanning,n._finalPassEffect.params.grainAmount=n._physicalCamera.grainAmount),n.noFinalPassNeeded||n._finalPassEffect.setColorGradientEnabled(n._physicalCamera.gradientEnabled),n._lowEndDofEnabled&&(n._finalPassEffect.params.projection=n._projection,void 0===n._finalPassEffect.params.fDLSA&&(n._finalPassEffect.params.fDLSA=new f.Vector4),n._finalPassEffect.params.fDLSA.x=n._physicalCamera.focalDistance,n._finalPassEffect.params.fDLSA.y=n._physicalCamera.focalLength,n._finalPassEffect.params.fDLSA.z=n._physicalCamera.fStop,n._finalPassEffect.params.fDLSA.w=n._physicalCamera.aspect,void 0===n._finalPassEffect.params.filmHeightHeight&&(n._finalPassEffect.params.filmHeightHeight=new d.Vector2),n._finalPassEffect.params.filmHeightHeight.x=n._physicalCamera.filmHeight,n._finalPassEffect.params.filmHeightHeight.y=n._globalFramebufferHeight),n._finalPassEffect&&n._finalPassEffect.isConfigurable&&(n._finalPassEffect.isTonemapSimpleEnabled()===!1&&n._physicalCamera.toneMap===M.PhysicalCamera.TONEMAP_SIMPLE&&n._finalPassEffect.setTonemapSimpleEnabled(!0),n._finalPassEffect.isTonemapFilmicEnabled()===!1&&n._physicalCamera.toneMap===M.PhysicalCamera.TONEMAP_FILMIC&&n._finalPassEffect.setTonemapFilmicEnabled(!0)),n._tiltShiftBlurEnabled&&(n._finalPassEffect.params.tiltShiftBlurAmount=n._physicalCamera.tiltShiftBlurAmount),n._stereoLensDistortEffect&&n._stereoLensDistortEffect.isConfigurable&&n._vrDistortion&&(n._stereoLensDistortEffect.params.aspectRatio=n._physicalCamera.aspect),n._finalPassEffect&&n._finalPassEffect.isConfigurable&&(n._finalPassEffect.isChromaticAbberationEnabled&&0===n._physicalCamera.chromaticAbberationAmount?n._finalPassEffect.setChromaticAbberationEnabled(!1):!n._finalPassEffect.isChromaticAbberationEnabled&&n._physicalCamera.chromaticAbberationAmount>0&&n._chromaticAbberationEnabled&&n._finalPassEffect.setChromaticAbberationEnabled(!0)),n._chromaticAbberationEnabled&&(n._finalPassEffect.params.chromaticAbberationAmount=n._physicalCamera.chromaticAbberationAmount),n._finalPassEffect&&n._finalPassEffect.isConfigurable&&(n._finalPassEffect.isSharpenImageEnabled&&0===n._physicalCamera.sharpenAmount?n._finalPassEffect.setSharpenImageEnabled(!1):!n._finalPassEffect.isSharpenImageEnabled&&n._physicalCamera.sharpenAmount>0&&n._sharpenImageEnabled&&n._finalPassEffect.setSharpenImageEnabled(!0)),n._sharpenImageEnabled&&(n._finalPassEffect.params.sharpenAmount=n._physicalCamera.sharpenAmount)},this._dtorCache=[],this._physicalCamera=void 0,this._screenFillingQuad=null,this._vrDistortionGeometry=null,this._flareOcclusionEffect=null,this._flareOcclusionTexture=null,this._flareOcclusionBaseTextureBlack=null,this._flareOcclusionBaseTextureWhite=null,this._flareOcclusionTempTexture=null,this._flareOcclusionForwardTexture=null,this._fbCameraLocation=new c.Vector3(0,0,0),this._fbCameraDVector=new c.Vector3(0,0,-1),this._fbCameraRVector=new c.Vector3(1,0,0),this._fbCameraUVector=new c.Vector3(0,1,0),this._splatPointSize=32,this._bloomPasses=null,this._bloomPassCount=5,ye=l.Util.getParam(t,"iblSamples",256),this._brdfRendered=!1,this._brdfFramebuffer=null,this._brdfEffect=null,this._brdfQuad=null,this._brdfTexture=null,this._debugOverdrawEffect=null,this._autoFocusFramebuffer=null,this._autoFocusEffect=null,this._autoFocusRegionFramebuffer=null,this._autoFocusRegionEffect=null,this._autoFocusArrayBuffer=new Uint8Array(4),this._autoFocusRegionSize=void 0,this._autoExposureFramebuffer=null,this._autoExposureEffect=null,this._autoExposureRegionFramebuffer=null,this._autoExposureRegionEffect=null,this._autoExposureArrayBuffer=new Uint8Array(4),this._autoExposureRegionSize=void 0,this._opticsFramebuffer=null,this._opticsEffect=null,this._brightnessExtractionFramebuffer=null,this._brightnessExtractionEffect=null,this._grainPanning=0,this._projection=new Array(4),this._activeJitterPatternName="x2",this._jitterPatterns={x2:[[.25,.75],[.75,.25]],x3:[[.5033922635,.8317967229],[.7806016275,.2504380877],[.2261828938,.4131553612]],x4:[[.375,.25],[.125,.75],[.875,.25],[.625,.75]],x5:[[.5,.5],[.3,.1],[.7,.9],[.9,.3],[.1,.7]],x6:[[.4646464646,.4646464646],[.1313131313,.7979797979],[.5353535353,.8686868686],[.8686868686,.5353535353],[.7979797979,.1313131313],[.202020202,.202020202]],x8:[[.5625,.4375],[.0625,.9375],[.3125,.6875],[.6875,.8125],[.8125,.1875],[.9375,.5625],[.4375,.0625],[.1875,.3125]],x9:[[.5,.5],[.1666666666,.9444444444],[.5,.1666666666],[.5,.8333333333],[.1666666666,.2777777777],[.8333333333,.3888888888],[.1666666666,.6111111111],[.8333333333,.7222222222],[.8333333333,.0555555555]],x12:[[.4166666666,.625],[.9166666666,.875],[.25,.375],[.4166666666,.125],[.75,.125],[.0833333333,.125],[.75,.625],[.25,.875],[.5833333333,.375],[.9166666666,.375],[.0833333333,.625],[.583333333,.875]],x16:[[.375,.4375],[.625,.0625],[.875,.1875],[.125,.0625],[.375,.6875],[.875,.4375],[.625,.5625],[.375,.9375],[.625,.3125],[.125,.5625],[.125,.8125],[.375,.1875],[.875,.9375],[.875,.6875],[.125,.3125],[.625,.8125]]},this._exp2Table=[2.168404e-19,4.336809e-19,8.673617e-19,1.734723e-18,3.469447e-18,6.938894e-18,1.387779e-17,2.775558e-17,5.551115e-17,1.110223e-16,2.220446e-16,4.440892e-16,8.881784e-16,1.776357e-15,3.552714e-15,7.105427e-15,1.421085e-14,2.842171e-14,5.684342e-14,1.136868e-13,2.273737e-13,4.547474e-13,9.094947e-13,1.818989e-12,3.637979e-12,7.275958e-12,1.455192e-11,2.910383e-11,5.820766e-11,1.164153e-10,2.328306e-10,4.656613e-10,9.313226e-10,1.862645e-9,3.72529e-9,7.450581e-9,1.490116e-8,2.980232e-8,5.960464e-8,1.192093e-7,2.384186e-7,4.768372e-7,9.536743e-7,1907349e-12,3814697e-12,7629395e-12,1525879e-11,3051758e-11,6103516e-11,.0001220703,.0002441406,.0004882812,.0009765625,.001953125,.00390625,.0078125,.015625,.03125,.0625,.125,.25,.5,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777220,33554430,67108860,134217700,268435500,536870900,1073742e3,2147484e3,4294967e3,8589935e3,1717987e4,3435974e4,6871948e4,137439e6,2748779e5,5497558e5,1099512e6,2199023e6,4398047e6,8796093e6,1759219e7,3518437e7,7036874e7,1407375e8,281475e9,56295e10,11259e11,22518e11,45036e11,9007199e9,180144e11,360288e11,7205759e10,1441152e11,2882304e11,5764608e11,1152922e12,2305843e12],this._activeJitterPattern=this._jitterPatterns[this._activeJitterPatternName],this._jitterScale=.1,this._gradingLutWidth=256,this._gradingLutHeight=16,this._dynamicGradingFramebuffer=null,this._dynamicGradingEffect=null,this._splatFramebuffer=null,this._splatEffect=null,this._splatGeometries={uniform:[]},this._splatGridType="uniform",this._splatPasses=[],this._splatPassCount=3,this._splatTextureWidth=0,this._splatTextureHeight=0,this._splatTransformation=new D.Transform,this._apertureTextures=[],this._depthTexture=void 0,this._ssrPreTexture=null,this._ssrTraceTexture=null,this._ssrTracePassFramebuffer=null,this._ssrTraceEffect=null,this._motionBlurMixPassFramebuffer=null,this._motionBlurPassFramebuffer=null,this._motionBlurResolveEffect=null,this._motionBlurMixEffect=null,this._motionBlurLastFrameTexture=null,this._motionBlurLastFrameFramebuffer=null,this._motionBlurLastFrameEffect=null,this._motionBlurResolveQuad=null,this._forwardPassFramebuffer=null,this._forwardTexture=null,this._forwardPassDepthFramebuffer=null,this._defaultRefractionBlurPassCount=3,this._refractionBlurPassCount=this._defaultRefractionBlurPassCount,this._refractionBlurPasses=[],this._refractionBlurTextures=[],this._tiltShiftBlurPassCount=5,this._tiltShiftBlurPasses=[],this._tiltShiftBlurTextures=[],this._dofBlurPassCount=5,this._dofBlurPasses=[],this._dofBlurTextures=[],this._dofBlurFinalTexture=null,this._cocEffect=null,this._cocPassFramebuffer=null,this._enableDepthTexturePass=!m.Context.glExtensionManager.has.depthTexture,this._ghosting1Framebuffer=null,this._ghosting1Effect=null,this._ghosting2Framebuffer=null,this._ghosting2Effect=null,this._finalPassEffect=null,this._txaaJitterIteration=0,this._txaaJitter=[0,0],this._txaaPassEffect=null,this._txaaTextureB=null,this._txaaDejitterEffect=null,this._txaaFramebufferB=null,this._txaaCurrentFrameFramebuffer=null,this._txaaTextureA=null,this._txaaCurrentFrameTex=null,this._txaaInit=!1,this._txaaHaltonSequence=null,this._txaaHaltonSequenceIdx=0,this._previousViewProjectionMatrix=null,this._previousViewProjectionMatrixCache=null,this._currentInverseViewProjectionMatrix=null,this._currentInverseViewProjectionMatrixCache=null,this._finalPassFramebuffer=null,this._fxaaEffect=null,this._fxaaPassFramebuffer=null,this._stereoLensDistortEffect=null,this._measureMap={},this._shadowPasses=[],this._shadowFramebuffer=null,this._shadowMapTextures=[],this._shadowMapSizes=[],this._shadowMapViewProjectionMatrix=[],this._shadowBlendFactor=.5,this._shadowMapTempMatrix=new A.Matrix4,this._shadowMapSize=l.Util.getParam(t,"shadowMapSize",2048),this._shadowFrustumCornersLS=[new c.Vector3(1,1,-1),new c.Vector3(-1,1,-1),new c.Vector3(-1,-1,-1),new c.Vector3(1,-1,-1),new c.Vector3(1,1,1),new c.Vector3(-1,1,1),new c.Vector3(-1,-1,1),new c.Vector3(1,-1,1)],this._shadowFrustumCornersWS=[new c.Vector3(1,1,-1),new c.Vector3(-1,1,-1),new c.Vector3(-1,-1,-1),new c.Vector3(1,-1,-1),new c.Vector3(1,1,1),new c.Vector3(-1,1,1),new c.Vector3(-1,-1,1),new c.Vector3(1,-1,1)],this._shadowFrustumCornersVS=[new c.Vector3(1,1,-1),new c.Vector3(-1,1,-1),new c.Vector3(-1,-1,-1),new c.Vector3(1,-1,-1),new c.Vector3(1,1,1),new c.Vector3(-1,1,1),new c.Vector3(-1,-1,1),new c.Vector3(1,-1,1)],this._shadowMapMins=new c.Vector3,this._shadowMapMaxes=new c.Vector3,this._shadowFrustumCentroid=new c.Vector3,this._shadowCameraHack=null,this._hasShadowCasters=!1,this._hbaoTexture=null,this._hbaoFramebuffer=null,this._hbaoBlurXFramebuffer=null,this._hbaoBlurYFramebuffer=null,this._hbaoEffect=null,this._hbaoBlurXEffect=null,this._hbaoBlurYEffect=null,this._hbaoTextureHeight=0,this._hbaoTextureWidth=0,this._hbaoRandomTextureArray=null,this._hbaoRadius=.3,this._hbaoContrast=1.25,this._hbaoAngleBias=30,this._hbaoAttenuation=1,this._hbaoBlurSharpness=16,this._initQuality(),this._canvasBlendEnabled=l.Util.getParam(t,"canvasBlendEnabled",!1),this._antialiasEnabled=l.Util.getParam(t,"antialiasEnabled",!1),this._vrEnabled=!1,this._vrDistortion=!1,this._globalFramebufferWidth=8,this._globalFramebufferHeight=8,this._renderSize=void 0,this._renderSizeWoSupersample=void 0,this._renderSizeHalfWoSupersample=void 0,this._globalOriginalRenderWidth=0,this._globalOriginalRenderHeight=0,this._frameGrabber=null,this._lensFlareDescs=[],this._tmpVec=new c.Vector3,this._tmpVec2=new c.Vector3,this._tmpVec3=new c.Vector3,this._tmpVec4=new c.Vector3,this._colorAlmostWhite=new h.ColorRGBA(254/255,254/255,253/255,0),this._setupComplete=!1,this._oldFinalPassBaseTexture=void 0,m.Context.eventEmitter.on(M.PhysicalCamera.EVENT_MADE_ACTIVE,this._updatePhysicalCamera),m.Context.eventEmitter.on(M.PhysicalCamera.EVENT_HDR_PARAMS_CHANGED,this._updatePhysicalCameraShaderParams),m.Context.eventEmitter.on(M.PhysicalCamera.EVENT_CAMERA_PROJECTION_CHANGED,this._updateProjection),m.Context.eventEmitter.on(C.Texture.EVENT_DEBUG_DISPLAY,this._updateDebug)}return(0,s.default)(e,null,[{key:"EVENT_BRDF_TEXTURE_RENDERED",get:function(){return fe}},{key:"EVENT_RENDER_SIZE_CHANGED",get:function(){return he}},{key:"EVENT_REFRACTIVE_PARAMS_CHANGED",get:function(){return _e}},{key:"EVENT_SSAO_PARAMS_CHANGED",get:function(){return Ae}},{key:"EVENT_SHADOW_PARAMS_CHANGED",get:function(){return me}},{key:"EVENT_ENV_MAP_RENDER_ENABLE",get:function(){return pe}},{key:"EVENT_ENV_MAP_RENDER_DISABLE",get:function(){return ge}},{key:"HBAO_RANDOM_TEXTURE_SIZE",get:function(){return ve}},{key:"HBAO_BLUR_RADIUS",get:function(){return be}},{key:"HBAO_NUM_DIR",get:function(){return Se}},{key:"IBL_SAMPLES",get:function(){return ye}},{key:"IBL_LUT_SIZE",get:function(){return Te}},{key:"IBL_MIPMAP_LEVELS",get:function(){return xe}}]),(0,s.default)(e,[{key:"_cache",value:function(e){return this._dtorCache.push(e),e}},{key:"dtor",value:function(){this._dtorCache.forEach(function(e){e.dtor()}),this._dtorCache.length=0,m.Context.eventEmitter.removeEventListener(M.PhysicalCamera.EVENT_MADE_ACTIVE,this._updatePhysicalCamera),m.Context.eventEmitter.removeEventListener(M.PhysicalCamera.EVENT_HDR_PARAMS_CHANGED,this._updatePhysicalCameraShaderParams),m.Context.eventEmitter.removeEventListener(M.PhysicalCamera.EVENT_CAMERA_PROJECTION_CHANGED,this._updateProjection),m.Context.eventEmitter.removeEventListener(C.Texture.EVENT_DEBUG_DISPLAY,this._updateDebug)}},{key:"reset",value:function(e,t){if(this._physicalCamera){this._vrEnabled=e,this._vrDistortion=t;var n=void 0,r=void 0,i=m.Context.devicePixelRatio;if(this._vrEnabled){var a=m.Context.deviceManager.hardwareVr?1:m.Context.devicePixelRatio/(window.devicePixelRatio||1);n=m.Context.deviceManager.renderWidth*a,r=m.Context.deviceManager.renderHeight*a,l.Util.isAndroid()&&(m.Context.renderer.canvas.width=n,m.Context.renderer.canvas.height=r)}else n=m.Context.renderer.canvas.width=m.Context.renderer.canvas.offsetWidth*i,r=m.Context.renderer.canvas.height=m.Context.renderer.canvas.offsetHeight*i;if(0!==n&&0!==r){m.Context.renderer.canvas.style.display="inline-block";m.Context.renderer.canvas.offsetWidth;m.Context.renderer.canvas.style.display="",this._dtorCache.forEach(function(e){e.dtor()}),this._dtorCache.length=0,this._shadowPasses.length=0,this._shadowFramebuffer=null,this._apertureTextures.length=0,this._splatGeometries.uniform.length=0,this._brdfEffect=null,this._bloomPasses&&(this._bloomPasses.length=0),this._refractionBlurPasses.length=0,this._refractionBlurTextures.length=0,this._tiltShiftBlurPasses.length=0,this._tiltShiftBlurTextures.length=0,this._dofBlurPasses.length=0,this._dofBlurTextures.length=0,this._vrDistortionGeometry&&(this._vrDistortionGeometry.dtor(),this._vrDistortionGeometry=null),this._setupComplete=!1,this._initQuality(),this._setupPostProcessEffect(n,r)}}}},{key:"_setupFlaresIfNeeded",value:function(e){this._lensFlareDescs.length=0;for(var t in e){for(var n=e[t],r=n.castsShadow,i=0,a=r.length;i<a;++i)r[i].hasFlares&&this._lensFlareDescs.push(r[i].lensFlareDesc);r=n.castsNoShadow;for(var o=0,s=r.length;o<s;++o)r[o].hasFlares&&this._lensFlareDescs.push(r[o].lensFlareDesc)}return this._lensFlareDescs}},{key:"update",value:function(e){this._physicalCamera&&(this._grainEnabled&&(this._grainPanning+=2800*e,this._grainPanning>this._globalFramebufferHeight&&(this._grainPanning=0)),(this._dofEnabled||this._lowEndDofEnabled)&&this._physicalCamera.autoFocus&&this._adjustFocus(this._autoFocusArrayBuffer),this._physicalCamera.autoExposure&&this._adjustExposure(this._autoExposureArrayBuffer))}},{key:"_initQuality",value:function(){var e=m.Context.qualityManager.quality;this._hdrEnabled=e.hdrEnabled,this._ssrEnabled=e.ssrEnabled,this._ssaoEnabled=e.ssaoEnabled,this._dofEnabled=e.dofEnabled,this._halfresDof=e.halfresDof,this._bloomEnabled=e.bloomEnabled,this._ghostingEnabled=e.ghostingEnabled,this._iblEnabled=e.iblEnabled,this._envBrdfLut=e.envBrdfLut,this._txaaEnabled=e.txaaEnabled,this._fxaaEnabled=e.fxaaEnabled,this._fogEnabled=e.fogEnabled,this._motionBlurEnabled=e.motionBlurEnabled,this._blurredRefractionsEnabled=e.blurredRefractionsEnabled,this._lensFlaresEnabled=e.lensFlaresEnabled,this._forceUint8Textures=e.forceUint8Textures,this._vignettingEnabled=e.vignettingEnabled,this._grainEnabled=e.grainEnabled,this._dynamicColorGradingEnabled=e.dynamicColorGradingEnabled,this._debugMeasurementsEnabled=!1,this._debugOverdrawEnabled=!1,this._lowEndDofEnabled=e.lowEndDofEnabled&&!e.dofEnabled,this._tiltShiftBlurEnabled=e.tiltShiftBlurEnabled,this._supersampleScale=e.supersampleScale||1,this._lensDirtEnabled=e.lensDirtEnabled,this._chromaticAbberationEnabled=e.chromaticAbberationEnabled,this._sharpenImageEnabled=e.sharpenImageEnabled,this._globalFramebufferScaleRatio=e.globalFramebufferScaleRatio,this._refractionBlurPassCount=this._blurredRefractionsEnabled?this._defaultRefractionBlurPassCount:0,this._hdrEnabled||(this._dofEnabled&&(this._lowEndDofEnabled=!0,this._dofEnabled=!1),this._bloomEnabled=!1,this._ghostingEnabled=!1),this._halfresScale=this._halfresDof?.5:1,this._needsDepth=this._ssrEnabled||this._ssaoEnabled||this._fogEnabled||this._dofEnabled||this._txaaEnabled||this._lowEndDofEnabled}},{key:"_setDynamicGradingParameters",value:function(){this._dynamicGradingEffect.params.hue=this._physicalCamera.gradingHue,this._dynamicGradingEffect.params.saturation=this._physicalCamera.gradingSaturation,this._dynamicGradingEffect.params.value=this._physicalCamera.gradingValue}},{key:"_renderHBAOPass",value:function(){this._startMeasurePerformance("hbaoPass"),m.Context.renderer.clearColor=h.ColorRGBA.BLACK_TRANSPARENT,m.Context.renderer.camera.setViewport(0,.5,.5,0),this._hbaoFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._hbaoEffect,Ee),m.Context.renderer.endScene(),this._hbaoFramebuffer.disable(),this._hbaoBlurXFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._hbaoBlurXEffect,Ee),m.Context.renderer.endScene(),this._hbaoBlurXFramebuffer.disable(),this._hbaoBlurYFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._hbaoBlurYEffect,Ee),m.Context.renderer.endScene(),this._hbaoBlurYFramebuffer.disable(),m.Context.renderer.camera.setViewport(0,1,1,0),this._stopMeasurePerformance("hbaoPass")}},{key:"_renderDebugOverdrawPass",value:function(e){m.Context.renderer.width=m.Context.renderer.width/this._globalFramebufferScaleRatio,m.Context.renderer.height=m.Context.renderer.height/this._globalFramebufferScaleRatio,m.Context.renderer.beginScene(),e.render(m.Context.renderer,T.Scene.RENDERPASS_NOP),e.render(m.Context.renderer,T.Scene.RENDERPASS_DEBUG_OVERDRAW),m.Context.renderer.endScene(),m.Context.renderer.width=m.Context.renderer.width*this._globalFramebufferScaleRatio,m.Context.renderer.height=m.Context.renderer.height*this._globalFramebufferScaleRatio}},{key:"_renderSsrTracePass",value:function(){this._startMeasurePerformance("ssrTrace"),m.Context.renderer.camera.setViewport(0,1,1,0),this._ssrTracePassFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._ssrTraceEffect,Ee),m.Context.renderer.endScene(),this._ssrTracePassFramebuffer.disable(),this._stopMeasurePerformance("ssrTrace")}},{key:"_renderSsrPrePass",value:function(e){this._startMeasurePerformance("ssrPrePass"),this._forwardPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._ssrPreTexture,m.Context.gl.TEXTURE_2D,0),this._forwardPassFramebuffer.enable(),m.Context.renderer.beginScene(),e.render(m.Context.renderer,T.Scene.RENDERPASS_SSR_PRE),this._forwardPassFramebuffer.disable(),this._stopMeasurePerformance("ssrPrePass")}},{key:"_renderTiltShiftBlurPasses",value:function(){if(this._tiltShiftBlurEnabled){var e=m.Context.renderer.width,t=m.Context.renderer.height;m.Context.renderer.width=this._globalFramebufferWidth,m.Context.renderer.height=this._globalFramebufferHeight;for(var n=0;n<2*this._tiltShiftBlurPassCount;++n){var r=1/this._tiltShiftBlurPasses[n].scale;m.Context.renderer.camera.setViewport(0,r,r,0),this._tiltShiftBlurPasses[n].framebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._tiltShiftBlurPasses[n].effect,Ee),m.Context.renderer.endScene(),this._tiltShiftBlurPasses[n].framebuffer.disable()}m.Context.renderer.width=e,m.Context.renderer.height=t,m.Context.renderer.camera.setViewport(0,1,1,0)}}},{key:"_renderDofBlurPasses",value:function(){if(this._lowEndDofEnabled){var e=m.Context.renderer.width,t=m.Context.renderer.height;m.Context.renderer.width=this._dofBlurPasses[0].width,m.Context.renderer.height=this._dofBlurPasses[0].height;m.Context.renderer.camera.setViewport(0,1,1,0),this._dofBlurPasses[0].framebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._dofBlurPasses[0].effect,Ee),m.Context.renderer.endScene(),this._dofBlurPasses[0].framebuffer.disable(),m.Context.renderer.width=e,m.Context.renderer.height=t,m.Context.renderer.camera.setViewport(0,1,1,0)}}},{key:"_renderForwardPass",value:function(e,t){if(this._startMeasurePerformance("forwardPass"),m.Context.renderer.camera.setViewport(0,1,1,0),this._enableDepthTexturePass&&this._needsDepth){this._forwardPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._depthTexture,m.Context.gl.TEXTURE_2D,0),this._forwardPassFramebuffer.enable();var n=m.Context.renderer.clearColor;if(m.Context.glExtensionManager.has.textureFloat?m.Context.renderer.clearColor=h.ColorRGBA.WHITE:m.Context.renderer.clearColor=this._colorAlmostWhite,this._ssrEnabled||m.Context.renderer.beginScene(),this._ssrEnabled){var r=m.Context.renderer.clearMask;m.Context.renderer.clearMask=m.Context.gl.COLOR_BUFFER_BIT,m.Context.renderer.beginScene(),m.Context.renderer.clearMask=r}m.Context.renderer.clearColor=n,e.render(m.Context.renderer,T.Scene.RENDERPASS_FORWARD_DEPTH),this._forwardPassFramebuffer.disable()}if(this.noFinalPassNeeded&&!this._vrDistortion||(this._forwardPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,t,m.Context.gl.TEXTURE_2D,0),this._forwardPassFramebuffer.enable()),this._ssrEnabled&&this._enableDepthTexturePass&&this._needsDepth||m.Context.renderer.beginScene(),e.render(m.Context.renderer,T.Scene.RENDERPASS_FORWARD),e.render(m.Context.renderer,T.Scene.RENDERPASS_FORWARD_TRANSLUCENT),this._blurredRefractionsEnabled){this.noFinalPassNeeded&&!this._vrDistortion||this._forwardPassFramebuffer.disable();var i=m.Context.renderer.width,a=m.Context.renderer.height;m.Context.renderer.width=this._globalFramebufferWidth,m.Context.renderer.height=this._globalFramebufferHeight;for(var o=0;o<2*this._refractionBlurPassCount+1;++o){var s=1/this._refractionBlurPasses[o].scale;m.Context.renderer.camera.setViewport(0,s,s,0),this._refractionBlurPasses[o].framebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._refractionBlurPasses[o].effect,Ee),m.Context.renderer.endScene(), this._refractionBlurPasses[o].framebuffer.disable()}m.Context.renderer.width=i,m.Context.renderer.height=a,m.Context.renderer.camera.setViewport(0,1,1,0),this.noFinalPassNeeded&&!this._vrDistortion||this._forwardPassFramebuffer.enable(),e.render(m.Context.renderer,T.Scene.RENDERPASS_FORWARD_REFRACTIVE)}e.render(m.Context.renderer,T.Scene.RENDERPASS_UI_1),m.Context.renderer.endScene(),this.noFinalPassNeeded&&!this._vrDistortion||this._forwardPassFramebuffer.disable(),this._stopMeasurePerformance("forwardPass")}},{key:"_renderMotionBlur",value:function(e){this._motionBlurEnabled&&(this._motionBlurPassFramebuffer.enable(),m.Context.renderer.beginScene(),e.render(m.Context.renderer,T.Scene.RENDERPASS_MOTION_BLUR),m.Context.renderer.endScene(),this._motionBlurPassFramebuffer.disable(),m.Context.renderer.camera.setViewport(0,1,1,0),this._motionBlurMixEffect.textures.previousFrameTexture=this._motionBlurLastFrameTexture,this._motionBlurMixPassFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._motionBlurMixEffect,Ee),m.Context.renderer.endScene(),this._motionBlurMixPassFramebuffer.disable(),this._motionBlurLastFrameFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._motionBlurLastFrameEffect,Ee),m.Context.renderer.endScene(),this._motionBlurLastFrameFramebuffer.disable(),m.Context.renderer.camera.setViewport(0,1,1,0),this._forwardPassFramebuffer.enable(),m.Context.renderer.draw(this._motionBlurResolveQuad,this._motionBlurResolveEffect,Ee),m.Context.renderer.endScene(),this._forwardPassFramebuffer.disable())}},{key:"_renderLensFlares",value:function(e){e&&e.length>0&&(this._renderFlareOcclusions(e),this._renderFlares(e))}},{key:"_renderFlareOcclusions",value:function(e){for(var t=0,n=e.length;t<n;++t){var r=e[t];if(r.loaded){var i=r.getLightPositionNDC(m.Context.renderer.camera.viewProjectionMatrix);i.x+=1,i.y+=1,i.x*=.5*m.Context.renderer.width,i.y*=.5*m.Context.renderer.height;var a=i.x-.5*r.occlusionTextureSize;if(a+r.occlusionTextureSize<0||a>m.Context.renderer.width)r.occluded=!0;else{var o=i.y-.5*r.occlusionTextureSize;if(o+r.occlusionTextureSize<0||o>m.Context.renderer.height)r.occluded=!0;else if(a<0||o<0||a>m.Context.renderer.width-r.occlusionTextureSize||o>m.Context.renderer.height-r.occlusionTextureSize)r.occluded=!0;else{r.occluded=!1,this._forwardPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._flareOcclusionForwardTexture,m.Context.gl.TEXTURE_2D,0),this._forwardPassFramebuffer.enable();var s=r.flareDescs[0];this._flareOcclusionEffect.params.scale=r.occlusionTextureSize*r.occlusionTextureSize/m.Context.renderer.width,this._flareOcclusionEffect.params.aspect=this._physicalCamera.aspect,this._flareOcclusionEffect.states.zBufferState.enabled=!1,this._flareOcclusionEffect.states.alphaState.blendEnabled=!1,this._flareOcclusionEffect.textures.baseTexture=this._flareOcclusionBaseTextureBlack;var l=m.Context.renderer.draw(s.quad,this._flareOcclusionEffect,s.transform);this._flareOcclusionEffect.states.zBufferState.enabled=!0,this._flareOcclusionEffect.textures.baseTexture=this._flareOcclusionBaseTextureWhite,m.Context.renderer.draw(s.quad,this._flareOcclusionEffect,s.transform),l&&r.occlusionTexture.copyFromFramebuffer(0,0,0,a,o,r.occlusionTextureSize,r.occlusionTextureSize),m.Context.renderer.endScene(),this._forwardPassFramebuffer.disable()}}}else r.occluded=!0}this._forwardPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._forwardTexture,m.Context.gl.TEXTURE_2D,0)}},{key:"_renderFlares",value:function(e){this._forwardPassFramebuffer.enable();for(var t=0,n=e.length;t<n;++t)for(var r=e[t],i=r.flareDescs,a=0,o=i.length;a<o;++a){var s=i[a],l=s.quad;if(s.effect.isConfigurable){var u=s.effect;u.isHighPrecisionBufferEnabled()!==this._hdrEnabled&&u.setHighPrecisionBufferEnabled(this._hdrEnabled),u.isAutoRotateEnabled()!==s.autoRotate&&u.setAutoRotateEnabled(s.autoRotate),u.isTextureOccludeEnabled()!==s.textureOcclude&&u.setTextureOccludeEnabled(s.textureOcclude);var d=u.isCustomRotationEnabled();d?0===s.rotation?u.setCustomRotationEnabled(!1):u.params.rotation=s.rotation:d||0===s.rotation||u.setCustomRotationEnabled(!0),u.isOffsetScalingEnabled()!==s.offsetScaling&&u.setOffsetScalingEnabled(s.offsetScaling),void 0===u.params.offsetScaleAspect&&(u.params.offsetScaleAspect=[0,0,0,0]),void 0===u.params.intensity&&(u.params.intensity=new _.ColorRGB),u.params.offsetScaleAspect[0]=s.offset.x,u.params.offsetScaleAspect[1]=s.offset.y,u.params.offsetScaleAspect[2]=s.scale,u.params.offsetScaleAspect[3]=this._physicalCamera.aspect,u.params.intensity.r=s.intensity.r*r.trackedLight.intensity*r.trackedLight.color.r,u.params.intensity.g=s.intensity.g*r.trackedLight.intensity*r.trackedLight.color.g,u.params.intensity.b=s.intensity.b*r.trackedLight.intensity*r.trackedLight.color.b,u.textures.occlusionTexture=r.occlusionTexture,m.Context.renderer.draw(l,u,s.transform)}}m.Context.renderer.endScene(),this._forwardPassFramebuffer.disable()}},{key:"_renderAutoFocusPass",value:function(){this._startMeasurePerformance("autoFocus");var e=m.Context.renderer.width,t=m.Context.renderer.height;m.Context.renderer.width=this._autoFocusRegionSize,m.Context.renderer.height=this._autoFocusRegionSize,m.Context.renderer.camera.setViewport(0,1,1,0),this._autoFocusRegionFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._autoFocusRegionEffect,Ee),m.Context.renderer.endScene(),this._autoFocusRegionFramebuffer.disable(),m.Context.renderer.width=1,m.Context.renderer.height=1,m.Context.renderer.camera.setViewport(0,1,1,0),this._autoFocusFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._autoFocusEffect,Ee),m.Context.renderer.endScene(),m.Context.gl.readPixels(0,0,1,1,m.Context.gl.RGBA,m.Context.gl.UNSIGNED_BYTE,this._autoFocusArrayBuffer),this._autoFocusFramebuffer.disable(),m.Context.renderer.width=e,m.Context.renderer.height=t,this._stopMeasurePerformance("autoFocus")}},{key:"_renderAutoExposurePass",value:function(){this._physicalCamera.autoExposure&&(this._startMeasurePerformance("autoExposure"),m.Context.renderer.camera.setViewport(0,1,1,0),this._autoExposureRegionFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._autoExposureRegionEffect,Ee),m.Context.renderer.endScene(),this._autoExposureRegionFramebuffer.disable(),m.Context.renderer.width=1,m.Context.renderer.height=1,m.Context.renderer.camera.setViewport(0,1,1,0),this._autoExposureFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._autoExposureEffect,Ee),m.Context.renderer.endScene(),m.Context.gl.readPixels(0,0,1,1,m.Context.gl.RGBA,m.Context.gl.UNSIGNED_BYTE,this._autoExposureArrayBuffer),this._autoExposureFramebuffer.disable(),m.Context.renderer.width=this._globalFramebufferWidth,m.Context.renderer.height=this._globalFramebufferHeight,this._stopMeasurePerformance("autoExposure"))}},{key:"_adjustFocus",value:function(e){if(this._projection.length>0){var t=[1,1/255,1/65025,1/160581375],n=(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3])/255,r=2*n-1,i=this._projection[1]/(r-this._projection[0]);this._physicalCamera.adjustFocalDistance(i)}}},{key:"_adjustExposure",value:function(e){if(this._opticsEffect&&this._opticsEffect.isConfigurable&&this._projection.length>0){var t=new Float32Array(1);this._decodeFloatArray(e,t),this._physicalCamera.adjustExposure(t[0])}}},{key:"_decodeFloatArray",value:function(e,t){for(var n=void 0,r=void 0,i=void 0,a=0,o=t.length;a<o;a+=1){var s=4*a;n=.003921569*e[s+1]+153787e-10*e[s+2]+6.030863e-8*e[s+3],r=e[s+0],i=0,128&r&&(i=1,r&=-129),64&r&&(n=-n,r&=-65),i&&(r=-r),t[a]=n*this._exp2Table[r+62]}}},{key:"_renderSplatPass",value:function(){this._startMeasurePerformance("splatting"),m.Context.renderer.camera.setViewport(0,1,1,0);var e=m.Context.renderer.clearColor;m.Context.renderer.clearColor=h.ColorRGBA.BLACK_TRANSPARENT,this._splatFramebuffer.enable(),m.Context.renderer.beginScene();for(var t=this._splatGeometries[this._splatGridType],n=0;n<t.length;++n)for(var r=t[n],i=0;i<r.length;++i){var a=0===n?4:1===n?14:2===n?4:0,o=0===n?14:1===n?38:2===n?2e4:0;this._splatEffect.params.cocThreshold=a,this._splatEffect.params.upperCocThreshold=o,m.Context.renderer.draw(r[i],this._splatEffect,this._splatTransformation)}m.Context.renderer.endScene(),this._splatFramebuffer.disable(),m.Context.renderer.clearColor=e,this._stopMeasurePerformance("splatting")}},{key:"_renderBrdfPass",value:function(){this._startMeasurePerformance("brdf");var e=m.Context.renderer.width,t=m.Context.renderer.height;m.Context.renderer.width=Te,m.Context.renderer.height=Te,this._brdfEffect.loaded&&this._brdfQuad.loaded&&(this._brdfRendered=!0),m.Context.renderer.camera.setViewport(0,1,1,0),this._brdfFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._brdfQuad,this._brdfEffect,Ee),m.Context.renderer.endScene(),this._brdfFramebuffer.disable(),m.Context.renderer.width=e,m.Context.renderer.height=t,this._stopMeasurePerformance("brdf")}},{key:"_renderDynamicGradingPass",value:function(){if(this._dynamicColorGradingEnabled){this._startMeasurePerformance("grading");var e=m.Context.renderer.width,t=m.Context.renderer.height;m.Context.renderer.width=this._gradingLutWidth,m.Context.renderer.height=this._gradingLutHeight,m.Context.renderer.camera.setViewport(0,1,1,0),this._dynamicGradingFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._dynamicGradingEffect,Ee),m.Context.renderer.endScene(),this._dynamicGradingFramebuffer.disable(),m.Context.renderer.width=e,m.Context.renderer.height=t,this._stopMeasurePerformance("grading")}}},{key:"_renderCocPass",value:function(){this._startMeasurePerformance("coc"),m.Context.renderer.camera.setViewport(0,1,1,0),this._cocPassFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._cocEffect,Ee),m.Context.renderer.endScene(),this._cocPassFramebuffer.disable(),this._stopMeasurePerformance("coc")}},{key:"_renderOpticsPass",value:function(){this._hdrEnabled&&(this._startMeasurePerformance("optics"),m.Context.renderer.camera.setViewport(0,1,1,0),this._opticsFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._opticsEffect,Ee),m.Context.renderer.endScene(),this._opticsFramebuffer.disable(),this._stopMeasurePerformance("optics"))}},{key:"_renderBloomPasses",value:function(){if(this._hdrEnabled&&this._bloomEnabled){this._startMeasurePerformance("bloom"),m.Context.renderer.camera.setViewport(0,1,1,0),this._brightnessExtractionFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._brightnessExtractionEffect,Ee),m.Context.renderer.endScene(),this._brightnessExtractionFramebuffer.disable();for(var e=0;e<2*this._bloomPassCount;++e){var t=1/this._bloomPasses[e].scale;m.Context.renderer.camera.setViewport(0,t,t,0),this._bloomPasses[e].framebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._bloomPasses[e].effect,Ee),m.Context.renderer.endScene(),this._bloomPasses[e].framebuffer.disable()}this._stopMeasurePerformance("bloom")}}},{key:"_renderGhostingPasses",value:function(){if(this._ghostingEnabled&&this._bloomEnabled&&this._hdrEnabled){this._startMeasurePerformance("ghosting");var e=1/this._bloomPasses[1].scale;m.Context.renderer.camera.setViewport(0,e,e,0),this._ghosting1Framebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._ghosting1Effect,Ee),m.Context.renderer.endScene(),this._ghosting1Framebuffer.disable(),m.Context.renderer.camera.setViewport(0,e,e,0),this._ghosting2Framebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._ghosting2Effect,Ee),m.Context.renderer.endScene(),this._ghosting2Framebuffer.disable(),this._stopMeasurePerformance("ghosting")}}},{key:"_renderShadowPasses",value:function(e){this._startMeasurePerformance("shadowPass");var t=this._shadowPasses.length,n=m.Context.renderer.camera,r=m.Context.renderer.clearColor,i=m.Context.renderer.width,a=m.Context.renderer.height;m.Context.renderer.width=this._shadowMapSize,m.Context.renderer.height=this._shadowMapSize;for(var o=0;o<t;++o)this._shadowPasses[o].shadowItemsRendered&&!this._shadowPasses[o].cameraUpdated||(m.Context.renderer.clearColor=h.ColorRGBA.WHITE,m.Context.renderer.camera=this._shadowPasses[o].camera,m.Context.renderer.camera.setViewport(0,1,1,0),this._shadowFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._shadowPasses[o].shadowTexture,m.Context.gl.TEXTURE_2D,0),this._shadowFramebuffer.enable(),m.Context.renderer.beginScene(),e.render(m.Context.renderer,T.Scene.RENDERPASS_SHADOW_MAP),m.Context.renderer.endScene(),this._shadowFramebuffer.disable(),m.Context.renderer.camera=n,m.Context.renderer.clearColor=h.ColorRGBA.BLACK_TRANSPARENT,this._shadowPasses[o].blurTextureXFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._shadowPasses[o].blurTextureXEffect,Ee),m.Context.renderer.endScene(),this._shadowPasses[o].blurTextureXFramebuffer.disable(),this._shadowPasses[o].blurTextureYFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._shadowPasses[o].blurTextureYEffect,Ee),m.Context.renderer.endScene(),this._shadowPasses[o].blurTextureYFramebuffer.disable());m.Context.renderer.camera.setViewport(0,1,1,0),m.Context.renderer.width=i,m.Context.renderer.height=a,m.Context.renderer.camera=n,m.Context.renderer.clearColor=r,this._stopMeasurePerformance("shadowPass")}},{key:"_renderFinalTxaaPass",value:function(){this._startMeasurePerformance("finalPassthis._txaa"),m.Context.renderer.camera.setViewport(0,1,1,0),m.Context.renderer.width=m.Context.renderer.width/this._globalFramebufferScaleRatio,m.Context.renderer.height=m.Context.renderer.height/this._globalFramebufferScaleRatio,this._txaaCurrentFrameFramebuffer.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._finalPassEffect,Ee),m.Context.renderer.endScene(),this._txaaCurrentFrameFramebuffer.disable(),this._txaaPassEffect.textures.currentFrameTexture=this._txaaCurrentFrameTex,this._txaaPassEffect.textures.previousFrameTexture=this._txaaTextureA,this._txaaPassEffect.params.previousViewProjectionMatrix=this._previousViewProjectionMatrixCache,this._txaaPassEffect.params.currentInverseViewProjectionMatrix=this._currentInverseViewProjectionMatrixCache,this._txaaFramebufferB.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._txaaPassEffect,Ee),m.Context.renderer.endScene(),this._txaaTextureA.copyFromFramebuffer(0,0,0,0,0,this._globalFramebufferWidth,this._globalFramebufferHeight),this._txaaFramebufferB.disable(),this._txaaJitter[0]=2*this._jitterScale*(this._activeJitterPattern[this._txaaJitterIteration][0]/this._globalFramebufferWidth),this._txaaJitter[1]=2*this._jitterScale*(this._activeJitterPattern[this._txaaJitterIteration][1]/this._globalFramebufferHeight),this._txaaDejitterEffect.params.texCoordOffset=this._txaaJitter,m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._txaaDejitterEffect,Ee),m.Context.renderer.endScene(),m.Context.renderer.width=m.Context.renderer.width*this._globalFramebufferScaleRatio,m.Context.renderer.height=m.Context.renderer.height*this._globalFramebufferScaleRatio,this._stopMeasurePerformance("finalPassthis._txaa")}},{key:"_renderFinalPass",value:function(e){this._startMeasurePerformance("finalPass"),m.Context.renderer.camera.setViewport(0,1,1,0),this.noFinalPassNeeded||(this._fxaaEnabled||this._vrDistortion?this._finalPassFramebuffer.enable():(m.Context.renderer.width=m.Context.renderer.width/this._globalFramebufferScaleRatio,m.Context.renderer.height=m.Context.renderer.height/this._globalFramebufferScaleRatio),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._finalPassEffect,Ee),!this._fxaaEnabled,m.Context.renderer.endScene(),(this._fxaaEnabled||this._vrDistortion)&&this._finalPassFramebuffer.disable(),this._fxaaEnabled&&(this._vrDistortion?this._fxaaPassFramebuffer.enable():(m.Context.renderer.width=m.Context.renderer.width/this._globalFramebufferScaleRatio,m.Context.renderer.height=m.Context.renderer.height/this._globalFramebufferScaleRatio),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._fxaaEffect,Ee),m.Context.renderer.endScene(),this._vrDistortion&&this._fxaaPassFramebuffer.disable())),this._vrDistortion&&(m.Context.renderer.width=m.Context.renderer.width/this._globalFramebufferScaleRatio,m.Context.renderer.height=m.Context.renderer.height/this._globalFramebufferScaleRatio,m.Context.renderer.beginScene(),this._vrDistortionGeometry&&m.Context.renderer.draw(this._vrDistortionGeometry,this._stereoLensDistortEffect,Ee),m.Context.renderer.endScene()),this._frameGrabber&&this._frameGrabber.grab(m.Context.renderer),m.Context.renderer.width=m.Context.renderer.width*this._globalFramebufferScaleRatio,m.Context.renderer.height=m.Context.renderer.height*this._globalFramebufferScaleRatio,this._stopMeasurePerformance("finalPass")}},{key:"_startMeasurePerformance",value:function(e){this._debugMeasurementsEnabled&&(this._measureMap[e]=performance.now())}},{key:"_stopMeasurePerformance",value:function(e){this._debugMeasurementsEnabled&&(this._measureMap[e]=performance.now(),this._measureMap[e]=performance.now()-this._measureMap[e])}},{key:"_applyCameraSubPixelJitter",value:function(e){var t=e.frustum,n=(t[w.Camera.RMAX]-t[w.Camera.RMIN])/this._globalFramebufferWidth,r=(t[w.Camera.UMAX]-t[w.Camera.UMIN])/this._globalOriginalRenderHeight,i=this._jitterScale*n*this._activeJitterPattern[this._txaaJitterIteration][0],a=this._jitterScale*r*this._activeJitterPattern[this._txaaJitterIteration][1];t[w.Camera.RMIN]-=i,t[w.Camera.RMAX]-=i,t[w.Camera.UMAX]-=a,t[w.Camera.UMIN]-=a,e.setFrustumRaw(t)}},{key:"render",value:function(t){if(this._physicalCamera){if(this._startMeasurePerformance("render"),this._debugOverdrawEnabled)return this._renderDebugOverdrawPass(t),void this._stopMeasurePerformance("render");var n=void 0;if(this._txaaEnabled&&(this._txaaJitterIteration=++this._txaaJitterIteration%this._activeJitterPattern.length,n=m.Context.renderer.camera.saveState(),this._applyCameraSubPixelJitter(m.Context.renderer.camera)),this._grainEnabled&&(this._finalPassEffect.params.grainPanning=this._grainPanning),this._iblEnabled&&this._envBrdfLut&&!this._brdfRendered){var r=m.Context.renderer.camera.saveState();m.Context.renderer.camera.perspective=!1,m.Context.renderer.camera.setFrustumOrtho(-Te/2,Te/2,-Te/2,Te/2,1,30),m.Context.renderer.camera.setFrame(this._fbCameraLocation,this._fbCameraDVector,this._fbCameraUVector,this._fbCameraRVector),this._renderBrdfPass(),this._brdfRendered&&m.Context.eventEmitter.emit(this,e.EVENT_BRDF_TEXTURE_RENDERED),m.Context.renderer.camera.restoreState(r)}this._ssaoEnabled&&this._setHBAOShaderParams(),this._dynamicColorGradingEnabled&&this._setDynamicGradingParameters();var i=t.collectLight(),a=void 0;if(void 0!==i&&(a=i.DirectionalLight),a){var o=a.castsShadow;o.length>0?(this._hasShadowCasters=!0,this._setupShadowPasses(o),this._renderShadowPasses(t)):(this._hasShadowCasters=!1,this._setupShadowPasses(o))}else this._hasShadowCasters=!1;this._ssaoEnabled&&this._renderHBAOPass();var s=m.Context.renderer.width,l=m.Context.renderer.height;if(m.Context.renderer.width=s*this._supersampleScale,m.Context.renderer.height=l*this._supersampleScale,this._ssrEnabled&&(this._renderSsrPrePass(t),this._renderSsrTracePass()),this._renderForwardPass(t,this._forwardTexture),this._renderMotionBlur(t),this._lensFlaresEnabled&&this._renderLensFlares(this._setupFlaresIfNeeded(i)),m.Context.renderer.width=this._globalFramebufferWidth*this._halfresScale,m.Context.renderer.height=this._globalFramebufferHeight*this._halfresScale,(this._dofEnabled||this._lowEndDofEnabled)&&this._physicalCamera.autoFocus&&this._renderAutoFocusPass(),this._dofEnabled){this._renderCocPass();var u=m.Context.renderer.camera.saveState();m.Context.renderer.camera.perspective=!1,m.Context.renderer.camera.setFrustumOrtho(-this._splatTextureWidth/2,this._splatTextureWidth/2,-this._splatTextureHeight/2,this._splatTextureHeight/2,1,30),m.Context.renderer.camera.setFrame(this._fbCameraLocation,this._fbCameraDVector,this._fbCameraUVector,this._fbCameraRVector),this._renderSplatPass(),m.Context.renderer.camera.restoreState(u)}m.Context.renderer.width=this._globalFramebufferWidth,m.Context.renderer.height=this._globalFramebufferHeight,this._renderOpticsPass(),this._renderTiltShiftBlurPasses(),this._renderDofBlurPasses(),this._renderAutoExposurePass(),this._renderBloomPasses(),this._renderGhostingPasses(),this._renderDynamicGradingPass(),this._txaaEnabled?(this._currentInverseViewProjectionMatrix.copyFrom(m.Context.renderer.camera.viewMatrix),this._currentInverseViewProjectionMatrix.multRight(m.Context.renderer.camera.projectionMatrix),this._currentInverseViewProjectionMatrix.invert(),this._currentInverseViewProjectionMatrix.copyToArray(this._currentInverseViewProjectionMatrixCache),this._txaaInit&&this._renderFinalTxaaPass(),this._previousViewProjectionMatrix.copyFrom(m.Context.renderer.camera.viewMatrix),this._previousViewProjectionMatrix.multRight(m.Context.renderer.camera.projectionMatrix),this._previousViewProjectionMatrix.copyToArray(this._previousViewProjectionMatrixCache),this._txaaInit=!0,m.Context.renderer.camera.restoreState(n)):this._renderFinalPass(t),this._vrEnabled&&m.Context.deviceManager.hmd&&m.Context.deviceManager.hmd.isPresenting&&m.Context.deviceManager.hmd.submitFrame(m.Context.deviceManager.pose),this._stopMeasurePerformance("render"),this._pendingEnvMapRenderRequests&&this._pendingEnvMapRenderRequests.length>0&&this._renderEnvMaps(t)}}},{key:"addEnvMapRenderRequest",value:function(e,t,n){this._pendingEnvMapRenderRequests||(this._pendingEnvMapRenderRequests=[]),this._pendingEnvMapRenderRequests.push({size:e,position:t,identityFrame:n})}},{key:"_renderEnvMaps",value:function(e){if(this._floatChannelSpreadEffect||this._precomputeCubeIBLSpecularEffect||this._precomputeCubeIBLDiffuseEffect?(this._floatChannelSpreadEffect.enable(),this._precomputeCubeIBLSpecularEffect.enable(),this._precomputeCubeIBLDiffuseEffect.enable()):(this._floatChannelSpreadEffect=new p.Effect({shader:R.FloatChannelSpreadShader}),this._cubeMapScreenFillingQuad=g.GeometryUtil.makeScaledFullscreenQuadSeperate(1,-1),this._floatChannelSpreadEffect.states.alphaState.blendEnabled=!1,this._floatChannelSpreadEffect.states.cullState.frontFace=m.Context.gl.CW,this._floatChannelSpreadEffect.paramAttributes=this._cubeMapScreenFillingQuad.vertexBuffer.attributes,this._floatChannelSpreadEffect.enable(),this._precomputeCubeIBLSpecularEffect=new p.Effect({shader:I.PrecomputeIBLFullscreenShader,onConfigure:function(e){e.setIntegrateEnvMapEnabled(!0),e.setCubeMapEnabled(!0),e.setDiffuseEnabled(!1),e.setPassthroughEnabled(!1),e.setTexCoordScaleEnabled(!1),e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}}),this._precomputeCubeIBLSpecularEffect.states.alphaState.blendEnabled=!1,this._precomputeCubeIBLSpecularEffect.paramAttributes=this._cubeMapScreenFillingQuad.vertexBuffer.attributes,this._precomputeCubeIBLDiffuseEffect=new p.Effect({shader:I.PrecomputeIBLFullscreenShader,onConfigure:function(e){e.setIntegrateEnvMapEnabled(!0),e.setCubeMapEnabled(!0),e.setDiffuseEnabled(!0),e.setPassthroughEnabled(!1),e.setTexCoordScaleEnabled(!1),e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}}),this._precomputeCubeIBLDiffuseEffect.states.alphaState.blendEnabled=!1,this._precomputeCubeIBLDiffuseEffect.paramAttributes=this._cubeMapScreenFillingQuad.vertexBuffer.attributes,this._precomputeCubeIBLSpecularEffect.enable(),this._precomputeCubeIBLDiffuseEffect.enable()),this._floatChannelSpreadEffect.isConfigurable&&this._floatChannelSpreadEffect.loaded&&this._precomputeCubeIBLSpecularEffect.isConfigurable&&this._precomputeCubeIBLSpecularEffect.loaded&&this._precomputeCubeIBLDiffuseEffect.isConfigurable&&this._precomputeCubeIBLDiffuseEffect.loaded)for(var t=0;t<this._pendingEnvMapRenderRequests.length;++t){var n=this._pendingEnvMapRenderRequests[t];this._renderEnvMapRequest(e,n,t),this._pendingEnvMapRenderRequests.splice(t,1)}}},{key:"_renderEnvMapRequest",value:function(t,n){var r=m.Context.renderer.camera,i=new w.Camera;m.Context.renderer.camera=i,i.location=n.position;var a=n.size,o=m.Context.renderer.width,s=m.Context.renderer.height;m.Context.renderer.width=2*a,m.Context.renderer.height=2*a;var u=new C.Texture({type:C.Texture.EMPTY,data:{width:2*a,height:2*a},format:C.Texture.FLOATING_POINT,generateMipmaps:!1});u.allocate();var d=new y.Renderbuffer(m.Context.gl.DEPTH_COMPONENT16,2*a,2*a);d.allocate();var f=this._forwardPassFramebuffer.getAttachment(m.Context.gl.DEPTH_ATTACHMENT).renderbuffer;this._forwardPassFramebuffer.attachRenderbuffer(m.Context.gl.DEPTH_ATTACHMENT,d);var h=void 0;h=n.identityFrame?[[new c.Vector3(0,0,1),c.Vector3.Y_AXIS],[new c.Vector3(0,0,-1),c.Vector3.Y_AXIS],[new c.Vector3(0,1,0),c.Vector3.NEG_X_AXIS],[new c.Vector3(0,-1,0),c.Vector3.X_AXIS],[new c.Vector3(1,0,0),c.Vector3.Y_AXIS],[new c.Vector3(-1,0,0),c.Vector3.Y_AXIS]]:[[this._tmpVec.copyFrom(r.dVector).neg(),r.uVector],[r.dVector,r.uVector],[r.uVector,this._tmpVec2.copyFrom(r.rVector).neg()],[this._tmpVec3.copyFrom(r.uVector).neg(),r.rVector],[r.rVector,r.uVector],[this._tmpVec4.copyFrom(r.rVector).neg(),r.uVector]],m.Context.eventEmitter.emit(this,e.EVENT_ENV_MAP_RENDER_ENABLE),this._floatChannelSpreadEffect.states.cullState.frontFace=m.Context.gl.CW;for(var _=l.Util.mipOffsetPerFace(a,4,4),A=new Float32Array(_/4*6),p=0;p<6;++p){i.lookDirection(h[p][0],h[p][1]),i.setFrustum(90,1,r.near,r.far),m.Context.renderer.camera.setViewport(0,1,1,0),m.Context.renderer.camera=i,this._renderForwardPass(t,u);var g=this._readbackFloatTexture(this._floatChannelSpreadEffect,this._cubeMapScreenFillingQuad,u,a,a);A.set(g,p*_/4)}var E=new C.Texture({type:C.Texture.DATA,target:C.Texture.CUBE_MAP,data:{arrayBuffer:A,cubeMapInfo:{size:a}},format:C.Texture.FLOATING_POINT,generateMipmaps:!0});E.preload();var v=[new c.Vector3(1,0,0),new c.Vector3(-1,0,0),new c.Vector3(0,1,0),new c.Vector3(0,-1,0),new c.Vector3(0,0,1),new c.Vector3(0,0,-1)],b=[new c.Vector3(0,0,-1),new c.Vector3(0,0,1),new c.Vector3(1,0,0),new c.Vector3(1,0,0),new c.Vector3(1,0,0),new c.Vector3(-1,0,0)],S=[new c.Vector3(0,-1,0),new c.Vector3(0,-1,0),new c.Vector3(0,0,1),new c.Vector3(0,0,-1),new c.Vector3(0,-1,0),new c.Vector3(0,-1,0)];this._floatChannelSpreadEffect.states.cullState.frontFace=m.Context.gl.CCW,this._precomputeCubeIBLSpecularEffect.textures.envProbe=E;var T=new x.Framebuffer,M=[];l.Util.mipOffsetPerFace(a,4,4,M);for(var D=1;D<M.length;++D){var P=M[D].size,R=new C.Texture({type:C.Texture.EMPTY,data:{width:P,height:P},filterType:{min:C.Texture.NEAREST,mag:C.Texture.NEAREST},format:C.Texture.FLOATING_POINT,generateMipmaps:!1});R.allocate(),m.Context.renderer.width=P,m.Context.renderer.height=P,T.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,R,m.Context.gl.TEXTURE_2D,0);for(var I=0;I<6;++I){this._precomputeCubeIBLSpecularEffect.params.mipCount=M.length-3,this._precomputeCubeIBLSpecularEffect.params.roughness=Math.pow(D/(M.length-3),2),this._precomputeCubeIBLSpecularEffect.params.faceVector=v[I],this._precomputeCubeIBLSpecularEffect.params.faceU=b[I],this._precomputeCubeIBLSpecularEffect.params.faceV=S[I],this._precomputeCubeIBLSpecularEffect.params.faceSize=P,this._precomputeCubeIBLSpecularEffect.params.readFaceSize=a,T.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._precomputeCubeIBLSpecularEffect,Ee),m.Context.renderer.endScene(),T.disable();var L=this._readbackFloatTexture(this._floatChannelSpreadEffect,this._screenFillingQuad,R,P,P);A.set(L,I*(_/4)+M[D].offset/4)}}var O=.25*a;m.Context.renderer.width=O,m.Context.renderer.height=O;var N=l.Util.mipOffsetPerFace(O,4,4),B=new Float32Array(N/4*6);this._precomputeCubeIBLDiffuseEffect.textures.envProbe=E;for(var F=0;F<6;++F){var k=new C.Texture({type:C.Texture.EMPTY,data:{width:O,height:O},filterType:{min:C.Texture.NEAREST,mag:C.Texture.NEAREST},format:C.Texture.FLOATING_POINT,generateMipmaps:!1});k.allocate(),T.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,k,m.Context.gl.TEXTURE_2D,0),this._precomputeCubeIBLDiffuseEffect.params.mipCount=M.length-3,this._precomputeCubeIBLDiffuseEffect.params.faceVector=v[F],this._precomputeCubeIBLDiffuseEffect.params.faceU=b[F],this._precomputeCubeIBLDiffuseEffect.params.faceV=S[F],this._precomputeCubeIBLDiffuseEffect.params.faceSize=O,this._precomputeCubeIBLDiffuseEffect.params.readFaceSize=a,T.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(this._screenFillingQuad,this._precomputeCubeIBLDiffuseEffect,Ee),m.Context.renderer.endScene(),T.disable();var U=this._readbackFloatTexture(this._floatChannelSpreadEffect,this._screenFillingQuad,k,O,O);B.set(U,F*(N/4))}this._writeDDSCube(A,a,4,4,"cubeSpecular"),this._writeDDSCube(B,O,4,4,"cubeDiffuse"),m.Context.renderer.camera=r,m.Context.renderer.camera=r,m.Context.renderer.width=o,m.Context.renderer.height=s,this._forwardPassFramebuffer.attachRenderbuffer(m.Context.gl.DEPTH_ATTACHMENT,f),m.Context.eventEmitter.emit(this,e.EVENT_ENV_MAP_RENDER_DISABLE)}},{key:"_writeDDSCube",value:function(e,t,n,r,i){var a={DDPF_ALPHAPIXELS:1,DDPF_ALPHA:2,DDPF_FOURCC:4,DDPF_RGB:64,DDPF_YUV:512,DDPF_LUMINANCE:131072},o=new Uint32Array([542327876,124,135183,t,t,t*n*r,1,l.Util.getMipCount(t),0,0,0,0,0,0,0,0,0,0,0,32,a.DDPF_RGB|a.DDPF_ALPHAPIXELS|a.DDPF_FOURCC,116,n*r*8,16711680,65280,255,0,4198408,65024,0,0,0]),s=new Uint8Array(e.buffer.byteLength+o.length*n);s.set(new Uint8Array(o.buffer)),s.set(new Uint8Array(e.buffer),o.length*n),ae.default.saveAs(new Blob([s],{type:"application/octet-binary"}),i+".dds")}},{key:"_readbackFloatTexture",value:function(e,t,n,r,i){e.textures.baseTexture=n;var a=new x.Framebuffer,o=new C.Texture({type:C.Texture.EMPTY,data:{width:r,height:i},filterType:{min:C.Texture.NEAREST,mag:C.Texture.NEAREST},format:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1});o.allocate(),a.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,o,m.Context.gl.TEXTURE_2D,0);var s=[new Uint8Array(r*i*4),new Uint8Array(r*i*4),new Uint8Array(r*i*4)],l=m.Context.renderer.width,u=m.Context.renderer.height;m.Context.renderer.width=r,m.Context.renderer.height=i;for(var d=0;d<3;++d)e.params.channel=d,a.enable(),m.Context.renderer.beginScene(),m.Context.renderer.draw(t,e,Ee),m.Context.renderer.endScene(),m.Context.gl.readPixels(0,0,r,i,m.Context.gl.RGBA,m.Context.gl.UNSIGNED_BYTE,s[d]),a.disable();for(var c=[1,1/255,1/65025,1/160581375],f=new Float32Array(r*i*4),h=0,_=0;h<r*i*4;h+=4,_+=4)f[_]=c[0]*s[0][h]+c[1]*s[0][h+1]+c[2]*s[0][h+2]+c[3]*s[0][h+3],f[_+1]=c[0]*s[1][h]+c[1]*s[1][h+1]+c[2]*s[1][h+2]+c[3]*s[1][h+3],f[_+2]=c[0]*s[2][h]+c[1]*s[2][h+1]+c[2]*s[2][h+2]+c[3]*s[2][h+3];return m.Context.renderer.width=l,m.Context.renderer.height=u,f}},{key:"_sumOneOverTwoToThePowerOfI",value:function(e){return 1/Math.pow(2,e-1)*(Math.pow(2,e)-1)-1}},{key:"_mergePassInOut",value:function(e,t){return l.Util.merge(e,t)}},{key:"_setupBrdfPass",value:function(e){return this._iblEnabled&&this._envBrdfLut?(this._brdfRendered||(this._brdfFramebuffer=new x.Framebuffer,this._brdfTexture=new C.Texture({type:C.Texture.EMPTY,data:{width:Te,height:Te},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}),this._brdfTexture.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),this._brdfTexture.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE), this._brdfTexture.allocate(),this._brdfFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._brdfTexture,m.Context.gl.TEXTURE_2D,0),this._brdfEffect=new p.Effect({shader:L.PrecomputeIBLShader,onConfigure:function(e){e.setIntegrateBRDFEnabled(!0),e.setSampleCount(ye),e.setSampleCountLog2(Math.log(ye)/Math.log(2)),e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}}),this._brdfQuad=g.GeometryUtil.makeCenteredSizedQuad(Te,Te)),this._mergePassInOut(e,{brdfTexture:this._brdfTexture})):this._mergePassInOut(e,{})}},{key:"_setupAutoFocusPass",value:function(e){var t=this;if(!this._dofEnabled&&!this._lowEndDofEnabled)return this._mergePassInOut(e,{});this._autoFocusRegionSize=u.MathUtil.getPreviousPowerOfTwo(this._physicalCamera.autoFocusRegionSize*Math.min(this._globalFramebufferWidth,this._globalFramebufferHeight)),this._autoFocusRegionFramebuffer=this._cache(new x.Framebuffer);var n=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._autoFocusRegionSize,height:this._autoFocusRegionSize},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!0}));n.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),n.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),n.allocate(),this._autoFocusRegionFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,n,m.Context.gl.TEXTURE_2D,0),this._autoFocusRegionEffect=this._cache(new p.Effect({shader:O.AutoFocusRegionShader,onConfigure:function(e){e.setHighPrecisionBufferEnabled(t._hdrEnabled),e.textures.depthTexture=t._depthTexture,e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!1}})),this._autoFocusFramebuffer=this._cache(new x.Framebuffer);var r=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:1,height:1},format:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));return r.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),r.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),r.filterType={min:C.Texture.NEAREST,mag:C.Texture.NEAREST},r.allocate(),this._autoFocusFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,r,m.Context.gl.TEXTURE_2D,0),this._autoFocusEffect=this._cache(new p.Effect({shader:N.AutoFocusShader,onConfigure:function(e){e.textures.depthTexture=n,e.setHighPrecisionBufferEnabled(t._hdrEnabled),m.Context.glExtensionManager.has.shaderTextureLod&&e.setTex2DLodEnabled(!0),e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!1}})),this._mergePassInOut(e,{autoFocusRegionTexture:n,autoFocusTexture:r})}},{key:"_setupDebugOverdrawPass",value:function(e){return this._debugOverdrawEffect=this._cache(new p.Effect({shader:B.DebugOverdrawShader,onConfigure:function(){}})),e}},{key:"_setupSsrPass",value:function(e){var t=this;if(!this._ssrEnabled)return this._mergePassInOut(e,{});this._ssrPreTexture=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth*this._supersampleScale,height:this._globalFramebufferHeight*this._supersampleScale},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),this._ssrTraceTexture=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth*this._supersampleScale,height:this._globalFramebufferHeight*this._supersampleScale},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),this._ssrTraceTexture.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),this._ssrTraceTexture.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),this._ssrTraceTexture.allocate();var n=this._cache(new y.Renderbuffer(m.Context.gl.DEPTH_COMPONENT16,this._globalFramebufferWidth*this._supersampleScale,this._globalFramebufferHeight*this._supersampleScale));return n.allocate(),this._ssrTracePassFramebuffer=this._cache(new x.Framebuffer),this._ssrTracePassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._ssrTraceTexture,m.Context.gl.TEXTURE_2D,0),this._ssrTracePassFramebuffer.attachRenderbuffer(m.Context.gl.DEPTH_ATTACHMENT,n),this._ssrTraceEffect=this._cache(new p.Effect({shader:F.SsrTraceShader,onConfigure:function(e){e.textures.ssrPreTexture=t._ssrPreTexture,e.textures.colorTexture=t._forwardTexture,e.params.projection=t._projection,e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!1}})),this._mergePassInOut(e,{ssrPreTexture:this._ssrPreTexture,ssrTraceTexture:this._ssrTraceTexture})}},{key:"_setupForwardPass",value:function(t){var n=this,r=this._cache(new y.Renderbuffer(m.Context.gl.DEPTH_COMPONENT16,this._globalFramebufferWidth*this._supersampleScale,this._globalFramebufferHeight*this._supersampleScale));if(r.allocate(),this._forwardPassFramebuffer=this._cache(new x.Framebuffer),this._forwardPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._forwardTexture,m.Context.gl.TEXTURE_2D,0),this._forwardPassFramebuffer.attachRenderbuffer(m.Context.gl.DEPTH_ATTACHMENT,r),this._blurredRefractionsEnabled){this._refractionBlurPasses=[];var i=this._cache(new x.Framebuffer),a=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth*this._supersampleScale,height:this._globalFramebufferHeight*this._supersampleScale},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));a.allocate(),i.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,a,m.Context.gl.TEXTURE_2D,0);var o=this._cache(new p.Effect({shader:k.PassThroughShader,onConfigure:function(e){e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!1,e.textures.baseTexture=n._forwardTexture}}));this._refractionBlurPasses.push({framebuffer:i,texture:a,effect:o,scale:1/this._supersampleScale});for(var s=0,l=2;s<2*this._refractionBlurPassCount;++s){var u=s%2===0,d=this._cache(new x.Framebuffer),c=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth/l,height:this._globalFramebufferHeight/l},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));c.allocate(),d.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,c,m.Context.gl.TEXTURE_2D,0);var f=void 0;u?(f=this._cache(new p.Effect({shader:U.GaussianBlurShader,onConfigure:function(e){e.setHorizontalEnabled(!0),e.setHighPrecisionBufferEnabled(n._hdrEnabled),e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!1}})),f.params.pixelSize=l/this._globalFramebufferWidth,f.params.pixelSize2=1):(f=this._cache(new p.Effect({shader:U.GaussianBlurShader,onConfigure:function(e){e.setHorizontalEnabled(!1),e.setHighPrecisionBufferEnabled(n._hdrEnabled),e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!1}})),f.params.pixelSize=l/this._globalFramebufferHeight,f.params.pixelSize2=1),0===s?f.textures.baseTexture=this._forwardTexture:f.textures.baseTexture=this._refractionBlurPasses[s].texture,this._refractionBlurPasses.push({framebuffer:d,texture:c,effect:f,scale:l}),u||(l*=2)}this._refractionBlurTextures=[],this._refractionBlurTextures.push(this._refractionBlurPasses[0].texture);for(var h=2;h<this._refractionBlurPasses.length;h+=2)this._refractionBlurTextures.push(this._refractionBlurPasses[h].texture);m.Context.eventEmitter.emit(this,e.EVENT_REFRACTIVE_PARAMS_CHANGED)}var _=null,A=null;return this._motionBlurEnabled&&(_=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth*this._supersampleScale,height:this._globalFramebufferHeight*this._supersampleScale},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),this._motionBlurPassFramebuffer=this._cache(new x.Framebuffer),this._motionBlurPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,_,m.Context.gl.TEXTURE_2D,0),this._motionBlurPassFramebuffer.attachRenderbuffer(m.Context.gl.DEPTH_ATTACHMENT,r),A=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth*this._supersampleScale,height:this._globalFramebufferHeight*this._supersampleScale},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),this._motionBlurMixPassFramebuffer=this._cache(new x.Framebuffer),this._motionBlurMixPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,A,m.Context.gl.TEXTURE_2D,0),this._motionBlurMixEffect=this._cache(new p.Effect({shader:V.MotionBlurMixShader,onConfigure:function(e){e.textures.previousFrameTexture=n._motionBlurLastFrameTexture,e.textures.currentFrameTexture=_,e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!1}})),this._motionBlurLastFrameTexture=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth*this._supersampleScale,height:this._globalFramebufferHeight*this._supersampleScale},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),this._motionBlurLastFrameTexture.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),this._motionBlurLastFrameTexture.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),this._motionBlurLastFrameTexture.allocate(),this._motionBlurLastFrameFramebuffer=this._cache(new x.Framebuffer),this._motionBlurLastFrameFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._motionBlurLastFrameTexture,m.Context.gl.TEXTURE_2D,0),this._motionBlurLastFrameEffect=this._cache(new p.Effect({shader:k.PassThroughShader,onConfigure:function(e){e.textures.baseTexture=A,e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!1}})),this._motionBlurResolveEffect=this._cache(new p.Effect({shader:k.PassThroughShader,onConfigure:function(e){e.textures.baseTexture=A,e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!0,e.states.zBufferState.enabled=!1,e.states.alphaState.blendFunc=[m.Context.gl.SRC_ALPHA,m.Context.gl.ONE,m.Context.gl.ONE,m.Context.gl.ONE]}})),this._motionBlurResolveQuad=this._cache(g.GeometryUtil.makeFullscreenQuad())),this._needsDepth&&(this._enableDepthTexturePass?(this._forwardPassDepthFramebuffer=this._cache(new x.Framebuffer),this._forwardPassDepthFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._depthTexture,m.Context.gl.TEXTURE_2D,0),this._forwardPassDepthFramebuffer.attachRenderbuffer(m.Context.gl.DEPTH_ATTACHMENT,r)):this._forwardPassFramebuffer.attachTexture(m.Context.gl.DEPTH_ATTACHMENT,this._depthTexture,m.Context.gl.TEXTURE_2D,0)),this._mergePassInOut(t,{forwardTexture:this._forwardTexture,depthTexture:this._depthTexture,motionBlurTexture:_,motionBlurMixTexture:A})}},{key:"_generateUniformGridIndexVertexBufferPair",value:function(e,t,n){var r=-1>>>31-n,i=Math.pow(2,n),a=[],o=[],s=[],l=[];a.push(s),o.push(l);for(var u=0,d=0;d<e;d+=i)for(var c=0;c<t;c+=i)r&d&&r&c&&(65e3===u&&(s=[],a.push(s),l=[],o.push(l),u=0),s.push(d/e),s.push(c/t),l.push(u),++u);return{vertexArrays:a,indexArrays:o}}},{key:"_generateGeometriesFromIndexVertexBufferPair",value:function(e,t,n,r,i,a){var o=this._cache(new C.Texture({type:C.Texture.IMAGE,data:[this._physicalCamera.pupilImage],generateMipmaps:!1}));this._splatEffect=this._cache(new p.Effect({shader:G.DofSplatShader,onConfigure:function(e){e.textures.plainTexture=r,e.textures.cocTexture=i,e.textures.pupilTexture=o,e.params.pointSize=a,e.params.width=t,e.params.height=n,e.states.alphaState.blendFunc=[m.Context.gl.SRC_ALPHA,m.Context.gl.ONE,m.Context.gl.ONE,m.Context.gl.ONE],e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1,e.states.zBufferState.compare=m.Context.gl.ALWAYS}}));var s=new E.Attributes;s.setPositionChannels(2);for(var l=e.vertexArrays,u=e.indexArrays,d=[],c=0;c<l.length;++c){var f=new v.VertexBuffer({vertexData:l[c],attributes:s,usageType:m.Context.gl.STATIC_DRAW}),h=new b.IndexBuffer({data:u[c]}),_=this._cache(new S.Geometry({indexBuffer:h,vertexBuffer:f,type:S.Geometry.POINTS}));d.push(_)}return d}},{key:"_setupSplatPass",value:function(e){if(!this._dofEnabled)return this._mergePassInOut(e,{});for(var t=0;t<this._physicalCamera.apertureImages.length;++t){var n=this._cache(new C.Texture({type:C.Texture.IMAGE,data:[this._physicalCamera.apertureImages[t]],generateMipmaps:!1}));n.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),n.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),this._apertureTextures.push(n)}this._splatTextureWidth=(this._globalFramebufferWidth+.5*this._splatPointSize)*this._halfresScale,this._splatTextureHeight=this._globalFramebufferHeight*this._halfresScale,this._splatTransformation.position=new c.Vector3(-this._splatTextureWidth/2,-this._splatTextureHeight/2,-10),this._splatFramebuffer=this._cache(new x.Framebuffer);var r=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._splatTextureWidth,height:this._splatTextureHeight},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));r.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),r.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),r.allocate(),this._splatFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,r,m.Context.gl.TEXTURE_2D,0);for(var i=.5*this._globalFramebufferWidth*this._halfresScale,a=.5*this._globalFramebufferHeight*this._halfresScale,o=0;o<this._splatPassCount;++o){var s=this._generateUniformGridIndexVertexBufferPair(this._globalFramebufferWidth*this._halfresScale,this._globalFramebufferHeight*this._halfresScale,o),l=this._generateGeometriesFromIndexVertexBufferPair(s,i,a,e.forwardTexture,e.cocTexture,this._splatPointSize*this._halfresScale);this._splatGeometries.uniform.push(l)}return this._mergePassInOut(e,{splatTexture:r})}},{key:"_updateHBAORandomTexture",value:function(e){for(var t=0;t<ve*ve*4;t+=4){var n=2*Math.PI*Math.random()/e;this._hbaoRandomTextureArray[t]=Math.cos(n),this._hbaoRandomTextureArray[t+1]=Math.sin(n),this._hbaoRandomTextureArray[t+2]=Math.random(),this._hbaoRandomTextureArray[t+3]=0}}},{key:"_setHBAOShaderParams",value:function(){var e=Math.tan(.5*u.MathUtil.degToRad(this._physicalCamera.fov));this._hbaoEffect.params.focalLength=[1/e*this._physicalCamera.aspect,1/e],this._hbaoEffect.params.invFocalLength=[1/this._hbaoEffect.params.focalLength[0],1/this._hbaoEffect.params.focalLength[1]],this._hbaoEffect.params.radius=this._hbaoRadius,this._hbaoEffect.params.invRadius=1/this._hbaoEffect.params.radius,this._hbaoEffect.params.sqrRadius=this._hbaoEffect.params.radius*this._hbaoEffect.params.radius,this._hbaoEffect.params.angleBias=u.MathUtil.degToRad(this._hbaoAngleBias),this._hbaoEffect.params.contrast=this._hbaoContrast/(1-Math.sin(this._hbaoEffect.params.angleBias)),this._hbaoEffect.params.attenuation=this._hbaoAttenuation,this._hbaoEffect.params.resolution=[this._hbaoTextureWidth,this._hbaoTextureHeight],this._hbaoEffect.params.invResolution=[1/this._hbaoTextureWidth,1/this._hbaoTextureHeight],this._hbaoEffect.params.projection=this._projection;var t=(be+1)/2,n=1/(2*t*t);this._hbaoBlurXEffect.params.falloff=n,this._hbaoBlurYEffect.params.falloff=n,this._hbaoBlurXEffect.params.sharpness=this._hbaoBlurSharpness,this._hbaoBlurYEffect.params.sharpness=this._hbaoBlurSharpness}},{key:"_setupShadowPasses",value:function(t){var n=this;this._shadowMapTextures.length=0,this._shadowMapSizes.length=0,this._shadowMapViewProjectionMatrix.length=0;for(var r=t.length,i=0;i<r;++i){var a=t[i];if(!this._shadowPasses[i]){var o=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._shadowMapSize,height:this._shadowMapSize},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!0})),s=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._shadowMapSize,height:this._shadowMapSize},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),l=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._shadowMapSize,height:this._shadowMapSize},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),u=this._cache(new p.Effect({shader:U.GaussianBlurShader,onConfigure:function(e){e.setHorizontalEnabled(!0),e.setHighPrecisionBufferEnabled(n._hdrEnabled),e.setShadowMomentsBlurEnabled(!n._hdrEnabled),e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}}));u.params.pixelSize=1/this._shadowMapSize,u.params.pixelSize2=1,u.textures.baseTexture=o;var d=this._cache(new p.Effect({shader:U.GaussianBlurShader,onConfigure:function(e){e.setHorizontalEnabled(!1),e.setHighPrecisionBufferEnabled(n._hdrEnabled),e.setShadowMomentsBlurEnabled(!n._hdrEnabled),e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}}));d.params.pixelSize=1/this._shadowMapSize,d.params.pixelSize2=1,d.textures.baseTexture=s,o.allocate(),s.allocate(),l.allocate();var c=this._cache(new x.Framebuffer);c.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,s,m.Context.gl.TEXTURE_2D,0);var f=this._cache(new x.Framebuffer);f.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,l,m.Context.gl.TEXTURE_2D,0),this._shadowPasses[i]={shadowTexture:o,blurTextureX:s,blurTextureY:l,blurTextureXEffect:u,blurTextureYEffect:d,blurTextureXFramebuffer:c,blurTextureYFramebuffer:f,camera:new w.Camera,oldCamera:new w.Camera,cameraUpdated:!0,shadowItemsRendered:!1,viewProjectionMatrix:(new A.Matrix4).getAsFloat32Array()}}var h=this._shadowPasses[i].camera,_=this._getCameraForLight(a,this._shadowPasses[i].oldCamera);this._shadowPasses[i].cameraUpdated=!(h&&_.equals(h)),this._shadowPasses[i].camera=_,this._shadowMapTextures.push(this._shadowPasses[i].blurTextureY),this._shadowMapSizes.push([this._shadowMapSize,this._shadowMapSize]),this._shadowMapTempMatrix.copyFrom(this._shadowPasses[i].camera.viewMatrix),this._shadowMapTempMatrix.multRight(this._shadowPasses[i].camera.projectionMatrix),this._shadowPasses[i].viewProjectionMatrix.set(this._shadowMapTempMatrix.getAsFloat32Array()),this._shadowMapViewProjectionMatrix.push(this._shadowPasses[i].viewProjectionMatrix),m.Context.eventEmitter.emit(this,e.EVENT_SHADOW_PARAMS_CHANGED)}if(this._shadowPasses.length>r)for(var g=this._shadowPasses.splice(r,this._shadowPasses.length-r),E=g.length,v=0;v<E;++v)g[v].shadowTexture.dtor();if(!this._shadowFramebuffer&&r>0){this._shadowFramebuffer=this._cache(new x.Framebuffer);var b=this._cache(new y.Renderbuffer(m.Context.gl.DEPTH_COMPONENT16,this._shadowMapSize,this._shadowMapSize));b.allocate(),this._shadowFramebuffer.attachRenderbuffer(m.Context.gl.DEPTH_ATTACHMENT,b)}}},{key:"_getCameraForLight",value:function(e,t){this._shadowCameraHack||(this._shadowCameraHack=new w.Camera,this._shadowCameraHack.setFrustumRaw([.1,20,-.0023400000000000005,.0023400000000000005,-.0034182146077547347,.0034182146077547347]),this._shadowCameraHack.setFrame(new c.Vector3(2.5138630202433796,.7079353416965647,3.3624935208325613),new c.Vector3(-.5904431950973574,-.16627620586629693,-.7897651908801329),new c.Vector3(-.09956264416597106,.9860792175898997,-.13317303226994343),new c.Vector3(.8009145480323754,0,-.5987786625708167)));var n=this._physicalCamera.camera,r=n.inverseViewMatrix,i=n.inverseProjectionMatrix;this._shadowFrustumCornersWS[0].set(1,1,-1),this._shadowFrustumCornersWS[1].set(-1,1,-1),this._shadowFrustumCornersWS[2].set(-1,-1,-1),this._shadowFrustumCornersWS[3].set(1,-1,-1),this._shadowFrustumCornersWS[4].set(1,1,1),this._shadowFrustumCornersWS[5].set(-1,1,1),this._shadowFrustumCornersWS[6].set(-1,-1,1),this._shadowFrustumCornersWS[7].set(1,-1,1),this._shadowFrustumCornersVS[0].set(1,1,-1),this._shadowFrustumCornersVS[1].set(-1,1,-1),this._shadowFrustumCornersVS[2].set(-1,-1,-1),this._shadowFrustumCornersVS[3].set(1,-1,-1),this._shadowFrustumCornersVS[4].set(1,1,1),this._shadowFrustumCornersVS[5].set(-1,1,1),this._shadowFrustumCornersVS[6].set(-1,-1,1),this._shadowFrustumCornersVS[7].set(1,-1,1);for(var a=0;a<8;++a)this._shadowFrustumCornersLS[a].zero();this._shadowFrustumCentroid.zero();for(var o=0;o<8;++o)this._shadowFrustumCornersVS[o].mult4x4(i),this._shadowFrustumCornersWS[o].mult4x4(i).mult4x4(r),this._shadowFrustumCornersLS[o].copyFrom(this._shadowFrustumCornersWS[o]),this._shadowFrustumCentroid.add(this._shadowFrustumCornersWS[o]);this._shadowFrustumCentroid.div(8);var s=Math.max(n.frustum[w.Camera.DMAX]-n.frustum[w.Camera.DMIN],this._shadowFrustumCornersVS[4].distance(this._shadowFrustumCornersVS[5]))+1,l=t;l.perspective=!1;var u=c.Vector3.sub(this._shadowFrustumCentroid,c.Vector3.mult(e.direction,s));l.location=u,l.lookAt(this._shadowFrustumCentroid);for(var d=l.viewMatrix,f=0;f<8;++f)this._shadowFrustumCornersLS[f].mult4x4(d);this._shadowMapMins.copyFrom(this._shadowFrustumCornersLS[0]),this._shadowMapMaxes.copyFrom(this._shadowFrustumCornersLS[0]);for(var h=0;h<8;++h)this._shadowFrustumCornersLS[h].x>this._shadowMapMaxes.x?this._shadowMapMaxes.x=this._shadowFrustumCornersLS[h].x:this._shadowFrustumCornersLS[h].x<this._shadowMapMins.x&&(this._shadowMapMins.x=this._shadowFrustumCornersLS[h].x),this._shadowFrustumCornersLS[h].y>this._shadowMapMaxes.y?this._shadowMapMaxes.y=this._shadowFrustumCornersLS[h].y:this._shadowFrustumCornersLS[h].y<this._shadowMapMins.y&&(this._shadowMapMins.y=this._shadowFrustumCornersLS[h].y),this._shadowFrustumCornersLS[h].z>this._shadowMapMaxes.z?this._shadowMapMaxes.z=this._shadowFrustumCornersLS[h].z:this._shadowFrustumCornersLS[h].z<this._shadowMapMins.z&&(this._shadowMapMins.z=this._shadowFrustumCornersLS[h].z);var _=1;return l.setFrustumOrtho(this._shadowMapMins.x,this._shadowMapMaxes.x,this._shadowMapMins.y,this._shadowMapMaxes.y,this._shadowMapMins.z-_,this._shadowMapMaxes.z),l}},{key:"_setupHBAOPass",value:function(t){var n=this;if(!this._ssaoEnabled)return this._mergePassInOut(t,{});this._hbaoFramebuffer=this._cache(new x.Framebuffer),this._hbaoTextureHeight=this._globalFramebufferHeight,this._hbaoTextureWidth=this._globalFramebufferWidth,this._hbaoRandomTextureArray=new Float32Array(ve*ve*4),this._updateHBAORandomTexture(Se);var r=this._cache(new C.Texture({type:C.Texture.DATA,data:{width:ve,height:ve,arrayBuffer:this._hbaoRandomTextureArray},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));this._hbaoTexture=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:.5*this._hbaoTextureWidth,height:.5*this._hbaoTextureHeight},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),this._hbaoTexture.allocate();var i=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:.5*this._hbaoTextureWidth,height:.5*this._hbaoTextureHeight},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));return i.allocate(),this._hbaoFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._hbaoTexture,m.Context.gl.TEXTURE_2D,0),this._hbaoEffect=this._cache(new p.Effect({shader:H.SsaoShader,onConfigure:function(e){e.textures.depthTexture=n._depthTexture,e.textures.randomTexture=r,e.setNumDir(Se),e.setUseDepthExtensionEnabled(!n._enableDepthTexturePass),e.setHighPrecisionBufferEnabled(n._hdrEnabled),e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}})),this._hbaoBlurXFramebuffer=this._cache(new x.Framebuffer),this._hbaoBlurXFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,i,m.Context.gl.TEXTURE_2D,0),this._hbaoBlurXEffect=this._cache(new p.Effect({shader:z.SsaoBlurShader,onConfigure:function(e){e.textures.aoTexture=n._hbaoTexture,e.textures.depthTexture=n._depthTexture,e.params.invResolution=1/n._hbaoTextureWidth,e.setHorizontalEnabled(!0),e.setBlurRadius(be),e.setUseDepthExtensionEnabled(!n._enableDepthTexturePass),e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}})),this._hbaoBlurYFramebuffer=this._cache(new x.Framebuffer),this._hbaoBlurYFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._hbaoTexture,m.Context.gl.TEXTURE_2D,0),this._hbaoBlurYEffect=this._cache(new p.Effect({shader:z.SsaoBlurShader,onConfigure:function(e){e.textures.aoTexture=i,e.textures.depthTexture=n._depthTexture,e.params.invResolution=1/n._hbaoTextureHeight,e.setHorizontalEnabled(!1),e.setBlurRadius(be),e.setUseDepthExtensionEnabled(!n._enableDepthTexturePass),e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}})),m.Context.eventEmitter.emit(this,e.EVENT_SSAO_PARAMS_CHANGED),this._mergePassInOut(t,{hbaoSpareTexture:i})}},{key:"_setupDynamicGradingPass",value:function(e){var t=this;if(!this._dynamicColorGradingEnabled)return this._mergePassInOut(e,{});this._dynamicGradingFramebuffer=this._cache(new x.Framebuffer);var n=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._gradingLutWidth,height:this._gradingLutHeight},format:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));return n.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),n.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),n.allocate(),this._dynamicGradingFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,n,m.Context.gl.TEXTURE_2D,0),this._dynamicGradingEffect=this._cache(new p.Effect({shader:Q.DynamicGradingShader,onConfigure:function(e){e.textures.rgbLut=t._physicalCamera.gradingLut,e.params.hue=1,e.params.value=1,e.params.saturation=1,e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}})),this._mergePassInOut(e,{dynamicGradingLut:n})}},{key:"_setupCocPass",value:function(e){var t=this;if(!this._dofEnabled)return this._mergePassInOut(e,{});this._cocPassFramebuffer=this._cache(new x.Framebuffer);var n=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth*this._halfresScale,height:this._globalFramebufferHeight*this._halfresScale},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));return n.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),n.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),n.allocate(),this._cocPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,n,m.Context.gl.TEXTURE_2D,0),this._cocEffect=this._cache(new p.Effect({shader:X.CocShader,onConfigure:function(e){e.setDepthExtensionEnabled(!t._enableDepthTexturePass),e.setHighPrecisionBufferEnabled(t._hdrEnabled),e.textures.depthTexture=t._depthTexture,e.params.projection=t._projection,e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}})),this._mergePassInOut(e,{cocTexture:n})}},{key:"_setupOpticsPass",value:function(e){var t=this;if(!this._hdrEnabled)return this._mergePassInOut(e,{});this._opticsFramebuffer=this._cache(new x.Framebuffer);var n=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth,height:this._globalFramebufferHeight},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));return n.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),n.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),n.allocate(),this._opticsFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,n,m.Context.gl.TEXTURE_2D,0),this._opticsEffect=this._cache(new p.Effect({shader:W.OpticsShader,onConfigure:function(n){n.setHighPrecisionBufferEnabled(t._hdrEnabled),n.setDofEnabled(t._dofEnabled),n.textures.baseTexture=e.forwardTexture,t._dofEnabled&&(n.textures.cocTexture=e.cocTexture,n.textures.splatTexture=e.splatTexture,n.params.pointSize=t._splatPointSize*t._halfresScale,n.params.widthScale=t._splatTextureWidth/(t._splatPointSize*t._halfresScale+t._splatTextureWidth),n.params.size=t._halfresDof?t._renderSizeHalfWoSupersample:t._renderSizeWoSupersample,n.states.alphaState.blendEnabled=!1,n.states.zBufferState.enabled=!1,n.states.zBufferState.writable=!1)}})),this._mergePassInOut(e,{opticsTexture:n})}},{key:"_setupAutoExposurePass",value:function(e){if(!this._hdrEnabled)return this._mergePassInOut(e,{});this._autoExposureRegionSize=u.MathUtil.getPreviousPowerOfTwo(this._physicalCamera.autoExposureRegionSize*Math.min(this._globalFramebufferWidth,this._globalFramebufferHeight)),this._autoExposureRegionFramebuffer=this._cache(new x.Framebuffer);var t=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._autoExposureRegionSize,height:this._autoExposureRegionSize},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!0}));t.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),t.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),t.allocate(),this._autoExposureRegionFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,t,m.Context.gl.TEXTURE_2D,0),this._autoExposureRegionEffect=this._cache(new p.Effect({shader:j.AutoExposureRegionShader,onConfigure:function(t){t.textures.baseTexture=e.opticsTexture,t.states.alphaState.blendEnabled=!1,t.states.zBufferState.enabled=!1,t.states.zBufferState.writable=!1}})),this._autoExposureFramebuffer=this._cache(new x.Framebuffer);var n=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:1,height:1},format:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));return n.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),n.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),n.filterType={min:C.Texture.NEAREST,mag:C.Texture.NEAREST},n.allocate(),this._autoExposureFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,n,m.Context.gl.TEXTURE_2D,0),this._autoExposureEffect=this._cache(new p.Effect({shader:Y.AutoExposureShader,onConfigure:function(e){e.textures.baseTexture=t,e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}})),this._mergePassInOut(e,{autoExposureRegionTexture:t,autoExposureTexture:n})}},{key:"_setupBloomPasses",value:function(e){if(!this._bloomEnabled)return this._mergePassInOut(e,{});this._brightnessExtractionFramebuffer=this._cache(new x.Framebuffer);var t=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth,height:this._globalFramebufferHeight},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));t.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),t.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),t.allocate(),this._brightnessExtractionFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,t,m.Context.gl.TEXTURE_2D,0),this._brightnessExtractionEffect=this._cache(new p.Effect({shader:q.BrightnessExtractionShader,onConfigure:function(t){t.textures.baseTexture=e.opticsTexture,t.states.alphaState.blendEnabled=!1,t.states.zBufferState.enabled=!1,t.states.zBufferState.writable=!1}})),this._bloomPasses=[];for(var n=0,r=2;n<2*this._bloomPassCount;++n){var i=n%2===0,a=this._cache(new x.Framebuffer),o=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth/r,height:this._globalFramebufferHeight/r},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));o.allocate(),a.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,o,m.Context.gl.TEXTURE_2D,0);var s=void 0;i?(s=this._cache(new p.Effect({shader:U.GaussianBlurShader,onConfigure:function(e){e.setHorizontalEnabled(!0),e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}})),s.params.pixelSize=r/this._globalFramebufferWidth,s.params.pixelSize2=1):(s=this._cache(new p.Effect({shader:U.GaussianBlurShader,onConfigure:function(e){e.setHorizontalEnabled(!1),e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}})),s.params.pixelSize=r/this._globalFramebufferHeight,s.params.pixelSize2=1),0===n?s.textures.baseTexture=t:s.textures.baseTexture=this._bloomPasses[n-1].texture,this._bloomPasses.push({framebuffer:a,texture:o,effect:s,scale:r}),i||(r*=2)}for(var l=[],u=1;u<this._bloomPasses.length;u+=2)l.push(this._bloomPasses[u].texture);return this._mergePassInOut(e,{bloomTextures:l,brightnessTexture:t})}},{key:"_setupGhostingPasses",value:function(e){if(!this._ghostingEnabled||!this._bloomEnabled)return this._mergePassInOut(e,{});var t=this._cache(new C.Texture({ type:C.Texture.IMAGE,data:[se.default],generateMipmaps:!1})),n=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth/this._bloomPasses[1].scale,height:this._globalFramebufferHeight/this._bloomPasses[1].scale},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));n.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),n.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),n.allocate(),this._ghosting1Framebuffer=this._cache(new x.Framebuffer),this._ghosting1Framebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,n,m.Context.gl.TEXTURE_2D,0),this._ghosting1Effect=this._cache(new p.Effect({shader:Z.GhostingP1Shader,onConfigure:function(n){n.textures.bloomTexture1=e.bloomTextures[1],n.textures.bloomTexture2=e.bloomTextures[4],n.textures.maskTexture=t,n.states.alphaState.blendEnabled=!1,n.states.zBufferState.enabled=!1,n.states.zBufferState.writable=!1}}));var r=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth/this._bloomPasses[1].scale,height:this._globalFramebufferHeight/this._bloomPasses[1].scale},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));return r.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),r.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),r.allocate(),this._ghosting2Framebuffer=this._cache(new x.Framebuffer),this._ghosting2Framebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,r,m.Context.gl.TEXTURE_2D,0),this._ghosting2Effect=this._cache(new p.Effect({shader:K.GhostingP2Shader,onConfigure:function(e){e.textures.baseTexture=n,e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}})),this._mergePassInOut(e,{ghosting2Texture:r,ghosting1Texture:n})}},{key:"_setupFinalPass",value:function(e){var t=this;if(this._txaaEnabled)return this._mergePassInOut(e,{});var n=void 0;if((this._fxaaEnabled||this._vrDistortion)&&(n=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth,height:this._globalFramebufferHeight},format:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),n.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),n.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),n.allocate()),this._fxaaEnabled&&(this._finalPassFramebuffer=this._cache(new x.Framebuffer),this._finalPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,n,m.Context.gl.TEXTURE_2D,0),this._fxaaEffect=this._cache(new p.Effect({shader:J.FxaaShader,onConfigure:function(e){e.params.texCoordOffset=[1/t._renderSize[0],1/t._renderSize[1]],e.textures.baseTexture=n,t._canvasBlendEnabled?(e.states.alphaState.blendEnabled=!0,e.states.alphaState.blendFunc=[m.Context.gl.ONE,m.Context.gl.ONE,m.Context.gl.SRC_ALPHA,m.Context.gl.SRC_ALPHA]):e.states.alphaState.blendEnabled=!1}}))),this._vrDistortion){var r=void 0;this._fxaaEnabled?(r=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth,height:this._globalFramebufferHeight},format:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),r.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),r.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),r.allocate(),this._fxaaPassFramebuffer=this._cache(new x.Framebuffer),this._fxaaPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,r,m.Context.gl.TEXTURE_2D,0)):this.noFinalPassNeeded||(this._finalPassFramebuffer=this._cache(new x.Framebuffer),this._finalPassFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,n,m.Context.gl.TEXTURE_2D,0)),this._stereoLensDistortEffect=this._cache(new p.Effect({shader:$.StereoLensDistortShader,onConfigure:function(e){e.textures.baseTexture=t.noFinalPassNeeded?t._forwardTexture:t._fxaaEnabled?r:n,e.params.viewportOffsetScale=[new f.Vector4,new f.Vector4],t._canvasBlendEnabled?(e.states.alphaState.blendEnabled=!0,e.states.alphaState.blendFunc=[m.Context.gl.ONE,m.Context.gl.ONE,m.Context.gl.SRC_ALPHA,m.Context.gl.SRC_ALPHA]):e.states.alphaState.blendEnabled=!1,m.Context.eventEmitter.on(P.CardboardVRDisplay.EVENT_HMD_PARAMS_CHANGED,function(n){var r=n._deviceInfo.viewer;n._deviceInfo.device;e.setVignetteEnabled(r.vignettingStrength>0),e.setChromaticAberrationEnabled(r.chromaticAberrationStrength>0),t._vrDistortionGeometry&&(t._vrDistortionGeometry.dtor(),t._vrDistortionGeometry=null),t._vrDistortionGeometry=g.GeometryUtil.makeVRDistortionMesh(21,21,n._deviceInfo);var i=[0,0,.5,1],a=[.5,0,.5,1];e.params.viewportOffsetScale[0].x=i[0],e.params.viewportOffsetScale[0].y=i[1],e.params.viewportOffsetScale[0].z=i[2],e.params.viewportOffsetScale[0].w=i[3],e.params.viewportOffsetScale[1].x=a[0],e.params.viewportOffsetScale[1].y=a[1],e.params.viewportOffsetScale[1].z=a[2],e.params.viewportOffsetScale[1].w=a[3]})}}))}return this.noFinalPassNeeded||(this._finalPassEffect=this._cache(new p.Effect({shader:ee.TonemapShader,onConfigure:function(n){if(n.setHighPrecisionBufferEnabled(t._hdrEnabled),n.setVignettingEnabled(t._vignettingEnabled),n.textures.baseTexture=t._hdrEnabled?e.opticsTexture:e.forwardTexture,n.setBloomEnabled(t._bloomEnabled),n.setGhostingEnabled(t._ghostingEnabled),t._bloomEnabled&&(n.textures.bloomTextures=e.bloomTextures,t._ghostingEnabled&&(n.textures.ghostingTexture=e.ghosting2Texture)),n.setLensdirtEnabled(t._lensDirtEnabled),t._lensDirtEnabled&&t._physicalCamera.lensDirt.preload(),n.setGrainEnabled(t._grainEnabled),n.setSharpenImageEnabled(t._sharpenImageEnabled&&t._physicalCamera.sharpenAmount>0),t._sharpenImageEnabled&&(n.params.sharpenAmount=t._physicalCamera.sharpenAmount),n.setChromaticAbberationEnabled(t._chromaticAbberationEnabled&&t._physicalCamera.chromaticAbberationAmount>0),t._chromaticAbberationEnabled&&(n.params.chromaticAbberationAmount=t._physicalCamera.chromaticAbberationAmount),n.setColorGradingEnabled(t._dynamicColorGradingEnabled),t._dynamicColorGradingEnabled){var r=16;e.dynamicGradingLut.preload(),n.textures.lut=e.dynamicGradingLut,n.params.lutParams=[r,1/r,1/r/r,1/r*(r-1)]}n.setFogEnabled(t._fogEnabled),t._fogEnabled&&(n.params.fogColor=new _.ColorRGB(1,1,1),n.params.fogDensity=.1),n.setLowEndDofEnabled(t._lowEndDofEnabled),t._lowEndDofEnabled&&(n.textures.dofBlurTexture=t._dofBlurTextures[0]),n.setTiltShiftBlurEnabled(t._tiltShiftBlurEnabled),t._tiltShiftBlurEnabled&&(n.textures.tiltShiftBlurTexture=t._tiltShiftBlurTextures[t._tiltShiftBlurPassCount-2],n.params.tiltShiftBlurAmount=t._physicalCamera.tiltShiftBlurAmount),(t._fogEnabled||t._lowEndDofEnabled)&&(n.textures.depthTexture=t._depthTexture,n.setDepthExtensionEnabled(!t._enableDepthTexturePass)),n.params.size=t._renderSize,n.states.zBufferState.enabled=!1,n.states.zBufferState.writable=!1,t._canvasBlendEnabled?(n.states.alphaState.blendEnabled=!0,n.states.alphaState.blendFunc=[m.Context.gl.ONE,m.Context.gl.ONE,m.Context.gl.SRC_ALPHA,m.Context.gl.SRC_ALPHA]):n.states.alphaState.blendEnabled=!1}}))),this._mergePassInOut(e,{})}},{key:"_setupFinalTxaaPass",value:function(e){var t=this;if(!this._txaaEnabled)return this._mergePassInOut(e,{});var n=this._setupFinalPass(e);return this._previousViewProjectionMatrix=new A.Matrix4,this._previousViewProjectionMatrixCache=new Float32Array(16),this._currentInverseViewProjectionMatrix=new A.Matrix4,this._currentInverseViewProjectionMatrixCache=new Float32Array(16),this._previousViewProjectionMatrix.copyToArray(this._previousViewProjectionMatrixCache),this._txaaTextureA=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth,height:this._globalFramebufferHeight},generateMipmaps:!1})),this._txaaTextureA.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),this._txaaTextureA.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),this._txaaTextureA.allocate(),this._txaaTextureB=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth,height:this._globalFramebufferHeight},generateMipmaps:!1})),this._txaaTextureB.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),this._txaaTextureB.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),this._txaaTextureB.allocate(),this._txaaFramebufferB=this._cache(new x.Framebuffer),this._txaaFramebufferB.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._txaaTextureB,m.Context.gl.TEXTURE_2D,0),this._txaaCurrentFrameTex=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth,height:this._globalFramebufferHeight},generateMipmaps:!1})),this._txaaCurrentFrameTex.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),this._txaaCurrentFrameTex.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),this._txaaCurrentFrameTex.allocate(),this._txaaCurrentFrameFramebuffer=this._cache(new x.Framebuffer),this._txaaCurrentFrameFramebuffer.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,this._txaaCurrentFrameTex,m.Context.gl.TEXTURE_2D,0),this._txaaPassEffect=this._cache(new p.Effect({shader:te.TemporalAAResolveShader,onConfigure:function(n){n.setDepthExtensionEnabled(!0),n.textures.depthTexture=e.depthTexture,n.params.texelSizeHalf=[1/t._globalFramebufferWidth,1/t._globalFramebufferHeight],n.params.jitter=[0,0],n.states.alphaState.blendEnabled=!1,n.states.zBufferState.enabled=!1,n.states.zBufferState.writable=!1}})),this._txaaPassEffect.params.k=[.673,4],this._txaaDejitterEffect=this._cache(new p.Effect({shader:k.PassThroughShader,onConfigure:function(e){e.setTexCoordOffsetEnabled(!0),e.textures.baseTexture=t._txaaTextureA,e.params.texCoordOffset=[0,0],e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}})),this._mergePassInOut(e,n)}},{key:"_setupGlobalTextures",value:function(){if(this._needsDepth){var e=C.Texture.DEPTH_32;this._enableDepthTexturePass&&(e=this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE),this._depthTexture=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth*this._supersampleScale,height:this._globalFramebufferHeight*this._supersampleScale},format:e,generateMipmaps:!1})),this._depthTexture.filterType={min:C.Texture.NEAREST,mag:C.Texture.NEAREST},this._depthTexture.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),this._depthTexture.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),this._depthTexture.allocate()}this._forwardTexture=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth*this._supersampleScale,height:this._globalFramebufferHeight*this._supersampleScale},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),this._forwardTexture.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),this._forwardTexture.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),this._forwardTexture.allocate()}},{key:"_setupFlares",value:function(){this._flareOcclusionEffect=this._cache(new p.Effect({shader:ne.LensFlareOcclusionShader,onConfigure:function(e){e.states.alphaState.blendEnabled=!1,e.states.zBufferState.enabled=!1,e.states.zBufferState.writable=!1}})),this._flareOcclusionBaseTextureBlack=this._cache(new C.Texture({type:C.Texture.IMAGE,data:[ue.default],generateMipmaps:!1})),this._flareOcclusionBaseTextureBlack.preload(),this._flareOcclusionBaseTextureWhite=this._cache(new C.Texture({type:C.Texture.IMAGE,data:[ce.default],generateMipmaps:!1})),this._flareOcclusionBaseTextureWhite.preload(),this._flareOcclusionForwardTexture=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth*this._supersampleScale,height:this._globalFramebufferHeight*this._supersampleScale},format:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1})),this._flareOcclusionForwardTexture.setWrapMode(0,m.Context.gl.CLAMP_TO_EDGE),this._flareOcclusionForwardTexture.setWrapMode(1,m.Context.gl.CLAMP_TO_EDGE),this._flareOcclusionForwardTexture.allocate()}},{key:"_setupTiltShiftBlur",value:function(e){var t=this;if(this._tiltShiftBlurEnabled){this._tiltShiftBlurPasses=[];for(var n=0,r=2;n<2*this._tiltShiftBlurPassCount;++n){var i=n%2===0,a=this._cache(new x.Framebuffer),o=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:this._globalFramebufferWidth/r,height:this._globalFramebufferHeight/r},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));o.allocate(),a.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,o,m.Context.gl.TEXTURE_2D,0);var s=void 0;i?(s=this._cache(new p.Effect({shader:U.GaussianBlurShader,onConfigure:function(e){e.setHorizontalEnabled(!0),e.setHighPrecisionBufferEnabled(t._hdrEnabled),e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!1}})),s.params.pixelSize=r/this._globalFramebufferWidth,s.params.pixelSize2=1):(s=this._cache(new p.Effect({shader:U.GaussianBlurShader,onConfigure:function(e){e.setHorizontalEnabled(!1),e.setHighPrecisionBufferEnabled(t._hdrEnabled),e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!1}})),s.params.pixelSize=r/this._globalFramebufferHeight,s.params.pixelSize2=1),0===n?this._hdrEnabled?s.textures.baseTexture=e.opticsTexture:s.textures.baseTexture=this._forwardTexture:s.textures.baseTexture=this._tiltShiftBlurPasses[n-1].texture,this._tiltShiftBlurPasses.push({framebuffer:a,texture:o,effect:s,scale:r}),i||(r*=2)}this._tiltShiftBlurTextures=[];for(var l=1;l<this._tiltShiftBlurPasses.length;l+=2)this._tiltShiftBlurTextures.push(this._tiltShiftBlurPasses[l].texture)}return this._mergePassInOut(e,{})}},{key:"_setupDofBlur",value:function(e){if(this._lowEndDofEnabled){var t=1,n=this._globalFramebufferWidth/2,r=this._globalFramebufferHeight/2;this._dofBlurPassCount=1,this._dofBlurPasses=[];for(var i=0;i<this._dofBlurPassCount;++i){var a=this._cache(new x.Framebuffer),o=this._cache(new C.Texture({type:C.Texture.EMPTY,data:{width:n/t,height:r/t},format:this._hdrEnabled?C.Texture.FLOATING_POINT:C.Texture.UNSIGNED_BYTE,generateMipmaps:!1}));o.allocate(),a.attachTexture(m.Context.gl.COLOR_ATTACHMENT0,o,m.Context.gl.TEXTURE_2D,0);var s=this._cache(new p.Effect({shader:re.DownsampleShader,onConfigure:function(e){e.states.zBufferState.zBufferWrite=!1,e.states.zBufferState.zBufferRead=!1,e.states.alphaState.blendEnabled=!1}}));s.params.pixelSize=new d.Vector2(t/n,t/r),s.params.pixelSize2=1,this._hdrEnabled?s.textures.baseTexture=e.opticsTexture:s.textures.baseTexture=this._forwardTexture,this._dofBlurPasses.push({framebuffer:a,texture:o,effect:s,scale:t,width:n/t,height:r/t})}this._dofBlurTextures=[];for(var l=0;l<this._dofBlurPasses.length;l++)this._dofBlurTextures.push(this._dofBlurPasses[l].texture)}return this._mergePassInOut(e,{})}},{key:"_setupPostProcessEffect",value:function(t,n){return this._globalOriginalRenderWidth=t,this._globalOriginalRenderHeight=n,this._screenFillingQuad=this._cache(g.GeometryUtil.makeFullscreenQuad()),m.Context.renderer.width=this._globalOriginalRenderWidth*this._globalFramebufferScaleRatio,m.Context.renderer.height=this._globalOriginalRenderHeight*this._globalFramebufferScaleRatio,this._globalFramebufferWidth=this._globalOriginalRenderWidth*this._globalFramebufferScaleRatio,this._globalFramebufferHeight=this._globalOriginalRenderHeight*this._globalFramebufferScaleRatio,this._renderSize=[this._globalFramebufferWidth*this._supersampleScale,this._globalFramebufferHeight*this._supersampleScale],this._renderSizeWoSupersample=[this._globalFramebufferWidth,this._globalFramebufferHeight],this._renderSizeHalfWoSupersample=[this._globalFramebufferWidth*this._halfresScale,this._globalFramebufferHeight*this._halfresScale],m.Context.eventEmitter.emit(this,e.EVENT_RENDER_SIZE_CHANGED),this._debugOverdrawEnabled?void this._setupDebugOverdrawPass():(this._setupGlobalTextures(),this._lensFlaresEnabled&&this._setupFlares(),this._setupFinalPass(this._setupFinalTxaaPass(this._setupGhostingPasses(this._setupBloomPasses(this._setupAutoExposurePass(this._setupTiltShiftBlur(this._setupDofBlur(this._setupOpticsPass(this._setupSplatPass(this._setupCocPass(this._setupForwardPass(this._setupSsrPass(this._setupAutoFocusPass(this._setupDynamicGradingPass(this._setupHBAOPass(this._setupBrdfPass()))))))))))))))),this._updatePhysicalCameraShaderParams(),void(this._setupComplete=!0))}},{key:"noFinalPassNeeded",get:function(){return!(this._hdrEnabled||this._fxaaEnabled||this._fogEnabled||this._grainEnabled||this._dynamicColorGradingEnabled||this._lensDirtEnabled||this._tiltShiftBlurEnabled)}},{key:"frameGrabber",get:function(){return this._frameGrabber},set:function(e){this._frameGrabber=e}},{key:"hbaoContrast",get:function(){return this._hbaoContrast},set:function(e){this._hbaoContrast=e}},{key:"hbaoAngleBias",get:function(){return this._hbaoAngleBias},set:function(e){this._hbaoAngleBias=e}},{key:"hbaoAttenuation",get:function(){return this._hbaoAttenuation},set:function(e){this._hbaoAttenuation=e}},{key:"hbaoBlurSharpness",get:function(){return this._hbaoBlurSharpness},set:function(e){this._hbaoBlurSharpness=e}},{key:"hbaoRadius",get:function(){return this._hbaoRadius},set:function(e){this._hbaoRadius=e}},{key:"colorGlareBlendFactor",get:function(){return this._finalPassEffect&&void 0!==this._finalPassEffect.params.colorGlareBlendFactor?this._finalPassEffect.params.colorGlareBlendFactor:.5},set:function(e){this._finalPassEffect&&void 0!==this._finalPassEffect.params.colorGlareBlendFactor&&(this._finalPassEffect.params.colorGlareBlendFactor=e)}},{key:"renderSize",get:function(){return this._renderSize}},{key:"brdfTexture",get:function(){return this._brdfTexture}},{key:"projection",get:function(){return this._projection}},{key:"refractionBlurTextures",get:function(){return this._refractionBlurTextures}},{key:"refractionBlurPassCount",get:function(){return this._refractionBlurPassCount}},{key:"ssaoTexture",get:function(){return this._hbaoTexture}},{key:"shadowMapTextures",get:function(){return this._shadowMapTextures}},{key:"shadowMapSizes",get:function(){return this._shadowMapSizes}},{key:"shadowMapViewProjectionMatrix",get:function(){return this._shadowMapViewProjectionMatrix}},{key:"shadowBlendFactor",get:function(){return this._shadowBlendFactor}}]),e}()},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Effect=void 0;var i=n(14),a=r(i),o=n(45),s=r(o),l=n(9),u=r(l),d=n(4),c=r(d),f=n(1),h=r(f),_=n(6),A=r(_),m=n(8),p=r(m),g=n(2),E=r(g),v=n(5),b=r(v),S=n(10),T=n(7),x=n(60),y=n(12),C=n(112),w=n(271),M=n(272),D=n(275),P=n(277),R=n(274),I=n(58),L=n(188),O=n(527),N=n(526),B=n(528),F=!0,k=t.Effect=function(e){function t(e){(0,h.default)(this,t);var n=(0,A.default)(this,(t.__proto__||(0,c.default)(t)).call(this,e));return n._shader=T.Util.getParamRequired(e,"shader"),n._shaderDescription=n._shader.desc,n._onConfigure=T.Util.getParam(e,"onConfigure"),n._paramAttributes=null,n._activeTexUnits=0,n._shaderProgram=null,n._params={},n._paramSetterHolder={},n._textures={},n._featureOrder=[],n._features=null,n._unitHolder=[],n._vrActiveUniforms=[],n._vrActiveTextureUniforms=[],n._vrMonoOverride=!1,n._states={alphaState:new w.AlphaState,cullState:new M.CullState,stencilState:new D.StencilState,zBufferState:new P.ZBufferState,polygonOffsetState:new R.PolygonOffsetState},n._tmpArr=[],n._generateFeatures((0,u.default)({},JSON.parse((0,s.default)(n._shader.desc.features)))),n.setHighPrecisionFloatEnabled(t.useHighPrecisionFloat),n._onConfigure&&"function"==typeof n._onConfigure&&n._onConfigure(n),n}return(0,b.default)(t,e),(0,E.default)(t,null,[{key:"_isValidShaderDesc",value:function(e){return!(!e.hasOwnProperty("vertexShader")||!e.hasOwnProperty("fragmentShader"))}},{key:"_throwIncompatibleShaderError",value:function(e){throw new Error("Incompatible Shader params for uniform "+e.info.name)}},{key:"_addShaderProgram",value:function(e){var n=void 0;(n=t._shaderProgramMap.get(e))||(n=0),t._shaderProgramMap.set(e,++n)}},{key:"_removeShaderProgram",value:function(e,n){var r=t._shaderProgramMap.get(e);return 0===--r?(t._shaderProgramMap.delete(e),t._shaderProgramCache.delete(n),void e.dtor()):void t._shaderProgramMap.set(e,r)}},{key:"useHighPrecisionFloat",get:function(){return F},set:function(e){F=e}}]),(0,E.default)(t,[{key:"dtor",value:function(){this._shaderProgram&&(this.removeResourceDependency(this._shaderProgram),t._removeShaderProgram(this._shaderProgram,this._hash),this._shaderProgram=null,this.loaded=!1),(0,p.default)(t.prototype.__proto__||(0,c.default)(t.prototype),"dtor",this).call(this)}},{key:"enable",value:function(){return!(!this.loaded&&!this._loadAndLinkShaders())&&(!!this._preloadTextures()&&(this._shaderProgram.enable(),this._applyParameters(this._shaderProgram.activeUniforms),this._applyTextures(this._shaderProgram.activeTextureUniforms),this.loaded))}},{key:"enableVrUniforms",value:function(e){this._applyParameters(this._vrActiveUniforms,e),this._applyTextures(this._vrActiveTextureUniforms,this._activeTexUnits,e)}},{key:"disable",value:function(){for(var e=0;e<this._activeTexUnits;++e)S.Context.gl.activeTexture(S.Context.gl.TEXTURE0+e),S.Context.gl.bindTexture(S.Context.gl.TEXTURE_2D,null)}},{key:"_initiateShaderReload",value:function(e,t){this.loaded=!1,this.removeResourceDependency(this._shaderProgram)}},{key:"_resolveDependencies",value:function(e){var t=this._features[e];if(t.hasOwnProperty("excludes")&&t.excludes.length)for(var n=0;n<t.excludes.length;++n){var r=t.excludes[n];r=r.charAt(0).toUpperCase()+r.slice(1),this["set"+r+"Enabled"](!1)}if(t.hasOwnProperty("depends")&&t.depends.length)for(var i=0;i<t.depends.length;++i){var a=t.depends[i];a=a.charAt(0).toUpperCase()+a.slice(1),this["set"+a+"Enabled"](!0)}}},{key:"_generateFeatures",value:function(e){var t=this;this._featureOrder=[];var n=function(n){var r=e[n],i=n;switch(i=i.charAt(0).toUpperCase()+i.slice(1),r.type){case"number":t["set"+i]=function(e,t){r=this._features[e],r.value!==t&&(this._initiateShaderReload(e,t),t&&this._resolveDependencies(e)),r.value=t}.bind(t,n),t["set"+i+"Enabled"]=function(e,t){r=this._features[e],r.enabled!==!!t&&this._initiateShaderReload(e,t),r.enabled=!!t}.bind(t,n),t["get"+i]=function(e){return r=this._features[e],r.value}.bind(t,n),t["is"+i+"Enabled"]=function(e){return r=this._features[e],r.enabled}.bind(t,n);break;case"switch":t["set"+i+"Enabled"]=function(e,t){r=this._features[e],r.enabled!==!!t&&(this._initiateShaderReload(e,t),t&&this._resolveDependencies(e)),r.enabled=!!t}.bind(t,n),t["is"+i+"Enabled"]=function(e){return r=this._features[e],r.enabled}.bind(t,n);break;default:throw S.Context.logger.error(t,'error parsing features of shader "'+t._shaderDescription+'" no such feature type: "'+r.type+'"'),new Error('error parsing features of shader "'+t._shaderDescription+'" no such feature type: "'+r.type+'"')}t._featureOrder.push(n)};for(var r in e)n(r);this._featureOrder.sort(),this._features=e}},{key:"_getFeaturePreamble",value:function(){for(var e="",t=0;t<this._featureOrder.length;++t){var n=this._features[this._featureOrder[t]];switch(n.type){case"number":e+="#define "+n.define+" "+(n.enabled?n.value:"0")+"\n";break;case"switch":n.enabled&&(e+="#define "+n.define+"\n");break;default:throw S.Context.logger.error(this,'error generating define preamble of shader "'+this._shaderDescription+'" no such feature type: "'+n.type+'"'),new Error('error generating define preamble of shader "'+this._shaderDescription+'" no such feature type: "'+n.type+'"')}}return e}},{key:"_getFeatureHash",value:function(){return T.Util.hashString(this._getFeaturePreamble())}},{key:"_preloadTextures",value:function(){var e=!1;for(var t in this._textures){var n=this._textures[t];if(void 0!==n)if(Array.isArray(n))for(var r=0,i=n.length;r<i;++r)n[r].loaded||(this.addResourceDependency(n[r]),n[r].preload(),e=!0);else n instanceof L.VrUniform?(n.left.loaded||(this.addResourceDependency(n.left),n.left.preload(),e=!0),n.right.loaded||(this.addResourceDependency(n.right),n.right.preload(),e=!0)):n.loaded||(this.addResourceDependency(n),n.preload(),e=!0);else delete this._textures[t],S.Context.logger.warn(this,"removing unused texture",t)}return!e}},{key:"_loadAndLinkShaders",value:function(){if(this._loaded)return!1;var e=this._getFeaturePreamble(),n=T.Util.hashString(""+e+this._shader.vertexSource+this._shader.fragmentSource);if(this._hash&&this._hash!==n&&t._removeShaderProgram(this._shaderProgram,this._hash),this._hash=n,t._shaderProgramCache.has(n))this._shaderProgram=t._shaderProgramCache.get(n);else{var r=this._getFeaturePreamble(),i=new B.VertexShader({source:this._shader.vertexSource,preamble:r}),a=new N.FragmentShader({source:this._shader.fragmentSource,preamble:r});this._shaderProgram=new O.ShaderProgram({vertexShader:i,fragmentShader:a,attributes:this._paramAttributes}),t._shaderProgramCache.set(n,this._shaderProgram)}return this.addResourceDependency(this._shaderProgram),t._addShaderProgram(this._shaderProgram),this.loaded=!0,!0}},{key:"_applyTextures",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0===n&&(this._vrActiveTextureUniforms.length=0);for(var r=S.Context.gl,i=0,a=e.length;i<a;++i){var o=e[i],s=this._textures[o.paramName];if(void 0===n){if(s instanceof L.VrUniform){this._vrActiveTextureUniforms.push(o);continue}}else s=s[n];if(s)if(o.isArray){this._unitHolder.length=o.info.size;for(var l=0;l<o.info.size;++l)this._unitHolder[l]=t++;r.uniform1iv(o.location,this._unitHolder);for(var u=0;u<o.info.size;++u){var d=s[u];r.activeTexture(r.TEXTURE0+this._unitHolder[u]),d.enable()}}else r.activeTexture(r.TEXTURE0+t),s.enable(),r.uniform1i(o.location,t),t++}this._activeTexUnits=t}},{key:"_applyParameters",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;void 0===t&&(this._vrActiveUniforms.length=0);for(var n=0,r=e.length;n<r;++n){var i=e[n],a=this._params[i.paramName];if(void 0===t){if(a instanceof L.VrUniform){this._vrActiveUniforms.push(i);continue}}else a=a[t];void 0!==a&&this._applyUniformByType(i,a)}}},{key:"_applyUniformByType",value:function(e,n){var r=S.Context.gl,i=e.location,a=e.isArray,o=e.info.type;switch(o){case 5126:a?r.uniform1fv(i,n):r.uniform1f(i,n);break;case 5124:a?r.uniform1iv(i,n):r.uniform1i(i,n);break;case 35670:a?r.uniform1iv(i,n):r.uniform1i(i,n);break;case 35664:if(a)if(n[0]instanceof x.Vector2||n[0]instanceof y.Vector3){this._tmpArr.length=0;for(var s=0;s<n.length;++s)this._tmpArr.push(n[s].x),this._tmpArr.push(n[s].y);r.uniform2fv(i,this._tmpArr)}else if(2===n[0].length){this._tmpArr.length=0;for(var l=0;l<n.length;++l)this._tmpArr.push(n[l][0]),this._tmpArr.push(n[l][1]);r.uniform2fv(i,this._tmpArr)}else t._throwIncompatibleShaderError(e);else n instanceof x.Vector2||n instanceof y.Vector3?r.uniform2f(i,n.x,n.y):2===n.length?r.uniform2f(i,n[0],n[1]):t._throwIncompatibleShaderError(e);break;case 35667:if(a)if(n[0]instanceof x.Vector2||n instanceof y.Vector3){this._tmpArr.length=0;for(var u=0;u<n.length;++u)this._tmpArr.push(n[u].x),this._tmpArr.push(n[u].y);r.uniform2iv(i,this._tmpArr)}else if(2===n[0].length){this._tmpArr.length=0;for(var d=0;d<n.length;++d)this._tmpArr.push(n[d][0]),this._tmpArr.push(n[d][1]);r.uniform2iv(i,this._tmpArr)}else t._throwIncompatibleShaderError(e);else n instanceof x.Vector2||n instanceof y.Vector3?r.uniform2i(i,n.x,n.y):2===n.length?r.uniform2i(i,n[0],n[1]):t._throwIncompatibleShaderError(e);break;case 35671:if(a)if(2===n[0].length){this._tmpArr.length=0;for(var c=0;c<n.length;++c)this._tmpArr.push(n[c][0]),this._tmpArr.push(n[c][1]);r.uniform2iv(i,this._tmpArr)}else t._throwIncompatibleShaderError(e);else 2===n.length?r.uniform2i(i,n[0],n[1]):t._throwIncompatibleShaderError(e);break;case 35665:if(a)if(1===n.length)n[0]instanceof y.Vector3?r.uniform3f(i,n[0].x,n[0].y,n[0].z):3===n[0].length&&r.uniform3f(i,n[0][0],n[0][1],n[0][2]);else if(n[0]instanceof y.Vector3){this._tmpArr.length=0;for(var f=0;f<n.length;++f)this._tmpArr.push(n[f].x),this._tmpArr.push(n[f].y),this._tmpArr.push(n[f].z);r.uniform3fv(i,this._tmpArr)}else if(3===n[0].length){this._tmpArr.length=0;for(var h=0;h<n.length;++h)this._tmpArr.push(n[h][0]),this._tmpArr.push(n[h][1]),this._tmpArr.push(n[h][2]);r.uniform3fv(i,this._tmpArr)}else t._throwIncompatibleShaderError(e);else n instanceof y.Vector3?r.uniform3f(i,n.x,n.y,n.z):3===n.length?r.uniform3f(i,n[0],n[1],n[2]):t._throwIncompatibleShaderError(e);break;case 35668:if(a)if(n[0]instanceof y.Vector3){this._tmpArr.length=0;for(var _=0;_<n.length;++_)this._tmpArr.push(n[_].x),this._tmpArr.push(n[_].y),this._tmpArr.push(n[_].z);r.uniform3iv(i,this._tmpArr)}else if(3===n[0].length){this._tmpArr.length=0;for(var A=0;A<n.length;++A)this._tmpArr.push(n[A][0]),this._tmpArr.push(n[A][1]),this._tmpArr.push(n[A][2]);r.uniform3iv(i,this._tmpArr)}else t._throwIncompatibleShaderError(e);else n instanceof y.Vector3?r.uniform3i(i,n.x,n.y,n.z):3===n.length?r.uniform3i(i,n[0],n[1],n[2]):t._throwIncompatibleShaderError(e);break;case 35672:if(a)if(3===n[0].length){this._tmpArr.length=0;for(var m=0;m<n.length;++m)this._tmpArr.push(n[m][0]),this._tmpArr.push(n[m][1]),this._tmpArr.push(n[m][2]);r.uniform3iv(i,this._tmpArr)}else t._throwIncompatibleShaderError(e);else 3===n.length?r.uniform3i(i,n[0],n[1],n[2]):t._throwIncompatibleShaderError(e);break;case 35666:if(a)if(1===n.length)n[0]instanceof C.Vector4?r.uniform4f(i,n[0].x,n[0].y,n[0].z,n[0].w):4===n[0].length&&r.uniform4f(i,n[0][0],n[0][1],n[0][2],n[0][3]);else if(n[0]instanceof C.Vector4){this._tmpArr.length=0;for(var p=0;p<n.length;++p)this._tmpArr.push(n[p].x),this._tmpArr.push(n[p].y),this._tmpArr.push(n[p].z),this._tmpArr.push(n[p].w);r.uniform4fv(i,this._tmpArr)}else if(4===n[0].length){this._tmpArr.length=0;for(var g=0;g<n.length;++g)this._tmpArr.push(n[g][0]),this._tmpArr.push(n[g][1]),this._tmpArr.push(n[g][2]),this._tmpArr.push(n[g][3]);r.uniform4fv(i,this._tmpArr)}else t._throwIncompatibleShaderError(e);else n instanceof C.Vector4?r.uniform4f(i,n.x,n.y,n.z,n.w):4===n.length?r.uniform4f(i,n[0],n[1],n[2],n[3]):t._throwIncompatibleShaderError(e);break;case 35669:if(a)if(n[0]instanceof C.Vector4){this._tmpArr.length=0;for(var E=0;E<n.length;++E)this._tmpArr.push(n[E].x),this._tmpArr.push(n[E].y),this._tmpArr.push(n[E].z),this._tmpArr.push(n[E].w);r.uniform4iv(i,this._tmpArr)}else if(4===n[0].length){this._tmpArr.length=0;for(var v=0;v<n.length;++v)this._tmpArr.push(n[v][0]),this._tmpArr.push(n[v][1]),this._tmpArr.push(n[v][2]),this._tmpArr.push(n[v][3]);r.uniform4iv(i,this._tmpArr)}else t._throwIncompatibleShaderError(e);else n instanceof C.Vector4?r.uniform4i(i,n.x,n.y,n.z,n.w):4===n.length?r.uniform4i(i,n[0],n[1],n[2],n[3]):t._throwIncompatibleShaderError(e);break;case 35673:if(a)if(4===n[0].length){this._tmpArr.length=0;for(var b=0;b<n.length;++b)this._tmpArr.push(n[b][0]),this._tmpArr.push(n[b][1]),this._tmpArr.push(n[b][2]),this._tmpArr.push(n[b][3]);r.uniform4iv(i,this._tmpArr)}else t._throwIncompatibleShaderError(e);else 4===n.length?r.uniform4i(i,n[0],n[1],n[2],n[3]):t._throwIncompatibleShaderError(e);break;case 35675:throw new Error("unsupported uniform parameter type FLOAT_MAT3, sry");case 35676:if(a){var T=n.length;this._tmpMatArr=new Float32Array(16*T);for(var w=0;w<T;++w){var M=n[w];M.getAsFloat32Array?this._tmpMatArr.set(M.getAsFloat32Array(),16*w):this._tmpMatArr.set(M,16*w)}r.uniformMatrix4fv(i,!1,this._tmpMatArr)}else n.getAsFloat32Array?r.uniformMatrix4fv(i,!1,n.getAsFloat32Array()):r.uniformMatrix4fv(i,!1,n);break;case 35678:break;case 35680:break;default:throw new Error("unknown uniform parameter datatype!")}}},{key:"params",get:function(){return this._params}},{key:"textures",get:function(){return this._textures}},{key:"shaderProgram",get:function(){return this._shaderProgram}},{key:"isConfigurable",get:function(){return!0}},{key:"states",get:function(){return this._states}},{key:"paramAttributes",set:function(e){this._paramAttributes=e}},{key:"vrMonoOverride",get:function(){return this._vrMonoOverride},set:function(e){this._vrMonoOverride=e}}]),t}(I.Resource);k._shaderProgramCache=new a.default,k._shaderProgramMap=new a.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.VrUniform=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(7); t.VrUniform=function(){function e(t){(0,a.default)(this,e),this._left=l.Util.getParam(t,"left"),this._right=l.Util.getParam(t,"right")}return(0,s.default)(e,[{key:"dtor",value:function(){this._left&&this._left.dtor&&this._left.dtor(),this._right&&this._right.dtor&&this._right.dtor()}},{key:"left",get:function(){return this._left},set:function(e){this._left=e}},{key:"right",get:function(){return this._right},set:function(e){this._right=e}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.WakeLock=void 0;var i=n(1),a=r(i),o=n(2),s=r(o);t.WakeLock=function(){function e(){(0,a.default)(this,e)}return(0,s.default)(e,[{key:"request",value:function(){}},{key:"release",value:function(){}}]),e}()},,,,function(e,t,n){e.exports={default:n(568),__esModule:!0}},function(e,t,n){e.exports={default:n(569),__esModule:!0}},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(556),a=r(i),o=n(117),s=r(o);t.default=function(){function e(e,t){var n=[],r=!0,i=!1,a=void 0;try{for(var o,l=(0,s.default)(e);!(r=(o=l.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){i=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(i)throw a}}return n}return function(t,n){if(Array.isArray(t))return t;if((0,a.default)(Object(t)))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(e,t,n){var r=n(67),i=n(201),a=n(88),o=n(155),s=n(587);e.exports=function(e,t){var n=1==e,l=2==e,u=3==e,d=4==e,c=6==e,f=5==e||c,h=t||s;return function(t,s,_){for(var A,m,p=a(t),g=i(p),E=r(s,_,3),v=o(g.length),b=0,S=n?h(t,v):l?h(t,0):void 0;v>b;b++)if((f||b in g)&&(A=g[b],m=E(A,b,p),e))if(n)S[b]=m;else if(m)switch(e){case 3:return!0;case 5:return A;case 6:return b;case 2:S.push(A)}else if(d)return!1;return c?-1:u||d?d:S}}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(42),i=n(35).document,a=r(i)&&r(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(119);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";var r=n(120),i=n(30),a=n(206),o=n(80),s=n(101),l=n(591),u=n(124),d=n(318),c=n(37)("iterator"),f=!([].keys&&"next"in[].keys()),h="@@iterator",_="keys",A="values",m=function(){return this};e.exports=function(e,t,n,p,g,E,v){l(n,t,p);var b,S,T,x=function(e){if(!f&&e in M)return M[e];switch(e){case _:return function(){return new n(this,e)};case A:return function(){return new n(this,e)}}return function(){return new n(this,e)}},y=t+" Iterator",C=g==A,w=!1,M=e.prototype,D=M[c]||M[h]||g&&M[g],P=D||x(g),R=g?C?x("entries"):P:void 0,I="Array"==t?M.entries||D:D;if(I&&(T=d(I.call(new e)),T!==Object.prototype&&T.next&&(u(T,y,!0),r||"function"==typeof T[c]||o(T,c,m))),C&&D&&D.name!==A&&(w=!0,P=function(){return D.call(this)}),r&&!v||!f&&!w&&M[c]||o(M,c,P),s[t]=P,s[y]=m,g)if(b={values:C?P:x(A),keys:E?P:x(_),entries:R},v)for(S in b)S in M||a(M,S,b[S]);else i(i.P+i.F*(f||w),t,b);return b}},function(e,t,n){"use strict";function r(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=i(t),this.reject=i(n)}var i=n(118);e.exports.f=function(e){return new r(e)}},function(e,t,n){var r=n(122),i=n(123),a=n(81),o=n(211),s=n(79),l=n(309),u=Object.getOwnPropertyDescriptor;t.f=n(47)?u:function(e,t){if(e=a(e),t=o(t,!0),l)try{return u(e,t)}catch(e){}if(s(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){e.exports=n(80)},function(e,t,n){var r=n(208)("keys"),i=n(156);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t,n){var r=n(16),i=n(35),a="__core-js_shared__",o=i[a]||(i[a]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(120)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){var r,i,a,o=n(67),s=n(590),l=n(308),u=n(199),d=n(35),c=d.process,f=d.setImmediate,h=d.clearImmediate,_=d.MessageChannel,A=d.Dispatch,m=0,p={},g="onreadystatechange",E=function(){var e=+this;if(p.hasOwnProperty(e)){var t=p[e];delete p[e],t()}},v=function(e){E.call(e.data)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return p[++m]=function(){s("function"==typeof e?e:Function(e),t)},r(m),m},h=function(e){delete p[e]},"process"==n(119)(c)?r=function(e){c.nextTick(o(E,e,1))}:A&&A.now?r=function(e){A.now(o(E,e,1))}:_?(i=new _,a=i.port2,i.port1.onmessage=v,r=o(a.postMessage,a,1)):d.addEventListener&&"function"==typeof postMessage&&!d.importScripts?(r=function(e){d.postMessage(e+"","*")},d.addEventListener("message",v,!1)):r=g in u("script")?function(e){l.appendChild(u("script"))[g]=function(){l.removeChild(this),E.call(e)}}:function(e){setTimeout(o(E,e,1),0)}),e.exports={set:f,clear:h}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(42);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){var r=n(35),i=n(16),a=n(120),o=n(213),s=n(53).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=a?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:o.f(e)})}},function(e,t,n){t.f=n(37)},function(e,t,n){var r=n(148),i=n(37)("iterator"),a=n(101);e.exports=n(16).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||a[r(e)]}},function(e,t,n){var r=n(68),i=n(63),a=n(55),o=Object.defineProperty,s={},l=function(e){throw e};e.exports=function(e,t){if(a(s,e))return s[e];t||(t={});var n=[][e],u=!!a(t,"ACCESSORS")&&t.ACCESSORS,d=a(t,0)?t[0]:l,c=a(t,1)?t[1]:void 0;return s[e]=!!n&&!i(function(){if(u&&!r)return!0;var e={length:-1};u?o(e,1,{enumerable:!0,get:l}):e[1]=1,n.call(e,d,c)})}},function(e,t,n){var r=n(56),i=r("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[i]=!1,"/./"[e](t)}catch(e){}}return!1}},function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){var r=n(63),i=n(158),a="".split;e.exports=r(function(){return!Object("z").propertyIsEnumerable(0)})?function(e){return"String"==i(e)?a.call(e,""):Object(e)}:Object},function(e,t,n){var r=n(158);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(63);e.exports=!!Object.getOwnPropertySymbols&&!r(function(){return!String(Symbol())})},function(e,t,n){var r=n(661);e.exports=function(e){if(r(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){var r=n(339),i=n(217),a=i.concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,a)}},205,function(e,t,n){var r=n(339),i=n(217);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!n.call({1:2},1);t.f=i?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},function(e,t,n){var r=n(38),i=n(126),a=n(55),o=n(227),s=n(336),l=n(337),u=l.get,d=l.enforce,c=String(String).split("String");(e.exports=function(e,t,n,s){var l=!!s&&!!s.unsafe,u=!!s&&!!s.enumerable,f=!!s&&!!s.noTargetGet;return"function"==typeof n&&("string"!=typeof t||a(n,"name")||i(n,"name",t),d(n).source=c.join("string"==typeof t?t:"")),e===r?void(u?e[t]=n:o(t,n)):(l?!f&&e[t]&&(u=!0):delete e[t],void(u?e[t]=n:i(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&u(this).source||s(this)})},function(e,t,n){var r=n(38),i=n(126);e.exports=function(e,t){try{i(r,e,t)}catch(n){r[e]=t}return t}},function(e,t,n){var r=n(70).f,i=n(55),a=n(56),o=a("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){var r=n(230),i=n(233),a=r("keys");e.exports=function(e){return a[e]||(a[e]=i(e))}},function(e,t,n){var r=n(162),i=n(340);(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.5",mode:r?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(56),i=r("toStringTag"),a={};a[i]="z",e.exports="[object z]"===String(a)},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++n+r).toString(36)}},function(e,t){(function(t){function n(e,t,n,r){var i=-1,a=e?e.length:0;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}function r(e){return e.split("")}function i(e){return e.match(x)||[]}function a(e){return function(t){return null==e?void 0:e[t]}}function o(e){return he.test(e)}function s(e){return _e.test(e)}function l(e){return o(e)?u(e):r(e)}function u(e){return e.match(ce)||[]}function d(e){return e.match(fe)||[]}function c(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r<i;)a[r]=e[r+t];return a}function f(e){if("string"==typeof e)return e;if(p(e))return xe?xe.call(e):"";var t=e+"";return"0"==t&&1/e==-S?"-0":t}function h(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:c(e,t,n)}function _(e){return function(t){t=g(t);var n=o(t)?l(t):void 0,r=n?n[0]:t.charAt(0),i=n?h(n,1).join(""):t.slice(1);return r[e]()+i}}function A(e){return function(t){return n(b(v(t).replace(ue,"")),e,"")}}function m(e){return!!e&&"object"==typeof e}function p(e){return"symbol"==typeof e||m(e)&&be.call(e)==T}function g(e){return null==e?"":f(e)}function E(e){return Ce(g(e).toLowerCase())}function v(e){return e=g(e),e&&e.replace(y,Ee).replace(de,"")}function b(e,t,n){return e=g(e),t=n?void 0:t,void 0===t?s(e)?d(e):i(e):e.match(t)||[]}var S=1/0,T="[object Symbol]",x=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,y=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,C="\\ud800-\\udfff",w="\\u0300-\\u036f\\ufe20-\\ufe23",M="\\u20d0-\\u20f0",D="\\u2700-\\u27bf",P="a-z\\xdf-\\xf6\\xf8-\\xff",R="\\xac\\xb1\\xd7\\xf7",I="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",L="\\u2000-\\u206f",O=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",N="A-Z\\xc0-\\xd6\\xd8-\\xde",B="\\ufe0e\\ufe0f",F=R+I+L+O,k="['’]",U="["+C+"]",V="["+F+"]",G="["+w+M+"]",H="\\d+",z="["+D+"]",Q="["+P+"]",X="[^"+C+F+H+D+P+N+"]",W="\\ud83c[\\udffb-\\udfff]",j="(?:"+G+"|"+W+")",Y="[^"+C+"]",q="(?:\\ud83c[\\udde6-\\uddff]){2}",Z="[\\ud800-\\udbff][\\udc00-\\udfff]",K="["+N+"]",J="\\u200d",$="(?:"+Q+"|"+X+")",ee="(?:"+K+"|"+X+")",te="(?:"+k+"(?:d|ll|m|re|s|t|ve))?",ne="(?:"+k+"(?:D|LL|M|RE|S|T|VE))?",re=j+"?",ie="["+B+"]?",ae="(?:"+J+"(?:"+[Y,q,Z].join("|")+")"+ie+re+")*",oe=ie+re+ae,se="(?:"+[z,q,Z].join("|")+")"+oe,le="(?:"+[Y+G+"?",G,q,Z,U].join("|")+")",ue=RegExp(k,"g"),de=RegExp(G,"g"),ce=RegExp(W+"(?="+W+")|"+le+oe,"g"),fe=RegExp([K+"?"+Q+"+"+te+"(?="+[V,K,"$"].join("|")+")",ee+"+"+ne+"(?="+[V,K+$,"$"].join("|")+")",K+"?"+$+"+"+te,K+"+"+ne,H,se].join("|"),"g"),he=RegExp("["+J+C+w+M+B+"]"),_e=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ae={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"ss"},me="object"==typeof t&&t&&t.Object===Object&&t,pe="object"==typeof self&&self&&self.Object===Object&&self,ge=me||pe||Function("return this")(),Ee=a(Ae),ve=Object.prototype,be=ve.toString,Se=ge.Symbol,Te=Se?Se.prototype:void 0,xe=Te?Te.toString:void 0,ye=A(function(e,t,n){return t=t.toLowerCase(),e+(n?E(t):t)}),Ce=_("toUpperCase");e.exports=ye}).call(t,function(){return this}())},,,,,,function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTEzIiBoZWlnaHQ9IjkyIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTEzLjQgOTIuMiI+PHN0eWxlPi5zdDB7ZmlsbDp1cmwoI1NWR0lEXzFfKX0uc3Qxe2ZpbGw6dXJsKCNTVkdJRF8yXyl9LnN0MntmaWxsOnVybCgjU1ZHSURfM18pfTwvc3R5bGU+PGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIzOC43MDMiIHkxPSI0Ny45IiB4Mj0iMTQ2LjIwOSIgeTI9IjQ3LjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIC4xMzI3IC0xIC0zOS45ODMgOTQpIj48c3RvcCBvZmZzZXQ9Ii4xIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04MS44IDEwaC0xOEwwIDgyLjJoNzIuMmMxOS45IDAgMzguMi0xNi4yIDQwLjktMzYuMVMxMDEuNyAxMCA4MS44IDEweiIvPjxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTA5Ljc5NiIgeTE9IjI0Ljk0NyIgeDI9IjU1LjY0IiB5Mj0iOTYuOTI5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAuMTMyNyAtMSAtMzkuOTgzIDk0KSI+PHN0b3Agb2Zmc2V0PSIuMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNTQuMSA4Mi4yTDkuNiAxMGg1NC4xeiIvPjxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfM18iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNTMuODM0IiB5MT0iMTEuNDY5IiB4Mj0iMzEuODg4IiB5Mj0iNDcuODM3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgOTQpIj48c3RvcCBvZmZzZXQ9Ii4xIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik02My43IDEwTDAgODIuMmg1NC4xeiIvPjwvc3ZnPg=="},function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTExLjcgNy41bDEyLjcgOC4xYy40LjMuNC45IDAgMS4ybC0xMi43IDguMWMtLjUuMy0xLjEgMC0xLjEtLjZWOC4xYy4xLS41LjctLjkgMS4xLS42eiIvPjwvc3ZnPg=="},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},,function(e,t,n){"use strict";e.exports=n(388)},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8CinemaElement=void 0;var a=n(9),o=i(a),s=n(4),l=i(s),u=n(1),d=i(u),c=n(2),f=i(c),h=n(6),_=i(h),A=n(8),m=i(A),p=n(5),g=i(p),E=n(15),v=r(E),b=n(11),S=n(108);t.Dl8CinemaElement=function(e){function t(){return(0,d.default)(this,t),(0,_.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,f.default)(t,[{key:"$getContentBadge",value:function(){return{name:"Cinema",iconClass:"iconCinema"}}},{key:"$createContent",value:function(){var e={};b.Dl8Element.checkMandatoryAttributes(this,["room-format"]),e=b.Dl8Element.assignContentDefault(e,this,"screen-width",2.5,parseFloat),e=b.Dl8Element.assignContentDefault(e,this,"screen-height",1.5,parseFloat),e=b.Dl8Element.assignContentDefault(e,this,"screen-distance",2,parseFloat),e=b.Dl8Element.assignContentDefault(e,this,"screen-x-offset",0,parseFloat),e=b.Dl8Element.assignContentDefault(e,this,"screen-y-offset",0,parseFloat),e=b.Dl8Element.assignContentBoolean(e,this,"force-show-cinema");var n=(0,m.default)(t.prototype.__proto__||(0,l.default)(t.prototype),"$createContent",this).call(this);if(n.format!==v.CONTENT_MODE_MONO_FLAT&&n.format!==v.CONTENT_MODE_STEREO_FLAT_LR&&n.format!==v.CONTENT_MODE_STEREO_FLAT_TB&&n.format!==v.CONTENT_MODE_STEREO_FLAT_LR_SQUARE&&n.format!==v.CONTENT_MODE_STEREO_FLAT_TB_SQUARE)throw new Error("Unsupported video format for dl8-cinema detected.");return(0,o.default)(n,{dl8Cinema:!0,type:v.CONTENT_TYPE_VIDEO},e)}}],[{key:"registerElement",value:function(){b.Dl8Element._registerElement("dl8-cinema",t)}}]),t}(S.Dl8VideoElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubGridElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(248),v=n(15);t.Dl8HubGridElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignContentDefault(e,this,"title",""),e=g.Dl8Element.assignContent(e,this,"filter"),e=g.Dl8Element.assignContent(e,this,"sorter"),e=g.Dl8Element.assignContentDefault(e,this,"sorter-list",[],g.Dl8Element.parseAttrJSONArray,g.Dl8Element.validate(Array.isArray,"sorter-list must be of array type")),e=g.Dl8Element.assignContentDefault(e,this,"filter-list",[],g.Dl8Element.parseAttrJSONArray,g.Dl8Element.validate(Array.isArray,"filter-list must be of array type")),e=g.Dl8Element.assignContentDefault(e,this,"scroll-mode",v.SCROLL_MODE_HORIZONTAL),e=g.Dl8Element.assignContentBoolean(e,this,"show-no-cover-text"),e=g.Dl8Element.assignContentDefault(e,this,"width",1,parseFloat,g.Dl8Element.validate(g.Dl8Element.validIfNumberBetween(.1,10),"width must be between 0.5 and 4 meters.")),e.width=Math.max(e.width,.5),e=g.Dl8Element.assignContentDefault(e,this,"columns",3,function(e){return parseInt(e,10)},g.Dl8Element.validate(g.Dl8Element.validIfNumberBetween(1,24),"columns must be between 1 and 24")),e=g.Dl8Element.assignContentDefault(e,this,"rows",2,function(e){return parseInt(e,10)},g.Dl8Element.validate(g.Dl8Element.validIfNumberBetween(1,24),"rows must be between 1 and 24.")),e=g.Dl8Element.assignContentDefault(e,this,"tile-padding-x",.01,parseFloat,g.Dl8Element.validate(g.Dl8Element.validIfNumberGreaterOrEqual(0),"tile-padding-x must be greater of equal zero")),e=g.Dl8Element.assignContentDefault(e,this,"tile-padding-y",.01,parseFloat,g.Dl8Element.validate(g.Dl8Element.validIfNumberGreaterOrEqual(0),"tile-padding-y must be greater of equal zero")),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-grid",t)}}]),t}(E.Dl8HubViewElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubMenuElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(248),v=n(408);t.Dl8HubMenuElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-hub-menu-item"]}},{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-menu-item"),e=g.Dl8Element.assignContentDefault(e,this,"title",""),e=g.Dl8Element.assignContent(e,this,"default-menu-item"),e=g.Dl8Element.assignContentDefault(e,this,"rows",10,function(e){return parseInt(e,10)},g.Dl8Element.validate(g.Dl8Element.validIfNumberBetween(2,12),"rows must be between 2 and 12.")),e=g.Dl8Element.assignContentDefault(e,this,"width",1,parseFloat,g.Dl8Element.validate(g.Dl8Element.validIfNumberBetween(.3,1),"width must be between 0.5 and 1 meters.")),e.width=Math.max(e.width,.5),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){v.Dl8HubMenuItemElement.registerElement(),g.Dl8Element._registerElement("dl8-hub-menu",t)}}]),t}(E.Dl8HubViewElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubViewElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8HubViewElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignContentDefault(e,this,"view-id",g.Dl8Element.getGUID()),e=g.Dl8Element.assignContentDefault(e,this,"width",1,parseFloat,g.Dl8Element.validate(g.Dl8Element.validIfNumberGreater(0),"width must be non-negative and greater than 0.")),e=g.Dl8Element.assignContentDefault(e,this,"height",1,parseFloat,g.Dl8Element.validate(g.Dl8Element.validIfNumberGreater(0),"height must be non-negative and greater than 0.")),e=g.Dl8Element.assignContentDefault(e,this,"position-x",0,parseFloat),e=g.Dl8Element.assignContentDefault(e,this,"position-y",0,parseFloat),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8IbrElement=void 0;var a=n(9),o=i(a),s=n(4),l=i(s),u=n(1),d=i(u),c=n(2),f=i(c),h=n(6),_=i(h),A=n(8),m=i(A),p=n(5),g=i(p),E=n(15),v=r(E),b=n(93),S=n(11);t.Dl8IbrElement=function(e){function t(){return(0,d.default)(this,t),(0,_.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,f.default)(t,[{key:"$getContentBadge",value:function(){return{name:"3D Image",iconClass:"iconIbr"}}},{key:"$createContent",value:function(){var e={};return S.Dl8Element.checkMandatoryAttributes(this,["src","src-depth"]),e=S.Dl8Element.assignContent(e,this,"src"),e=S.Dl8Element.assignContent(e,this,"src-depth"),e=S.Dl8Element.assignContent(e,this,"src-albedo"),e=S.Dl8Element.assignContent(e,this,"src-roughness"),e=S.Dl8Element.assignContent(e,this,"src-specular"),e=S.Dl8Element.assignContent(e,this,"src-ao"),e=S.Dl8Element.assignContent(e,this,"src-opacity"),e=S.Dl8Element.assignContent(e,this,"src-normal"),e=S.Dl8Element.assignContent(e,this,"near-far",JSON.parse),e=S.Dl8Element.assignContent(e,this,"format"),(0,o.default)((0,m.default)(t.prototype.__proto__||(0,l.default)(t.prototype),"$createContent",this).call(this),e,{type:v.CONTENT_TYPE_IBR})}}],[{key:"registerElement",value:function(){S.Dl8Element._registerElement("dl8-ibr",t)}}]),t}(b.Dl8EmbedElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8ImageMediaElement=void 0;var i=n(9),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(61),c=n(11);t.Dl8ImageMediaElement=function(){function e(){(0,s.default)(this,e)}return(0,u.default)(e,[{key:"$createMediaContent",value:function(){var e={};return this.getAttribute("src-left")&&this.getAttribute("src-right")?e=(0,a.default)(e,{eyesPreSeparated:!0,srcLeft:this.getAttribute("src-left"),srcRight:this.getAttribute("src-right")}):this.getAttribute("src-left")||this.getAttribute("src-right")?c.Dl8Element.checkMandatoryAttributes(this,["src-left","src-right"]):(c.Dl8Element.checkMandatoryAttributes(this,["src"]),e=c.Dl8Element.assignContent(e,this,"src")),c.Dl8Element.checkMandatoryAttributes(this,["format"]),e=c.Dl8Element.assignContent(e,this,"format"),e=(0,a.default)(e,(0,d.getCustomFormat)(e)),e=c.Dl8Element.assignContent(e,this,"packed-slice-format"),e=c.Dl8Element.assignContent(e,this,"packed-slice-cubemap-order",JSON.parse)}}]),e}()},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8ImgElement=void 0;var a=n(9),o=i(a),s=n(4),l=i(s),u=n(1),d=i(u),c=n(2),f=i(c),h=n(6),_=i(h),A=n(8),m=i(A),p=n(5),g=i(p),E=n(15),v=r(E),b=n(93),S=n(250),T=n(11),x=n(19),y=i(x);t.Dl8ImgElement=function(e){function t(){return(0,d.default)(this,t),(0,_.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,f.default)(t,[{key:"$getContentBadge",value:function(){return{name:"Image",iconClass:"iconImage"}}},{key:"$createContent",value:function(){return(0,o.default)((0,m.default)(t.prototype.__proto__||(0,l.default)(t.prototype),"$createContent",this).call(this),this.$createMediaContent(),{type:v.CONTENT_TYPE_IMAGE})}}],[{key:"registerElement",value:function(){T.Dl8Element._registerElement("dl8-img",t)}}]),t}((0,y.default)(b.Dl8EmbedElement,S.Dl8ImageMediaElement))},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8LiveVideoElement=void 0;var a=n(9),o=i(a),s=n(4),l=i(s),u=n(1),d=i(u),c=n(2),f=i(c),h=n(6),_=i(h),A=n(8),m=i(A),p=n(5),g=i(p),E=n(15),v=r(E),b=n(11),S=n(108);t.Dl8LiveVideoElement=function(e){function t(){return(0,d.default)(this,t),(0,_.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,f.default)(t,[{key:"$getContentBadge",value:function(){return{name:"Live",iconClass:"iconLive"}}},{key:"$tryToStart",value:function(){this.hasAttribute("not-pausable")||(0,m.default)(t.prototype.__proto__||(0,l.default)(t.prototype),"$tryToStart",this).call(this)}},{key:"$createContent",value:function(){var e={};e=b.Dl8Element.assignContentBoolean(e,this,"seekable"),e=b.Dl8Element.assignContentBoolean(e,this,"not-pausable");var n=(0,m.default)(t.prototype.__proto__||(0,l.default)(t.prototype),"$createContent",this).call(this);return(0,o.default)(n,{dl8LiveVideo:!0,type:v.CONTENT_TYPE_VIDEO},e)}}],[{key:"registerElement",value:function(){b.Dl8Element._registerElement("dl8-live-video",t)}}]),t}(S.Dl8VideoElement)},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8ModelElement=void 0;var a=n(9),o=i(a),s=n(4),l=i(s),u=n(1),d=i(u),c=n(2),f=i(c),h=n(6),_=i(h),A=n(8),m=i(A),p=n(5),g=i(p),E=n(15),v=r(E),b=n(11),S=n(93),T=n(414),x=n(416),y=n(418),C=n(415),w=n(417),M=n(413);t.Dl8ModelElement=function(e){function t(){return(0,d.default)(this,t),(0,_.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,f.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-model-directional-light","dl8-model-point-light","dl8-model-spot-light","dl8-model-ibl","dl8-model-skybox","dl8-model-camera"]}},{key:"$getContentBadge",value:function(){return{name:"Model",iconClass:"iconModel"}}},{key:"$createContent",value:function(){var e={};return b.Dl8Element.checkMandatoryAttributes(this,["src"]),e=b.Dl8Element.assignContent(e,this,"src"),e=b.Dl8Element.assignContentDefault(e,this,"position",[0,0,0],JSON.parse),e=b.Dl8Element.assignContentDefault(e,this,"scale",[1,1,1],JSON.parse),e=b.Dl8Element.assignContentDefault(e,this,"rotation",[0,0,0,1],JSON.parse),e=b.Dl8Element.assignChildrenContent(e,this,"dl8-model-directional-light"),e=b.Dl8Element.assignChildrenContent(e,this,"dl8-model-point-light"),e=b.Dl8Element.assignChildrenContent(e,this,"dl8-model-spot-light"),e=b.Dl8Element.assignChildrenContent(e,this,"dl8-model-ibl"),e=b.Dl8Element.assignChildrenContent(e,this,"dl8-model-skybox"),e=b.Dl8Element.assignChildrenContent(e,this,"dl8-model-camera"),(0,o.default)((0,m.default)(t.prototype.__proto__||(0,l.default)(t.prototype),"$createContent",this).call(this),e,{type:v.CONTENT_TYPE_MODEL})}}],[{key:"registerElement",value:function(){T.Dl8ModelDirectionalLight.registerElement(),x.Dl8ModelPointLight.registerElement(),y.Dl8ModelSpotLight.registerElement(),C.Dl8ModelIbl.registerElement(),w.Dl8ModelSkybox.registerElement(),M.Dl8ModelCamera.registerElement(),b.Dl8Element._registerElement("dl8-model",t)}}]),t}(S.Dl8EmbedElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8RecommendationElement=void 0;var i=n(46),a=r(i),o=n(9),s=r(o),l=n(4),u=r(l),d=n(1),c=r(d),f=n(2),h=r(f),_=n(6),A=r(_),m=n(8),p=r(m),g=n(5),E=r(g),v=n(11),b=n(170),S=t.Dl8RecommendationElement=function(e){function t(){return(0,c.default)(this,t),(0,A.default)(this,(t.__proto__||(0,u.default)(t)).apply(this,arguments))}return(0,E.default)(t,e),(0,h.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-video","dl8-external-content","dl8-live-video","dl8-cinema","dl8-tour","dl8-hub"]}},{key:"$createContent",value:function(){var e={};return e=v.Dl8Element.assignContentDefault(e,this,"mode","dynamic"),"dynamic"===e.mode&&(v.Dl8Element.checkMandatoryAttributes(this,["on-request-recommendation"]),e=v.Dl8Element.assignContentCallback(e,this,"on-request-recommendation"),e=v.Dl8Element.assignContentCallback(e,this,"on-select-recommendation")),e=v.Dl8Element.assignContent(e,this,"request-id"),e=v.Dl8Element.assignContent(e,this,"title"),e=v.Dl8Element.assignContentDefault(e,this,"count",40),e=v.Dl8Element.assignContentBoolean(e,this,"autoplay"),e=v.Dl8Element.assignContentDefault(e,this,"autoplay-delay",3,parseFloat),e=v.Dl8Element.assignContentDefault(e,this,"autoplay-countdown-delay",2,parseFloat),e=v.Dl8Element.assignContentBoolean(e,this,"hide-during-playback"),e=v.Dl8Element.assignContentBoolean(e,this,"hide-after-playback"),e=v.Dl8Element.assignContentBoolean(e,this,"show-next-button"),e=v.Dl8Element.assignContentBoolean(e,this,"show-prev-button"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-video"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-cinema"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-live-video"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-external-content"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-tour"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-hub"),(0,s.default)((0,p.default)(t.prototype.__proto__||(0,u.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){v.Dl8Element._registerElement("dl8-recommendation",t), b.Dl8ExternalContentElement.registerElement()}}]),t}(v.Dl8Element);S.SUPPORTED_CONTENT_TAG_NAMES=new a.default(["dl8-video","dl8-external-content","dl8-live-video","dl8-cinema","dl8-tour","dl8-hub"])},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TourContentPortalElement=void 0;var i=n(46),a=r(i),o=n(9),s=r(o),l=n(4),u=r(l),d=n(1),c=r(d),f=n(2),h=r(f),_=n(6),A=r(_),m=n(8),p=r(m),g=n(5),E=r(g),v=n(11),b=n(175),S=n(170),T=n(19),x=r(T),y=t.Dl8TourContentPortalElement=function(e){function t(){return(0,c.default)(this,t),(0,A.default)(this,(t.__proto__||(0,u.default)(t)).apply(this,arguments))}return(0,E.default)(t,e),(0,h.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-video","dl8-external-content","dl8-live-video","dl8-cinema","dl8-tour","dl8-hub"]}},{key:"$createContent",value:function(){var e={};return e=v.Dl8Element.assignContentDefault(e,this,"mode","dynamic"),"dynamic"===e.mode&&(v.Dl8Element.checkMandatoryAttributes(this,["on-request-content"]),e=v.Dl8Element.assignContentCallback(e,this,"on-request-content")),e=v.Dl8Element.assignContent(e,this,"request-id"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-video"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-cinema"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-live-video"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-external-content"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-tour"),e=v.Dl8Element.assignChildrenContent(e,this,"dl8-hub"),(0,s.default)((0,p.default)(t.prototype.__proto__||(0,u.default)(t.prototype),"$createContent",this).call(this),this.$createBaseContent(),e)}}],[{key:"registerElement",value:function(){v.Dl8Element._registerElement("dl8-tour-content-portal",t),S.Dl8ExternalContentElement.registerElement()}}]),t}((0,x.default)(v.Dl8Element,b.Dl8TourHotspotBaseElement));y.SUPPORTED_CONTENT_TAG_NAMES=new a.default(["dl8-video","dl8-external-content","dl8-live-video","dl8-cinema","dl8-tour","dl8-hub"])},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TourElement=void 0;var a=n(9),o=i(a),s=n(4),l=i(s),u=n(1),d=i(u),c=n(2),f=i(c),h=n(6),_=i(h),A=n(8),m=i(A),p=n(5),g=i(p),E=n(15),v=r(E),b=n(11),S=n(93),T=n(425);t.Dl8TourElement=function(e){function t(){return(0,d.default)(this,t),(0,_.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,f.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-tour-img"]}},{key:"$getContentBadge",value:function(){return{name:"Tour",iconClass:"iconTour"}}},{key:"$createContent",value:function(){var e={};return e=b.Dl8Element.assignContent(e,this,"start-probe-id"),e=b.Dl8Element.assignContentDefault(e,this,"probe-transition",v.PROBE_TRANSITION_BLINK),e=b.Dl8Element.assignChildrenContent(e,this,"dl8-tour-img"),(0,o.default)((0,m.default)(t.prototype.__proto__||(0,l.default)(t.prototype),"$createContent",this).call(this),e,{type:v.CONTENT_TYPE_TOUR})}}],[{key:"registerElement",value:function(){T.Dl8TourImgElement.registerElement(),b.Dl8Element._registerElement("dl8-tour",t)}}]),t}(S.Dl8EmbedElement)},,,function(e,t,n){/* object-assign (c) Sindre Sorhus @license MIT */ "use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function a(){try{if(!c.default)return!1;var e=new String("abc");if(e[5]="de","5"===(0,u.default)(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=(0,u.default)(t).map(function(e){return t[e]});if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(e){i[e]=e}),"abcdefghijklmnopqrst"===(0,s.default)((0,c.default)({},i)).join("")}catch(e){return!1}}var o=n(85),s=r(o),l=n(302),u=r(l),d=n(9),c=r(d),f=n(303),h=r(f),_=h.default,A=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;e.exports=a()?c.default:function(e,t){for(var n,r,a=i(e),o=1;o<arguments.length;o++){n=Object(arguments[o]);for(var s in n)A.call(n,s)&&(a[s]=n[s]);if(_){r=_(n);for(var l=0;l<r.length;l++)m.call(n,r[l])&&(a[r[l]]=n[r[l]])}}return a}},function(e,t,n){"use strict";function r(e){var t=e||[],n={js:t.indexOf("js")>=0,wasm:t.indexOf("wasm")>=0};a.call(this,n),this.features={js:n.js,wasm:n.wasm&&this.has_wasm},this.use(o),this.use(s)}var i=n(434),a=n(435),o=n(438),s=n(446);i(r,a),r.prototype.resizeAndUnsharp=function(e,t){var n=this.resize(e,t);return e.unsharpAmount&&this.unsharp_mask(n,e.toWidth,e.toHeight,e.unsharpAmount,e.unsharpRadius,e.unsharpThreshold),n},e.exports=r},function(e,t){"use strict";function n(e){return e<0?0:e>255?255:e}function r(e,t,r,i,a,o){var s,l,u,d,c,f,h,_,A,m,p,g=0,E=0;for(A=0;A<i;A++){for(c=0,m=0;m<a;m++){for(f=o[c++],h=o[c++],_=g+4*f|0,s=l=u=d=0;h>0;h--)p=o[c++],d=d+p*e[_+3]|0,u=u+p*e[_+2]|0,l=l+p*e[_+1]|0,s=s+p*e[_]|0,_=_+4|0;t[E+3]=n(d+8192>>14),t[E+2]=n(u+8192>>14),t[E+1]=n(l+8192>>14),t[E]=n(s+8192>>14),E=E+4*i|0}E=4*(A+1)|0,g=(A+1)*r*4|0}}function i(e,t,r,i,a,o){var s,l,u,d,c,f,h,_,A,m,p,g=0,E=0;for(A=0;A<i;A++){for(c=0,m=0;m<a;m++){for(f=o[c++],h=o[c++],_=g+4*f|0,s=l=u=d=0;h>0;h--)p=o[c++],d=d+p*e[_+3]|0,u=u+p*e[_+2]|0,l=l+p*e[_+1]|0,s=s+p*e[_]|0,_=_+4|0;t[E+3]=n(d+8192>>14),t[E+2]=n(u+8192>>14),t[E+1]=n(l+8192>>14),t[E]=n(s+8192>>14),E=E+4*i|0}E=4*(A+1)|0,g=(A+1)*r*4|0}}e.exports={convolveHorizontally:r,convolveVertically:i}},function(e,t,n){"use strict";function r(e){return Math.round(e*((1<<a)-1))}var i=n(448),a=14;e.exports=function(e,t,n,a,o){var s,l,u,d,c,f,h,_,A,m,p,g,E,v,b,S,T,x=i[e].filter,y=1/a,C=Math.min(1,a),w=i[e].win/C,M=Math.floor(2*(w+1)),D=new Int16Array((M+2)*n),P=0,R=!D.subarray||!D.set;for(s=0;s<n;s++){for(l=(s+.5)*y+o,u=Math.max(0,Math.floor(l-w)),d=Math.min(t-1,Math.ceil(l+w)),c=d-u+1,f=new Float32Array(c),h=new Int16Array(c),_=0,A=u,m=0;A<=d;A++,m++)p=x((A+.5-l)*C),_+=p,f[m]=p;for(g=0,m=0;m<f.length;m++)E=f[m]/_,g+=E,h[m]=r(E);for(h[n>>1]+=r(1-g),v=0;v<h.length&&0===h[v];)v++;if(v<h.length){for(b=h.length-1;b>0&&0===h[b];)b--;if(S=u+v,T=b-v+1,D[P++]=S,D[P++]=T,R)for(m=v;m<=b;m++)D[P++]=h[m];else D.set(h.subarray(v,b+1),P),P+=T}else D[P++]=0,D[P++]=0}return D}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(85),a=r(i),o=n(45),s=r(o),l=arguments[3],u=arguments[4],d=arguments[5],c=s.default;e.exports=function(e,t){function n(e){p[e]=!0;for(var t in u[e][1]){var r=u[e][1][t];p[r]||n(r)}}for(var r,i=(0,a.default)(d),o=0,s=i.length;o<s;o++){var f=i[o],h=d[f].exports;if(h===e||h&&h.default===e){r=f;break}}if(!r){r=Math.floor(Math.pow(16,8)*Math.random()).toString(16);for(var _={},o=0,s=i.length;o<s;o++){var f=i[o];_[f]=f}u[r]=["function(require,module,exports){"+e+"(self); }",_]}var A=Math.floor(Math.pow(16,8)*Math.random()).toString(16),m={};m[r]=r,u[A]=["function(require,module,exports){var f = require("+c(r)+");(f.default ? f.default : f)(self);}",m];var p={};n(A);var g="("+l+")({"+(0,a.default)(p).map(function(e){return c(e)+":["+u[e][0]+","+c(u[e][1])+"]"}).join(",")+"},{},["+c(A)+"])",E=window.URL||window.webkitURL||window.mozURL||window.msURL,v=new Blob([g],{type:"text/javascript"});if(t&&t.bare)return v;var b=E.createObjectURL(v),S=new Worker(b);return S.objectURL=b,S}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.DebugOverdrawShader=void 0;var i=n(1),a=r(i),o=n(739),s=r(o),l=n(810),u=r(l),d=n(809),c=r(d),f=t.DebugOverdrawShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.DegradationManager=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(6),c=r(d),f=n(5),h=r(f),_=n(179),A=t.DegradationManager=function(e){function t(e){(0,s.default)(this,t);var n=(0,c.default)(this,(t.__proto__||(0,a.default)(t)).call(this));return n._accumulatedDt=0,n._frameCount=0,n._enabled=!1,n._measureInterval=6,n._targetFramerate=n._defaultTargetFramerate=e.targetFramerate,n._maxDegradationLevel=10,n._degradationLevel=0,n}return(0,h.default)(t,e),(0,u.default)(t,[{key:"reset",value:function(){this._accumulatedDt=0,this._frameCount=0,this._targetFramerate=this._defaultTargetFramerate}},{key:"update",value:function(e){this._enabled&&(this._accumulatedDt+=e,++this._frameCount,this._accumulatedDt>this._measureInterval&&(this._frameCount/this._accumulatedDt<this._targetFramerate&&this._doDegrade(),this._accumulatedDt=0,this._frameCount=0))}},{key:"_doDegrade",value:function(){this._degradationLevel=Math.min(this._degradationLevel+1,this._maxDegradationLevel),this.$emitEvent(t.PERFORMANCE_DEGRADED,this._degradationLevel)}},{key:"degradationLevel",get:function(){return this._degradationLevel}},{key:"enabled",get:function(){return this._enabled},set:function(e){this._enabled=e}},{key:"targetFramerate",get:function(){return this._targetFramerate},set:function(e){this._targetFramerate=e}},{key:"measureInterval",get:function(){return this._measureInterval},set:function(e){this._measureInterval=e}}]),t}(_.EventListener);A.PERFORMANCE_DEGRADED="performanceDegraded"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ResourceManager=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(10),u=1073741824,d=0,c=[];t.ResourceManager=function(){function e(){(0,a.default)(this,e)}return(0,s.default)(e,null,[{key:"registerResource",value:function(e){c.indexOf(e)===-1&&c.push(e)}},{key:"unregisterResource",value:function(e){var t=0;(t=c.indexOf(e))!==-1&&c.splice(t,1)}},{key:"sendFreeRamRequest",value:function(){for(var e=0,t=c.length;e<t&&(c[e].onLowRam(),!(d<=u));++e);}},{key:"checkRamLimits",value:function(){d>u&&(l.Context.logger.error("limit of "+u+" bytes reached. sending free request"),e.sendFreeRamRequest())}},{key:"allocateBytesRam",value:function(t){d+=t,e.checkRamLimits()}},{key:"deallocateBytesRam",value:function(t){d-=t,e.checkRamLimits()}},{key:"RAM_LIMIT_BYTES",get:function(){return u},set:function(e){u=e}}]),e}()},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.MIN_TIMESTEP=.001,t.MAX_TIMESTEP=1},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ColorUtil=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(17),u=n(40),d=n(23),c=n(12),f={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};t.ColorUtil=function(){function e(){(0,a.default)(this,e)}return(0,s.default)(e,null,[{key:"rgb2hex",value:function(e){return 255*e.r<<16^255*e.g<<8^255*e.b<<0}},{key:"hexInt2rgb",value:function(e,t){return t=t||new u.ColorRGB,t.r=((16711680&e)>>>16)/255,t.g=((65280&e)>>>8)/255,t.b=((255&e)>>>0)/255,t}},{key:"rgb2hexString",value:function(t){var n=("000000"+e.rgb2hNex(t).toString(16)).slice(-6);return"#"+n}},{key:"hex2rgb",value:function(e,t){return t=t||new u.ColorRGB,e=e.split(""),t.r=parseInt(e[0]+e[e[3]?1:0],16)/255,t.g=parseInt(e[e[3]?2:1]+(e[3]||e[1]),16)/255,t.b=parseInt((e[4]||e[2])+(e[5]||e[2]),16)/255,t}},{key:"hexString2rgb",value:function(t,n){return n=n||new u.ColorRGB,e.hex2rgb(t.substring(1),n),n}},{key:"rgb2hsv",value:function(e,t){t=t||new c.Vector3,t.x=0,t.y=0,t.z=Math.max(e.r,e.g,e.b);var n=Math.min(e.r,e.g,e.b),r=t.z-n;if(0!==r){t.y=r/t.z;var i=(t.z-e.r)/r,a=(t.z-e.g)/r,o=(t.z-e.b)/r,s=i,u=a;i-=o,a-=s,o-=u,i+=2,a+=4,e.r>=t.z?t.x=o:e.g>=t.z?t.x=i:t.x=a,t.x=l.MathUtil.fract(t.x/6)}return t}},{key:"hsv2rgb",value:function(e,t){return t=t||new u.ColorRGB,t.r=l.MathUtil.clamp(Math.abs(6*e.x-3)-1,0,1),t.g=l.MathUtil.clamp(2-Math.abs(6*e.x-2),0,1),t.b=l.MathUtil.clamp(2-Math.abs(6*e.x-4),0,1),t.r=((t.r-1)*e.y+1)*e.z,t.g=((t.g-1)*e.y+1)*e.z,t.b=((t.b-1)*e.y+1)*e.z,t}},{key:"hue2rgb",value:function(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+6*(t-e)*(2/3-n):e}},{key:"hsl2rgb",value:function(t,n){n=n||new u.ColorRGB;var r=t.x,i=t.y,a=t.z;if(0===i)n.r=n.g=n.b=a;else{var o=a<=.5?a*(1+i):a+i-a*i,s=2*a-o;n.r=e.hue2rgb(s,o,r+1/3),n.g=e.hue2rgb(s,o,r),n.b=e.hue2rgb(s,o,r-1/3)}return n}},{key:"rgb2hsl",value:function(e,t){t=t||new c.Vector3;var n=e.r,r=e.g,i=e.b,a=Math.max(n,r,i),o=Math.min(n,r,i),s=void 0,l=void 0,u=(o+a)/2;if(o===a)s=0,l=0;else{var d=a-o;switch(l=u<=.5?d/(a+o):d/(2-a-o),a){case n:s=(r-i)/d+(r<i?6:0);break;case r:s=(i-n)/d+2;break;case i:s=(n-r)/d+4}s/=6}return t.x=s,t.y=l,t.z=u,t}},{key:"style2rgb",value:function(t,n){n=n||new u.ColorRGB;var r=void 0;return/^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.test(t)?(r=/^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.exec(t),n.r=Math.min(255,parseInt(r[1],10))/255,n.g=Math.min(255,parseInt(r[2],10))/255,n.b=Math.min(255,parseInt(r[3],10))/255,n):/^rgb\((\d+)%, ?(\d+)%, ?(\d+)%\)$/i.test(t)?(r=/^rgb\((\d+)%, ?(\d+)%, ?(\d+)%\)$/i.exec(t),n.r=Math.min(100,parseInt(r[1],10))/100,n.g=Math.min(100,parseInt(r[2],10))/100,n.b=Math.min(100,parseInt(r[3],10))/100,n):/^#([0-9a-f]{6})$/i.test(t)?(r=/^#([0-9a-f]{6})$/i.exec(t),e.hex2rgb(r[1],n),n):/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.test(t)?(r=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(t),e.hex2rgb(parseInt(r[1]+r[1]+r[2]+r[2]+r[3]+r[3],16),n),n):/^(\w+)$/i.test(t)&&e.COLORS[t]?(e.hexInt2rgb(e.COLORS[t],n),n):(n.copyFrom(u.ColorRGB.BLACK),n)}},{key:"rgb2Style",value:function(e){return"rgb("+(255*e.r|0)+","+(255*e.g|0)+","+(255*e.b|0)+")"}},{key:"style2rgba",value:function(e,t){t=t||new d.ColorRGBA;var n=void 0;return/^rgba\((\d+), ?(\d+), ?(\d+), ?((\d+)?(\.\d+)?)\)$/i.test(e)?(n=/^rgba\((\d+), ?(\d+), ?(\d+), ?((\d+)?(\.\d+)?)\)$/i.exec(e),t.r=Math.min(255,parseInt(n[1],10))/255,t.g=Math.min(255,parseInt(n[2],10))/255,t.b=Math.min(255,parseInt(n[3],10))/255,t.a=l.MathUtil.clamp(parseFloat(n[4]),0,1),t):/^rgba\((\d+)%, ?(\d+)%, ?(\d+)%, ?((\d+)?(\.\d+)?)\)$/i.test(e)?(n=/^rgba\((\d+)%, ?(\d+)%, ?(\d+)%, ?((\d+)?(\.\d+)?)\)$/i.exec(e),t.r=Math.min(255,parseInt(n[1],10))/100,t.g=Math.min(255,parseInt(n[2],10))/100,t.b=Math.min(255,parseInt(n[3],10))/100,t.a=l.MathUtil.clamp(parseFloat(n[4]),0,1),t):(t.copyFrom(d.ColorRGBA.BLACK),t)}},{key:"rgba2Style",value:function(e){return"rgba("+(255*e.r|0)+","+(255*e.g|0)+","+(255*e.b|0)+","+e.a+")"}},{key:"COLORS",get:function(){return f}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.AlphaState=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(18),A=n(7),m=n(10),p=n(23);t.AlphaState=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n.blendEnabled=A.Util.getParam(e,"blendEnabled",!0),n.blendFunc=A.Util.getParam(e,"blendFunc",[m.Context.gl.SRC_ALPHA,m.Context.gl.ONE_MINUS_SRC_ALPHA,m.Context.gl.ONE,m.Context.gl.ONE]),n.blendEquation=A.Util.getParam(e,"blendEquation",[m.Context.gl.FUNC_ADD]),n.blendColor=A.Util.getParam(e,"blendColor",new p.ColorRGBA(0,0,0,0)),n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"AlphaState",params:{blendEnabled:this.blendEnabled,blendFunc:this.blendFunc,blendEquation:this.blendEquation}}}}]),t}(_.Serializable)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CullState=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(18),A=n(7),m=n(10);t.CullState=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n.enabled=A.Util.getParam(e,"enabled",!0),n.cullFace=A.Util.getParam(e,"cullFace",m.Context.gl.BACK),n.frontFace=A.Util.getParam(e,"frontFace",m.Context.gl.CCW),n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"CullState",params:{cullFace:this.cullFace,frontFace:this.frontFace,enabled:this.enabled}}}}]),t}(_.Serializable)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Framebuffer=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(10),u=0,d=1;t.Framebuffer=function(){function e(t){(0,a.default)(this,e),this._id=null,this._type=null,this._created=!1,this._attachmentsNeedReplacement=!1,this._attachments=[]}return(0,s.default)(e,null,[{key:"RENDERBUFFER",get:function(){return u}},{key:"TEXTURE",get:function(){return d}}]),(0,s.default)(e,[{key:"attachTexture",value:function(t,n,r,i){if(this._isValidAttachment(t),r===l.Context.gl.TEXTURE_2D&&n.isCubeMap)throw new Error("cannot attach cubemap as 2d texture: check your texTarget.");for(var a=this._attachments.length,o=0;o<a;++o){var s=this._attachments[o];if(!s.replace&&s.attachment===t&&s.texLevel===i)return s.texture.texture!==n.texture?(s.replace=!0,this._attachmentsNeedReplacement=!0,void this._attachments.push({type:e.TEXTURE,attachment:t,texture:n,texTarget:r,texLevel:i})):void 0}this._attachments.push({type:e.TEXTURE,attachment:t,texture:n,texTarget:r,texLevel:i})}},{key:"attachRenderbuffer",value:function(t,n){this._isValidAttachment(t);for(var r=this._attachments.length,i=0;i<r;++i){var a=this._attachments[i];a.attachment===t&&(a.replace=!0,this._attachmentsNeedReplacement=!0)}this._attachments.push({type:e.RENDERBUFFER,attachment:t,renderbuffer:n,target:l.Context.gl.RENDERBUFFER})}},{key:"getAttachment",value:function(e){for(var t=this._attachments.length,n=0;n<t;++n){var r=this._attachments[n];if(r.attachment===e&&!r.replace)return r}}},{key:"enable",value:function(){this._created?this._attachmentsNeedReplacement?(l.Context.gl.bindFramebuffer(l.Context.gl.FRAMEBUFFER,this._id),this._createAttachments()):l.Context.gl.bindFramebuffer(l.Context.gl.FRAMEBUFFER,this._id):(this._id=l.Context.gl.createFramebuffer(),l.Context.gl.bindFramebuffer(l.Context.gl.FRAMEBUFFER,this._id),this._createAttachments(),this._checkAttachmentStatus(),this._checkFramebuffer(),this._created=!0,this._attachmentsNeedReplacement=!1)}},{key:"disable",value:function(){this._updateMipmapsIfNeeded(),l.Context.gl.bindFramebuffer(l.Context.gl.FRAMEBUFFER,null)}},{key:"dtor",value:function(){this._id&&l.Context.gl.deleteFramebuffer(this._id),this._id=null}},{key:"_updateMipmapsIfNeeded",value:function(){if(this._created)for(var t=0;t<this._attachments.length;++t){var n=this._attachments[t];n.type===e.TEXTURE&&n.texture.updateMipmaps()}}},{key:"_checkFramebuffer",value:function(){if(!l.Context.gl.isFramebuffer(this._id))throw new Error("could not create framebuffer object")}},{key:"_checkAttachmentStatus",value:function(){var e=l.Context.gl.checkFramebufferStatus(l.Context.gl.FRAMEBUFFER);if(e!==l.Context.gl.FRAMEBUFFER_COMPLETE)throw e===l.Context.gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT?new Error("framebuffer status was FRAMEBUFFER_INCOMPLETE_ATTACHMENT"):e===l.Context.gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS?new Error("framebuffer status was FRAMEBUFFER_INCOMPLETE_DIMENSIONS"):e===l.Context.gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT?new Error("framebuffer status was FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"):e===l.Context.gl.FRAMEBUFFER_UNSUPPORTED?new Error("framebuffer status was FRAMEBUFFER_UNSUPPORTED"):new Error("unknown framebuffer status")}},{key:"_createAttachments",value:function(){for(var t=0;t<this._attachments.length;++t){var n=this._attachments[t];if(n.replace){if(n.type===e.TEXTURE)l.Context.gl.framebufferTexture2D(l.Context.gl.FRAMEBUFFER,n.attachment,n.texTarget,null,n.texLevel);else{if(n.type!==e.RENDERBUFFER)throw new Error("unknown framebuffer type "+n.type);l.Context.gl.framebufferRenderbuffer(l.Context.gl.FRAMEBUFFER,n.attachment,n.target,null)}this._attachments.splice(t--,1)}else if(n.type===e.TEXTURE)l.Context.gl.framebufferTexture2D(l.Context.gl.FRAMEBUFFER,n.attachment,n.texTarget,n.texture.texture,n.texLevel);else{if(n.type!==e.RENDERBUFFER)throw new Error("unknown framebuffer type "+n.type);l.Context.gl.framebufferRenderbuffer(l.Context.gl.FRAMEBUFFER,n.attachment,n.target,n.renderbuffer.id)}}}},{key:"_isValidAttachment",value:function(e){if(e!==l.Context.gl.COLOR_ATTACHMENT0&&e!==l.Context.gl.DEPTH_ATTACHMENT&&e!==l.Context.gl.STENCIL_ATTACHMENT)throw new Error("invalid framebuffer-attachment")}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PolygonOffsetState=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(18),A=n(7);t.PolygonOffsetState=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n.factor=A.Util.getParam(e,"factor",0),n.units=A.Util.getParam(e,"units",0),n.fillEnabled=A.Util.getParam(e,"fillEnabled",!1),n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"PolygonOffsetState",params:{factor:this.factor,units:this.units,fillEnabled:this.fillEnabled}}}}]),t}(_.Serializable)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.StencilState=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(18),A=n(7),m=n(10);t.StencilState=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n.enabled=A.Util.getParam(e,"enabled",!1),n.compare=A.Util.getParam(e,"compare",m.Context.gl.NEVER),n.reference=A.Util.getParam(e,"reference",0),n.mask=A.Util.getParam(e,"mask",-1),n.writeMask=A.Util.getParam(e,"writeMask",-1),n.onFail=A.Util.getParam(e,"onFail",m.Context.gl.KEEP),n.onZFail=A.Util.getParam(e,"onZFail",m.Context.gl.KEEP),n.onZPass=A.Util.getParam(e,"onZPass",m.Context.gl.KEEP),n.stencilFace=A.Util.getParam(e,"stencilFace",m.Context.gl.FRONT_AND_BACK),n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"StencilState",params:{enabled:this.enabled,compare:this.compare,reference:this.reference,mask:this.mask,writeMask:this.writeMask,onFail:this.onFail,onZFail:this.onZFail,onZPass:this.onZPass,stencilFace:this.stencilFace}}}}]),t}(_.Serializable)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TextureManagerAtlasRect=void 0;var i=n(1),a=r(i),o=n(2),s=r(o);t.TextureManagerAtlasRect=function(){function e(t,n,r,i){(0,a.default)(this,e),this.x=t,this.y=n,this.w=r,this.h=i}return(0,s.default)(e,[{key:"fitsIn",value:function(e){return e.w>=this.w&&e.h>=this.h}},{key:"sameSizeAs",value:function(e){return e.w===this.w&&e.h===this.h}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ZBufferState=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(18),A=n(7),m=n(10);t.ZBufferState=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n.enabled=A.Util.getParam(e,"enabled",!0),n.writable=A.Util.getParam(e,"writable",!0),n.compare=A.Util.getParam(e,"compare",m.Context.gl.LEQUAL),n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"ZBufferState",params:{enabled:this.enabled,writable:this.writable,compare:this.compare}}}}]),t}(_.Serializable)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Skybox=void 0;var i=n(78),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(6),c=r(d),f=n(8),h=r(f),_=n(2),A=r(_),m=n(5),p=r(m),g=n(10),E=n(48),v=n(7),b=n(39),S=n(182),T=n(24),x=n(28),y=n(33),C=n(139),w=n(19),M=r(w);t.Skybox=function(e){function t(e){var n;(0,u.default)(this,t);var r=(0,c.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e));r._updateFromIblTexture=function(e){r.firstChild.surfaceMaterial.mode=e.type===C.IBLNode.CUBE?S.SkyboxMaterial.CUBE:S.SkyboxMaterial.LATLONG,r.firstChild.surfaceMaterial.texture=e.irradianceTexture};var i=v.Util.getParam(e,"texture"),o=v.Util.getParam(e,"textureMode");if(r._useIbl=v.Util.getParam(e,"ibl",!1),(o===S.SkyboxMaterial.CUBE||o===S.SkyboxMaterial.LATLONG)&&void 0===i)throw new Error("Non SH Skyboxes need a texture to render properly");var l=r.addActiveResource(new S.SkyboxMaterial({mode:o,texture:i,stereoFormat:v.Util.getParam(e,"stereoFormat"),useMipmappedTexture:v.Util.getParam(e,"mipmappedTexture"),color:v.Util.getParam(e,"color"),opaque:v.Util.getParam(e,"opaque",!0),shCoeffs:v.Util.getParam(e,"shCoeffs"),useFlippedY:v.Util.getParam(e,"flippedY"),formatParams:v.Util.getParam(e,"formatParams"),lockToCamera:v.Util.getParam(e,"lockToCamera",!0),gammaSpace:v.Util.getParam(e,"gammaSpace"),convertToBGRA:v.Util.getParam(e,"convertToBGRA")}));return r.addChild(new y.RenderableNode({geometry:b.GeometryUtil.makeNDCCubeCW(),materialByPass:(n={},(0,a.default)(n,T.Scene.RENDERPASS_FORWARD,l),(0,a.default)(n,T.Scene.RENDERPASS_FORWARD_TRANSLUCENT,l),n)})),r._useIbl&&g.Context.eventEmitter.on(C.IBLNode.EVENT_IBL_NODE_CHANGED,r._updateFromIblTexture),r}return(0,p.default)(t,e),(0,A.default)(t,[{key:"$serialize",value:function(){return{name:"Skybox",params:{texture:this._material._texture,color:this._material._color,opaque:this._material._opaque,textureMode:this._material._mode,stereoFormat:this._material._stereoFormat,useMipmappedTexture:this._material._useMipmappedTexture,useFlippedY:this._material._useFlippedY,shCoeffs:this._material._shCoeffs,gammaSpace:this._material._gammaSpace,convertToBGRA:this._material._convertToBGRA,ibl:this._useIbl},aux:{children:[]}}}}]),(0,A.default)(t,[{key:"dtor",value:function(){this.dtorActiveResources(),g.Context.eventEmitter.removeListener(C.IBLNode.EVENT_IBL_NODE_CHANGED,this._updateFromIblTexture),(0,h.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"dtor",this).call(this)}},{key:"material",get:function(){return this.firstChild.surfaceMaterial}}]),t}((0,M.default)(x.SpatialNode,E.ResourceTracker))},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Shader=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(6),c=r(d),f=n(8),h=r(f),_=n(5),A=r(_),m=n(10),p=n(58),g=n(7),E="#if defined(USE_HIGHP_FLOAT)\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n",v="#extension GL_OES_standard_derivatives : enable",b=["dFdx(","dFdy("],S="#extension GL_EXT_shader_texture_lod : enable",T=["texture2DLodEXT(","texture2DProjLodEXT(","texture2DProjLodEXT(","textureCubeLodEXT(","texture2DGradEXT(","texture2DProjGradEXT(","texture2DProjGradEXT(","textureCubeGradEXT("];t.Shader=function(e){function t(e){(0,s.default)(this,t);var n=(0,c.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._shaderObject=null,n._preamble=g.Util.getParam(e,"preamble"),n._source=g.Util.getParamRequired(e,"source"),n._type=g.Util.getParamRequired(e,"type"),n._compile(),n}return(0,A.default)(t,e),(0,u.default)(t,[{key:"dtor",value:function(){this._shaderObject&&m.Context.gl.deleteShader(this._shaderObject),(0,h.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"dtor",this).call(this)}},{key:"_compile",value:function(){var e=E+this._source;if(void 0!==this._preamble&&(e=this._preamble+e),b.some(function(t){return e.indexOf(t)!==-1})&&(e=v+"\n"+e),T.some(function(t){return e.indexOf(t)!==-1})&&(e=S+"\n"+e),this._shaderObject=m.Context.gl.createShader(this._type),!this._shaderObject)throw new Error("could not create shader");m.Context.gl.shaderSource(this._shaderObject,e),m.Context.gl.compileShader(this._shaderObject);var t=m.Context.gl.getShaderParameter(this._shaderObject,m.Context.gl.COMPILE_STATUS);if(!t){var n=m.Context.gl.getShaderInfoLog(this._shaderObject);m.Context.gl.deleteShader(this._shaderObject);var r="error compiling shader: \n"+n+"\n"+this._shaderSource+"\n";throw m.Context.logger.error(this,r),new Error(r)}this.loaded=!0}},{key:"shaderObject",get:function(){return this._shaderObject}}]),t}(p.Resource)},,,,,,,,,,,,,,,,,,,,,,function(e,t,n){e.exports={default:n(567),__esModule:!0}},function(e,t,n){e.exports={default:n(570),__esModule:!0}},function(e,t,n){e.exports={default:n(571),__esModule:!0}},function(e,t,n){e.exports={default:n(575),__esModule:!0}},function(e,t,n){"use strict";var r=n(53).f,i=n(150),a=n(152),o=n(67),s=n(147),l=n(100),u=n(202),d=n(314),c=n(322),f=n(47),h=n(121).fastKey,_=n(89),A=f?"_s":"size",m=function(e,t){var n,r=h(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,u){var d=e(function(e,r){s(e,d,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[A]=0,void 0!=r&&l(r,n,e[u],e)});return a(d.prototype,{clear:function(){for(var e=_(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[A]=0},delete:function(e){var n=_(this,t),r=m(n,e);if(r){var i=r.n,a=r.p;delete n._i[r.i],r.r=!0,a&&(a.n=i),i&&(i.p=a),n._f==r&&(n._f=i),n._l==r&&(n._l=a),n[A]--}return!!r},forEach:function(e){_(this,t);for(var n,r=o(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!m(_(this,t),e)}}),f&&r(d.prototype,"size",{get:function(){return _(this,t)[A]}}),d},def:function(e,t,n){var r,i,a=m(e,t);return a?a.v=n:(e._l=a={i:i=h(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=a),r&&(r.n=a),e[A]++,"F"!==i&&(e._i[i]=a)),e},getEntry:m,setStrong:function(e,t,n){u(e,t,function(e,n){this._t=_(e,t),this._k=n,this._l=void 0},function(){for(var e=this,t=e._k,n=e._l;n&&n.r;)n=n.p;return e._t&&(e._l=n=n?n.n:e._t._f)?"keys"==t?d(0,n.k):"values"==t?d(0,n.v):d(0,[n.k,n.v]):(e._t=void 0,d(1))},n?"entries":"values",!n,!0),c(t)}}},function(e,t,n){var r=n(148),i=n(584);e.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},function(e,t,n){"use strict";var r=n(152),i=n(121).getWeak,a=n(52),o=n(42),s=n(147),l=n(100),u=n(197),d=n(79),c=n(89),f=u(5),h=u(6),_=0,A=function(e){return e._l||(e._l=new m)},m=function(){this.a=[]},p=function(e,t){return f(e.a,function(e){return e[0]===t})};m.prototype={get:function(e){var t=p(this,e);if(t)return t[1]},has:function(e){return!!p(this,e)},set:function(e,t){var n=p(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=h(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,a){var u=e(function(e,r){s(e,u,t,"_i"),e._t=t,e._i=_++,e._l=void 0,void 0!=r&&l(r,n,e[a],e)});return r(u.prototype,{delete:function(e){if(!o(e))return!1;var n=i(e);return n===!0?A(c(this,t)).delete(e):n&&d(n,this._i)&&delete n[this._i]},has:function(e){if(!o(e))return!1;var n=i(e);return n===!0?A(c(this,t)).has(e):n&&d(n,this._i)}}),u},def:function(e,t,n){var r=i(a(t),!0);return r===!0?A(e).set(t,n):r[e._i]=n,e},ufstore:A}},function(e,t,n){var r=n(35).document;e.exports=r&&r.documentElement},function(e,t,n){e.exports=!n(47)&&!n(87)(function(){return 7!=Object.defineProperty(n(199)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(101),i=n(37)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[i]===e)}},function(e,t,n){var r=n(119);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(52);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&r(a.call(e)),t}}},function(e,t,n){var r=n(37)("iterator"),i=!1;try{var a=[7][r]();a.return=function(){i=!0},Array.from(a,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var a=[7],o=a[r]();o.next=function(){return{done:n=!0}},a[r]=function(){return o},e(a)}catch(e){}return n}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){"use strict";var r=n(47),i=n(102),a=n(205),o=n(122),s=n(88),l=n(201),u=Object.assign;e.exports=!u||n(87)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r})?function(e,t){for(var n=s(e),u=arguments.length,d=1,c=a.f,f=o.f;u>d;)for(var h,_=l(arguments[d++]),A=c?i(_).concat(c(_)):i(_),m=A.length,p=0;m>p;)h=A[p++],r&&!f.call(_,h)||(n[h]=_[h]);return n}:u},function(e,t,n){var r=n(81),i=n(317).f,a={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){ try{return i(e)}catch(e){return o.slice()}};e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?s(e):i(r(e))}},function(e,t,n){var r=n(319),i=n(200).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},function(e,t,n){var r=n(79),i=n(88),a=n(207)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,a)?e[a]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},function(e,t,n){var r=n(79),i=n(81),a=n(585)(!1),o=n(207)("IE_PROTO");e.exports=function(e,t){var n,s=i(e),l=0,u=[];for(n in s)n!=o&&r(s,n)&&u.push(n);for(;t.length>l;)r(s,n=t[l++])&&(~a(u,n)||u.push(n));return u}},function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},function(e,t,n){var r=n(52),i=n(42),a=n(203);e.exports=function(e,t){if(r(e),i(t)&&t.constructor===e)return t;var n=a.f(e),o=n.resolve;return o(t),n.promise}},function(e,t,n){"use strict";var r=n(35),i=n(16),a=n(53),o=n(47),s=n(37)("species");e.exports=function(e){var t="function"==typeof i[e]?i[e]:r[e];o&&t&&!t[s]&&a.f(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,n){var r=n(52),i=n(118),a=n(37)("species");e.exports=function(e,t){var n,o=r(e).constructor;return void 0===o||void 0==(n=r(o)[a])?t:i(n)}},function(e,t,n){"use strict";var r=n(35),i=n(79),a=n(47),o=n(30),s=n(206),l=n(121).KEY,u=n(87),d=n(208),c=n(124),f=n(156),h=n(37),_=n(213),A=n(212),m=n(589),p=n(311),g=n(52),E=n(42),v=n(88),b=n(81),S=n(211),T=n(123),x=n(150),y=n(316),C=n(204),w=n(205),M=n(53),D=n(102),P=C.f,R=M.f,I=y.f,L=r.Symbol,O=r.JSON,N=O&&O.stringify,B="prototype",F=h("_hidden"),k=h("toPrimitive"),U={}.propertyIsEnumerable,V=d("symbol-registry"),G=d("symbols"),H=d("op-symbols"),z=Object[B],Q="function"==typeof L&&!!w.f,X=r.QObject,W=!X||!X[B]||!X[B].findChild,j=a&&u(function(){return 7!=x(R({},"a",{get:function(){return R(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=P(z,t);r&&delete z[t],R(e,t,n),r&&e!==z&&R(z,t,r)}:R,Y=function(e){var t=G[e]=x(L[B]);return t._k=e,t},q=Q&&"symbol"==typeof L.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof L},Z=function(e,t,n){return e===z&&Z(H,t,n),g(e),t=S(t,!0),g(n),i(G,t)?(n.enumerable?(i(e,F)&&e[F][t]&&(e[F][t]=!1),n=x(n,{enumerable:T(0,!1)})):(i(e,F)||R(e,F,T(1,{})),e[F][t]=!0),j(e,t,n)):R(e,t,n)},K=function(e,t){g(e);for(var n,r=m(t=b(t)),i=0,a=r.length;a>i;)Z(e,n=r[i++],t[n]);return e},J=function(e,t){return void 0===t?x(e):K(x(e),t)},$=function(e){var t=U.call(this,e=S(e,!0));return!(this===z&&i(G,e)&&!i(H,e))&&(!(t||!i(this,e)||!i(G,e)||i(this,F)&&this[F][e])||t)},ee=function(e,t){if(e=b(e),t=S(t,!0),e!==z||!i(G,t)||i(H,t)){var n=P(e,t);return!n||!i(G,t)||i(e,F)&&e[F][t]||(n.enumerable=!0),n}},te=function(e){for(var t,n=I(b(e)),r=[],a=0;n.length>a;)i(G,t=n[a++])||t==F||t==l||r.push(t);return r},ne=function(e){for(var t,n=e===z,r=I(n?H:b(e)),a=[],o=0;r.length>o;)!i(G,t=r[o++])||n&&!i(z,t)||a.push(G[t]);return a};Q||(L=function(){if(this instanceof L)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===z&&t.call(H,n),i(this,F)&&i(this[F],e)&&(this[F][e]=!1),j(this,e,T(1,n))};return a&&W&&j(z,e,{configurable:!0,set:t}),Y(e)},s(L[B],"toString",function(){return this._k}),C.f=ee,M.f=Z,n(317).f=y.f=te,n(122).f=$,w.f=ne,a&&!n(120)&&s(z,"propertyIsEnumerable",$,!0),_.f=function(e){return Y(h(e))}),o(o.G+o.W+o.F*!Q,{Symbol:L});for(var re="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ie=0;re.length>ie;)h(re[ie++]);for(var ae=D(h.store),oe=0;ae.length>oe;)A(ae[oe++]);o(o.S+o.F*!Q,"Symbol",{for:function(e){return i(V,e+="")?V[e]:V[e]=L(e)},keyFor:function(e){if(!q(e))throw TypeError(e+" is not a symbol!");for(var t in V)if(V[t]===e)return t},useSetter:function(){W=!0},useSimple:function(){W=!1}}),o(o.S+o.F*!Q,"Object",{create:J,defineProperty:Z,defineProperties:K,getOwnPropertyDescriptor:ee,getOwnPropertyNames:te,getOwnPropertySymbols:ne});var se=u(function(){w.f(1)});o(o.S+o.F*se,"Object",{getOwnPropertySymbols:function(e){return w.f(v(e))}}),O&&o(o.S+o.F*(!Q||u(function(){var e=L();return"[null]"!=N([e])||"{}"!=N({a:e})||"{}"!=N(Object(e))})),"JSON",{stringify:function(e){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=t=r[1],(E(t)||void 0!==e)&&!q(e))return p(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!q(t))return t}),r[1]=t,N.apply(O,r)}}),L[B][k]||n(80)(L[B],k,L[B].valueOf),c(L,"Symbol"),c(Math,"Math",!0),c(r.JSON,"JSON",!0)},,,,function(e,t,n){var r=n(56),i=n(338),a=n(70),o=r("unscopables"),s=Array.prototype;void 0==s[o]&&a.f(s,o,{configurable:!0,value:i(null)}),e.exports=function(e){s[o][e]=!0}},function(e,t,n){var r=n(63),i=n(56),a=n(333),o=i("species");e.exports=function(e){return a>=51||!r(function(){var t=[],n=t.constructor={};return n[o]=function(){return{foo:1}},1!==t[e](Boolean).foo})}},function(e,t,n){var r=n(69),i=n(219),a=n(56),o=a("species");e.exports=function(e,t){var n;return i(e)&&(n=e.constructor,"function"!=typeof n||n!==Array&&!i(n.prototype)?r(n)&&(n=n[o],null===n&&(n=void 0)):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},function(e,t,n){var r=n(55),i=n(667),a=n(127),o=n(70);e.exports=function(e,t){for(var n=i(t),s=o.f,l=a.f,u=0;u<n.length;u++){var d=n[u];r(e,d)||s(e,d,l(t,d))}}},function(e,t,n){var r=n(38),i=n(69),a=r.document,o=i(a)&&i(a.createElement);e.exports=function(e){return o?a.createElement(e):{}}},function(e,t,n){var r,i,a=n(38),o=n(658),s=a.process,l=s&&s.versions,u=l&&l.v8;u?(r=u.split("."),i=r[0]+r[1]):o&&(r=o.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=o.match(/Chrome\/(\d+)/),r&&(i=r[1]))),e.exports=i&&+i},function(e,t,n){var r=n(654);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(68),i=n(63),a=n(332);e.exports=!r&&!i(function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(340),i=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return i.call(e)}),e.exports=r.inspectSource},function(e,t,n){var r,i,a,o=n(662),s=n(38),l=n(69),u=n(126),d=n(55),c=n(229),f=n(161),h=s.WeakMap,_=function(e){return a(e)?i(e):r(e,{})},A=function(e){return function(t){var n;if(!l(t)||(n=i(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}};if(o){var m=new h,p=m.get,g=m.has,E=m.set;r=function(e,t){return E.call(m,e,t),t},i=function(e){return p.call(m,e)||{}},a=function(e){return g.call(m,e)}}else{var v=c("state");f[v]=!0,r=function(e,t){return u(e,v,t),t},i=function(e){return d(e,v)?e[v]:{}},a=function(e){return d(e,v)}}e.exports={set:r,get:i,has:a,enforce:_,getterFor:A}},function(e,t,n){var r,i=n(125),a=n(664),o=n(217),s=n(161),l=n(659),u=n(332),d=n(229),c=">",f="<",h="prototype",_="script",A=d("IE_PROTO"),m=function(){},p=function(e){return f+_+c+e+f+"/"+_+c},g=function(e){e.write(p("")),e.close();var t=e.parentWindow.Object;return e=null,t},E=function(){var e,t=u("iframe"),n="java"+_+":";return t.style.display="none",l.appendChild(t),t.src=String(n),e=t.contentWindow.document,e.open(),e.write(p("document.F=Object")),e.close(),e.F},v=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(e){}v=r?g(r):E();for(var e=o.length;e--;)delete v[h][o[e]];return v()};s[A]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(m[h]=i(e),n=new m,m[h]=null,n[A]=e):n=v(),void 0===t?n:a(n,t)}},function(e,t,n){var r=n(55),i=n(128),a=n(655).indexOf,o=n(161);e.exports=function(e,t){var n,s=i(e),l=0,u=[];for(n in s)!r(o,n)&&r(s,n)&&u.push(n);for(;t.length>l;)r(s,n=t[l++])&&(~a(u,n)||u.push(n));return u}},function(e,t,n){var r=n(38),i=n(227),a="__core-js_shared__",o=r[a]||i(a,{});e.exports=o},function(e,t,n){var r=n(220);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){var r=n(56);t.f=r},function(e,t){try{var n=new window.CustomEvent("test");if(n.preventDefault(),n.defaultPrevented!==!0)throw new Error("Could not prevent default")}catch(e){var r=function(e,t){var n,r;return t=t||{bubbles:!1,cancelable:!1,detail:void 0},n=document.createEvent("CustomEvent"),n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r=n.preventDefault,n.preventDefault=function(){r.call(this);try{Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})}catch(e){this.defaultPrevented=!0}},n};r.prototype=window.Event.prototype,window.CustomEvent=r}},,,function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function i(e){if(d===setTimeout)return setTimeout(e,0);if((d===n||!d)&&setTimeout)return d=setTimeout,setTimeout(e,0);try{return d(e,0)}catch(t){try{return d.call(null,e,0)}catch(t){return d.call(this,e,0)}}}function a(e){if(c===clearTimeout)return clearTimeout(e);if((c===r||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(e);try{return c(e)}catch(t){try{return c.call(null,e)}catch(t){return c.call(this,e)}}}function o(){A&&h&&(A=!1,h.length?_=h.concat(_):m=-1,_.length&&s())}function s(){if(!A){var e=i(o);A=!0;for(var t=_.length;t;){for(h=_,_=[];++m<t;)h&&h[m].run();m=-1,t=_.length}h=null,A=!1,a(e)}}function l(e,t){this.fun=e,this.array=t}function u(){}var d,c,f=e.exports={};!function(){try{d="function"==typeof setTimeout?setTimeout:n}catch(e){d=n}try{c="function"==typeof clearTimeout?clearTimeout:r}catch(e){c=r}}();var h,_=[],A=!1,m=-1;f.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];_.push(new l(e,t)),1!==_.length||A||i(s)},l.prototype.run=function(){this.fun.apply(null,this.array)},f.title="browser",f.browser=!0,f.env={},f.argv=[],f.version="",f.versions={},f.on=u,f.addListener=u,f.once=u,f.off=u,f.removeListener=u,f.removeAllListeners=u,f.emit=u,f.prependListener=u,f.prependOnceListener=u,f.listeners=function(e){return[]},f.binding=function(e){throw new Error("process.binding is not supported")},f.cwd=function(){return"/"},f.chdir=function(e){throw new Error("process.chdir is not supported")},f.umask=function(){return 0}},,,,,,,,,,,,,,,function(e,t){e.exports="#define PI 3.141592654\n#define INV_PI 0.3183098861\n\nvarying vec2 v_texCoord0;\n\n#if defined(INTEGRATE_ENVMAP)\n #if defined(USE_CUBE_MAP)\n #if !defined(USE_DIFFUSE)\n uniform float u_roughness;\n #endif\n uniform float u_readFaceSize;\n uniform float u_mipCount;\n uniform float u_faceSize;\n uniform vec3 u_faceVector;\n uniform vec3 u_faceU;\n uniform vec3 u_faceV;\n uniform samplerCube u_envProbe;\n #elif defined(USE_LAT_LONG)\n uniform sampler2D u_envProbe;\n uniform float u_mipmapLevel;\n uniform float u_yOff;\n #endif\n#endif\n\n\nvec3 latLongToWorld(vec2 l) {\n float theta = l.y * PI;\n float phi = l.x * 2.0 * PI + PI;\n float sinTheta = sin(theta);\n // y is up (exchanged z and y)\n return vec3(sinTheta * cos(phi), cos(theta), sinTheta * sin(phi));\n}\n\nvec2 worldToLatLong(vec3 r) {\n r = normalize(r);\n // y is up (exchanged z and y)\n float theta = acos(r.y);\n float phi = atan(vec2(r.z), vec2(r.x)).x;\n return vec2((PI + phi) / (2.0 * PI), theta / PI);\n}\n\nvec4 textureLatLong(sampler2D sampler, vec3 direction) {\n return texture2D(sampler, worldToLatLong(direction));\n}\n\nvec4 textureLatLong(sampler2D sampler, vec3 direction, float bias) {\n return texture2D(sampler, worldToLatLong(direction), bias);\n}\n\n\nfloat radicalInverse(float n) {\n float val = 0.0;\n float invBase = 0.5;\n float invBi = invBase;\n\n for(int i = 0; i < NUM_SAMPLES_LOG2; ++i) {\n // Compute next digit of radical inverse\n float d_i = mod(n, 2.0);\n val += d_i * invBi;\n n = floor(n / 2.0);\n invBi *= invBase;\n }\n return val;\n }\n\n // http://holger.dammertz.org/stuff/notes_HammersleyOnHemisphere.html\n vec2 hammersley(int i, int N) {\n return vec2(float(i)/float(N), radicalInverse(float(i)));\n }\n\nvec2 packFloat2(float f) {\n f *= 256.0;\n float x = floor( f );\n f = ( f - x ) * 256.0;\n\n float y = floor( f );\n x *= 0.00390625;\n y *= 0.00390625;\n\n return vec2(x, y);\n}\n\n// Ignacio Castano via http://the-witness.net/news/2012/02/seamless-cube-map-filtering/\nvec3 fixCubeLookupForLod(vec3 v, float cubeSize, float lod) {\n float M = max(max(abs(v.x), abs(v.y)), abs(v.z));\n float scale = 1.0 - exp2(lod) / cubeSize;\n if (abs(v.x) != M) v.x *= scale;\n if (abs(v.y) != M) v.y *= scale;\n if (abs(v.z) != M) v.z *= scale;\n return v;\n}\n\n#if !defined(USE_HDR)\n// M matrix, for encoding\nconst mat3 M = mat3(\n 0.2209, 0.3390, 0.4184,\n 0.1138, 0.6780, 0.7319,\n 0.0102, 0.1130, 0.2969);\n\nvec4 logLuvEncode(vec3 vRGB) {\n vec4 vResult;\n vec3 Xp_Y_XYZp = M * vRGB;\n Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\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 = frac(Le);\n vResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\n return vResult;\n}\n\n// Inverse M matrix, for decoding\nconst mat3 InverseM = float3x3(\n 6.0013, -2.700, -1.7995,\n -1.332, 3.1029, -5.7720,\n .3007, -1.088, 5.6268);\n\nvec3 logLuvDecode(vec4 vLogLuv) {\n float Le = vLogLuv.z * 255.0 + vLogLuv.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 / vLogLuv.y;\n Xp_Y_XYZp.x = vLogLuv.x * Xp_Y_XYZp.z;\n vec3 vRGB = InverseM * Xp_Y_XYZp;\n return max(vRGB, 0.0);\n}\n\n#endif\n\nfloat vSmithJoint(float m, float NdotV, float NdotL) {\n float v1i = NdotL * (NdotV * ( 1.0 - m ) + m);\n float v1o = NdotV * (NdotL * ( 1.0 - m ) + m);\n return 0.5 / (v1i + v1o);\n}\n\n\n/* Always works if the input is non-zero.\n * Doesn’t require the input to be normalised.\n * Doesn’t normalise the output. */\nvec3 orthogonal(vec3 v) {\n return abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y);\n}\n\n\nvec3 tangentToWorldSpace(vec3 vector, vec3 normal) {\n vec3 upVector = abs(normal.z) < 0.999 ? vec3(0.0,0.0,1.0) : vec3(1.0,0.0,0.0);\n vec3 tangentX = normalize(cross(upVector, normal));\n vec3 tangentY = cross(normal, tangentX);\n\n return tangentX * vector.x + tangentY * vector.y + normal * vector.z;\n}\n\nvec3 tangentToWorldSpace2(vec3 vector, vec3 normal) {\n vec3 tangentX = normalize(orthogonal(normal));\n vec3 tangentY = normalize(cross(tangentX, normal));\n\n return tangentX * vector.x + tangentY * vector.y + normal * vector.z;\n}\n\nvec3 cosineSampleHemisphere(vec2 xi) {\n\tfloat phi = 2.0 * PI * xi.x;\n\tfloat cosTheta = sqrt(xi.y);\n\tfloat sinTheta = sqrt(1.0 - cosTheta * cosTheta);\n\n\tvec3 h;\n\th.x = sinTheta * cos(phi);\n\th.y = sinTheta * sin(phi);\n\th.z = cosTheta;\n\n//\tfloat pdf = cosTheta / PI;\n\n\treturn h;\n}\n\nfloat dGGX(float m, float NdotH) {\n float m2 = m * m;\n float denom = (NdotH * m2 - NdotH) * NdotH + 1.0;\n return m2 / (PI * denom * denom);\n}\n\nvec3 importanceSampleGGX(vec2 xi, float roughness, vec3 normal) {\n float a = roughness * roughness;\n float phi = 2.0 * PI * xi.x;\n float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (a * a - 1.0) * xi.y ));\n float sinTheta = sqrt(1.0 - cosTheta * cosTheta);\n vec3 h;\n h.x = sinTheta * cos(phi);\n h.y = sinTheta * sin(phi);\n h.z = cosTheta;\n\n return h;\n}\n\nvec3 importanceSampleBeckmann(vec2 xi, float roughness, vec3 normal) {\n float a = roughness * roughness;\n float phi = 2.0 * PI * xi.x;\n float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (a * a - 1.0) * xi.y ));\n float sinTheta = sqrt(1.0 - cosTheta * cosTheta);\n vec3 h;\n h.x = sinTheta * cos(phi);\n h.y = sinTheta * sin(phi);\n h.z = cosTheta;\n\n return h;\n}\n\nfloat fresnelSchlickSingle(float f0, float f90, float VdotH) {\n return f0 + (f90 - f0) * pow(1.0 - VdotH, 5.0);\n}\n\nfloat disneyDiffuseFresnel(float NdotV, float NdotL, float LdotH, float linearRoughness) {\n float energyBias = mix(0.0, 0.5, linearRoughness);\n float energyFactor = mix(1.0, 1.0 / 1.51, linearRoughness);\n float fd90 = energyBias + 2.0 * LdotH * LdotH * linearRoughness;\n float f0 = 1.0;\n float lightScatter = fresnelSchlickSingle(f0 , fd90, NdotL);\n float viewScatter = fresnelSchlickSingle(f0, fd90, NdotV);\n\n return lightScatter * viewScatter * energyFactor;\n}\n\nvec3 integrateBRDFSegment(int i, float roughness, vec3 v, float NdotV, inout float a, inout float b, inout float c) {\n vec2 xi = hammersley(i, NUM_SAMPLES);\n {\n vec3 h = importanceSampleGGX(xi, roughness, vec3(0.0, 0.0, 1.0));\n vec3 l = 2.0 * dot(v, h) * h - v;\n float NdotL = clamp(l.z, 0.0, 1.0);\n float NdotH = clamp(h.z, 0.0, 1.0);\n float VdotH = clamp(dot(v, h), 0.0, 1.0);\n float LdotH = clamp(dot(l, h), 0.0, 1.0);\n if(NdotL > 0.0) {\n float g = vSmithJoint(roughness*roughness, NdotH, LdotH);\n float gVis = g * LdotH / (NdotH * NdotV);\n float fc = pow(1.0 - VdotH, 5.0);\n a += (1.0 - fc) * gVis;\n b += fc * gVis;\n/*\n\n float aa = roughness * roughness;\n float Vis = vSmithJoint(aa, NdotV, NdotL);\n float NdotL_Vis_PDF = NdotL * Vis * (4.0 * VdotH / NdotH);\n\n float Fc = pow(1.0 - VdotH, 5.0);\n a += (1.0 - Fc) * NdotL_Vis_PDF;\n b += Fc * NdotL_Vis_PDF;\n*/\n }\n }\n {\n vec3 l = cosineSampleHemisphere(xi);\n float NdotL = clamp(l.z, 0.0, 1.0);\n if (NdotL > 0.0) {\n vec3 h = normalize(v + l);\n float LdotH = clamp(dot(l, h), 0.0, 1.0);\n c += disneyDiffuseFresnel(NdotV, NdotL, LdotH, roughness);\n }\n }\n\n return vec3(a, b, c);\n}\n\n#define NUM_SAMPLE_SEGMENTS 8\n\nvec3 integrateBRDF(float roughness, float NdotV) {\n vec3 v;\n v.x = sqrt( 1.0 - NdotV * NdotV ); // sin\n v.y = 0.0;\n v.z = NdotV; // cos\n vec3 result = vec3(0.0);\n float a = 0.0;\n float b = 0.0;\n float c = 0.0;\n\n for(int i = 0*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 0*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n result += integrateBRDFSegment(i, roughness, v, NdotV, a, b, c);\n }\n for(int i = 1*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 1*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n result += integrateBRDFSegment(i, roughness, v, NdotV, a, b, c);\n }\n for(int i = 2*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 2*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n result += integrateBRDFSegment(i, roughness, v, NdotV, a, b, c);\n }\n for(int i = 3*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 3*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n result += integrateBRDFSegment(i, roughness, v, NdotV, a, b, c);\n }\n for(int i = 4*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 4*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n result += integrateBRDFSegment(i, roughness, v, NdotV, a, b, c);\n }\n for(int i = 5*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 5*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n result += integrateBRDFSegment(i, roughness, v, NdotV, a, b, c);\n }\n for(int i = 6*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 6*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n result += integrateBRDFSegment(i, roughness, v, NdotV, a, b, c);\n }\n for(int i = 7*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 7*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n result += integrateBRDFSegment(i, roughness, v, NdotV, a, b, c);\n }\n return vec3(a, b, c) / float(NUM_SAMPLES);\n}\n\n#if defined(INTEGRATE_ENVMAP)\n\n#if !defined(USE_DIFFUSE)\nvec3 prefilterEnvMapSegment(int i, float roughness, vec3 n, vec3 v, sampler2D envTexture, inout float totalWeight) {\n vec2 xi = hammersley(i, NUM_SAMPLES);\n vec3 h = importanceSampleGGX(xi, roughness, n);\n h = tangentToWorldSpace(h, n);\n vec3 l = 2.0 * dot(v, h) * h - v;\n float NdotL = clamp(dot(n, l), 0.0, 1.0);\n\n if(NdotL > 0.0) {\n totalWeight += NdotL;\n #if defined(USE_HDR)\n return textureLatLong(envTexture, l).rgb * NdotL;\n #else\n return logLuvDecode(textureLatLong(envTexture, l)) * NdotL;\n #endif\n }\n return vec3(0.0);\n}\n\n\nvec3 prefilterEnvMap(float roughness, vec3 r, sampler2D envTexture) {\n vec3 n = r;\n vec3 v = r;\n vec3 prefilteredColor = vec3(0.0);\n float totalWeight = 0.0;\n\n for(int i = 0*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 0*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterEnvMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 1*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 1*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterEnvMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 2*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 2*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterEnvMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 3*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 3*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterEnvMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 4*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 4*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterEnvMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 5*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 5*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterEnvMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 6*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 6*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterEnvMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 7*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 7*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterEnvMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n\n return prefilteredColor / totalWeight;\n}\n\nvec3 prefilterCubeMapSegment(int i, float roughness, vec3 n, vec3 v, samplerCube envTexture, inout float totalWeight) {\n vec2 xi = hammersley(i, NUM_SAMPLES);\n vec3 h = importanceSampleGGX(xi, roughness, n);\n h = tangentToWorldSpace(h, n);\n vec3 l = 2.0 * dot(v, h) * h - v;\n float NdotL = clamp(dot(n, l), 0.0, 1.0);\n if(NdotL > 0.0) {\n#if defined(USE_PREFILTERED_IMPORTANCE_SAMPLING)\n float NdotH = clamp(dot(n , h), 0.0, 1.0);\n float LdotH = clamp(dot(l , h), 0.0, 1.0);\n float pdf = dGGX(roughness, NdotH) * NdotH / (4.0 * LdotH);\n float omegaS = 1.0 / (float(NUM_SAMPLES) * pdf);\n float omegaP = 4.0 * PI / (6.0 * u_readFaceSize * u_readFaceSize) ;\n float mipLevel = clamp(0.5 * log2 (omegaS / omegaP), 0.0, u_mipCount);\n vec4 Li = textureCubeLodEXT(envTexture, fixCubeLookupForLod(l, u_readFaceSize, mipLevel), mipLevel);\n totalWeight += NdotL;\n return Li.rgb * NdotL;\n#else\n totalWeight += NdotL;\n #if defined(USE_HDR)\n return textureCube(envTexture, l).rgb * NdotL;\n #else\n return logLuvDecode(textureCube(envTexture, l)) * NdotL;\n #endif\n#endif\n }\n return vec3(0.0);\n}\n\nvec3 prefilterCubeMap(float roughness, vec3 r, samplerCube envTexture) {\n vec3 n = r;\n vec3 v = r;\n vec3 prefilteredColor = vec3(0.0);\n float totalWeight = 0.0;\n\n for(int i = 0*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 0*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterCubeMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 1*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 1*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterCubeMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 2*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 2*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterCubeMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 3*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 3*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterCubeMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 4*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 4*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterCubeMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 5*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 5*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterCubeMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 6*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 6*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterCubeMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n for(int i = 7*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 7*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterCubeMapSegment(i, roughness, n, v, envTexture, totalWeight);\n }\n\n return prefilteredColor / totalWeight;\n}\n\n#endif\n\n#if defined(USE_DIFFUSE)\nvec3 prefilterDiffuseCubeMapSegment(int i, vec3 n, samplerCube envTexture) {\n vec2 xi = hammersley(i, NUM_SAMPLES);\n vec3 h = cosineSampleHemisphere(xi);\n vec3 l = tangentToWorldSpace(h, n);\n float NdotL = clamp(dot(n, l), 0.0, 1.0);\n if(NdotL > 0.0) {\n#if defined(USE_PREFILTERED_IMPORTANCE_SAMPLING)\n float pdf = NdotL * INV_PI;\n float omegaS = 1.0 / (float(NUM_SAMPLES) * pdf);\n float omegaP = 4.0 * PI / (6.0 * u_readFaceSize * u_readFaceSize) ;\n float mipLevel = clamp(0.5 * log2 (omegaS / omegaP), 0.0, u_mipCount);\n return textureCubeLodEXT(envTexture, fixCubeLookupForLod(l, u_readFaceSize, mipLevel), mipLevel).rgb;\n#else\n return textureCube(envTexture, fixCubeLookupForLod(l, u_readFaceSize, 0.0)).rgb;\n#endif\n }\n return vec3(0.0);\n}\nvec3 prefilterDiffuseCubeMap(vec3 r, samplerCube envTexture) {\n vec3 n = r;\n vec3 prefilteredColor = vec3(0.0);\n\n for(int i = 0*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 0*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterDiffuseCubeMapSegment(i, n, envTexture);\n }\n for(int i = 1*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 1*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterDiffuseCubeMapSegment(i, n, envTexture);\n }\n for(int i = 2*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 2*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterDiffuseCubeMapSegment(i, n, envTexture);\n }\n for(int i = 3*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 3*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterDiffuseCubeMapSegment(i, n, envTexture);\n }\n for(int i = 4*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 4*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterDiffuseCubeMapSegment(i, n, envTexture);\n }\n for(int i = 5*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 5*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterDiffuseCubeMapSegment(i, n, envTexture);\n }\n for(int i = 6*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 6*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterDiffuseCubeMapSegment(i, n, envTexture);\n }\n for(int i = 7*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; i < 7*NUM_SAMPLES/NUM_SAMPLE_SEGMENTS + NUM_SAMPLES/NUM_SAMPLE_SEGMENTS; ++i) {\n prefilteredColor += prefilterDiffuseCubeMapSegment(i, n, envTexture);\n }\n\n return prefilteredColor / float(NUM_SAMPLES);\n}\n#endif\n\nfloat map_1(float x, float n) {\n return (x + 0.5) * 2.0 / n - 1.0;\n}\n\n#endif\n\nvoid main() {\n#if defined(INTEGRATE_BRDF)\n float NdotV = v_texCoord0.x;\n float roughness = v_texCoord0.y;\n vec3 result = integrateBRDF(roughness, NdotV);\n // R16G16\n //gl_FragColor = vec4(roughness, 0.0, 0.0, 1.0);\n gl_FragColor = vec4(clamp(result, 0.0, 1.0), 1.0);\n#elif defined(INTEGRATE_ENVMAP)\n #if defined(USE_LAT_LONG)\n // NOTE: get r from texCoord (s,t) and atlas shift\n // rx = 2 s / (s^2 + t^2 + 1)\n // ry = 2 t / (s^2 + t^2 + 1)\n // rz = (-1 + s^2 + t^2) / (s^2 + t^2 + 1)\n // u_atlasSize.x -> envMap atlas size, u_atlasSize.y -> envmap size\n\n // vec2 coord = mod(v_texCoord0 * u_atlasSize.x, u_atlasSize.y) / u_atlasSize.y;\n // float st2 = coord.s*coord.s + coord.t*coord.t + 1.0;\n //r.x = 2.0 * coord.s / st2;\n // r.y = 2.0 * coord.t / st2;\n // r.z = (st2 - 2.0) / st2;\n //r = normalize(r);\n if(v_texCoord0.x > 1.0 || v_texCoord0.y < u_yOff || v_texCoord0.y > 1.0 + u_yOff) {\n discard;\n }\n float roughness = u_mipmapLevel / float(NUM_MIP_LEVELS-1);\n vec3 r = latLongToWorld(vec2(v_texCoord0.x, v_texCoord0.y - u_yOff));\n #if defined(PASSTHROUGH)\n vec3 result = textureLatLong(u_envProbe, r).rgb;\n // vec3 result = texture2D(u_envProbe, v_texCoord0).rgb;\n #else\n vec3 result = prefilterEnvMap(roughness*roughness, r, u_envProbe);\n #endif\n #elif defined(USE_CUBE_MAP)\n vec2 f = gl_FragCoord.xy;\n vec3 r = normalize(u_faceVector + u_faceU * map_1(f.x, u_faceSize) + u_faceV * map_1(f.y, u_faceSize));\n #if defined(USE_DIFFUSE)\n vec3 result = prefilterDiffuseCubeMap(r, u_envProbe);\n #else // SPECULAR\n vec3 result = prefilterCubeMap(u_roughness, r, u_envProbe);\n #endif\n #endif\n\n #if defined(USE_HDR)\n gl_FragColor = vec4(result, 1.0);\n #else\n gl_FragColor = logLuvEncode(result);\n #endif\n\n#endif\n}\n"},,,function(e,t,n){var r=n(704);"string"==typeof r&&(r=[[e.id,r,""]]);n(21)(r,{});r.locals&&(e.exports=r.locals)},,function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=="},,,function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function r(){return"file://"===location.origin?"http://cdn.delight-vr.com/2.0.30/":"//cdn.delight-vr.com/2.0.30/"}function i(){return"file://"===location.origin?"http://90531bbba.dl8.me/2.0.30":"//90531bbba.dl8.me/2.0.30"} function a(){return"file://"===location.origin?"https://3ba11288cf.delight-vr.com/2.0.30":"//3ba11288cf.delight-vr.com/2.0.30"}Object.defineProperty(t,"__esModule",{value:!0}),t.getResourceBasePath=r,t.getTrackingRoot=i,t.getSimpleTrackingRoot=a},function(e,t,n){"use strict";e.exports=function(e){n.e(1,function(t){if(!window.__dl8__delightVrApp){var r=n(257).DelightVR;window.__dl8__delightVrApp=new r}e&&e()})}},,,,,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8AdvertisementElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8AdvertisementElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["on-request-advertisement"]),e=g.Dl8Element.assignContentCallback(e,this,"on-request-advertisement"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-advertisement",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8AffiliateElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(397),v=n(396);t.Dl8AffiliateElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-affiliate-spot","dl8-affiliate-item"]}},{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignChildrenContent(e,this,"dl8-affiliate-spot"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-affiliate-item"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){E.Dl8AffiliateSpotElement.registerElement(),v.Dl8AffiliateItemElement.registerElement(),g.Dl8Element._registerElement("dl8-affiliate",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8AffiliateItemElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8AffiliateItemElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["name","url"]),e=g.Dl8Element.assignContent(e,this,"name"),e=g.Dl8Element.assignContent(e,this,"description"),e=g.Dl8Element.assignContent(e,this,"thumbnail"),e=g.Dl8Element.assignContent(e,this,"price"),e=g.Dl8Element.assignContent(e,this,"url"),e=g.Dl8Element.assignContentDefault(e,this,"type","headset"),e=g.Dl8Element.assignContentDefault(e,this,"weight",1,parseFloat,g.Dl8Element.validate(g.Dl8Element.validIfNumberGreater(0),"weight must be greater than 0.")),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-affiliate-item",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8AffiliateSpotElement=void 0;var i=n(46),a=r(i),o=n(9),s=r(o),l=n(4),u=r(l),d=n(1),c=r(d),f=n(2),h=r(f),_=n(6),A=r(_),m=n(8),p=r(m),g=n(5),E=r(g),v=n(11),b=n(15),S=t.Dl8AffiliateSpotElement=function(e){function t(){return(0,c.default)(this,t),(0,A.default)(this,(t.__proto__||(0,u.default)(t)).apply(this,arguments))}return(0,E.default)(t,e),(0,h.default)(t,[{key:"$createContent",value:function(){var e={};return v.Dl8Element.checkMandatoryAttributes(this,["placing"]),e=v.Dl8Element.assignContent(e,this,"placing",function(e){return e},v.Dl8Element.validate(v.Dl8Element.validIfInSet(t._validPlacingAttributeValues),'placing must be one of "'+b.AFFILIATE_SPOT_WIZARD+'", "'+b.AFFILIATE_SPOT_PAUSE+'", "'+b.AFFILIATE_SPOT_NO_VR_SCREEN+'".')),e=v.Dl8Element.assignContent(e,this,"cta"),e=v.Dl8Element.assignContentDefault(e,this,"type","headset"),(0,s.default)((0,p.default)(t.prototype.__proto__||(0,u.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){v.Dl8Element._registerElement("dl8-affiliate-spot",t)}}]),t}(v.Dl8Element);S._validPlacingAttributeValues=new a.default([b.AFFILIATE_SPOT_WIZARD,b.AFFILIATE_SPOT_PAUSE,b.AFFILIATE_SPOT_NO_VR_SCREEN])},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubContentElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(251),v=n(256),b=n(108),S=n(249),T=n(245),x=n(252),y=n(253),C=n(174),w=n(170),M=n(15),D=t.Dl8HubContentElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$getSupportedChildrenTags",value:function(){var e=["dl8-hub-group","dl8-external-content"];return t.AllowedTags.imgEnabled&&e.push("dl8-img"),t.AllowedTags.tourEnabled&&e.push("dl8-tour"),t.AllowedTags.videoEnabled&&e.push("dl8-video"),t.AllowedTags.ibrEnabled&&e.push("dl8-ibr"),t.AllowedTags.cinemaEnabled&&e.push("dl8-cinema"),t.AllowedTags.liveVideoEnabled&&e.push("dl8-live-video"),t.AllowedTags.modelEnabled&&e.push("dl8-model"),e}},{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignContentDefault(e,this,"mode",M.HUB_CONTENT_STATIC),"dynamic"===e.mode&&(g.Dl8Element.checkMandatoryAttributes(this,["on-request-content","on-request-content-count"]),e=g.Dl8Element.assignContentCallback(e,this,"on-request-content"),e=g.Dl8Element.assignContentCallback(e,this,"on-request-content-count")),t.AllowedTags.imgEnabled&&(e=g.Dl8Element.assignChildrenContent(e,this,"dl8-img")),t.AllowedTags.tourEnabled&&(e=g.Dl8Element.assignChildrenContent(e,this,"dl8-tour")),t.AllowedTags.videoEnabled&&(e=g.Dl8Element.assignChildrenContent(e,this,"dl8-video")),t.AllowedTags.ibrEnabled&&(e=g.Dl8Element.assignChildrenContent(e,this,"dl8-ibr")),t.AllowedTags.cinemaEnabled&&(e=g.Dl8Element.assignChildrenContent(e,this,"dl8-cinema")),t.AllowedTags.liveVideoEnabled&&(e=g.Dl8Element.assignChildrenContent(e,this,"dl8-live-video")),t.AllowedTags.modelEnabled&&(e=g.Dl8Element.assignChildrenContent(e,this,"dl8-model")),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-group"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-external-content"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(e){t.AllowedTags=e,g.Dl8Element._registerElement("dl8-hub-content",t),e.imgEnabled&&E.Dl8ImgElement.registerElement(),e.tourEnabled&&v.Dl8TourElement.registerElement(),e.videoEnabled&&b.Dl8VideoElement.registerElement(),e.ibrEnabled&&S.Dl8IbrElement.registerElement(),e.cinemaEnabled&&T.Dl8CinemaElement.registerElement(),e.liveVideoEnabled&&x.Dl8LiveVideoElement.registerElement(),e.modelEnabled&&y.Dl8ModelElement.registerElement(),C.Dl8HubGroupElement.registerElement(),w.Dl8ExternalContentElement.registerElement()}}]),t}(g.Dl8Element);D.AllowedTags={}},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubElement=void 0;var a=n(9),o=i(a),s=n(4),l=i(s),u=n(1),d=i(u),c=n(2),f=i(c),h=n(6),_=i(h),A=n(8),m=i(A),p=n(5),g=i(p),E=n(15),v=r(E),b=n(61),S=n(11),T=n(93),x=n(398),y=n(405),C=n(411),w=n(412);t.Dl8HubElement=function(e){function t(){return(0,d.default)(this,t),(0,_.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,f.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-hub-content","dl8-hub-vizor","dl8-hub-filter","dl8-hub-sorter"]}},{key:"$getContentBadge",value:function(){return{name:"Hub",iconClass:"iconHub"}}},{key:"$createContent",value:function(){var e={};e=S.Dl8Element.assignContentDefault(e,this,"room-format",v.CONTENT_MODE_MONO_360),e=(0,o.default)(e,(0,b.getCustomFormat)(e)),this.getAttribute("room-src-left")&&this.getAttribute("room-src-right")?e=(0,o.default)(e,{eyesPreSeparated:!0,srcLeft:this.getAttribute("room-src-left"),srcRight:this.getAttribute("room-src-right")}):this.getAttribute("room-src-left")||this.getAttribute("room-src-right")||(e=(0,o.default)(e,{src:this.getAttribute("room-src")})),e=S.Dl8Element.assignChildrenContent(e,this,"dl8-hub-content"),e=S.Dl8Element.assignChildrenContent(e,this,"dl8-hub-vizor"),e=S.Dl8Element.assignChildrenContent(e,this,"dl8-hub-filter"),e=S.Dl8Element.assignChildrenContent(e,this,"dl8-hub-sorter");var n=(0,o.default)((0,m.default)(t.prototype.__proto__||(0,l.default)(t.prototype),"$createContent",this).call(this),e,{type:v.CONTENT_TYPE_HUB});return n}}],[{key:"registerElement",value:function(e){x.Dl8HubContentElement.registerElement(e),w.Dl8HubVizorElement.registerElement(e),y.Dl8HubFilterElement.registerElement(e),C.Dl8HubSorterElement.registerElement(e),S.Dl8Element._registerElement("dl8-hub",t)}}]),t}(T.Dl8EmbedElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubFilterAttrContainsAllOfElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(83);t.Dl8HubFilterAttrContainsAllOfElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["attr","value"]),e=g.Dl8Element.assignContent(e,this,"attr"),e=g.Dl8Element.assignContent(e,this,"value",g.Dl8Element.parseAttrJSONArray),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-filter-attr-contains-all-of",t)}}]),t}(E.Dl8HubFilterAbstractElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubFilterAttrContainsElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(83);t.Dl8HubFilterAttrContainsElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["attr","value"]),e=g.Dl8Element.assignContent(e,this,"attr"),e=g.Dl8Element.assignContent(e,this,"value"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-filter-attr-contains",t)}}]),t}(E.Dl8HubFilterAbstractElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubFilterAttrContainsOneOfElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(83);t.Dl8HubFilterAttrContainsOneOfElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["attr","value"]),e=g.Dl8Element.assignContent(e,this,"attr"),e=g.Dl8Element.assignContent(e,this,"value",g.Dl8Element.parseAttrJSONArray),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-filter-attr-contains-one-of",t)}}]),t}(E.Dl8HubFilterAbstractElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubFilterAttrIsElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(83);t.Dl8HubFilterAttrIsElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["attr","value"]),e=g.Dl8Element.assignContent(e,this,"attr"),e=g.Dl8Element.assignContent(e,this,"value"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-filter-attr-is",t)}}]),t}(E.Dl8HubFilterAbstractElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubFilterDynamicElement=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(6),c=r(d),f=n(5),h=r(f),_=n(11),A=n(83);t.Dl8HubFilterDynamicElement=function(e){function t(){return(0,s.default)(this,t),(0,c.default)(this,(t.__proto__||(0,a.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,u.default)(t,null,[{key:"registerElement",value:function(){_.Dl8Element._registerElement("dl8-hub-filter-dynamic",t)}}]),t}(A.Dl8HubFilterAbstractElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubFilterElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(403),v=n(401),b=n(402),S=n(400),T=n(406),x=n(407),y=n(404);t.Dl8HubFilterElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-hub-filter-attr-is","dl8-hub-filter-attr-contains","dl8-hub-filter-attr-contains-one-of","dl8-hub-filter-attr-contains-all-of","dl8-hub-filter-element-is","dl8-hub-filter-element-is-one-of","dl8-hub-filter-dynamic"]}},{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-filter-attr-is"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-filter-attr-contains"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-filter-attr-contains-one-of"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-filter-attr-contains-all-of"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-filter-element-is"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-filter-element-is-one-of"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-filter-dynamic"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){E.Dl8HubFilterAttrIsElement.registerElement(),v.Dl8HubFilterAttrContainsElement.registerElement(),b.Dl8HubFilterAttrContainsOneOfElement.registerElement(),S.Dl8HubFilterAttrContainsAllOfElement.registerElement(),T.Dl8HubFilterElementIsElement.registerElement(),x.Dl8HubFilterElementIsOneOfElement.registerElement(),y.Dl8HubFilterDynamicElement.registerElement(),g.Dl8Element._registerElement("dl8-hub-filter",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubFilterElementIsElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(83);t.Dl8HubFilterElementIsElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["value"]),e=g.Dl8Element.assignContent(e,this,"value"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-filter-element-is",t)}}]),t}(E.Dl8HubFilterAbstractElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubFilterElementIsOneOfElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(83);t.Dl8HubFilterElementIsOneOfElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["value"]),e=g.Dl8Element.assignContent(e,this,"value",g.Dl8Element.parseAttrJSONArray),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-filter-element-is-one-of",t)}}]),t}(E.Dl8HubFilterAbstractElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubMenuItemElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(171),v=n(173),b=n(172);t.Dl8HubMenuItemElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-hub-action-filter","dl8-hub-action-sort","dl8-hub-action-set-title"]}},{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["title"]),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-action-filter"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-action-sort"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-action-set-title"),e=g.Dl8Element.assignContent(e,this,"title"),e=g.Dl8Element.assignContent(e,this,"menu-item-id"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){E.Dl8HubActionFilterElement.registerElement(),v.Dl8HubActionSortElement.registerElement(),b.Dl8HubActionSetTitleElement.registerElement(),g.Dl8Element._registerElement("dl8-hub-menu-item",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubSorterAttrElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8HubSorterAttrElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["sorter-id","attr"]),e=g.Dl8Element.assignContent(e,this,"sorter-id"),e=g.Dl8Element.assignContent(e,this,"attr"),e=g.Dl8Element.assignContentDefault(e,this,"type","numerical"),e=g.Dl8Element.assignContentDefault(e,this,"order","ascending"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-sorter-attr",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubSorterDynamicElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8HubSorterDynamicElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["sorter-id"]),e=g.Dl8Element.assignContent(e,this,"sorter-id"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-hub-sorter-dynamic",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubSorterElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(409),v=n(410);t.Dl8HubSorterElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-hub-sorter-attr","dl8-hub-sorter-dynamic"]}},{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-sorter-attr"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-sorter-dynamic"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){E.Dl8HubSorterAttrElement.registerElement(),v.Dl8HubSorterDynamicElement.registerElement(),g.Dl8Element._registerElement("dl8-hub-sorter",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8HubVizorElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(247),v=n(246);t.Dl8HubVizorElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-hub-menu","dl8-hub-grid"]}},{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignContentBoolean(e,this,"show-brand-logo"),e=g.Dl8Element.assignContentBoolean(e,this,"show-home-button"),e=g.Dl8Element.assignContentBoolean(e,this,"no-shadow"),e=g.Dl8Element.assignContentDefault(e,this,"height",.5,parseFloat,g.Dl8Element.validate(g.Dl8Element.validIfNumberBetween(.5,2),"height must be between 0.5 and 2 meters.")),e=g.Dl8Element.assignContentDefault(e,this,"radius",1.5,parseFloat,g.Dl8Element.validate(g.Dl8Element.validIfNumberBetween(1.25,2),"radius must be between 1.25 and 2 meters.")),e=g.Dl8Element.assignContentDefault(e,this,"spacing",.2,parseFloat,g.Dl8Element.validate(g.Dl8Element.validIfNumberBetween(0,.3),"spacing must be between 0.0 and 0.3 meters.")),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-menu"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-hub-grid"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){E.Dl8HubMenuElement.registerElement(),v.Dl8HubGridElement.registerElement(),g.Dl8Element._registerElement("dl8-hub-vizor",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8ModelCamera=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8ModelCamera=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignContentDefault(e,this,"position",[0,0,0],JSON.parse),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-model-camera",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8ModelDirectionalLight=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8ModelDirectionalLight=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["direction"]),e=g.Dl8Element.assignContent(e,this,"direction",JSON.parse),e=g.Dl8Element.assignContentDefault(e,this,"color","#ffffff"),e=g.Dl8Element.assignContentBoolean(e,this,"castsShadow"),e=g.Dl8Element.assignContentDefault(e,this,"intensity",1,parseFloat),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-model-directional-light",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8ModelIbl=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8ModelIbl=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["src"]),e=g.Dl8Element.assignContent(e,this,"src"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-model-ibl",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8ModelPointLight=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8ModelPointLight=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["position"]),e=g.Dl8Element.assignContent(e,this,"position",JSON.parse),e=g.Dl8Element.assignContentDefault(e,this,"color","#ffffff"),e=g.Dl8Element.assignContentDefault(e,this,"intensity",1,parseFloat),e=g.Dl8Element.assignContentDefault(e,this,"radius",1,parseFloat),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-model-point-light",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8ModelSkybox=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8ModelSkybox=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["src"]),e=g.Dl8Element.assignContent(e,this,"src"),e=g.Dl8Element.assignContentDefault(e,this,"intensity",1,parseFloat),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-model-skybox",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8ModelSpotLight=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8ModelSpotLight=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["position, direction"]),e=g.Dl8Element.assignContent(e,this,"position",JSON.parse),e=g.Dl8Element.assignContent(e,this,"direction",JSON.parse),e=g.Dl8Element.assignContent(e,this,"gobo-texture-src"),e=g.Dl8Element.assignContentDefault(e,this,"color","#ffffff"),e=g.Dl8Element.assignContentDefault(e,this,"intensity",1,parseFloat),e=g.Dl8Element.assignContentDefault(e,this,"radius",1,parseFloat),e=g.Dl8Element.assignContentDefault(e,this,"angle",Math.PI/8,parseFloat),e=g.Dl8Element.assignContentDefault(e,this,"exponent",1,parseFloat),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-model-spot-light",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TourHotspotElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(175),v=n(421),b=n(423),S=n(422),T=n(424),x=n(420),y=n(19),C=r(y);t.Dl8TourHotspotElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-tour-hotspot-heading","dl8-tour-hotspot-paragraph","dl8-tour-hotspot-image","dl8-tour-hotspot-portal-button","dl8-tour-hotspot-ext-button"]}},{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignChildrenContent(e,this,"dl8-tour-hotspot-heading"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-tour-hotspot-paragraph"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-tour-hotspot-image"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-tour-hotspot-portal-button"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-tour-hotspot-ext-button"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),this.$createBaseContent(),e)}}],[{key:"registerElement",value:function(){v.Dl8TourHotspotHeadingElement.registerElement(),b.Dl8TourHotspotParagraphElement.registerElement(),S.Dl8TourHotspotImageElement.registerElement(),T.Dl8TourHotspotPortalButtonElement.registerElement(),x.Dl8TourHotspotExtButtonElement.registerElement(), g.Dl8Element._registerElement("dl8-tour-hotspot",t)}}]),t}((0,C.default)(g.Dl8Element,E.Dl8TourHotspotBaseElement))},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TourHotspotExtButtonElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8TourHotspotExtButtonElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["url","label"]),e=g.Dl8Element.assignContent(e,this,"url"),e=g.Dl8Element.assignContent(e,this,"label"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-tour-hotspot-ext-button",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TourHotspotHeadingElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8TourHotspotHeadingElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["text"]),e=g.Dl8Element.assignContent(e,this,"text"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-tour-hotspot-heading",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TourHotspotImageElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8TourHotspotImageElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["src"]),e=g.Dl8Element.assignContent(e,this,"src"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-tour-hotspot-image",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TourHotspotParagraphElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8TourHotspotParagraphElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["text"]),e=g.Dl8Element.assignContent(e,this,"text"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-tour-hotspot-paragraph",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TourHotspotPortalButtonElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8TourHotspotPortalButtonElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["to","label"]),e=g.Dl8Element.assignContent(e,this,"to"),e=g.Dl8Element.assignContent(e,this,"label"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-tour-hotspot-portal-button",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TourImgElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(250),v=n(426),b=n(419),S=n(255),T=n(19),x=r(T);t.Dl8TourImgElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-tour-portal","dl8-tour-hotspot","dl8-tour-content-portal"]}},{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["probe-id"]),e=g.Dl8Element.assignContent(e,this,"probe-id"),e=g.Dl8Element.assignContent(e,this,"title"),e=g.Dl8Element.assignContent(e,this,"rotation-y",function(e){return e?parseFloat(e):void 0}),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-tour-portal"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-tour-content-portal"),e=g.Dl8Element.assignChildrenContent(e,this,"dl8-tour-hotspot"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),(0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createMediaContent",this).call(this),e)}}],[{key:"registerElement",value:function(){v.Dl8TourPortalElement.registerElement(),b.Dl8TourHotspotElement.registerElement(),S.Dl8TourContentPortalElement.registerElement(),g.Dl8Element._registerElement("dl8-tour-img",t)}}]),t}((0,x.default)(g.Dl8Element,E.Dl8ImageMediaElement))},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TourPortalElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(175),v=n(19),b=r(v);t.Dl8TourPortalElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["to"]),e=g.Dl8Element.assignContent(e,this,"to"),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),this.$createBaseContent(),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-tour-portal",t)}}]),t}((0,b.default)(g.Dl8Element,E.Dl8TourHotspotBaseElement))},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8TrackElement=void 0;var i=n(9),a=r(i),o=n(46),s=r(o),l=n(4),u=r(l),d=n(1),c=r(d),f=n(2),h=r(f),_=n(6),A=r(_),m=n(8),p=r(m),g=n(5),E=r(g),v=n(11),b=t.Dl8TrackElement=function(e){function t(){return(0,c.default)(this,t),(0,A.default)(this,(t.__proto__||(0,u.default)(t)).apply(this,arguments))}return(0,E.default)(t,e),(0,h.default)(t,[{key:"$createContent",value:function(){var e={};return v.Dl8Element.checkMandatoryAttributes(this,["src"]),e=v.Dl8Element.assignContentDefault(e,this,"kind","subtitles"),e=v.Dl8Element.assignContent(e,this,"src"),"subtitles"===e.kind&&v.Dl8Element.checkMandatoryAttributes(this,["srclang"]),e=v.Dl8Element.assignContentDefaultValidator(e,this,"metadata-kind","standard",v.Dl8Element.validIfInSet(new s.default(["standard","thumbs"])),'metadata-kind must be one of: [ "standard", "thumbs" ]'),e=v.Dl8Element.assignContent(e,this,"srclang"),e=v.Dl8Element.assignContentValidator(e,this,"label",v.Dl8Element.validIfNotEmptyString,"Must not be an empty string"),e=v.Dl8Element.assignContentBoolean(e,this,"default"),e=v.Dl8Element.assignContentBoolean(e,this,"hidden"),(0,a.default)((0,p.default)(t.prototype.__proto__||(0,u.default)(t.prototype),"$createContent",this).call(this),e)}},{key:"track",get:function(){if(this._track)return this._track;var e=document.createElement("track");return t._validKindAttributeValues.has(this.getAttribute("kind"))?v.Dl8Element.copyAttribute(e,"kind",this,"kind"):e.setAttribute("kind","metadata"),v.Dl8Element.copyAttribute(e,"subtitles",this,"subtitles"),v.Dl8Element.copyAttribute(e,"srclang",this,"srclang"),v.Dl8Element.copyAttribute(e,"label",this,"label"),v.Dl8Element.copyAttribute(e,"kind",this,"kind"),v.Dl8Element.copyBooleanAttribute(e,"default",this,"default"),v.Dl8Element.copyBooleanAttribute(e,"hidden",this,"hidden"),v.Dl8Element.copyAttribute(e,"src",this,"src"),v.Dl8Element.copyAttribute(e,"x-dl8-parent-id",this,"dl8-id"),this._track=e,this._track}}],[{key:"registerElement",value:function(){v.Dl8Element._registerElement("dl8-track",t)}}]),t}(v.Dl8Element);b._validKindAttributeValues=new s.default(["subtitles","captions","descriptions","chapters","metadata"])},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8VideoPreviewSpriteElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11),E=n(429);t.Dl8VideoPreviewSpriteElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$getSupportedChildrenTags",value:function(){return["dl8-video-preview-sprite-sheet"]}},{key:"$createContent",value:function(){var e={};return e=g.Dl8Element.assignChildrenContent(e,this,"dl8-video-preview-sprite-sheet"),e=g.Dl8Element.assignContentDefault(e,this,"frame-aspect",16/9,function(e){var t=e;return t=t.split(":"),t=2===t.length?t[0]/t[1]:16/9}),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){E.Dl8VideoPreviewSpriteSheetElement.registerElement(),g.Dl8Element._registerElement("dl8-video-preview-sprite",t)}}]),t}(g.Dl8Element)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dl8VideoPreviewSpriteSheetElement=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(11);t.Dl8VideoPreviewSpriteSheetElement=function(e){function t(){return(0,u.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,p.default)(t,e),(0,c.default)(t,[{key:"$createContent",value:function(){var e={};return g.Dl8Element.checkMandatoryAttributes(this,["src"]),e=g.Dl8Element.assignContent(e,this,"src"),e=g.Dl8Element.assignContentDefault(e,this,"frames",25,function(e){return parseInt(e,10)},g.Dl8Element.validate(g.Dl8Element.validIfNumberBetween(1,1024))),e=g.Dl8Element.assignContentDefault(e,this,"columns",5,function(e){return parseInt(e,10)},g.Dl8Element.validate(g.Dl8Element.validIfNumberBetween(1,1024))),e=g.Dl8Element.assignContentDefault(e,this,"rows",5,function(e){return parseInt(e,10)},g.Dl8Element.validate(g.Dl8Element.validIfNumberBetween(1,1024))),(0,a.default)((0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"$createContent",this).call(this),e)}}],[{key:"registerElement",value:function(){g.Dl8Element._registerElement("dl8-video-preview-sprite-sheet",t)}}]),t}(g.Dl8Element)},function(e,t,n){var r,i;(function(a,o){"use strict";function s(e){return e&&e.__esModule?e:{default:e}}var l=n(51),u=s(l);/*! * @overview es6-promise - a tiny implementation of Promises/A+. * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) * @license Licensed under MIT license * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE * @version 3.3.1 */ !function(a,o){"object"===(0,u.default)(t)&&"undefined"!=typeof e?e.exports=o():(r=o,i="function"==typeof r?r.call(t,n,t,e):r,!(void 0!==i&&(e.exports=i)))}(void 0,function(){function e(e){return"function"==typeof e||"object"===("undefined"==typeof e?"undefined":(0,u.default)(e))&&null!==e}function t(e){return"function"==typeof e}function r(e){Z=e}function i(e){K=e}function s(){return function(){return a.nextTick(h)}}function l(){return function(){q(h)}}function d(){var e=0,t=new ee(h),n=document.createTextNode("");return t.observe(n,{characterData:!0}),function(){n.data=e=++e%2}}function c(){var e=new MessageChannel;return e.port1.onmessage=h,function(){return e.port2.postMessage(0)}}function f(){var e=setTimeout;return function(){return e(h,1)}}function h(){for(var e=0;e<Y;e+=2){var t=re[e],n=re[e+1];t(n),re[e]=void 0,re[e+1]=void 0}Y=0}function _(){try{var e=n(895);return q=e.runOnLoop||e.runOnContext,l()}catch(e){return f()}}function A(e,t){var n=arguments,r=this,i=new this.constructor(p);void 0===i[ae]&&B(i);var a=r._state;return a?!function(){var e=n[a-1];K(function(){return L(a,i,e,r._result)})}():D(r,i,e,t),i}function m(e){var t=this;if(e&&"object"===("undefined"==typeof e?"undefined":(0,u.default)(e))&&e.constructor===t)return e;var n=new t(p);return y(n,e),n}function p(){}function g(){return new TypeError("You cannot resolve a promise with itself")}function E(){return new TypeError("A promises callback cannot return that same promise.")}function v(e){try{return e.then}catch(e){return ue.error=e,ue}}function b(e,t,n,r){try{e.call(t,n,r)}catch(e){return e}}function S(e,t,n){K(function(e){var r=!1,i=b(n,t,function(n){r||(r=!0,t!==n?y(e,n):w(e,n))},function(t){r||(r=!0,M(e,t))},"Settle: "+(e._label||" unknown promise"));!r&&i&&(r=!0,M(e,i))},e)}function T(e,t){t._state===se?w(e,t._result):t._state===le?M(e,t._result):D(t,void 0,function(t){return y(e,t)},function(t){return M(e,t)})}function x(e,n,r){n.constructor===e.constructor&&r===A&&n.constructor.resolve===m?T(e,n):r===ue?M(e,ue.error):void 0===r?w(e,n):t(r)?S(e,n,r):w(e,n)}function y(t,n){t===n?M(t,g()):e(n)?x(t,n,v(n)):w(t,n)}function C(e){e._onerror&&e._onerror(e._result),P(e)}function w(e,t){e._state===oe&&(e._result=t,e._state=se,0!==e._subscribers.length&&K(P,e))}function M(e,t){e._state===oe&&(e._state=le,e._result=t,K(C,e))}function D(e,t,n,r){var i=e._subscribers,a=i.length;e._onerror=null,i[a]=t,i[a+se]=n,i[a+le]=r,0===a&&e._state&&K(P,e)}function P(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r=void 0,i=void 0,a=e._result,o=0;o<t.length;o+=3)r=t[o],i=t[o+n],r?L(n,r,i,a):i(a);e._subscribers.length=0}}function R(){this.error=null}function I(e,t){try{return e(t)}catch(e){return de.error=e,de}}function L(e,n,r,i){var a=t(r),o=void 0,s=void 0,l=void 0,u=void 0;if(a){if(o=I(r,i),o===de?(u=!0,s=o.error,o=null):l=!0,n===o)return void M(n,E())}else o=i,l=!0;n._state!==oe||(a&&l?y(n,o):u?M(n,s):e===se?w(n,o):e===le&&M(n,o))}function O(e,t){try{t(function(t){y(e,t)},function(t){M(e,t)})}catch(t){M(e,t)}}function N(){return ce++}function B(e){e[ae]=ce++,e._state=void 0,e._result=void 0,e._subscribers=[]}function F(e,t){this._instanceConstructor=e,this.promise=new e(p),this.promise[ae]||B(this.promise),j(t)?(this._input=t,this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?w(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&w(this.promise,this._result))):M(this.promise,k())}function k(){return new Error("Array Methods must be provided an Array")}function U(e){return new F(this,e).promise}function V(e){var t=this;return new t(j(e)?function(n,r){for(var i=e.length,a=0;a<i;a++)t.resolve(e[a]).then(n,r)}:function(e,t){return t(new TypeError("You must pass an array to race."))})}function G(e){var t=this,n=new t(p);return M(n,e),n}function H(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function z(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function Q(e){this[ae]=N(),this._result=this._state=void 0,this._subscribers=[],p!==e&&("function"!=typeof e&&H(),this instanceof Q?O(this,e):z())}function X(){var e=void 0;if("undefined"!=typeof o)e=o;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var n=null;try{n=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===n&&!t.cast)return}e.Promise=Q}var W=void 0;W=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var j=W,Y=0,q=void 0,Z=void 0,K=function(e,t){re[Y]=e,re[Y+1]=t,Y+=2,2===Y&&(Z?Z(h):ie())},J="undefined"!=typeof window?window:void 0,$=J||{},ee=$.MutationObserver||$.WebKitMutationObserver,te="undefined"==typeof self&&"undefined"!=typeof a&&"[object process]"==={}.toString.call(a),ne="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,re=new Array(1e3),ie=void 0;ie=te?s():ee?d():ne?c():void 0===J?_():f();var ae=Math.random().toString(36).substring(16),oe=void 0,se=1,le=2,ue=new R,de=new R,ce=0;return F.prototype._enumerate=function(){for(var e=this.length,t=this._input,n=0;this._state===oe&&n<e;n++)this._eachEntry(t[n],n)},F.prototype._eachEntry=function(e,t){var n=this._instanceConstructor,r=n.resolve;if(r===m){var i=v(e);if(i===A&&e._state!==oe)this._settledAt(e._state,t,e._result);else if("function"!=typeof i)this._remaining--,this._result[t]=e;else if(n===Q){var a=new n(p);x(a,e,i),this._willSettleAt(a,t)}else this._willSettleAt(new n(function(t){return t(e)}),t)}else this._willSettleAt(r(e),t)},F.prototype._settledAt=function(e,t,n){var r=this.promise;r._state===oe&&(this._remaining--,e===le?M(r,n):this._result[t]=n),0===this._remaining&&w(r,this._result)},F.prototype._willSettleAt=function(e,t){var n=this;D(e,void 0,function(e){return n._settledAt(se,t,e)},function(e){return n._settledAt(le,t,e)})},Q.all=U,Q.race=V,Q.resolve=m,Q.reject=G,Q._setScheduler=r,Q._setAsap=i,Q._asap=K,Q.prototype={constructor:Q,then:A,catch:function(e){return this.then(null,e)}},X(),Q.polyfill=X,Q.Promise=Q,Q})}).call(t,n(346),function(){return this}())},function(e,t,n){(function(t){"use strict";e.exports=function(){function e(e){return"function"==typeof e}var r=void 0;r=void 0!==t?t:void 0!==window&&window.document?window:self;var i=function(){if(!r.hasOwnProperty("Promise"))return!1;var t=r.Promise;return!(!t.hasOwnProperty("resolve")||!t.hasOwnProperty("reject"))&&(!(!t.hasOwnProperty("all")||!t.hasOwnProperty("race"))&&function(){var t=void 0,n=new r.Promise(function(e){t=e});return!!n&&e(t)}())}();return i?r.Promise:n(430).Promise}()}).call(t,function(){return this}())},function(e,t,n){"use strict";e.exports=function(){function e(e){return e&&"function"==typeof e.then&&"function"==typeof e.catch}var t=n(431);return function(n,r){return function(){for(var i=arguments.length,a=Array(i),o=0;o<i;o++)a[o]=arguments[o];var s=r&&r.multiArgs,l=void 0;return r&&r.thisArg?l=r.thisArg:r&&(l=r),new t(function(t,r){a.push(function(e){if(e)return r(e);for(var n=arguments.length,i=Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];return!1==!!s?t(i[0]):void t(i)});var i=n.apply(l,a);e(i)&&t(i)})}}}()},function(e,t){"use strict";function n(e){e<.5&&(e=.5);var t=Math.exp(.527076)/e,n=Math.exp(-t),r=Math.exp(-2*t),i=(1-n)*(1-n)/(1+2*t*n-r);return a=i,o=i*(t-1)*n,s=i*(t+1)*n,l=-i*r,u=2*n,d=-r,c=(a+o)/(1-u-d),f=(s+l)/(1-u-d),new Float32Array([a,o,s,l,u,d,c,f])}function r(e,t,n,r,i,a){var o,s,l,u,d,c,f,h,_,A,m,p,g,E;for(_=0;_<a;_++){for(c=_*i,f=_,h=0,o=e[c],d=o*r[6],u=d,m=r[0],p=r[1],g=r[4],E=r[5],A=0;A<i;A++)s=e[c],l=s*m+o*p+u*g+d*E,d=u,u=l,o=s,n[h]=u,h++,c++;for(c--,h--,f+=a*(i-1),o=e[c],d=o*r[7],u=d,s=o,m=r[2],p=r[3],A=i-1;A>=0;A--)l=s*m+o*p+u*g+d*E,d=u,u=l,o=s,s=e[c],t[f]=n[h]+u,c--,h--,f-=a}}function i(e,t,i,a){if(a){var o=new Uint16Array(e.length),s=new Float32Array(Math.max(t,i)),l=n(a);r(e,o,s,l,t,i,a),r(o,e,s,l,i,t,a)}}var a,o,s,l,u,d,c,f;e.exports=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(301),a=r(i);"function"==typeof a.default?e.exports=function(e,t){e.super_=t,e.prototype=(0,a.default)(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){if(!(this instanceof i))return new i(e);var t=u({},f,e||{});if(this.options=t,this.__cache={},this.has_wasm=c(),this.__init_promise=null,this.__modules=t.modules||{},this.__memory=null,this.__wasm={},this.__isLE=1===new Uint32Array(new Uint8Array([1,0,0,0]).buffer)[0],!this.options.js&&!this.options.wasm)throw new Error('mathlib: at least "js" or "wasm" should be enabled')}var a=n(85),o=r(a),s=n(26),l=r(s),u=n(259),d=n(436),c=n(442),f={js:!0,wasm:!0};i.prototype.use=function(e){return this.__modules[e.name]=e,this.has_wasm&&this.options.wasm&&e.wasm_fn?this[e.name]=e.wasm_fn:this[e.name]=e.fn,this},i.prototype.init=function(){if(this.__init_promise)return this.__init_promise;if(!this.options.js&&this.options.wasm&&!this.has_wasm)return l.default.reject(new Error('mathlib: only "wasm" was enabled, but it\'s not supported'));var e=this;return this.__init_promise=l.default.all((0,o.default)(e.__modules).map(function(t){var n=e.__modules[t];return e.has_wasm&&e.options.wasm&&n.wasm_fn?e.__wasm[t]?null:WebAssembly.compile(e.__base64decode(n.wasm_src)).then(function(n){e.__wasm[t]=n}):null})).then(function(){return e}),this.__init_promise},i.prototype.__base64decode=d,i.prototype.__reallocate=function(e){if(!this.__memory)return this.__memory=new WebAssembly.Memory({initial:Math.ceil(e/65536)}),this.__memory;var t=this.__memory.buffer.byteLength;return t<e&&this.__memory.grow(Math.ceil((e-t)/65536)),this.__memory},i.prototype.__instance=function(e,t,n){if(t&&this.__reallocate(t),!this.__wasm[e]){var r=this.__modules[e];this.__wasm[e]=new WebAssembly.Module(this.__base64decode(r.wasm_src))}if(!this.__cache[e]){var i={memoryBase:0,memory:this.__memory,tableBase:0,table:new WebAssembly.Table({initial:0,element:"anyfunc"})};this.__cache[e]=new WebAssembly.Instance(this.__wasm[e],{env:u(i,n||{})})}return this.__cache[e]},i.prototype.__align=function(e,t){t=t||8;var n=e%t;return e+(n?t-n:0)},e.exports=i},function(e,t){"use strict";var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";e.exports=function(e){for(var t=e.replace(/[\r\n=]/g,""),r=t.length,i=new Uint8Array(3*r>>2),a=0,o=0,s=0;s<r;s++)s%4===0&&s&&(i[o++]=a>>16&255,i[o++]=a>>8&255,i[o++]=255&a),a=a<<6|n.indexOf(t.charAt(s));var l=r%4*6;return 0===l?(i[o++]=a>>16&255,i[o++]=a>>8&255,i[o++]=255&a):18===l?(i[o++]=a>>10&255,i[o++]=a>>2&255):12===l&&(i[o++]=a>>4&255),i}},function(e,t){"use strict";e.exports=function(e,t,n){for(var r,i,a,o,s,l=t*n,u=new Uint16Array(l),d=0;d<l;d++)r=e[4*d],i=e[4*d+1],a=e[4*d+2],s=r>=i&&r>=a?r:i>=a&&i>=r?i:a,o=r<=i&&r<=a?r:i<=a&&i<=r?i:a,u[d]=257*(s+o)>>1;return u}},function(e,t,n){"use strict";e.exports={name:"unsharp_mask",fn:n(439),wasm_fn:n(440),wasm_src:n(441)}},function(e,t,n){"use strict";var r=n(433),i=n(437);e.exports=function(e,t,n,a,o,s){var l,u,d,c,f,h,_,A,m,p,g,E,v;if(!(0===a||o<.5)){o>2&&(o=2);var b=i(e,t,n),S=new Uint16Array(b);r(S,t,n,o);for(var T=a/100*4096+.5|0,x=257*s|0,y=t*n,C=0;C<y;C++)E=2*(b[C]-S[C]),Math.abs(E)>=x&&(v=4*C,l=e[v],u=e[v+1],d=e[v+2],A=l>=u&&l>=d?l:u>=l&&u>=d?u:d,_=l<=u&&l<=d?l:u<=l&&u<=d?u:d,h=257*(A+_)>>1,_===A?c=f=0:(f=h<=32767?4095*(A-_)/(A+_)|0:4095*(A-_)/(510-A-_)|0,c=l===A?65535*(u-d)/(6*(A-_))|0:u===A?21845+(65535*(d-l)/(6*(A-_))|0):43690+(65535*(l-u)/(6*(A-_))|0)),h+=T*E+2048>>12,h>65535?h=65535:h<0&&(h=0),0===f?l=u=d=h>>8:(p=h<=32767?h*(4096+f)+2048>>12:h+((65535-h)*f+2048>>12),m=2*h-p>>8,p>>=8,g=c+21845&65535,l=g>=43690?m:g>=32767?m+(6*(p-m)*(43690-g)+32768>>16):g>=10922?p:m+(6*(p-m)*g+32768>>16),g=65535&c,u=g>=43690?m:g>=32767?m+(6*(p-m)*(43690-g)+32768>>16):g>=10922?p:m+(6*(p-m)*g+32768>>16),g=c-21845&65535,d=g>=43690?m:g>=32767?m+(6*(p-m)*(43690-g)+32768>>16):g>=10922?p:m+(6*(p-m)*g+32768>>16)),e[v]=l,e[v+1]=u,e[v+2]=d)}}},function(e,t){"use strict";e.exports=function(e,t,n,r,i,a){if(!(0===r||i<.5)){i>2&&(i=2);var o=t*n,s=4*o,l=2*o,u=2*o,d=4*Math.max(t,n),c=32,f=0,h=s,_=h+l,A=_+u,m=A+u,p=m+d,g=this.__instance("unsharp_mask",s+l+2*u+d+c,{exp:Math.exp}),E=new Uint32Array(e.buffer),v=new Uint32Array(this.__memory.buffer);v.set(E);var b=g.exports.hsl_l16||g.exports._hsl_l16;b(f,h,t,n),b=g.exports.blurMono16||g.exports._blurMono16,b(h,_,A,m,p,t,n,i),b=g.exports.unsharp||g.exports._unsharp,b(f,f,h,_,t,n,r,a),E.set(new Uint32Array(this.__memory.buffer,0,o))}}},function(e,t){"use strict";e.exports="AGFzbQEAAAABMQZgAXwBfGACfX8AYAZ/f39/f38AYAh/f39/f39/fQBgBH9/f38AYAh/f39/f39/fwACGQIDZW52A2V4cAAAA2VudgZtZW1vcnkCAAEDBgUBAgMEBQQEAXAAAAdMBRZfX2J1aWxkX2dhdXNzaWFuX2NvZWZzAAEOX19nYXVzczE2X2xpbmUAAgpibHVyTW9ubzE2AAMHaHNsX2wxNgAEB3Vuc2hhcnAABQkBAAqJEAXZAQEGfAJAIAFE24a6Q4Ia+z8gALujIgOaEAAiBCAEoCIGtjgCECABIANEAAAAAAAAAMCiEAAiBbaMOAIUIAFEAAAAAAAA8D8gBKEiAiACoiAEIAMgA6CiRAAAAAAAAPA/oCAFoaMiArY4AgAgASAEIANEAAAAAAAA8L+gIAKioiIHtjgCBCABIAQgA0QAAAAAAADwP6AgAqKiIgO2OAIIIAEgBSACoiIEtow4AgwgASACIAegIAVEAAAAAAAA8D8gBqGgIgKjtjgCGCABIAMgBKEgAqO2OAIcCwu3AwMDfwR9CHwCQCADKgIUIQkgAyoCECEKIAMqAgwhCyADKgIIIQwCQCAEQX9qIgdBAEgiCA0AIAIgAC8BALgiDSADKgIYu6IiDiAJuyIQoiAOIAq7IhGiIA0gAyoCBLsiEqIgAyoCALsiEyANoqCgoCIPtjgCACACQQRqIQIgAEECaiEAIAdFDQAgBCEGA0AgAiAOIBCiIA8iDiARoiANIBKiIBMgAC8BALgiDaKgoKAiD7Y4AgAgAkEEaiECIABBAmohACAGQX9qIgZBAUoNAAsLAkAgCA0AIAEgByAFbEEBdGogAEF+ai8BACIIuCINIAu7IhGiIA0gDLsiEqKgIA0gAyoCHLuiIg4gCrsiE6KgIA4gCbsiFKKgIg8gAkF8aioCALugqzsBACAHRQ0AIAJBeGohAiAAQXxqIQBBACAFQQF0ayEHIAEgBSAEQQF0QXxqbGohBgNAIAghAyAALwEAIQggBiANIBGiIAO4Ig0gEqKgIA8iECAToqAgDiAUoqAiDyACKgIAu6CrOwEAIAYgB2ohBiAAQX5qIQAgAkF8aiECIBAhDiAEQX9qIgRBAUoNAAsLCwvfAgIDfwZ8AkAgB0MAAAAAWw0AIARE24a6Q4Ia+z8gB0MAAAA/l7ujIgyaEAAiDSANoCIPtjgCECAEIAxEAAAAAAAAAMCiEAAiDraMOAIUIAREAAAAAAAA8D8gDaEiCyALoiANIAwgDKCiRAAAAAAAAPA/oCAOoaMiC7Y4AgAgBCANIAxEAAAAAAAA8L+gIAuioiIQtjgCBCAEIA0gDEQAAAAAAADwP6AgC6KiIgy2OAIIIAQgDiALoiINtow4AgwgBCALIBCgIA5EAAAAAAAA8D8gD6GgIgujtjgCGCAEIAwgDaEgC6O2OAIcIAYEQCAFQQF0IQogBiEJIAIhCANAIAAgCCADIAQgBSAGEAIgACAKaiEAIAhBAmohCCAJQX9qIgkNAAsLIAVFDQAgBkEBdCEIIAUhAANAIAIgASADIAQgBiAFEAIgAiAIaiECIAFBAmohASAAQX9qIgANAAsLC7wBAQV/IAMgAmwiAwRAQQAgA2shBgNAIAAoAgAiBEEIdiIHQf8BcSECAn8gBEH/AXEiAyAEQRB2IgRB/wFxIgVPBEAgAyIIIAMgAk8NARoLIAQgBCAHIAIgA0kbIAIgBUkbQf8BcQshCAJAIAMgAk0EQCADIAVNDQELIAQgByAEIAMgAk8bIAIgBUsbQf8BcSEDCyAAQQRqIQAgASADIAhqQYECbEEBdjsBACABQQJqIQEgBkEBaiIGDQALCwvTBgEKfwJAIAazQwAAgEWUQwAAyEKVu0QAAAAAAADgP6CqIQ0gBSAEbCILBEAgB0GBAmwhDgNAQQAgAi8BACADLwEAayIGQQF0IgdrIAcgBkEASBsgDk8EQCAAQQJqLQAAIQUCfyAALQAAIgYgAEEBai0AACIESSIJRQRAIAYiCCAGIAVPDQEaCyAFIAUgBCAEIAVJGyAGIARLGwshCAJ/IAYgBE0EQCAGIgogBiAFTQ0BGgsgBSAFIAQgBCAFSxsgCRsLIgogCGoiD0GBAmwiEEEBdiERQQAhDAJ/QQAiCSAIIApGDQAaIAggCmsiCUH/H2wgD0H+AyAIayAKayAQQYCABEkbbSEMIAYgCEYEQCAEIAVrQf//A2wgCUEGbG0MAQsgBSAGayAGIARrIAQgCEYiBhtB//8DbCAJQQZsbUHVqgFBqtUCIAYbagshCSARIAcgDWxBgBBqQQx1aiIGQQAgBkEAShsiBkH//wMgBkH//wNIGyEGAkACfwJAIAxB//8DcSIFBEAgBkH//wFKDQEgBUGAIGogBmxBgBBqQQx2DAILIAZBCHYiBiEFIAYhBAwCCyAFIAZB//8Dc2xBgBBqQQx2IAZqCyIFQQh2IQcgBkEBdCAFa0EIdiIGIQQCQCAJQdWqAWpB//8DcSIFQanVAksNACAFQf//AU8EQEGq1QIgBWsgByAGa2xBBmxBgIACakEQdiAGaiEEDAELIAchBCAFQanVAEsNACAFIAcgBmtsQQZsQYCAAmpBEHYgBmohBAsCfyAGIgUgCUH//wNxIghBqdUCSw0AGkGq1QIgCGsgByAGa2xBBmxBgIACakEQdiAGaiAIQf//AU8NABogByIFIAhBqdUASw0AGiAIIAcgBmtsQQZsQYCAAmpBEHYgBmoLIQUgCUGr1QJqQf//A3EiCEGp1QJLDQAgCEH//wFPBEBBqtUCIAhrIAcgBmtsQQZsQYCAAmpBEHYgBmohBgwBCyAIQanVAEsEQCAHIQYMAQsgCCAHIAZrbEEGbEGAgAJqQRB2IAZqIQYLIAEgBDoAACABQQFqIAU6AAAgAUECaiAGOgAACyADQQJqIQMgAkECaiECIABBBGohACABQQRqIQEgC0F/aiILDQALCwsL"},function(e,t){"use strict";var n;e.exports=function(){if("undefined"!=typeof n)return n;if(n=!1,"undefined"==typeof WebAssembly)return n;try{var e=new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11]),t=new WebAssembly.Module(e),r=new WebAssembly.Instance(t,{});return 0!==r.exports.test(4)&&(n=!0),n}catch(e){}return n}},function(e,t,n){var r,i,a=a||function(e){"use strict";if("undefined"!=typeof e&&("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent))){var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),i="download"in r,a=function(n){var r=t.createEvent("MouseEvents");r.initMouseEvent("click",!0,!1,e,0,0,0,0,0,!1,!1,!1,!1,0,null),n.dispatchEvent(r)},o=e.webkitRequestFileSystem,s=e.requestFileSystem||o||e.mozRequestFileSystem,l=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},u="application/octet-stream",d=0,c=500,f=function(t){var r=function(){"string"==typeof t?n().revokeObjectURL(t):t.remove()};e.chrome?r():setTimeout(r,c)},h=function(e,t,n){t=[].concat(t);for(var r=t.length;r--;){var i=e["on"+t[r]];if("function"==typeof i)try{i.call(e,n||e)}catch(e){l(e)}}},_=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e},A=function(t,l){t=_(t);var c,A,m,p=this,g=t.type,E=!1,v=function(){h(p,"writestart progress write writeend".split(" "))},b=function(){if(!E&&c||(c=n().createObjectURL(t)),A)A.location.href=c;else{var r=e.open(c,"_blank");void 0==r&&"undefined"!=typeof safari&&(e.location.href=c)}p.readyState=p.DONE,v(),f(c)},S=function(e){return function(){if(p.readyState!==p.DONE)return e.apply(this,arguments)}},T={create:!0,exclusive:!1};return p.readyState=p.INIT,l||(l="download"),i?(c=n().createObjectURL(t),r.href=c,r.download=l,a(r),p.readyState=p.DONE,v(),void f(c)):(e.chrome&&g&&g!==u&&(m=t.slice||t.webkitSlice,t=m.call(t,0,t.size,u),E=!0),o&&"download"!==l&&(l+=".download"),(g===u||o)&&(A=e),s?(d+=t.size,void s(e.TEMPORARY,d,S(function(e){e.root.getDirectory("saved",T,S(function(e){var n=function(){e.getFile(l,T,S(function(e){e.createWriter(S(function(n){n.onwriteend=function(t){A.location.href=e.toURL(),p.readyState=p.DONE,h(p,"writeend",t),f(e)},n.onerror=function(){var e=n.error;e.code!==e.ABORT_ERR&&b()},"writestart progress write abort".split(" ").forEach(function(e){n["on"+e]=p["on"+e]}),n.write(t),p.abort=function(){n.abort(),p.readyState=p.DONE},p.readyState=p.WRITING}),b)}),b)};e.getFile(l,{create:!1},S(function(e){e.remove(),n()}),S(function(e){e.code===e.NOT_FOUND_ERR?n():b()}))}),b)}),b)):void b())},m=A.prototype,p=function(e,t){return new A(e,t)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t){return navigator.msSaveOrOpenBlob(_(e),t)}:(m.abort=function(){var e=this;e.readyState=e.DONE,h(e,"abort")},m.readyState=m.INIT=0,m.WRITING=1,m.DONE=2,m.error=m.onwritestart=m.onprogress=m.onwrite=m.onabort=m.onerror=m.onwriteend=null,p)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||(void 0).content);"undefined"!=typeof e&&e.exports?e.exports.saveAs=a:null!==n(369)&&null!=n(894)&&(r=[],i=function(){return a}.apply(t,r),!(void 0!==i&&(e.exports=i)))},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return{value:h(p),destroy:function(){if(this.value.terminate(),"undefined"!=typeof window){var e=window.URL||window.webkitURL||window.mozURL||window.msURL;e&&e.revokeObjectURL&&this.value.objectURL&&e.revokeObjectURL(this.value.objectURL)}}}}function a(e){if(!(this instanceof a))return new a(e);this.options=f({},T,e||{});var t="lk_"+this.options.concurrency;this.__limit=v[t]||m.limiter(this.options.concurrency),v[t]||(v[t]=this.__limit),this.features={js:!1,wasm:!1,cib:!1,ww:!1},this.__workersPool=null,this.__requested_features=[],this.__mathlib=null}var o=n(196),s=r(o),l=n(26),u=r(l),d=n(45),c=r(d),f=n(259),h=n(263),_=n(260),A=n(450),m=n(453),p=n(454),g=n(451),E=n(452),v={},b=!1;try{"undefined"!=typeof navigator&&navigator.userAgent&&(b=navigator.userAgent.indexOf("Safari")>=0)}catch(e){}var S=1;"undefined"!=typeof navigator&&(S=Math.min(navigator.hardwareConcurrency||1,4));var T={tile:1024,concurrency:S,features:["js","wasm","ww"],idle:2e3},x={quality:3,alpha:!1,unsharpAmount:0,unsharpRadius:0,unsharpThreshold:0},y=void 0,C=void 0;a.prototype.init=function(){var e=this;if(this.__initPromise)return this.__initPromise;if(y!==!1&&y!==!0&&(y=!1,"undefined"!=typeof ImageData&&"undefined"!=typeof Uint8ClampedArray))try{new ImageData(new Uint8ClampedArray(400),10,10),y=!0}catch(e){}C!==!1&&C!==!0&&(C=!1,"undefined"!=typeof ImageBitmap&&(ImageBitmap.prototype&&ImageBitmap.prototype.close?C=!0:this.debug("ImageBitmap does not support .close(), disabled")));var t=this.options.features.slice();if(t.indexOf("all")>=0&&(t=["cib","wasm","js","ww"]),this.__requested_features=t,this.__mathlib=new _(t),t.indexOf("ww")>=0&&"undefined"!=typeof window&&"Worker"in window)try{var r=n(263)(function(){});r.terminate(),this.features.ww=!0;var a="wp_"+(0,c.default)(this.options);v[a]?this.__workersPool=v[a]:(this.__workersPool=new A(i,this.options.idle),v[a]=this.__workersPool)}catch(e){}var o=this.__mathlib.init().then(function(t){f(e.features,t.features)}),s=void 0;return s=C?m.cib_support().then(function(n){return e.features.cib&&t.indexOf("cib")<0?void e.debug("createImageBitmap() resize supported, but disabled by config"):void(t.indexOf("cib")>=0&&(e.features.cib=n))}):u.default.resolve(!1),this.__initPromise=u.default.all([o,s]).then(function(){return e}),this.__initPromise},a.prototype.resize=function(e,t,n){var r=this;this.debug("Start resize...");var i=f({},x);if(isNaN(n)?n&&(i=f(i,n)):i=f(i,{quality:n}),i.toWidth=t.width,i.toHeight=t.height,i.width=e.naturalWidth||e.width,i.height=e.naturalHeight||e.height,0===t.width||0===t.height)return u.default.reject(new Error("Invalid output size: "+t.width+"x"+t.height));i.unsharpRadius>2&&(i.unsharpRadius=2);var a=!1,o=null;i.cancelToken&&(o=i.cancelToken.then(function(e){throw a=!0,e},function(e){throw a=!0,e}));var l=3,d=Math.ceil(Math.max(l,2.5*i.unsharpRadius|0));return this.init().then(function(){if(a)return o;if(r.features.cib){var n=t.getContext("2d",{alpha:Boolean(i.alpha)});return r.debug("Resize via createImageBitmap()"),createImageBitmap(e,{resizeWidth:i.toWidth,resizeHeight:i.toHeight,resizeQuality:m.cib_quality_name(i.quality)}).then(function(e){if(a)return o;if(!i.unsharpAmount)return n.drawImage(e,0,0),e.close(),n=null,r.debug("Finished!"),t;r.debug("Unsharp result");var s=document.createElement("canvas");s.width=i.toWidth,s.height=i.toHeight;var l=s.getContext("2d",{alpha:Boolean(i.alpha)});l.drawImage(e,0,0),e.close();var u=l.getImageData(0,0,i.toWidth,i.toHeight);return r.__mathlib.unsharp(u.data,i.toWidth,i.toHeight,i.unsharpAmount,i.unsharpRadius,i.unsharpThreshold),n.putImageData(u,0,0),u=l=s=n=null,r.debug("Finished!"),t})}var l={},c=function(e){return u.default.resolve().then(function(){return r.features.ww?new u.default(function(t,n){var i=r.__workersPool.acquire();o&&o.catch(function(e){return n(e)}),i.value.onmessage=function(e){i.release(),e.data.err?n(e.data.err):t(e.data.result)},i.value.postMessage({opts:e,features:r.__requested_features,preload:{wasm_nodule:r.__mathlib.__}},[e.src.buffer])}):r.__mathlib.resizeAndUnsharp(e,l)})},h=function(e,t,n){var i=void 0,s=void 0,l=void 0,f=function(t){return r.__limit(function(){if(a)return o;var d=void 0;if(m.isCanvas(e))r.debug("Get tile pixel data"),d=i.getImageData(t.x,t.y,t.width,t.height);else{r.debug("Draw tile imageBitmap/image to temporary canvas");var f=document.createElement("canvas");f.width=t.width,f.height=t.height;var h=f.getContext("2d",{alpha:Boolean(n.alpha)});h.globalCompositeOperation="copy",h.drawImage(s||e,t.x,t.y,t.width,t.height,0,0,t.width,t.height),r.debug("Get tile pixel data"),d=h.getImageData(0,0,t.width,t.height),h=f=null}var _={src:d.data,width:t.width,height:t.height,toWidth:t.toWidth,toHeight:t.toHeight,scaleX:t.scaleX,scaleY:t.scaleY,offsetX:t.offsetX,offsetY:t.offsetY,quality:n.quality,alpha:n.alpha,unsharpAmount:n.unsharpAmount,unsharpRadius:n.unsharpRadius,unsharpThreshold:n.unsharpThreshold};return r.debug("Invoke resize math"),u.default.resolve().then(function(){return c(_)}).then(function(e){if(a)return o;d=null;var n=void 0;if(r.debug("Convert raw rgba tile result to ImageData"),y)n=new ImageData(new Uint8ClampedArray(e),t.toWidth,t.toHeight);else if(n=l.createImageData(t.toWidth,t.toHeight),n.data.set)n.data.set(e);else for(var i=n.data.length-1;i>=0;i--)n.data[i]=e[i];return r.debug("Draw tile"),b?l.putImageData(n,t.toX,t.toY,t.toInnerX-t.toX,t.toInnerY-t.toY,t.toInnerWidth+1e-5,t.toInnerHeight+1e-5):l.putImageData(n,t.toX,t.toY,t.toInnerX-t.toX,t.toInnerY-t.toY,t.toInnerWidth,t.toInnerHeight),null})})};return u.default.resolve().then(function(){if(l=t.getContext("2d",{alpha:Boolean(n.alpha)}),m.isCanvas(e))return i=e.getContext("2d",{alpha:Boolean(n.alpha)}),null;if(m.isImage(e))return C?(r.debug("Decode image via createImageBitmap"),createImageBitmap(e).then(function(e){s=e})):null;throw new Error('".from" should be image or canvas')}).then(function(){function e(){s&&(s.close(),s=null)}if(a)return o;r.debug("Calculate tiles");var i=E({width:n.width,height:n.height,srcTileSize:r.options.tile,toWidth:n.toWidth,toHeight:n.toHeight,destTileBorder:d}),l=i.map(function(e){return f(e)});return r.debug("Process tiles"),u.default.all(l).then(function(){return r.debug("Finished!"),e(),t},function(t){throw e(),t})})},_=function e(t,n,r,i){if(a)return o;var l=t.shift(),u=(0,s.default)(l,2),d=u[0],c=u[1],_=0===t.length;i=f({},i,{toWidth:d,toHeight:c,quality:_?i.quality:Math.min(1,i.quality)});var A=void 0;return _||(A=document.createElement("canvas"),A.width=d,A.height=c),h(n,_?r:A,i).then(function(){return _?r:(i.width=d,i.height=c,e(t,A,r,i))})},A=g(i.width,i.height,i.toWidth,i.toHeight,r.options.tile,d);return _(A,e,t,i)})},a.prototype.resizeBuffer=function(e){var t=this,n=f({},x,e);return this.init().then(function(){return t.__mathlib.resizeAndUnsharp(n)})},a.prototype.toBlob=function(e,t,n){return t=t||"image/png",new u.default(function(r){if(e.toBlob)return void e.toBlob(function(e){return r(e)},t,n);for(var i=atob(e.toDataURL(t,n).split(",")[1]),a=i.length,o=new Uint8Array(a),s=0;s<a;s++)o[s]=i.charCodeAt(s);r(new Blob([o],{type:t}))})},a.prototype.debug=function(){},e.exports=a},function(e,t){"use strict";e.exports="AGFzbQEAAAABFAJgBn9/f39/fwBgB39/f39/f38AAg8BA2VudgZtZW1vcnkCAAEDAwIAAQQEAXAAAAcZAghjb252b2x2ZQAACmNvbnZvbHZlSFYAAQkBAArmAwLBAwEQfwJAIANFDQAgBEUNACAFQQRqIRVBACEMQQAhDQNAIA0hDkEAIRFBACEHA0AgB0ECaiESAn8gBSAHQQF0IgdqIgZBAmouAQAiEwRAQQAhCEEAIBNrIRQgFSAHaiEPIAAgDCAGLgEAakECdGohEEEAIQlBACEKQQAhCwNAIBAoAgAiB0EYdiAPLgEAIgZsIAtqIQsgB0H/AXEgBmwgCGohCCAHQRB2Qf8BcSAGbCAKaiEKIAdBCHZB/wFxIAZsIAlqIQkgD0ECaiEPIBBBBGohECAUQQFqIhQNAAsgEiATagwBC0EAIQtBACEKQQAhCUEAIQggEgshByABIA5BAnRqIApBgMAAakEOdSIGQf8BIAZB/wFIG0EQdEGAgPwHcUEAIAZBAEobIAtBgMAAakEOdSIGQf8BIAZB/wFIG0EYdEEAIAZBAEobciAJQYDAAGpBDnUiBkH/ASAGQf8BSBtBCHRBgP4DcUEAIAZBAEobciAIQYDAAGpBDnUiBkH/ASAGQf8BSBtB/wFxQQAgBkEAShtyNgIAIA4gA2ohDiARQQFqIhEgBEcNAAsgDCACaiEMIA1BAWoiDSADRw0ACwsLIQACQEEAIAIgAyAEIAUgABAAIAJBACAEIAUgBiABEAALCw=="},function(e,t,n){"use strict";e.exports={name:"resize",fn:n(447),wasm_fn:n(449),wasm_src:n(445)}},function(e,t,n){"use strict";function r(e,t,n){for(var r=3,i=t*n*4|0;r<i;)e[r]=255,r=r+4|0}var i=n(262),a=n(261).convolveHorizontally,o=n(261).convolveVertically;e.exports=function(e){var t=e.src,n=e.width,s=e.height,l=e.toWidth,u=e.toHeight,d=e.scaleX||e.toWidth/e.width,c=e.scaleY||e.toHeight/e.height,f=e.offsetX||0,h=e.offsetY||0,_=e.dest||new Uint8Array(l*u*4),A="undefined"==typeof e.quality?3:e.quality,m=e.alpha||!1,p=i(A,n,l,d,f),g=i(A,s,u,c,h),E=new Uint8Array(l*s*4);return a(t,E,n,s,l,p),o(E,_,s,l,u,g),m||r(_,l,u),_}},function(e,t){"use strict";e.exports=[{win:.5,filter:function(e){return e>=-.5&&e<.5?1:0}},{win:1,filter:function(e){if(e<=-1||e>=1)return 0;if(e>-1.1920929e-7&&e<1.1920929e-7)return 1;var t=e*Math.PI;return Math.sin(t)/t*(.54+.46*Math.cos(t/1))}},{win:2,filter:function(e){if(e<=-2||e>=2)return 0;if(e>-1.1920929e-7&&e<1.1920929e-7)return 1;var t=e*Math.PI;return Math.sin(t)/t*Math.sin(t/2)/(t/2)}},{win:3,filter:function(e){if(e<=-3||e>=3)return 0;if(e>-1.1920929e-7&&e<1.1920929e-7)return 1;var t=e*Math.PI;return Math.sin(t)/t*Math.sin(t/3)/(t/3)}}]},function(e,t,n){"use strict";function r(e,t,n){for(var r=3,i=t*n*4|0;r<i;)e[r]=255,r=r+4|0}function i(e){return new Uint8Array(e.buffer,0,e.byteLength)}function a(e,t,n){if(s)return void t.set(i(e),n);for(var r=n,a=0;a<e.length;a++){var o=e[a];t[r++]=255&o,t[r++]=o>>8&255}}var o=n(262),s=!0;try{s=1===new Uint32Array(new Uint8Array([1,0,0,0]).buffer)[0]}catch(e){}e.exports=function(e){var t=e.src,n=e.width,i=e.height,s=e.toWidth,l=e.toHeight,u=e.scaleX||e.toWidth/e.width,d=e.scaleY||e.toHeight/e.height,c=e.offsetX||0,f=e.offsetY||0,h=e.dest||new Uint8Array(s*l*4),_="undefined"==typeof e.quality?3:e.quality,A=e.alpha||!1,m=o(_,n,s,u,c),p=o(_,i,l,d,f),g=0,E=this.__align(g+Math.max(t.byteLength,h.byteLength)),v=this.__align(E+i*s*4),b=this.__align(v+m.byteLength),S=b+p.byteLength,T=this.__instance("resize",S),x=new Uint8Array(this.__memory.buffer),y=new Uint32Array(this.__memory.buffer),C=new Uint32Array(t.buffer);y.set(C),a(m,x,v),a(p,x,b);var w=T.exports.convolveHV||T.exports._convolveHV;w(v,b,E,n,i,s,l);var M=new Uint32Array(h.buffer);return M.set(new Uint32Array(this.__memory.buffer,0,l*s)),A||r(h,s,l),h}},function(e,t){"use strict";function n(e,t){this.create=e,this.available=[],this.acquired={},this.lastId=1,this.timeoutId=0,this.idle=t||2e3}var r=100;n.prototype.acquire=function(){var e=this,t=void 0;return 0!==this.available.length?t=this.available.pop():(t=this.create(),t.id=this.lastId++,t.release=function(){return e.release(t)}),this.acquired[t.id]=t,t},n.prototype.release=function(e){var t=this;delete this.acquired[e.id],e.lastUsed=Date.now(),this.available.push(e),0===this.timeoutId&&(this.timeoutId=setTimeout(function(){return t.gc()},r))},n.prototype.gc=function(){var e=this,t=Date.now();this.available=this.available.filter(function(n){return!(t-n.lastUsed>e.idle)||(n.destroy(),!1)}),0!==this.available.length?this.timeoutId=setTimeout(function(){return e.gc()},r):this.timeoutId=0},e.exports=n},function(e,t){"use strict";var n=2;e.exports=function(e,t,r,i,a,o){var s=r/e,l=i/t,u=(2*o+n+1)/a;if(u>.5)return[[r,i]];var d=Math.ceil(Math.log(Math.min(s,l))/Math.log(u));if(d<=1)return[[r,i]];for(var c=[],f=0;f<d;f++){var h=Math.round(Math.pow(Math.pow(e,d-f-1)*Math.pow(r,f+1),1/d)),_=Math.round(Math.pow(Math.pow(t,d-f-1)*Math.pow(i,f+1),1/d));c.push([h,_])}return c}},function(e,t){"use strict";function n(e){var t=Math.round(e);return Math.abs(e-t)<i?t:Math.floor(e)}function r(e){var t=Math.round(e);return Math.abs(e-t)<i?t:Math.ceil(e)}var i=1e-5;e.exports=function(e){var t=e.toWidth/e.width,i=e.toHeight/e.height,a=n(e.srcTileSize*t)-2*e.destTileBorder,o=n(e.srcTileSize*i)-2*e.destTileBorder;if(a<1||o<1)throw new Error("Internal error in pica: target tile width/height is too small.");var s,l,u,d,c,f,h,_=[];for(d=0;d<e.toHeight;d+=o)for(u=0;u<e.toWidth;u+=a)s=u-e.destTileBorder,s<0&&(s=0),c=u+a+e.destTileBorder-s,s+c>=e.toWidth&&(c=e.toWidth-s),l=d-e.destTileBorder,l<0&&(l=0),f=d+o+e.destTileBorder-l,l+f>=e.toHeight&&(f=e.toHeight-l),h={toX:s,toY:l,toWidth:c,toHeight:f,toInnerX:u,toInnerY:d,toInnerWidth:a,toInnerHeight:o,offsetX:s/t-n(s/t),offsetY:l/i-n(l/i),scaleX:t,scaleY:i,x:n(s/t),y:n(l/i),width:r(c/t),height:r(f/i)},_.push(h);return _}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return Object.prototype.toString.call(e)}var a=n(26),o=r(a);e.exports.isCanvas=function(e){var t=i(e);return"[object HTMLCanvasElement]"===t||"[object Canvas]"===t; },e.exports.isImage=function(e){return"[object HTMLImageElement]"===i(e)},e.exports.limiter=function(e){function t(){n<e&&r.length&&(n++,r.shift()())}var n=0,r=[];return function(e){return new o.default(function(i,a){r.push(function(){e().then(function(e){i(e),n--,t()},function(e){a(e),n--,t()})}),t()})}},e.exports.cib_quality_name=function(e){switch(e){case 0:return"pixelated";case 1:return"low";case 2:return"medium"}return"high"},e.exports.cib_support=function(){return o.default.resolve().then(function(){if("undefined"==typeof createImageBitmap||"undefined"==typeof document)return!1;var e=document.createElement("canvas");return e.width=100,e.height=100,createImageBitmap(e,0,0,100,100,{resizeWidth:10,resizeHeight:10,resizeQuality:"high"}).then(function(t){var n=10===t.width;return t.close(),e=null,n})}).catch(function(){return!1})}},function(e,t,n){"use strict";e.exports=function(){var e=n(260),t=void 0;onmessage=function(n){var r=n.data.opts;t||(t=new e(n.data.features));var i=t.resizeAndUnsharp(r);postMessage({result:i},[i.buffer])}}},function(e,t){"use strict";function n(e,t,n,r){if("string"==typeof e)var e=document.getElementById(e);else if("undefined"!=typeof HTMLImageElement&&!e instanceof HTMLImageElement)return;var a=e.naturalWidth,s=e.naturalHeight;if("string"==typeof t)var t=document.getElementById(t);else if("undefined"!=typeof HTMLCanvasElement&&!t instanceof HTMLCanvasElement)return;t.style.width=a+"px",t.style.height=s+"px",t.width=a,t.height=s;var l=t.getContext("2d");l.clearRect(0,0,a,s),l.drawImage(e,0,0),isNaN(n)||n<1||(r?i(t,0,0,a,s,n):o(t,0,0,a,s,n))}function r(e,t,n,r,i){if("string"==typeof e)var e=document.getElementById(e);else if("undefined"!=typeof HTMLCanvasElement&&!e instanceof HTMLCanvasElement)return;var a,o=e.getContext("2d");try{try{a=o.getImageData(t,n,r,i)}catch(e){throw new Error("unable to access local image data: "+e)}}catch(e){throw new Error("unable to access image data: "+e)}return a}function i(e,t,n,i,o,s){if(!(isNaN(s)||s<1)){s|=0;var l=r(e,t,n,i,o);l=a(l,t,n,i,o,s),e.getContext("2d").putImageData(l,t,n)}}function a(e,t,n,r,i,a){var o,s,c,f,h,_,A,m,p,g,E,v,b,S,T,x,y,C,w,M,D,P,R,I,L=e.data,O=a+a+1,N=r-1,B=i-1,F=a+1,k=F*(F+1)/2,U=new l,V=U;for(c=1;c<O;c++)if(V=V.next=new l,c==F)var G=V;V.next=U;var H=null,z=null;A=_=0;var Q=u[a],X=d[a];for(s=0;s<i;s++){for(x=y=C=w=m=p=g=E=0,v=F*(M=L[_]),b=F*(D=L[_+1]),S=F*(P=L[_+2]),T=F*(R=L[_+3]),m+=k*M,p+=k*D,g+=k*P,E+=k*R,V=U,c=0;c<F;c++)V.r=M,V.g=D,V.b=P,V.a=R,V=V.next;for(c=1;c<F;c++)f=_+((N<c?N:c)<<2),m+=(V.r=M=L[f])*(I=F-c),p+=(V.g=D=L[f+1])*I,g+=(V.b=P=L[f+2])*I,E+=(V.a=R=L[f+3])*I,x+=M,y+=D,C+=P,w+=R,V=V.next;for(H=U,z=G,o=0;o<r;o++)L[_+3]=R=E*Q>>X,0!=R?(R=255/R,L[_]=(m*Q>>X)*R,L[_+1]=(p*Q>>X)*R,L[_+2]=(g*Q>>X)*R):L[_]=L[_+1]=L[_+2]=0,m-=v,p-=b,g-=S,E-=T,v-=H.r,b-=H.g,S-=H.b,T-=H.a,f=A+((f=o+a+1)<N?f:N)<<2,x+=H.r=L[f],y+=H.g=L[f+1],C+=H.b=L[f+2],w+=H.a=L[f+3],m+=x,p+=y,g+=C,E+=w,H=H.next,v+=M=z.r,b+=D=z.g,S+=P=z.b,T+=R=z.a,x-=M,y-=D,C-=P,w-=R,z=z.next,_+=4;A+=r}for(o=0;o<r;o++){for(y=C=w=x=p=g=E=m=0,_=o<<2,v=F*(M=L[_]),b=F*(D=L[_+1]),S=F*(P=L[_+2]),T=F*(R=L[_+3]),m+=k*M,p+=k*D,g+=k*P,E+=k*R,V=U,c=0;c<F;c++)V.r=M,V.g=D,V.b=P,V.a=R,V=V.next;for(h=r,c=1;c<=a;c++)_=h+o<<2,m+=(V.r=M=L[_])*(I=F-c),p+=(V.g=D=L[_+1])*I,g+=(V.b=P=L[_+2])*I,E+=(V.a=R=L[_+3])*I,x+=M,y+=D,C+=P,w+=R,V=V.next,c<B&&(h+=r);for(_=o,H=U,z=G,s=0;s<i;s++)f=_<<2,L[f+3]=R=E*Q>>X,R>0?(R=255/R,L[f]=(m*Q>>X)*R,L[f+1]=(p*Q>>X)*R,L[f+2]=(g*Q>>X)*R):L[f]=L[f+1]=L[f+2]=0,m-=v,p-=b,g-=S,E-=T,v-=H.r,b-=H.g,S-=H.b,T-=H.a,f=o+((f=s+F)<B?f:B)*r<<2,m+=x+=H.r=L[f],p+=y+=H.g=L[f+1],g+=C+=H.b=L[f+2],E+=w+=H.a=L[f+3],H=H.next,v+=M=z.r,b+=D=z.g,S+=P=z.b,T+=R=z.a,x-=M,y-=D,C-=P,w-=R,z=z.next,_+=r}return e}function o(e,t,n,i,a,o){if(!(isNaN(o)||o<1)){o|=0;var l=r(e,t,n,i,a);l=s(l,t,n,i,a,o),e.getContext("2d").putImageData(l,t,n)}}function s(e,t,n,r,i,a){var o,s,c,f,h,_,A,m,p,g,E,v,b,S,T,x,y,C,w,M,D=e.data,P=a+a+1,R=r-1,I=i-1,L=a+1,O=L*(L+1)/2,N=new l,B=N;for(c=1;c<P;c++)if(B=B.next=new l,c==L)var F=B;B.next=N;var k=null,U=null;A=_=0;var V=u[a],G=d[a];for(s=0;s<i;s++){for(S=T=x=m=p=g=0,E=L*(y=D[_]),v=L*(C=D[_+1]),b=L*(w=D[_+2]),m+=O*y,p+=O*C,g+=O*w,B=N,c=0;c<L;c++)B.r=y,B.g=C,B.b=w,B=B.next;for(c=1;c<L;c++)f=_+((R<c?R:c)<<2),m+=(B.r=y=D[f])*(M=L-c),p+=(B.g=C=D[f+1])*M,g+=(B.b=w=D[f+2])*M,S+=y,T+=C,x+=w,B=B.next;for(k=N,U=F,o=0;o<r;o++)D[_]=m*V>>G,D[_+1]=p*V>>G,D[_+2]=g*V>>G,m-=E,p-=v,g-=b,E-=k.r,v-=k.g,b-=k.b,f=A+((f=o+a+1)<R?f:R)<<2,S+=k.r=D[f],T+=k.g=D[f+1],x+=k.b=D[f+2],m+=S,p+=T,g+=x,k=k.next,E+=y=U.r,v+=C=U.g,b+=w=U.b,S-=y,T-=C,x-=w,U=U.next,_+=4;A+=r}for(o=0;o<r;o++){for(T=x=S=p=g=m=0,_=o<<2,E=L*(y=D[_]),v=L*(C=D[_+1]),b=L*(w=D[_+2]),m+=O*y,p+=O*C,g+=O*w,B=N,c=0;c<L;c++)B.r=y,B.g=C,B.b=w,B=B.next;for(h=r,c=1;c<=a;c++)_=h+o<<2,m+=(B.r=y=D[_])*(M=L-c),p+=(B.g=C=D[_+1])*M,g+=(B.b=w=D[_+2])*M,S+=y,T+=C,x+=w,B=B.next,c<I&&(h+=r);for(_=o,k=N,U=F,s=0;s<i;s++)f=_<<2,D[f]=m*V>>G,D[f+1]=p*V>>G,D[f+2]=g*V>>G,m-=E,p-=v,g-=b,E-=k.r,v-=k.g,b-=k.b,f=o+((f=s+L)<I?f:I)*r<<2,m+=S+=k.r=D[f],p+=T+=k.g=D[f+1],g+=x+=k.b=D[f+2],k=k.next,E+=y=U.r,v+=C=U.g,b+=w=U.b,S-=y,T-=C,x-=w,U=U.next,_+=r}return e}function l(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}var u=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],d=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];e.exports={image:n,canvasRGBA:i,canvasRGB:o,imageDataRGBA:a,imageDataRGB:s}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.AutoExposureRegionShader=void 0;var i=n(1),a=r(i),o=n(734),s=r(o),l=n(25),u=r(l),d=n(804),c=r(d),f=t.AutoExposureRegionShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.AutoExposureShader=void 0;var i=n(1),a=r(i),o=n(733),s=r(o),l=n(25),u=r(l),d=n(803),c=r(d),f=t.AutoExposureShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.AutoFocusRegionShader=void 0;var i=n(1),a=r(i),o=n(736),s=r(o),l=n(25),u=r(l),d=n(806),c=r(d),f=t.AutoFocusRegionShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.AutoFocusShader=void 0;var i=n(1),a=r(i),o=n(735),s=r(o),l=n(25),u=r(l),d=n(805),c=r(d),f=t.AutoFocusShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.BrightnessExtractionShader=void 0;var i=n(1),a=r(i),o=n(737),s=r(o),l=n(25),u=r(l),d=n(807),c=r(d),f=t.BrightnessExtractionShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CocShader=void 0;var i=n(1),a=r(i),o=n(738),s=r(o),l=n(25),u=r(l),d=n(808),c=r(d),f=t.CocShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.DofSplatShader=void 0;var i=n(1),a=r(i),o=n(740),s=r(o),l=n(812),u=r(l),d=n(811),c=r(d),f=t.DofSplatShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.DownsampleShader=void 0;var i=n(1),a=r(i),o=n(741),s=r(o),l=n(25),u=r(l),d=n(813),c=r(d),f=t.DownsampleShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.DynamicGradingShader=void 0;var i=n(1),a=r(i),o=n(742),s=r(o),l=n(25),u=r(l),d=n(814),c=r(d),f=t.DynamicGradingShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.FloatChannelSpreadShader=void 0;var i=n(1),a=r(i),o=n(743),s=r(o),l=n(25),u=r(l),d=n(815),c=r(d),f=t.FloatChannelSpreadShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.FxaaShader=void 0;var i=n(1),a=r(i),o=n(744),s=r(o),l=n(25),u=r(l),d=n(816),c=r(d),f=t.FxaaShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.GaussianBlurShader=void 0;var i=n(1),a=r(i),o=n(745),s=r(o),l=n(25),u=r(l),d=n(817),c=r(d),f=t.GaussianBlurShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.GhostingP1Shader=void 0;var i=n(1),a=r(i),o=n(746),s=r(o),l=n(25),u=r(l),d=n(818),c=r(d),f=t.GhostingP1Shader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.GhostingP2Shader=void 0;var i=n(1),a=r(i),o=n(747),s=r(o),l=n(25),u=r(l),d=n(819),c=r(d),f=t.GhostingP2Shader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.LensFlareOcclusionShader=void 0;var i=n(1),a=r(i),o=n(748),s=r(o),l=n(821),u=r(l),d=n(820),c=r(d),f=t.LensFlareOcclusionShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.MotionBlurMixShader=void 0;var i=n(1),a=r(i),o=n(749),s=r(o),l=n(25),u=r(l),d=n(822),c=r(d),f=t.MotionBlurMixShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.OpticsShader=void 0;var i=n(1),a=r(i),o=n(750),s=r(o),l=n(25),u=r(l),d=n(823),c=r(d),f=t.OpticsShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PassThroughShader=void 0;var i=n(1),a=r(i),o=n(751),s=r(o),l=n(25),u=r(l),d=n(824),c=r(d),f=t.PassThroughShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PrecomputeIBLFullscreenShader=void 0;var i=n(1),a=r(i),o=n(753),s=r(o),l=n(25),u=r(l),d=n(361),c=r(d),f=t.PrecomputeIBLFullscreenShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PrecomputeIBLShader=void 0;var i=n(1),a=r(i),o=n(752),s=r(o),l=n(832),u=r(l),d=n(361),c=r(d),f=t.PrecomputeIBLShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SsaoBlurShader=void 0;var i=n(1),a=r(i),o=n(755),s=r(o),l=n(25),u=r(l),d=n(826),c=r(d),f=t.SsaoBlurShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SsaoShader=void 0;var i=n(1),a=r(i),o=n(754),s=r(o),l=n(25),u=r(l),d=n(825),c=r(d),f=t.SsaoShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SsrTraceShader=void 0;var i=n(1),a=r(i),o=n(756),s=r(o),l=n(827),u=r(l),d=n(828),c=r(d),f=t.SsrTraceShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.StereoLensDistortShader=void 0;var i=n(1),a=r(i),o=n(757),s=r(o),l=n(829),u=r(l),d=n(831),c=r(d),f=t.StereoLensDistortShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalAAResolveShader=void 0;var i=n(1),a=r(i),o=n(758),s=r(o),l=n(25),u=r(l),d=n(830),c=r(d),f=t.TemporalAAResolveShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TonemapShader=void 0;var i=n(1),a=r(i),o=n(759),s=r(o),l=n(25),u=r(l),d=n(833),c=r(d),f=t.TonemapShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.UberSurfaceShader=void 0;var i=n(1),a=r(i),o=n(760),s=r(o),l=n(835),u=r(l),d=n(834),c=r(d),f=t.UberSurfaceShader=function e(){(0,a.default)(this,e)};f.desc=s.default,f.vertexSource=u.default,f.fragmentSource=c.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.AnimationManager=void 0;var i=n(1),a=r(i),o=n(2),s=r(o);t.AnimationManager=function(){function e(){(0,a.default)(this,e),this._activeAnimations=[]}return(0,s.default)(e,[{key:"playAnimation",value:function(e){this._activeAnimations.push(e),e.play()}},{key:"update",value:function(e){for(var t=0,n=this._activeAnimations.length;t<n;++t){var r=this._activeAnimations[t];r.playing&&r.update(e)}for(var i=0;i<this._activeAnimations.length;++i)this._activeAnimations[i].playing||this._activeAnimations.splice(i,1)}}]),e}()},,,,,,,,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Circle=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(18),A=n(12),m=n(7);t.Circle=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._center=m.Util.getParam(e,"center",new A.Vector3),n._radius=m.Util.getParam(e,"radius",1),n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"Circle",params:{center:this._center,radius:this._radius}}}}]),(0,c.default)(t,[{key:"center",get:function(){return this._center},set:function(e){this._center=e}},{key:"radius",get:function(){return this._radius},set:function(e){this._radius=e}}]),t}(_.Serializable)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.LineSegment=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(18),A=n(12),m=n(7);t.LineSegment=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._a=m.Util.getParam(e,"a",new A.Vector3),n._b=m.Util.getParam(e,"b",new A.Vector3),n._normal=m.Util.getParam(e,"normal",new A.Vector3(n._a.y-n._b.y,n._b.x-n._a.x,0)),n._normal.normalize(),n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"LineSegment",params:{a:this._a,b:this._b,normal:this._normal}}}}]),(0,c.default)(t,[{key:"a",get:function(){return this._a}},{key:"b",get:function(){return this._b}},{key:"normal",get:function(){return this._normal}}]),t}(_.Serializable)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.Async=void 0;var _map=__webpack_require__(14),_map2=_interopRequireDefault(_map),_classCallCheck2=__webpack_require__(1),_classCallCheck3=_interopRequireDefault(_classCallCheck2),_createClass2=__webpack_require__(2),_createClass3=_interopRequireDefault(_createClass2),_Util=__webpack_require__(7),_es6Promisify=__webpack_require__(432),_es6Promisify2=_interopRequireDefault(_es6Promisify),Async=exports.Async=function(){function Async(e){(0,_classCallCheck3.default)(this,Async),this._poolSize=_Util.Util.getParam(e,"poolSize",.5*navigator.hardwareConcurrency||2),this._workQueue=[],this._availableWorkers=new _map2.default,this._needsInit=!0,this._workerSupported=!!window.Worker,this._run=(0,_es6Promisify2.default)(this._runImpl.bind(this))}return(0,_createClass3.default)(Async,[{key:"makeAsync",value:function(e){var t=this;return function(){for(var n=arguments.length,r=Array(n),i=0;i<n;i++)r[i]=arguments[i];return t._run(e,r.slice(0,r.length-1),r.slice(r.length-1)[0])}}},{key:"_directCall",value:function(e,t,n){var r=null;try{r=e.apply(this,t),n(null,r)}catch(e){n(e)}}},{key:"_runImpl",value:function(e,t,n,r){this._needsInit&&(this._workerSupported&&this._initWorkers(),this._needsInit=!1);var i=this._availableWorkers.entries().next();if(i.done)return void(this._workerSupported?this._enqueue(e,t,n,r):this._directCall(e,t,r));var a=i.value[1],o=i.value[0];this._availableWorkers.delete(o),a.onmessage=this._recv.bind(this,o,a,r),a.onerror=this._error.bind(this,o,a,r),a.postMessage([e.toString()+";",n.length].concat(t).concat(n),n)}},{key:"_enqueue",value:function(e,t,n,r){this._workQueue.push({fn:e,args:t,transferList:n,cb:r})}},{key:"_dequeue",value:function(){return this._workQueue.pop()}},{key:"_workerMain",value:function _workerMain(){onmessage=function onmessage(e){var fns=e.data[0],fn=eval("var _ = "+fns+"; _;"),transferListLength=e.data[1],args=e.data.slice(2,e.data.length-transferListLength),transferList=e.data.slice(e.data.length-transferListLength);postMessage(fn.apply(this,args),transferList)}}},{key:"_addBack",value:function(e,t){this._availableWorkers.set(e,t);var n=this._dequeue();n&&this._runImpl(n.fn,n.args,n.transferList,n.cb)}},{key:"_error",value:function(e,t,n,r){this._addBack(e,t),n(r)}},{key:"_recv",value:function(e,t,n,r){this._addBack(e,t),n(null,r.data)}},{key:"_initWorkers",value:function(){for(var e=0;e<this._poolSize;++e)this._availableWorkers.set(e,new Worker(window.URL.createObjectURL(new Blob(["("+this._workerMain.toString()+")();"]))))}},{key:"run",get:function(){return this._run}}]),Async}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(14),c=r(d),f=n(7),h=n(10),_=new c.default;_.set(0,"none"),_.set(1,"error"),_.set(2,"warn"),_.set(3,"info"),_.set(4,"debug"),_.set("none",0),_.set("error",1),_.set("warn",2),_.set("info",3),_.set("debug",4);t.Logger=function(){function e(t){(0,s.default)(this,e),this._logSinks=f.Util.getParam(t,"logSinks",[console]),this._level=-1,this.level=f.Util.getParam(t,"level","warn")}return(0,u.default)(e,[{key:"addLogSink",value:function(e){this._logSinks.indexOf(e)===-1&&this._logSinks.push(e)}},{key:"removeLogSink",value:function(e){var t=0;(t=this._logSinks.indexOf(e))!==-1&&this._logSinks.splice(t,1)}},{key:"_shouldLog",value:function(e){return this._level>=_.get(e)}},{key:"_write",value:function(e,t){if(this._shouldLog(e)){for(var n=(0,a.default)(t).constructor.name,r=arguments.length,i=Array(r>2?r-2:0),o=2;o<r;o++)i[o-2]=arguments[o];for(var s=this._logSinks.length-1;s>=0;--s){var l;(l=this._logSinks[s])[e].apply(l,[h.Context.curTime,n].concat(i))}}}},{key:"debug",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this._write.apply(this,["debug",e].concat(n))}},{key:"warn",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this._write.apply(this,["warn",e].concat(n))}},{key:"info",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this._write.apply(this,["info",e].concat(n))}},{key:"error",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this._write.apply(this,["error",e].concat(n))}},{key:"level",set:function(e){this._level=_.get(e)},get:function(){_.get(this._level)}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.EventEmitter=void 0;var i=n(14),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(10);t.EventEmitter=function(){function e(){(0,s.default)(this,e),this._syncCallbacks=new a.default,this._asyncCallbacks=new a.default,this._notifyBackBuffer=new a.default,this._syncBuffer=new a.default}return(0,u.default)(e,[{key:"on",value:function(e,t){this._on(!0,e,t)}},{key:"onAsync",value:function(e,t){this._on(!1,e,t)}},{key:"_on",value:function(e,t,n,r){if("string"!=typeof t)throw new Error("event name must be of type string");if("function"!=typeof n)throw new Error("callback must be of type function");var i=e?this._syncCallbacks:this._asyncCallbacks;i.has(t)||i.set(t,[]),i.get(t).push({cb:n});var a=this._notifyBackBuffer.get(t);a&&n(a)}},{key:"notify",value:function(e,t){var n=this._notifyBackBuffer.get(e);n&&(t(n),d.Context.logger.info(this,"notify",e))}},{key:"_emit",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(n&&this._notifyBackBuffer.set(t,e),this._asyncCallbacks.has(t))for(var r=this._asyncCallbacks.get(t),i=r.length-1;i>=0;--i)r[i].cb(e);this._syncCallbacks.has(t)&&this._syncBuffer.set(t,e)}},{key:"emit",value:function(e,t){this._emit(e,t)}},{key:"emitOnce",value:function(e,t){this._emit(e,t,!1)}},{key:"syncEvents",value:function(){for(var e=this._syncCallbacks.entries(),t=void 0,n=e.next();!n.done;n=e.next()){var r=n.value,i=r[0],a=r[1],o=this._syncBuffer.get(i);if(o)for(var s=a.length-1;s>=0;--s)try{a[s].cb(o)}catch(e){t=e}}if(this._syncBuffer.clear(),t)throw t}},{key:"removeListener",value:function(e,t){if(this._syncCallbacks.has(e)||this._asyncCallbacks.has(e)){var n=this._syncCallbacks.get(e);if(n)for(var r=n.length-1;r>=0;--r)n[r].cb===t&&n.splice(r,1);var i=this._asyncCallbacks.get(e);if(i)for(var a=i.length-1;a>=0;--a)i[a].cb===t&&i.splice(a,1)}}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ComplementaryFilter=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(36),u=n(12),d=n(501),c=n(268);t.ComplementaryFilter=function(){function e(t){(0,a.default)(this,e),this._kFilter=t,this._currentAccelMeasurement=new d.SensorSample,this._currentGyroMeasurement=new d.SensorSample,this._previousGyroMeasurement=new d.SensorSample,this._filterQ=new l.Quaternion,this._previousFilterQ=new l.Quaternion,this._accelQ=new l.Quaternion,this._isOrientationInitialized=!1,this._estimatedGravity=new u.Vector3,this._measuredGravity=new u.Vector3,this._gyroIntegralQ=new l.Quaternion,this._tmpQ=new l.Quaternion,this._tmpQ2=new l.Quaternion,this._tmpVec=new u.Vector3,this._tmpVec2=new u.Vector3}return(0,s.default)(e,[{key:"addAccelMeasurement",value:function(e,t){this._currentAccelMeasurement.set(e,t)}},{key:"addGyroMeasurement",value:function(e,t){this._currentGyroMeasurement.set(e,t);var n=t-this._previousGyroMeasurement.timestampS;this._isTimestampDeltaValid(n)&&this._run(),this._previousGyroMeasurement.copyFrom(this._currentGyroMeasurement)}},{key:"_run",value:function(){if(!this._isOrientationInitialized)return this._accelQ=this._accelToQuaternion(this._currentAccelMeasurement.sample),this._previousFilterQ.copyFrom(this._accelQ),void(this._isOrientationInitialized=!0);var e=this._currentGyroMeasurement.timestampS-this._previousGyroMeasurement.timestampS,t=this._gyroToQuaternionDelta(this._currentGyroMeasurement.sample,e);this._gyroIntegralQ.mult(t),this._filterQ.copyFrom(this._previousFilterQ),this._filterQ.mult(t),this._tmpQ.copyFrom(this._filterQ),this._tmpQ.invert(),this._estimatedGravity.set(0,0,-1),this._estimatedGravity.multQuaternion(this._tmpQ),this._estimatedGravity.normalize(),this._measuredGravity.copyFrom(this._currentAccelMeasurement.sample),this._measuredGravity.normalize(),this._tmpQ.fromUnitVectors(this._estimatedGravity,this._measuredGravity),this._tmpQ.invert(),this._tmpQ2.copyFrom(this._filterQ),this._tmpQ2.mult(this._tmpQ),this._filterQ.slerp(this._tmpQ2,1-this._kFilter),this._previousFilterQ.copyFrom(this._filterQ)}},{key:"getOrientation",value:function(){return this._filterQ}},{key:"_accelToQuaternion",value:function(e){return this._tmpVec.copyFrom(e),this._tmpVec.normalize(),this._tmpQ.fromUnitVectors(this._tmpVec2.copyFrom(u.Vector3.NEG_Z_AXIS),this._tmpVec),this._tmpQ.invert(),this._tmpQ}},{key:"_gyroToQuaternionDelta",value:function(e,t){return this._tmpVec.copyFrom(e),this._tmpVec.normalize(),this._tmpQ.fromAxisAngle(this._tmpVec,e.magnitude()*t),this._tmpQ}},{key:"_isTimestampDeltaValid",value:function(e){return!isNaN(e)&&(!(e<=c.MIN_TIMESTEP)&&e<=c.MAX_TIMESTEP)}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Dpdb=void 0;var i=n(2),a=r(i),o=n(1),s=r(o),l=n(10),u=n(7),d=n(498),c="https://storage.googleapis.com/cardboard-dpdb/dpdb.json",f=function e(t){(0,s.default)(this,e),this.maxDim=t.maxDim,this.xdpi=t.xdpi,this.ydpi=t.ydpi,this.bevelMm=t.bevelMm};t.Dpdb=function(){function e(t,n){var r=this;if((0,s.default)(this,e),this._dpdb=d.DpdbCache,this._dpdbIdx=-1,this._detectedDpdbIdx=-1,this._recalculateDeviceParams(),t){this._onDeviceParamsUpdated=n;var i=new XMLHttpRequest;i.open("GET",c,!0),i.addEventListener("load",function(){r._loading=!1,i.status>=200&&i.status<=299?(l.Context.logger.info(r,"Successfully loaded online DPDB."),r._dpdb=JSON.parse(i.response),r._recalculateDeviceParams()):l.Context.logger.error(r,"Error loading online DPDB!")}),i.send()}}return(0,a.default)(e,[{key:"resetDevice",value:function(){this.device=this._detectedDpdbIdx}},{key:"_recalculateDeviceParams",value:function(){l.Context.logger.info(this,"Recalculating device params.");var e=this._calcDeviceParams();l.Context.logger.info(this,"New device parameters:"),l.Context.logger.info(this,e),e?(this._deviceParams=e.deviceParams,this._detectedDpdbIdx===-1&&(this._detectedDpdbIdx=e.idx),this._dpdbIdx=e.idx,this._onDeviceParamsUpdated&&this._onDeviceParamsUpdated(this._deviceParams)):l.Context.logger.warn(this,"Failed to recalculate device parameters.")}},{key:"_calcDeviceParams",value:function(){var e=this._dpdb;if(!e)return l.Context.logger.error(this,"DPDB not available."),null;if(1!==e.format)return l.Context.logger.error(this,"DPDB has unexpected format version."),null;if(!e.devices||!e.devices.length)return l.Context.logger.error(this,"DPDB does not have a devices section."),null;var t=navigator.userAgent||navigator.vendor||window.opera,n=u.Util.getScreenWidth(),r=u.Util.getScreenHeight();if(l.Context.logger.info(this,"User agent: "+t),l.Context.logger.info(this,"Pixel width: "+n),l.Context.logger.info(this,"Pixel height: "+r),!e.devices)return console.error("DPDB has no devices section."),null;for(var i=0;i<e.devices.length;i++){var a=e.devices[i];if(a.rules)if("ios"===a.type||"android"===a.type){if(u.Util.isIOS()===("ios"===a.type)){for(var o=!1,s=-1,d=0;d<a.rules.length;d++){var c=a.rules[d];if(this._matchRule(c,t,n,r)){l.Context.logger.info(this,"Rule matched:"),l.Context.logger.info(this,c),o=!0,s=i;break}}if(o){var h=a.dpi[0]||a.dpi,_=a.dpi[1]||a.dpi,A=a.maxDim||Math.max(window.screen.width,window.screen.height)*window.devicePixelRatio;return{deviceParams:new f({xdpi:h,ydpi:_,maxDim:A,bevelMm:a.bw}),idx:s}}}}else l.Context.logger.warn(this,"Device['"+i+"'] has invalid type.");else l.Context.logger.warn(this,"Device['"+i+"'] has no rules section.")}return l.Context.logger.warn(this,"No DPDB device match."),null}},{key:"_matchRule",value:function(e,t,n,r){if(!e.ua&&!e.res)return!1;if(e.ua&&t.indexOf(e.ua)<0)return!1;if(e.res){if(!e.res[0]||!e.res[1])return!1;var i=e.res[0],a=e.res[1];if(Math.min(n,r)!==Math.min(i,a)||Math.max(n,r)!==Math.max(i,a))return!1}return!0}},{key:"deviceParams",get:function(){return this._deviceParams}},{key:"device",get:function(){return this._dpdb.devices[this._dpdbIdx]},set:function(e){var t=this._dpdb.devices[e],n=t.dpi[0]||t.dpi,r=t.dpi[1]||t.dpi,i=t.maxDim||Math.max(window.screen.width,window.screen.height)*window.devicePixelRatio;this._deviceParams=new f({xdpi:n,ydpi:r,maxDim:i,bevelMm:t.bw}),this._dpdbIdx=e}},{key:"devices",get:function(){return this._dpdb.devices}}]),e}()},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.DpdbCache={format:1,last_updated:"2016-01-20T00:18:35Z",devices:[{type:"android",rules:[{ua:"Nexus 7" }],dpi:[320.8,323],bw:3,ac:500,maxDim:1920,dpr:2},{type:"android",rules:[{ua:"ASUS_Z00AD"}],dpi:[403,404.6],bw:3,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"ASUS_Z012S"}],dpi:401,bw:3,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"HTC6435LVW"}],dpi:[449.7,443.3],bw:3,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"HTC One XL"}],dpi:[315.3,314.6],bw:3,maxDim:1280,ac:1e3},{type:"android",rules:[{ua:"Pixel B"}],dpi:441,bw:3,ac:1e3,maxDim:1920,dpr:2.6},{type:"android",rules:[{ua:"Pixel XL B"}],dpi:534,bw:4,ac:1e3,maxDim:2560,dpr:3.5},{type:"android",rules:[{ua:"Nexus 9"}],dpi:289,bw:3,ac:500,maxDim:2048,dpr:2},{type:"android",rules:[{ua:"HTC One M9"}],dpi:[442.5,443.3],bw:3,ac:500,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"HTC One_M8"}],dpi:[449.7,447.4],bw:3,ac:500,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"HTC One"}],dpi:472.8,bw:3,ac:1e3,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"HTC 10"}],dpi:565,bw:3,ac:1e3,maxDim:2560,dpr:3},{type:"android",rules:[{ua:"Nexus 6P"}],dpi:[515.1,518],bw:3,ac:1e3,maxDim:2560,dpr:3.5},{type:"android",rules:[{ua:"Honor 8"}],dpi:423,bw:3,ac:1e3,maxDim:1920,dpr:3.5},{type:"android",rules:[{ua:"Honor 8 Pro"}],dpi:515,bw:3,ac:1e3,maxDim:2560,dpr:3.5},{type:"android",rules:[{ua:"Mate 9"}],dpi:373,bw:3,ac:1e3,maxDim:1920,dpr:3.5},{type:"android",rules:[{ua:"P9"}],dpi:423,bw:3,ac:1e3,maxDim:1920,dpr:3.5},{type:"android",rules:[{ua:"P10"}],dpi:432,bw:3,ac:1e3,maxDim:1920,dpr:3.5},{type:"android",rules:[{ua:"P10 Plus"}],dpi:540,bw:3,ac:1e3,maxDim:2560,dpr:3.5},{type:"android",rules:[{ua:"Nexus 5X"}],dpi:[422,419.9],bw:3,ac:1e3,maxDim:1920,dpr:2.6},{type:"android",rules:[{ua:"LGMS345"}],dpi:[221.7,219.1],bw:3,maxDim:854,ac:500},{type:"android",rules:[{ua:"LG-D800"}],dpi:[422,424.1],bw:3,ac:500,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"LG-D850"}],dpi:[537.9,541.9],bw:3,ac:500,maxDim:2560,dpr:3},{type:"android",rules:[{ua:"LG-LS993"}],dpi:564,bw:3,ac:500,maxDim:2880,dpr:3},{type:"android",rules:[{ua:"LG-H831"}],dpi:554,bw:3,ac:500,maxDim:2560,dpr:3},{type:"android",rules:[{ua:"LG-H815"}],dpi:538,bw:3,ac:500,maxDim:2560,dpr:3},{type:"android",rules:[{ua:"LG-H810"}],dpi:538,bw:3,ac:500,maxDim:2560,dpr:3},{type:"android",rules:[{ua:"LG-H812"}],dpi:538,bw:3,ac:500,maxDim:2560,dpr:3},{type:"android",rules:[{ua:"LG-H900"}],dpi:515,bw:3,ac:500,maxDim:2560,dpr:3},{type:"android",rules:[{ua:"LG-H910"}],dpi:513,bw:3,ac:500,maxDim:2560,dpr:3},{type:"android",rules:[{ua:"Lenovo P2"}],dpi:401,bw:3,ac:500,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"VS985 4G"}],dpi:[537.9,535.6],bw:3,ac:1e3,maxDim:2560,dpr:3},{type:"android",rules:[{ua:"Nexus 5 "}],dpi:[442.4,444.8],bw:3,ac:1e3,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"Nexus 4"}],dpi:[319.8,318.4],bw:3,ac:1e3,maxDim:1280,dpr:2},{type:"android",rules:[{ua:"LG-P769"}],dpi:[240.6,247.5],bw:3,maxDim:960,ac:1e3},{type:"android",rules:[{ua:"LGMS323"}],dpi:[206.6,204.6],bw:3,maxDim:800,ac:1e3},{type:"android",rules:[{ua:"LGLS996"}],dpi:[403.4,401.5],bw:3,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"4560MMX"}],dpi:[240,219.4],bw:3,ac:1e3},{type:"android",rules:[{ua:"Micromax A250"}],dpi:[480,446.4],bw:3,ac:1e3},{type:"android",rules:[{ua:"Micromax AQ4501"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{ua:"DROID RAZR"}],dpi:[368.1,256.7],bw:3,ac:1e3},{type:"android",rules:[{ua:"XT830C"}],dpi:[254,255.9],bw:3,ac:1e3},{type:"android",rules:[{ua:"XT1021"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{ua:"XT1023"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{ua:"XT1028"}],dpi:[326.6,327.6],bw:3,ac:1e3,maxDim:1280,dpr:2},{type:"android",rules:[{ua:"XT1034"}],dpi:[326.6,328.4],bw:3,ac:500,maxDim:1280,dpr:2},{type:"android",rules:[{ua:"XT1053"}],dpi:[315.3,316.1],bw:3,ac:1e3,maxDim:1280,dpr:2},{type:"android",rules:[{ua:"XT1562"}],dpi:[403.4,402.7],bw:3,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"XT1650"}],dpi:535,bw:3,maxDim:2560,ac:1e3},{type:"android",rules:[{ua:"XT1676"}],dpi:441,bw:3,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"XT1686"}],dpi:424,bw:3,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"Nexus 6 "}],dpi:[494.3,489.7],bw:3,ac:1e3,maxDim:2560,dpr:3.5},{type:"android",rules:[{ua:"XT1063"}],dpi:[295,296.6],bw:3,maxDim:1280,ac:1e3},{type:"android",rules:[{ua:"XT1064"}],dpi:[295,295.6],bw:3,maxDim:1280,ac:500},{type:"android",rules:[{ua:"XT1092"}],dpi:[422,424.1],bw:3,ac:500,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"XT1095"}],dpi:[422,423.4],bw:3,ac:1e3,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"A0001"}],dpi:[403.4,401],bw:3,ac:1e3,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"ONE E1005"}],dpi:[442.4,441.4],bw:3,ac:1e3,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"ONE A2005"}],dpi:401,bw:3,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"ONE A300"}],dpi:401,bw:3,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"ONE A3010"}],dpi:401,bw:3,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"X909"}],dpi:[442.4,444.1],bw:3,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"GT-I9082"}],dpi:[184.7,185.4],bw:3,ac:1e3},{type:"android",rules:[{ua:"SM-G360"}],dpi:[196.7,205.4],bw:3,ac:1e3},{type:"android",rules:[{ua:"Nexus S"}],dpi:[234.5,229.8],bw:3,ac:1e3,maxDim:800,dpr:1.5},{type:"android",rules:[{ua:"SM-T230"}],dpi:216,bw:3,maxDim:1280,ac:500},{type:"android",rules:[{ua:"SGH-T399"}],dpi:[217.7,231.4],bw:3,ac:1e3},{type:"android",rules:[{ua:"SM-N900"}],dpi:[386.4,387],bw:3,maxDim:1920,ac:500},{type:"android",rules:[{ua:"GT-I950"}],dpi:439.4,bw:4,ac:1e3,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"SM-G900"}],dpi:[415.6,431.6],bw:5,ac:1e3,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"SM-G800"}],dpi:326.8,bw:3,maxDim:1280,ac:1e3},{type:"android",rules:[{ua:"SM-G906"}],dpi:[562.7,572.4],bw:3,ac:1e3},{type:"android",rules:[{ua:"GT-I9300"}],dpi:[306.7,304.8],bw:5,ac:1e3,maxDim:1280,dpr:2},{type:"android",rules:[{ua:"SM-T535"}],dpi:[142.6,136.4],bw:3,maxDim:1280,ac:500},{type:"android",rules:[{ua:"SM-N920"}],dpi:[515.1,518.4],bw:3,maxDim:2560,ac:1e3},{type:"android",rules:[{ua:"SM-N930"}],dpi:[515.1,518.4],bw:0,maxDim:2560,ac:1e3},{type:"android",rules:[{ua:"GT-I9195"}],dpi:[249.4,256.7],bw:3,ac:500,maxDim:960,dpr:1.5},{type:"android",rules:[{ua:"SPH-L520"}],dpi:[249.4,255.9],bw:3,ac:1e3,maxDim:960,dpr:1.5},{type:"android",rules:[{ua:"SGH-I717"}],dpi:285.8,bw:3,maxDim:1280,ac:1e3,dpr:2},{type:"android",rules:[{ua:"SPH-D710"}],dpi:[217.7,204.2],bw:3,ac:1e3,maxDim:800,dpr:1.5},{type:"android",rules:[{ua:"GT-N7100"}],dpi:265.1,bw:3,ac:1e3,maxDim:1280,dpr:2},{type:"android",rules:[{ua:"SCH-I605"}],dpi:265.1,bw:3,ac:1e3,maxDim:1280,dpr:2},{type:"android",rules:[{ua:"Galaxy Nexus"}],dpi:[315.3,314.2],bw:3,ac:1e3,maxDim:1280,dpr:2},{type:"android",rules:[{ua:"SM-N910"}],dpi:[515.1,520.2],bw:3,ac:1e3,maxDim:2560,dpr:4},{type:"android",rules:[{ua:"SM-G130"}],dpi:[165.9,164.8],bw:3,maxDim:480,ac:500},{type:"android",rules:[{ua:"SM-G928"}],dpi:[515.1,518.4],bw:0,ac:1e3,maxDim:2560,dpr:4},{type:"android",rules:[{ua:"SM-G920"}],dpi:580.6,bw:3,ac:500,maxDim:2560,dpr:4},{type:"android",rules:[{ua:"SM-G925"}],dpi:580.6,bw:0,ac:500,maxDim:2560,dpr:4},{type:"android",rules:[{ua:"C6903"}],dpi:[442.5,443.3],bw:3,ac:500,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"D6653"}],dpi:[428.6,427.6],bw:3,ac:1e3,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"E6653"}],dpi:[428.6,425.7],bw:3,ac:1e3,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"E6853"}],dpi:806,bw:3,ac:1e3,maxDim:3840,dpr:3},{type:"android",rules:[{ua:"F5121"}],dpi:441,bw:3,ac:1e3,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"F833"}],dpi:424,bw:3,ac:1e3,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"SGP321"}],dpi:[224.7,224.1],bw:3,maxDim:1920,ac:500},{type:"android",rules:[{ua:"ALCATEL ONE TOUCH Fierce"}],dpi:[240,247.5],bw:3,ac:1e3},{type:"android",rules:[{ua:"ALCATEL IDOL 4S"}],dpi:[534,534],bw:3.45,maxDim:2560,ac:1e3},{type:"android",rules:[{ua:"ALCATEL IDOL 4"}],dpi:[424,424],bw:3.9,maxDim:1920,ac:1e3},{type:"android",rules:[{ua:"thl 5000"}],dpi:[480,443.3],bw:3,ac:1e3},{type:"android",rules:[{ua:"ZTE Axon 7"}],dpi:538,bw:2,maxDim:2560,ac:500},{type:"android",rules:[{ua:"ZTE Blade L2"}],dpi:240,bw:3,maxDim:854,ac:500},{type:"android",rules:[{ua:"SM-G930"}],dpi:580.6,bw:3,ac:500,maxDim:2560,dpr:4},{type:"android",rules:[{ua:"SM-G935"}],dpi:580.6,bw:0,ac:500,maxDim:2560,dpr:4},{type:"android",rules:[{ua:"SM-G950"}],dpi:570,bw:0,ac:500,maxDim:2960,dpr:4},{type:"android",rules:[{ua:"SM-G955"}],dpi:529,bw:0,ac:500,maxDim:2960,dpr:4},{type:"android",rules:[{ua:"MI 5"}],dpi:428,bw:3,ac:500,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"MI 6"}],dpi:428,bw:3,ac:500,maxDim:1920,dpr:3},{type:"android",rules:[{ua:"Redmi 3"}],dpi:294,bw:3,ac:500,maxDim:1280,dpr:2},{type:"ios",variant:"iphone4",rules:[{res:[640,960]}],dpi:[325.1,328.4],bw:4,ac:1e3},{type:"ios",variant:"iphone4s",rules:[{res:[640,960]}],dpi:[325.1,328.4],bw:4,ac:1e3},{type:"ios",variant:"iphone5",rules:[{res:[640,1136]}],dpi:[317.1,320.2],bw:3,ac:1e3},{type:"ios",variant:"iphone5s",rules:[{res:[640,1136]}],dpi:[317.1,320.2],bw:3,ac:1e3},{type:"ios",variant:"iphoneSe",rules:[{res:[640,1136]}],dpi:[317.1,320.2],bw:3,ac:1e3},{type:"ios",variant:"iphone6",rules:[{res:[750,1334]}],dpi:326.4,bw:4,ac:1e3},{type:"ios",variant:"iphone6s",rules:[{res:[750,1334]}],dpi:326.4,bw:4,ac:1e3},{type:"ios",variant:"iphone6plus",rules:[{res:[1242,2208]}],dpi:401,bw:4,ac:1e3},{type:"ios",variant:"iphone6splus",rules:[{res:[1242,2208]}],dpi:401,bw:4,ac:1e3},{type:"ios",variant:"iphone7plus",rules:[{res:[1242,2208]}],dpi:401,bw:4,ac:1e3},{type:"ios",variant:"iphone7",rules:[{res:[750,1334]}],dpi:326.4,bw:4,ac:1e3},{type:"ios",variant:"iphone8plus",rules:[{res:[1242,2208]}],dpi:401,bw:4,ac:1e3},{type:"ios",variant:"iphone8",rules:[{res:[750,1334]}],dpi:326.4,bw:4,ac:1e3},{type:"ios",variant:"iphonex",rules:[{res:[1125,2436]}],dpi:458,bw:0,ac:1e3},{type:"ios",variant:"iphonexs",rules:[{res:[1125,2436]}],dpi:458,bw:1,ac:1e3},{type:"ios",variant:"iphonexsmax",rules:[{res:[1242,2688]}],dpi:458,bw:1,ac:1e3},{type:"ios",variant:"iphonexr",rules:[{res:[828,1792]}],dpi:326,bw:1,ac:1e3},{type:"android",rules:[{ua:"Mi Note 3"}],dpi:403,bw:1.5,maxDim:1920},{type:"android",rules:[{ua:"Redmi Note 5A"}],dpi:267,bw:3,maxDim:1280},{type:"android",rules:[{ua:"Redmi 4A"}],dpi:296,bw:4,maxDim:1280},{type:"android",rules:[{ua:"MIX 2"}],dpi:403,bw:2,maxDim:2160},{type:"android",rules:[{ua:"ASUS_X018D"}],dpi:424,bw:4,maxDim:2160},{type:"android",rules:[{ua:"ASUS_T00I"}],dpi:401,bw:2.5,maxDim:1920},{type:"android",rules:[{ua:"ASUS_X00ID"}],dpi:267,bw:4,maxDim:1280},{type:"android",rules:[{ua:"ASUS_Z01GD"}],dpi:401,bw:2,maxDim:1920},{type:"android",rules:[{ua:"ASUS_T00J"}],dpi:402,bw:3,maxDim:2246},{type:"android",rules:[{ua:"ASUS_T00Q"}],dpi:402,bw:3,maxDim:2246},{type:"android",rules:[{ua:"ASUS_Z01GD"}],dpi:401,bw:2,maxDim:1920},{type:"android",rules:[{ua:"HTC U11"}],dpi:534,bw:3,maxDim:2560},{type:"android",rules:[{ua:"HTC U11 Plus"}],dpi:538,bw:2,maxDim:2880},{type:"android",rules:[{ua:"HTC U Ultra"}],dpi:513,bw:3,maxDim:2560},{type:"android",rules:[{ua:"HTC U Play"}],dpi:428,bw:4,maxDim:1920},{type:"android",rules:[{ua:"BND-L24"}],dpi:407,bw:3,maxDim:2160},{type:"android",rules:[{ua:"STF-TL10"}],dpi:428,bw:2,maxDim:1920},{type:"android",rules:[{ua:"BKL-L09"}],dpi:403,bw:2,maxDim:2160},{type:"android",rules:[{ua:"ALP-L09"}],dpi:499,bw:2,maxDim:2560},{type:"android",rules:[{ua:"RNE-L22"}],dpi:409,bw:2,maxDim:2160},{type:"android",rules:[{ua:"BLA-L29"}],dpi:402,bw:1,maxDim:2160},{type:"android",rules:[{ua:"ALE-L21"}],dpi:424,bw:3.5,maxDim:1920},{type:"android",rules:[{ua:"WAS-TL10"}],dpi:424,bw:2,maxDim:1920},{type:"android",rules:[{ua:"PH-1"}],dpi:504,bw:5,maxDim:2560},{type:"android",rules:[{ua:"LG-M250"}],dpi:227,bw:4,maxDim:1280},{type:"android",rules:[{ua:"LG-H930"}],dpi:537,bw:2,maxDim:2880},{type:"android",rules:[{ua:"XT1710-02"}],dpi:401,bw:2,maxDim:1920},{type:"android",rules:[{ua:"XT1789-05"}],dpi:534,bw:3,maxDim:2560},{type:"android",rules:[{ua:"moto x4"}],dpi:424,bw:2.5,maxDim:1920},{type:"android",rules:[{ua:"A5000"}],dpi:401,bw:2,maxDim:1920},{type:"android",rules:[{ua:"A5010"}],dpi:401,bw:2,maxDim:2160},{type:"android",rules:[{ua:"Pixel 2"}],dpi:441,bw:1.5,maxDim:1920},{type:"android",rules:[{ua:"Pixel 2 XL"}],dpi:538,bw:4,maxDim:2880},{type:"android",rules:[{ua:"Razer Phone"}],dpi:515,bw:3,maxDim:2560},{type:"android",rules:[{ua:"SM-N935"}],dpi:515,bw:.5,maxDim:2560},{type:"android",rules:[{ua:"SM-A320"}],dpi:312,bw:4,maxDim:1280},{type:"android",rules:[{ua:"SM-A520"}],dpi:424,bw:3,maxDim:1920},{type:"android",rules:[{ua:"SM-A720"}],dpi:386,bw:3,maxDim:1920},{type:"android",rules:[{ua:"SM-A530"}],dpi:441,bw:4,maxDim:2220},{type:"android",rules:[{ua:"SM-A730"}],dpi:411,bw:4,maxDim:2220},{type:"android",rules:[{ua:"SM-C5000"}],dpi:424,bw:3,maxDim:1920},{type:"android",rules:[{ua:"SM-C5010"}],dpi:424,bw:3,maxDim:1920},{type:"android",rules:[{ua:"SM-C7000"}],dpi:386,bw:2,maxDim:1920},{type:"android",rules:[{ua:"SM-C701"}],dpi:386,bw:2,maxDim:1920},{type:"android",rules:[{ua:"SM-C900"}],dpi:367,bw:2,maxDim:1920},{type:"android",rules:[{ua:"GT-N5110"}],dpi:521,bw:0,maxDim:2960},{type:"android",rules:[{ua:"SM-J530"}],dpi:282,bw:2,maxDim:1280},{type:"android",rules:[{ua:"SM-G570"}],dpi:294,bw:3,maxDim:1280},{type:"android",rules:[{ua:"SM-S727"}],dpi:401,bw:1,maxDim:1920},{type:"android",rules:[{ua:"SM-J701"}],dpi:267,bw:5,maxDim:1280},{type:"android",rules:[{ua:"SM-J730"}],dpi:401,bw:1,maxDim:1920},{type:"android",rules:[{ua:"SM-G610"}],dpi:401,bw:3,maxDim:1920},{type:"android",rules:[{ua:"SM-G615"}],dpi:386,bw:4,maxDim:1920},{type:"android",rules:[{ua:"SM-G960"}],dpi:570,bw:0,maxDim:2960},{type:"android",rules:[{ua:"SM-G965"}],dpi:529,bw:0,maxDim:2960},{type:"android",rules:[{ua:"SM-G970"}],dpi:550,bw:0,maxDim:3040},{type:"android",rules:[{ua:"SM-G975"}],dpi:522,bw:0,maxDim:3040},{type:"android",rules:[{ua:"G3121"}],dpi:294,bw:1,maxDim:1280},{type:"android",rules:[{ua:"G3421"}],dpi:401,bw:2,maxDim:1920},{type:"android",rules:[{ua:"H3113"}],dpi:424,bw:2,maxDim:1920},{type:"android",rules:[{ua:"H4233"}],dpi:367,bw:1.5,maxDim:1920},{type:"android",rules:[{ua:"G8141"}],dpi:807,bw:3,maxDim:2160},{type:"android",rules:[{ua:"G8341"}],dpi:424,bw:5,maxDim:1920},{type:"android",rules:[{ua:"G8441"}],dpi:319,bw:3,maxDim:1280},{type:"android",rules:[{ua:"H8216"}],dpi:424,bw:3,maxDim:2160},{type:"android",rules:[{ua:"H8314"}],dpi:483,bw:4,maxDim:2160},{type:"android",rules:[{ua:"G8231"}],dpi:424,bw:4,maxDim:1920},{type:"android",rules:[{ua:"CPH1727"}],dpi:402,bw:3,maxDim:2160},{type:"android",rules:[{ua:"CPH1725"}],dpi:402,bw:3,maxDim:2160},{type:"android",rules:[{ua:"CPH1729"}],dpi:282,bw:3,maxDim:1440},{type:"android",rules:[{ua:"CPH1717"}],dpi:282,bw:4,maxDim:1280},{type:"android",rules:[{ua:"vivo 1716"}],dpi:269,bw:2.5,maxDim:1440},{type:"android",rules:[{ua:"vivo 1718"}],dpi:282,bw:2,maxDim:1440},{type:"android",rules:[{ua:"Micromax C1"}],dpi:294,bw:3,maxDim:1280},{type:"android",rules:[{ua:"Micromax HS2"}],dpi:279,bw:4,maxDim:1440},{type:"android",rules:[{ua:"Micromax Bharat 5"}],dpi:282,bw:5,maxDim:1280},{type:"android",rules:[{ua:"BBA100-2"}],dpi:534,bw:3,maxDim:2560},{type:"android",rules:[{ua:"BBD100-1"}],dpi:403,bw:3,maxDim:1920},{type:"android",rules:[{ua:"TA-1028"}],dpi:294,bw:3,maxDim:1280},{type:"android",rules:[{ua:"TA-1053"}],dpi:282,bw:3,maxDim:1280},{type:"android",rules:[{ua:"TA-1000"}],dpi:403,bw:4,maxDim:1920},{type:"android",rules:[{ua:"Nokia 7 plus"}],dpi:403,bw:3,maxDim:2160},{type:"android",rules:[{ua:"TA-1004"}],dpi:554,bw:3,maxDim:2560},{type:"android",rules:[{ua:"Nokia 8 Sirocco"}],dpi:534,bw:3,maxDim:2560}]}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.FusionPoseSensor=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(10),u=n(7),d=n(12),c=n(36),f=n(44),h=n(496),_=n(500),A=n(268);t.FusionPoseSensor=function(){function e(t){var n=this;(0,a.default)(this,e),this._onDeviceOrientationChange=function(e){n._deviceOrientationQ=n._deviceOrientationQ||new c.Quaternion;var t=e.alpha,r=e.beta,i=e.gamma;t=(t||0)*Math.PI/180,r=(r||0)*Math.PI/180,i=(i||0)*Math.PI/180,n._deviceOrientationQ.fromEuler(n._tmpVec.set(r,t,-i),"YXZ")},this._onDeviceMotionChange=function(e){var t=e.accelerationIncludingGravity,r=e.rotationRate,i=e.timeStamp/1e3;n._isFirefoxAndroid&&!n._isFirefoxAndroid54OrHigher&&(i/=1e3);var a=i-n._previousTimestampS;return a<=A.MIN_TIMESTEP||a>A.MAX_TIMESTEP?(l.Context.logger.info(n,"Invalid timestamps detected. Time step between successive gyroscope sensor samples is very small or not monotonic"),void(n._previousTimestampS=i)):(n._accelerometer.set(-t.x,-t.y,-t.z),u.Util.isR7()?n._gyroscope.set(-r.beta,r.alpha,r.gamma):n._gyroscope.set(r.alpha,r.beta,r.gamma),n._isDeviceMotionInRadians||n._gyroscope.mult(Math.PI/180),n._filter.addAccelMeasurement(n._accelerometer,i),n._filter.addGyroMeasurement(n._gyroscope,i),void(n._previousTimestampS=i))},this._onScreenOrientationChange=function(){n._setScreenTransform()},this._deviceId="webvr-polyfill:fused",this._deviceName="VR Position Device (webvr-polyfill:fused)",this._accelerometer=new d.Vector3,this._gyroscope=new d.Vector3,this._filter=new h.ComplementaryFilter(u.Util.getParam(t,"kFactor",.99)),this._posePredictor=new _.PosePredictor(u.Util.getParam(t,"predictionTime",.025)),this._filterToWorldQ=new c.Quaternion,this._isFirefoxAndroid=u.Util.isFirefoxAndroid(),this._isIOS=u.Util.isIOS(),this._isFirefoxAndroid54OrHigher=this._isFirefoxAndroid&&u.Util.getFirefoxVersion()>=54,this._isWithoutDeviceMotion=u.Util.isIOS134(),this._isDeviceMotionInRadians=!this._isIOS&&u.Util.isChrome()&&u.Util.getChromeVersion()<66,this._isIOS?this._filterToWorldQ.fromAxisAngle(new d.Vector3(1,0,0),Math.PI/2):this._filterToWorldQ.fromAxisAngle(new d.Vector3(1,0,0),-Math.PI/2),this._inverseWorldToScreenQ=new c.Quaternion,this._worldToScreenQ=new c.Quaternion,this._setScreenTransform(),u.Util.isLandscapeMode()&&this._filterToWorldQ.mult(this._inverseWorldToScreenQ),this._resetQ=new c.Quaternion,this._predictedQ=new c.Quaternion,this._tmpQ=new c.Quaternion,this._tmpQ2=new c.Quaternion,this._tmpVec=new d.Vector3,this._orientationOut=new Float32Array(4),this._previousTimestampS=(new Date).getTime(),this._isWithoutDeviceMotion?l.Context.windowEventDispatcher.addEventListener(f.GlobalEvent.DEVICE_ORIENTATION,this._onDeviceOrientationChange):l.Context.windowEventDispatcher.addEventListener(f.GlobalEvent.DEVICE_MOTION,this._onDeviceMotionChange),l.Context.windowEventDispatcher.addEventListener(f.GlobalEvent.ORIENTATION_CHANGE,this._onScreenOrientationChange)}return(0,s.default)(e,[{key:"dtor",value:function(){this._isWithoutDeviceMotion?l.Context.windowEventDispatcher.removeEventListener(f.GlobalEvent.DEVICE_ORIENTATION,this._onDeviceOrientationChange):l.Context.windowEventDispatcher.removeEventListener(f.GlobalEvent.DEVICE_MOTION,this._onDeviceMotionChange),l.Context.windowEventDispatcher.removeEventListener(f.GlobalEvent.ORIENTATION_CHANGE,this._onScreenOrientationChange)}},{key:"getPosition",value:function(e){return null}},{key:"getOrientation",value:function(e){return this._isWithoutDeviceMotion&&this._deviceOrientationQ?(this._deviceOrientationFixQ=this._deviceOrientationFixQ||function(){var e=(new c.Quaternion).fromAxisAngle(d.Vector3.NEG_Z_AXIS,0),t=new c.Quaternion;return"landscape-secondary"===u.Util.getScreenOrientationType()?t.fromAxisAngle(d.Vector3.Y_AXIS,Math.PI/-2):t.fromAxisAngle(d.Vector3.Y_AXIS,Math.PI/2),e.mult(t)}(),this._deviceOrientationFilterToWorldQ=this._deviceOrientationFilterToWorldQ||function(){return(new c.Quaternion).fromAxisAngle(d.Vector3.X_AXIS,-Math.PI/2)}(),this._tmpQ2.copyFrom(this._deviceOrientationQ),this._tmpQ2.mult(this._deviceOrientationFilterToWorldQ),this._tmpQ2.mult(this._resetQ),this._tmpQ2.mult(this._worldToScreenQ),c.Quaternion.multOut(this._deviceOrientationFixQ,this._tmpQ2,this._tmpQ)):(this._predictedQ=this._posePredictor.getPrediction(this._filter.getOrientation(),this._gyroscope,this._previousTimestampS),this._tmpQ.copyFrom(this._filterToWorldQ),this._tmpQ.mult(this._resetQ),this._tmpQ.mult(this._predictedQ),this._tmpQ.mult(this._worldToScreenQ)),e?this._tmpQ:(this._orientationOut[0]=this._tmpQ.x,this._orientationOut[1]=this._tmpQ.y,this._orientationOut[2]=this._tmpQ.z,this._orientationOut[3]=this._tmpQ.w,this._orientationOut)}},{key:"resetPose",value:function(){this._resetQ.copyFrom(this._filter.getOrientation()),this._resetQ.x=0,this._resetQ.y=0,this._resetQ.z*=-1,this._resetQ.normalize(),u.Util.isLandscapeMode()&&this._resetQ.mult(this._inverseWorldToScreenQ)}},{key:"_setScreenTransform",value:function(){this._worldToScreenQ.set(0,0,0,1);var e=u.Util.getScreenOrientationType();"landscape-primary"===e?this._worldToScreenQ.fromAxisAngle(d.Vector3.Z_AXIS,-Math.PI/2):"landscape-secondary"===e&&this._worldToScreenQ.fromAxisAngle(d.Vector3.Z_AXIS,Math.PI/2),this._inverseWorldToScreenQ.copyFrom(this._worldToScreenQ),this._inverseWorldToScreenQ.invert()}},{key:"deviceId",get:function(){return this._deviceId}},{key:"deviceName",get:function(){return this._deviceName}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PosePredictor=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(36),u=n(12),d=n(17);t.PosePredictor=function(){function e(t){(0,a.default)(this,e),this._predictionTimeS=t,this._previousQ=new l.Quaternion,this._previousTimestampS=null,this._deltaQ=new l.Quaternion,this._outQ=new l.Quaternion,this._tmpVec=new u.Vector3}return(0,s.default)(e,[{key:"getPrediction",value:function(e,t,n){if(!this._previousTimestampS)return this._previousQ.copyFrom(e),this._previousTimestampS=n,e;this._tmpVec.copyFrom(t),this._tmpVec.normalize();var r=t.magnitude();if(r<d.MathUtil.degToRad(20))return this._outQ.copyFrom(e),this._previousQ.copyFrom(e),this._outQ;var i=r*this._predictionTimeS;return this._deltaQ.fromAxisAngle(this._tmpVec,i),this._outQ.copyFrom(this._previousQ),this._outQ.mult(this._deltaQ),this._previousQ.copyFrom(e),this._outQ}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SensorSample=void 0;var i=n(1),a=r(i),o=n(2),s=r(o);t.SensorSample=function(){function e(t,n){(0,a.default)(this,e),this.set(t,n)}return(0,s.default)(e,[{key:"set",value:function(e,t){this._sample=e,this._timestampS=t}},{key:"copyFrom",value:function(e){this.set(e.sample,e.timestampS)}},{key:"sample",get:function(){return this._sample}},{key:"timestampS",get:function(){return this._timestampS}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.VRDeviceManager=void 0;var i=n(26),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(8),A=r(_),m=n(5),p=r(m),g=n(10),E=n(44),v=n(76),b=n(7),S=n(512),T=n(183);t.VRDeviceManager=function(e){function t(e){(0,u.default)(this,t);var n=(0,h.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e));if(n._webvrPolyfill=new S.WebVRPolyfill,n._frameData=new VRFrameData,n._isChromeMobile=b.Util.isChrome()&&b.Util.isMobileBrowser(),b.Util.isSamsungInternet()){var r=function(){b.Util.getFullscreenElement()||(n._state=v.DeviceManager.STATE_READY,g.Context.eventEmitter.emit(n,v.DeviceManager.EVENT_DEVICE_DEACTIVATED),g.Context.eventEmitter.removeListener(T.CardboardVRDisplay.EVENT_HMD_PARAMS_CHANGED,n._updateHmdParams))};g.Context.documentEventDispatcher.addEventListener(E.GlobalEvent.FULLSCREEN_CHANGE,r)}return window.addEventListener("vrdisplaypresentchange",function(e){n._hmd.isPresenting?n._hardwareSupport&&("mounted"===e.reason?(n._hmdMounted=!0,g.Context.eventEmitter.emit(n,v.DeviceManager.EVENT_DEVICE_MOUNTED)):"unmounted"===e.reason&&(n._hmdMounted=!1,g.Context.eventEmitter.emit(n,v.DeviceManager.EVENT_DEVICE_UNMOUNTED)),n._updateHmdParams()):(n._state=v.DeviceManager.STATE_READY,g.Context.eventEmitter.emit(n,v.DeviceManager.EVENT_DEVICE_DEACTIVATED),g.Context.eventEmitter.removeListener(T.CardboardVRDisplay.EVENT_HMD_PARAMS_CHANGED,n._updateHmdParams))}),window.addEventListener("vrdisplayfocus",function(){n._hmdMounted=!0,g.Context.eventEmitter.emit(n,v.DeviceManager.EVENT_DEVICE_MOUNTED)}),window.addEventListener("vrdisplayblur",function(){n._hmdMounted=!1,g.Context.eventEmitter.emit(n,v.DeviceManager.EVENT_DEVICE_UNMOUNTED)}),n.init(),n}return(0,p.default)(t,e),(0,c.default)(t,[{key:"update",value:function(e){(this._state===v.DeviceManager.STATE_ACTIVE||g.Context.forceVrRaf)&&this._hmd.getFrameData(this._frameData),(0,A.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"update",this).call(this,e)}},{key:"enable",value:function(){var e=this;return new a.default(function(t,n){if(e._state!==v.DeviceManager.STATE_READY)return void n(new Error("Cannot enable VR, already enabled"));if(e._inTransition)return void t();e._inTransition=!0,e._updateEyeParams(),e._initRenderSize(),e._updateViewport(v.Eye.LEFT),e._updateViewport(v.Eye.RIGHT),e._oldRenderWidth=g.Context.renderer.canvas.width,e._oldRenderHeight=g.Context.renderer.canvas.height,g.Context.renderer.canvas.width=e.renderWidth,g.Context.renderer.canvas.height=e.renderHeight;var r=e._hardwareSupport?g.Context.renderer.canvas:e._fullscreenElement;e._hmd.requestPresent([{source:r}]).then(function(){e._state=v.DeviceManager.STATE_ACTIVE,e.update(0),g.Context.eventEmitter.emit(e,v.DeviceManager.EVENT_DEVICE_ACTIVATED),g.Context.eventEmitter.on(T.CardboardVRDisplay.EVENT_HMD_PARAMS_CHANGED,e._updateHmdParams),e._inTransition=!1,t()}).catch(function(t){g.Context.logger.error(e,"request vr mode failed: "+t),e._inTransition=!1,n(t)})})}},{key:"disable",value:function(){var e=this;return new a.default(function(t,n){return e._state!==v.DeviceManager.STATE_ACTIVE?void n(new Error("VR not active, cannot disable VR")):e._inTransition?void t():(e._inTransition=!0,g.Context.renderer.canvas.width=e._oldRenderWidth,g.Context.renderer.canvas.height=e._oldRenderHeight,void e._hmd.exitPresent().then(function(){e._state=v.DeviceManager.STATE_READY,g.Context.eventEmitter.emit(e,v.DeviceManager.EVENT_DEVICE_DEACTIVATED),g.Context.eventEmitter.removeListener(T.CardboardVRDisplay.EVENT_HMD_PARAMS_CHANGED,e._updateHmdParams),e._inTransition=!1,t()}).catch(function(t){e._inTransition=!1,n(t)}))})}},{key:"_updateEyeParams",value:function(){this._eyeParams[v.Eye.LEFT]=this._hmd.getEyeParameters(v.Eye.LEFT),this._eyeParams[v.Eye.RIGHT]=this._hmd.getEyeParameters(v.Eye.RIGHT)}},{key:"init",value:function(){var e=this;this._webvrPolyfill.isWebVRAvailable&&navigator.getVRDisplays().then(function(t){0===t.length&&(e._webvrPolyfill._enablePolyfill(),e._webvrPolyfill._enableOneOneShim(!0),e._frameData=new VRFrameData),navigator.getVRDisplays().then(e._enumerateVRDisplays.bind(e))}).catch(function(t){return g.Context.logger.error(e,"Cannot request vr displays: "+t)})}},{key:"_enumerateVRDisplays",value:function(e){e.length>0&&(e[0].displayName.indexOf("webvr-polyfill")!==-1?(b.Util.isMobileBrowser()||window.CARDBOARD_DEBUG)&&(this._hmd=e[0],this._hardwareSupport=!1):(this._hmd=e[0],this._hardwareSupport=!0,this._isChromeMobile&&(g.Context.forceVrRaf=!0))),this._hmd?(this._updateHmdParams(),this._hmdStatus=v.DeviceManager.SUCCESSFUL,this._state=v.DeviceManager.STATE_READY,g.Context.eventEmitter.emit(this,v.DeviceManager.EVENT_DEVICE_READY)):this._hmdStatus=v.DeviceManager.FAILED}},{key:"type",get:function(){return v.DeviceManager.TYPE_WEBVR}},{key:"hasPosition",get:function(){return this._hmd&&this._hmd.capabilities.hasPosition}},{key:"timestamp",get:function(){return this._frameData.timestamp}}]),t}(v.DeviceManager)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.XRDeviceManager=void 0;var i=n(34),a=r(i),o=n(117),s=r(o),l=n(26),u=r(l),d=n(4),c=r(d),f=n(1),h=r(f),_=n(2),A=r(_),m=n(6),p=r(m),g=n(8),E=r(g),v=n(5),b=r(v),S=n(10),T=n(76);t.XRDeviceManager=function(e){function t(e){(0,h.default)(this,t);var n=(0,p.default)(this,(t.__proto__||(0,c.default)(t)).call(this,e));return n.init=function(){navigator.xr.isSessionSupported("immersive-vr").then(function(e){e?(n._hmdStatus=T.DeviceManager.SUCCESSFUL,n._state=T.DeviceManager.STATE_READY,n._hardwareSupport=!0,S.Context.eventEmitter.emit(n,T.DeviceManager.EVENT_DEVICE_READY)):n._hmdStatus=T.DeviceManager.FAILED})},n._updateHmdParams=function(){n._hmd&&(n._updateEyeParams(),n._updateProjectionMatrix(T.Eye.LEFT),n._updateProjectionMatrix(T.Eye.RIGHT),n._updateEyeOffset(T.Eye.LEFT),n._updateEyeOffset(T.Eye.RIGHT),n._updateViewMatrix(T.Eye.LEFT),n._updateViewMatrix(T.Eye.RIGHT))},n._frameData=null,navigator.xr.addEventListener("devicechange",n.init),n.init(),n}return(0,b.default)(t,e),(0,A.default)(t,[{key:"updateDepthRange",value:function(e){(0,E.default)(t.prototype.__proto__||(0,c.default)(t.prototype),"updateDepthRange",this).call(this,e),this._hmd&&this._hmd.updateRenderState({depthNear:e[0],depthFar:e[1]})}},{key:"update",value:function(e){(this._state===T.DeviceManager.STATE_ACTIVE||S.Context.forceVrRaf)&&(this._sensorTransform.reset(),this._pose=this._frameData.pose,this._pose&&this._pose.orientation&&this._sensorTransform.rotation.copyFrom(this._pose.orientation),this._pose&&this._pose.position&&this._sensorTransform.position.copyFrom(this._pose.position),this._standing&&(this._sensorTransform.position.y+=T.USER_HEIGHT)),this._state===T.DeviceManager.STATE_ACTIVE&&(this._frameData.leftProjectionMatrix&&this._frameData.rightProjectionMatrix&&(this._updateProjectionMatrix(T.Eye.LEFT),this._updateProjectionMatrix(T.Eye.RIGHT)),this._updateViewMatrix(T.Eye.LEFT),this._updateViewMatrix(T.Eye.RIGHT))}},{key:"enable",value:function(){var e=this;return new u.default(function(n,r){return e._state!==T.DeviceManager.STATE_READY?void r(new Error("Cannot enable VR, already enabled")):e._inTransition?void n():(e._inTransition=!0,void navigator.xr.requestSession("immersive-vr").then(function(n){e._hmd=n,e._hmd.requestReferenceSpace("local").then(function(n){e._referenceSpace=n,e._hmd.updateRenderState({baseLayer:new XRWebGLLayer(e._hmd,S.Context.gl),depthNear:e._depthRange[0],depthFar:e._depthRange[1]}),e._state=T.DeviceManager.STATE_ACTIVE,e._oldRenderWidth=S.Context.renderer.canvas.width,e._oldRenderHeight=S.Context.renderer.canvas.height,e._hmd.addEventListener("visibilitychange",function(n){switch(n.session.visibilityState){case"visible":e._hmdMounted=!0,S.Context.eventEmitter.emit(e,t.EVENT_DEVICE_MOUNTED);break;case"visible-blurred":e._hmdMounted=!1,S.Context.eventEmitter.emit(e,t.EVENT_DEVICE_UNMOUNTED);break;case"hidden":e._hmdMounted=!1,S.Context.eventEmitter.emit(e,t.EVENT_DEVICE_UNMOUNTED)}}),e._hmd.addEventListener("end",function(){e._state=T.DeviceManager.STATE_READY,S.Context.eventEmitter.emit(e,T.DeviceManager.EVENT_DEVICE_DEACTIVATED),S.Context.gl.bindFramebuffer(S.Context.gl.FRAMEBUFFER,null),S.Context.startRaf()}),e._hmd.addEventListener("select",function(){S.Context.eventEmitter.emit(e,T.DeviceManager.EVENT_INPUT_SOURCE_SELECT)}),e._hmd.addEventListener("selectstart",function(){S.Context.eventEmitter.emit(e,T.DeviceManager.EVENT_INPUT_SOURCE_SELECT_START)}),e._hmd.addEventListener("selectend",function(){S.Context.eventEmitter.emit(e,T.DeviceManager.EVENT_INPUT_SOURCE_SELECT_END)}),e._hmd.requestAnimationFrame(S.Context.requestFrameUpdate)})}).catch(function(t){S.Context.logger.error(e,"request xr mode failed: "+t),e._inTransition=!1,r(t)}))})}},{key:"disable",value:function(){var e=this;return new u.default(function(t,n){return e._state!==T.DeviceManager.STATE_ACTIVE?void n(new Error("VR not active, cannot disable VR")):e._inTransition?void t():(e._inTransition=!0,S.Context.renderer.canvas.width=e._oldRenderWidth,S.Context.renderer.canvas.height=e._oldRenderHeight,void e._hmd.end().then(function(){e._inTransition=!1,t()}).catch(function(t){e._inTransition=!1,n(t)}))})}},{key:"updateFrameData",value:function(e,t){this._frameData=t;var n=this._hmd.renderState.baseLayer; S.Context.gl.bindFramebuffer(S.Context.gl.FRAMEBUFFER,n.framebuffer);var r=this._frameData.getViewerPose(this._referenceSpace);if(r){var i=0,a=0,o=void 0,l=void 0;this._frameData.pose=r.transform;var u=!0,d=!1,c=void 0;try{for(var f,h=(0,s.default)(r.views);!(u=(f=h.next()).done);u=!0){var _=f.value;this._eyeParams[_.eye]={offset:[_.transform.position.x-r.transform.position.x,_.transform.position.y-r.transform.position.y,_.transform.position.z-r.transform.position.z],renderWidth:n.framebufferWidth,renderHeight:n.framebufferHeight},_.eye===T.Eye.LEFT?this._frameData.leftProjectionMatrix=_.projectionMatrix:_.eye===T.Eye.RIGHT&&(this._frameData.rightProjectionMatrix=_.projectionMatrix);var A=n.getViewport(_);_.eye===T.Eye.LEFT?o=A:_.eye===T.Eye.RIGHT&&(l=A),_.eye!==T.Eye.LEFT&&_.eye!==T.Eye.RIGHT||(i+=A.width,a=Math.max(A.height,a))}}catch(e){d=!0,c=e}finally{try{!u&&h.return&&h.return()}finally{if(d)throw c}}this._viewport[T.Eye.LEFT][0]=o.x/i,this._viewport[T.Eye.LEFT][1]=o.width/i+this._viewport[T.Eye.LEFT][0],this._viewport[T.Eye.LEFT][3]=o.y/a,this._viewport[T.Eye.LEFT][2]=o.height/a+this._viewport[T.Eye.LEFT][3],this._viewport[T.Eye.RIGHT][0]=l.x/i,this._viewport[T.Eye.RIGHT][1]=l.width/i+this._viewport[T.Eye.RIGHT][0],this._viewport[T.Eye.RIGHT][3]=l.y/a,this._viewport[T.Eye.RIGHT][2]=l.height/a+this._viewport[T.Eye.RIGHT][3],this._inTransition,this._renderSize[0]=i,this._renderSize[1]=a,this._frameData.timestamp=e,this._updateHmdParams(),S.Context.renderer.canvas.width=this.renderWidth,S.Context.renderer.canvas.height=this.renderHeight,this._inTransition&&(S.Context.eventEmitter.emit(this,T.DeviceManager.EVENT_DEVICE_ACTIVATED),this._inTransition=!1)}return!!r}},{key:"deinit",value:function(){this._hmd=null,this._hmdStatus=T.DeviceManager.NOT_PRESENT,this._state=T.DeviceManager.STATE_INACTIVE}},{key:"getGamepads",value:function(){return this._hmd&&this._hmd.inputSources?(0,a.default)(this._hmd.inputSources).map(function(e,t){var n=void 0;return e.gamepad&&(n=e.gamepad.id),e.profiles.includes("oculus-touch-v2")?"left"===e.handedness?n="Oculus Touch (Left)":"right"===e.handedness&&(n="Oculus Touch (Right)"):e.profiles.includes("oculus-go")?"left"===e.handedness?n="Oculus Go Controller (Left)":"right"===e.handedness&&(n="Oculus Go Controller (Right)"):e.profiles.includes("samsung-gearvr")?"left"===e.handedness?n="Gear VR Controller (Left)":"right"===e.handedness&&(n="Gear VR Controller (Right)"):e.profiles.includes("google-daydream")&&("left"===e.handedness?n="Daydream Controller":"right"===e.handedness&&(n="Daydream Controller")),e.gamepad?{buttons:e.gamepad.buttons,index:t,hand:e.handedness,axes:e.gamepad.axes,displayId:e.gamepad.displayId,buttonCount:e.gamepad.buttonCount,axesCount:e.gamepad.axesCount,hapticActuators:e.gamepad.hapticActuators,connected:e.gamepad.connected,gripSpace:e.gripSpace,targetRaySpace:e.targetRaySpace,id:n}:{buttons:[],index:t,hand:e.handedness,gripSpace:e.gripSpace,targetRaySpace:e.targetRaySpace,id:"delight-generic"}}):[]}},{key:"type",get:function(){return T.DeviceManager.TYPE_WEBXR}},{key:"hasPosition",get:function(){return this._hmd&&this._pose&&(0!==this._pose.position.x||0!==this._pose.position.y||0!==this._pose.position.z)}},{key:"timestamp",get:function(){return this._frameData.timestamp}}]),t}(T.DeviceManager)},,,,,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Plane3=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(6),u=r(l),d=n(2),c=r(d),f=n(5),h=r(f),_=n(12),A=n(7),m=n(18);t.Plane3=function(e){function t(e){(0,s.default)(this,t);var n=(0,u.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return n._normal=new _.Vector3,n._normal.copyFrom(A.Util.getParamRequired(e,"normal")),n._d=A.Util.getParamRequired(e,"d"),n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"$serialize",value:function(){return{name:"Plane3",params:{normal:this._normal,d:this._d}}}}]),(0,c.default)(t,[{key:"distanceToPoint",value:function(e){return this._normal.dot(e)-this._d}},{key:"toString",value:function(){return"d = "+this._d+" n = "+this._normal.toString()}},{key:"normal",get:function(){return this._normal},set:function(e){this._normal.copyFrom(e)}},{key:"d",get:function(){return this._d},set:function(e){this._d=e}}]),t}(m.Serializable)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.DeviceInfo=void 0;var i=n(2),a=r(i),o=n(1),s=r(o),l=n(7),u=n(17),d=n(510),c=n(10),f=n(113),h=n(138),_=function e(t){(0,s.default)(this,e),this.width=t.width||l.Util.getScreenWidth(),this.height=t.height||l.Util.getScreenHeight(),this.widthMeters=t.widthMeters,this.heightMeters=t.heightMeters,this.bevelMeters=t.bevelMeters},A=new _({widthMeters:.11,heightMeters:.062,bevelMeters:.004}),m=new _({widthMeters:.1038,heightMeters:.0584,bevelMeters:.004});t.DeviceInfo=function(){function e(t){(0,s.default)(this,e),this._viewer=f.ViewerLibrary.get("CardboardV2"),this.updateDeviceParams(t),this._distortion=new d.Distortion(this._viewer.distortionCoefficients),c.Context.eventEmitter.emit(this._viewer,h.CardboardViewer.EVENT_VR_VIEWER_CHANGED)}return(0,a.default)(e,[{key:"updateDeviceParams",value:function(e){this._device=this._determineDevice(e)||this._device}},{key:"_determineDevice",value:function(e){if(!e)return l.Util.isIOS()?(c.Context.logger.warn(this,"Using fallback Android device measurements."),m):(c.Context.logger.warn(this,"Using fallback iOS device measurements."),A);var t=window.devicePixelRatio*Math.max(window.screen.width,window.screen.height),n=.0254,r=n/(e.xdpi/e.maxDim*t),i=n/(e.ydpi/e.maxDim*t),a=l.Util.getScreenWidth(),o=l.Util.getScreenHeight();return new _({widthMeters:r*a,heightMeters:i*o,bevelMeters:.001*e.bevelMm})}},{key:"getDistortedFieldOfViewLeftEye",value:function(){var e=this._viewer,t=this._device,n=this._distortion,r=e.screenLensDistance,i=(t.widthMeters-e.interLensDistance)/2,a=e.interLensDistance/2,o=e.baselineLensDistance-t.bevelMeters,s=t.heightMeters-o,l=u.MathUtil.radToDeg(Math.atan(n.distort(i/r))),d=u.MathUtil.radToDeg(Math.atan(n.distort(a/r))),c=u.MathUtil.radToDeg(Math.atan(n.distort(o/r))),f=u.MathUtil.radToDeg(Math.atan(n.distort(s/r)));return{leftDegrees:Math.min(l,e.fov),rightDegrees:Math.min(d,e.fov),downDegrees:Math.min(c,e.fov),upDegrees:Math.min(f,e.fov)}}},{key:"getLeftEyeVisibleTanAngles",value:function(){var e=this._viewer,t=this._device,n=this._distortion,r=Math.tan(-u.MathUtil.degToRad(e.fov)),i=Math.tan(u.MathUtil.degToRad(e.fov)),a=Math.tan(u.MathUtil.degToRad(e.fov)),o=Math.tan(-u.MathUtil.degToRad(e.fov)),s=t.widthMeters/4,l=t.heightMeters/2,d=e.baselineLensDistance-t.bevelMeters-l,c=e.interLensDistance/2-s,f=-d,h=e.screenLensDistance,_=n.distort((c-s)/h),A=n.distort((f+l)/h),m=n.distort((c+s)/h),p=n.distort((f-l)/h),g=new Float32Array(4);return g[0]=Math.max(r,_),g[1]=Math.min(i,A),g[2]=Math.min(a,m),g[3]=Math.max(o,p),g}},{key:"getLeftEyeNoLensTanAngles",value:function(){var e=this._viewer,t=this._device,n=this._distortion,r=new Float32Array(4),i=n.distortInverse(Math.tan(-u.MathUtil.degToRad(e.fov))),a=n.distortInverse(Math.tan(u.MathUtil.degToRad(e.fov))),o=n.distortInverse(Math.tan(u.MathUtil.degToRad(e.fov))),s=n.distortInverse(Math.tan(-u.MathUtil.degToRad(e.fov))),l=t.widthMeters/4,d=t.heightMeters/2,c=e.baselineLensDistance-t.bevelMeters-d,f=e.interLensDistance/2-l,h=-c,_=e.screenLensDistance,A=(f-l)/_,m=(h+d)/_,p=(f+l)/_,g=(h-d)/_;return r[0]=Math.max(i,A),r[1]=Math.min(a,m),r[2]=Math.min(o,p),r[3]=Math.max(s,g),r}},{key:"getLeftEyeVisibleScreenRect",value:function(e){var t=this._viewer,n=this._device,r=t.screenLensDistance,i=(n.widthMeters-t.interLensDistance)/2,a=t.baselineLensDistance-n.bevelMeters,o=(e[0]*r+i)/n.widthMeters,s=(e[1]*r+a)/n.heightMeters,l=(e[2]*r+i)/n.widthMeters,u=(e[3]*r+a)/n.heightMeters;return{x:o,y:u,width:l-o,height:s-u}}},{key:"getFieldOfViewLeftEye",value:function(e){return e?this.getUndistortedFieldOfViewLeftEye():this.getDistortedFieldOfViewLeftEye()}},{key:"getFieldOfViewRightEye",value:function(e){var t=this.getFieldOfViewLeftEye(e);return{leftDegrees:t.rightDegrees,rightDegrees:t.leftDegrees,upDegrees:t.upDegrees,downDegrees:t.downDegrees}}},{key:"getProjectionMatrixLeftEye",value:function(e,t){var n=this.getFieldOfViewLeftEye(t),r=.1,i=1e3,a=Math.tan(u.MathUtil.degToRad(n.leftDegrees))*r,o=Math.tan(u.MathUtil.degToRad(n.rightDegrees))*r,s=Math.tan(u.MathUtil.degToRad(n.downDegrees))*r,l=Math.tan(u.MathUtil.degToRad(n.upDegrees))*r;return e.frustum(-a,o,-s,l,r,i),e}},{key:"getUndistortedViewportLeftEye",value:function(){var e=this._getUndistortedParams(),t=this._viewer,n=this._device,r=t.screenLensDistance,i=n.widthMeters/r,a=n.heightMeters/r,o=n.width/i,s=n.height/a,l=Math.round((e.eyePosX-e.outerDist)*o),u=Math.round((e.eyePosY-e.bottomDist)*s);return{x:l,y:u,width:Math.round((e.eyePosX+e.innerDist)*o)-l,height:Math.round((e.eyePosY+e.topDist)*s)-u}}},{key:"getUndistortedFieldOfViewLeftEye",value:function(){var e=this._getUndistortedParams();return{leftDegrees:u.MathUtil.radToDeg(Math.atan(e.outerDist)),rightDegrees:u.MathUtil.radToDeg(Math.atan(e.innerDist)),downDegrees:u.MathUtil.radToDeg(Math.atan(e.bottomDist)),upDegrees:u.MathUtil.radToDeg(Math.atan(e.topDist))}}},{key:"_getUndistortedParams",value:function(){var e=this._viewer,t=this._device,n=this._distortion,r=e.screenLensDistance,i=e.interLensDistance/2/r,a=t.widthMeters/r,o=t.heightMeters/r,s=a/2-i,l=(e.baselineLensDistance-t.bevelMeters)/r,d=e.fov,c=n.distortInverse(Math.tan(u.MathUtil.degToRad(d))),f=Math.min(s,c),h=Math.min(i,c),_=Math.min(l,c),A=Math.min(o-l,c);return{outerDist:f,innerDist:h,topDist:A,bottomDist:_,eyePosX:s,eyePosY:l}}},{key:"device",get:function(){return this._device}},{key:"viewer",get:function(){return this._viewer},set:function(e){this._viewer=e,this._distortion=new d.Distortion(this._viewer.distortionCoefficients)}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Distortion=void 0;var i=n(1),a=r(i),o=n(2),s=r(o);t.Distortion=function(){function e(t){(0,a.default)(this,e),this._coefficients=t}return(0,s.default)(e,[{key:"distortInverse",value:function(e){for(var t=0,n=1,r=e-this.distort(t);Math.abs(n-t)>1e-4;){var i=e-this.distort(n),a=n-i*((n-t)/(i-r));t=n,n=a,r=i}return n}},{key:"distort",value:function(e){for(var t=e*e,n=0,r=this._coefficients.length-1;r>=0;r--)n=t*(n+this._coefficients[r]);return(n+1)*e}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.LegacyVRDisplay=void 0;var i=n(26),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(2),c=r(d),f=n(6),h=r(f),_=n(5),A=r(_),m=n(7),p=n(12),g=n(184);t.LegacyVRDisplay=function(e){function t(e,n){(0,u.default)(this,t);var r=(0,h.default)(this,(t.__proto__||(0,s.default)(t)).call(this));r._hmd=e,r._sensor=n,r._displayId=e.deviceId,r._displayName=e.deviceName,r._isConnected=!!e,r._pose={position:[0,0,0],orientation:[0,0,0,1],linearVelocity:null,linearAcceleration:null,angularVelocity:null,angularAcceleration:null};var i=null;return r._sensor&&(i=r._sensor.getState()),r._capabilities={hasPosition:!!i,hasOrientation:!!i,hasExternalDisplay:!1,canPresent:!0,maxLayers:1},r}return(0,A.default)(t,e),(0,c.default)(t,[{key:"requestPresent",value:function(e){var t=this;return e instanceof Array||(e=[e]),new a.default(function(n,r){if(!t.capabilities.canPresent)return void r(new Error("VRDisplay is not capable of presenting."));if(0===e.length||e.length>t.capabilities.maxLayers)return void r(new Error("Invalid number of layers."));if(t._layer=e[0],t._waitingForPresent)return void r(new Error("Already waiting for present."));if(t.isPresenting)return void r(new Error("Already presenting."));if(t._layer&&t._layer.source){var i=t._layer.source,a=function(){var e=m.Util.getFullscreenElement();this._isPresenting=i===e,this._fireVRDisplayPresentChange(),this.isPresenting?this._waitingForPresent=!1:m.Util.removeFullscreenListeners()}.bind(t),o=function(){this._waitingForPresent&&(m.Util.removeFullscreenListeners(),this._waitingForPresent=!1,this._isPresenting=!1,r(new Error("Unable to present. 1")))}.bind(t);m.Util.addFullscreenListeners(i,a,o),m.Util.requestFullscreen(i,t._hmd)&&(t._waitingForPresent=!0)}return t._waitingForPresent?(t._isPresenting=!0,void n()):(m.Util.exitFullscreen(),void r(new Error("Unable to present. 2")))})}},{key:"exitPresent",value:function(){var e=this.isPresenting;return this._isPresenting=!1,this._layer=null,new a.default(function(t,n){e?t():n(new Error("Was not presenting to VRDisplay."))})}},{key:"getEyeParameters",value:function(e){var t=void 0,n=[0,0,0],r=new p.Vector3;if("getEyeParameters"in this._hmd){var i=this._hmd.getEyeParameters(e);t=i.recommendedFieldOfView,n[0]=i.eyeTranslation.x,n[1]=i.eyeTranslation.y,n[2]=i.eyeTranslation.z,r=i.renderRect}else{t=this._hmd.getRecommendedEyeFieldOfView(e);var a=this._hmd.getEyeTranslation(e);n[0]=a.x,n[1]=a.y,n[2]=a.z,"getRecommendedEyeRenderRect"in this._hmd&&(r=this._hmd.getRecommendedEyeRenderRect(e))}var o=r.width,s=r.height;return m.Util.isFirefox()&&!m.Util.isMobileBrowser()&&this._hmd.deviceId.indexOf("0x100")!==-1&&(s=2*o*9/16),{fieldOfView:t,offset:n,renderWidth:o,renderHeight:s}}},{key:"getImmediatePose",value:function(){if(this._sensor){var e=this._sensor.getState();e.position&&(this._pose.position[0]=e.position.x,this._pose.position[1]=e.position.y,this._pose.position[2]=e.position.z),e.orientation&&(this._pose.orientation[0]=e.orientation.x,this._pose.orientation[1]=e.orientation.y,this._pose.orientation[2]=e.orientation.z,this._pose.orientation[3]=e.orientation.w)}return this._pose}}]),t}(g.VRDisplay)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.WebVRPolyfill=void 0;var i=n(26),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(7),c=n(183),f=n(184),h=n(511);t.WebVRPolyfill=function(){function e(){(0,s.default)(this,e),this._displays=[],this._devicesPopulated=!1;var t=this.isWebVRAvailable(),n=this.isLegacyWebVRAvailable();n?this._enableLegacyPolyfill():t||this._enablePolyfill(),this._enableOneOneShim()}return(0,u.default)(e,[{key:"isWebVRAvailable",value:function(){return"getVRDisplays"in navigator}},{key:"isLegacyWebVRAvailable",value:function(){return"getVRDevices"in navigator||"mozGetVRDevices"in navigator}},{key:"_enableOneOneShim",value:function(e){!e&&"depthNear"in window.VRDisplay.prototype||(window.VRDisplay.prototype.depthNear=.01),!e&&"depthFar"in window.VRDisplay.prototype||(window.VRDisplay.prototype.depthFar=1e4),!e&&"VRFrameData"in window||(window.VRFrameData=function(){this.pose=null},window.VRDisplay.prototype.getFrameData=function(){return function(e){var t=this.getPose();return!!t&&(e.pose=t,e.timestamp=t.timestamp,!0)}}())}},{key:"_enableLegacyPolyfill",value:function(){navigator.getVRDisplays=this._getLegacyVRDisplays.bind(this),window.VRDisplay=h.LegacyVRDisplay}},{key:"_enablePolyfill",value:function(){navigator.getVRDisplays=this._getVRDisplays.bind(this),window.VRDisplay=f.VRDisplay}},{key:"_getVRDisplays",value:function(){var e=this;return this._populateDevices(),new a.default(function(t,n){try{t(e._displays)}catch(e){n(e)}})}},{key:"_getLegacyVRDisplays",value:function(){var e=this;return new a.default(function(t,n){if(navigator.getVRDevices){var r=navigator.getVRDevices();r.then(e._enumerateVRDevices.bind(e)).then(t).catch(n)}else navigator.mozGetVRDevices&&navigator.mozGetVRDevices(function(){try{e._enumerateVRDevices.bind(e),t(e._displays)}catch(e){n(e)}})})}},{key:"_enumerateVRDevices",value:function(e){for(var t=e.length,n=null,r=null,i=0;i<t;++i)if(e[i]instanceof HMDVRDevice){n=e[i];break}if(n)for(var a=0;a<t;++a)if(e[a]instanceof PositionSensorVRDevice&&n.hardwareUnitId===e[a].hardwareUnitId){r=e[a];break}return this._devicesPopulated||this._displays.push(new h.LegacyVRDisplay(n,r)),this._devicesPopulated=!0,this._displays}},{key:"_populateDevices",value:function(){this._devicesPopulated||(this._isCardboardCompatible()&&this._displays.push(new c.CardboardVRDisplay),this._devicesPopulated=!0)}},{key:"_isCardboardCompatible",value:function(){return d.Util.isMobileBrowser()}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Culler=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(12),u=n(49),d=n(508),c=n(94);t.Culler=function(){function e(t){(0,a.default)(this,e),this._planeCount=c.Camera.PLANE_COUNT,this._planes=[new d.Plane3({normal:new l.Vector3(0,0,0),d:0}),new d.Plane3({normal:new l.Vector3(0,0,0),d:0}),new d.Plane3({normal:new l.Vector3(0,0,0),d:0}),new d.Plane3({normal:new l.Vector3(0,0,0),d:0}),new d.Plane3({normal:new l.Vector3(0,0,0),d:0}),new d.Plane3({normal:new l.Vector3(0,0,0),d:0})],this._loc=new l.Vector3(0,0,0),this._dVec=new l.Vector3(0,0,-1),this._uVec=new l.Vector3(0,1,0),this._rVec=new l.Vector3(1,0,0),this._tmp=new l.Vector3,this._tmp2=new l.Vector3,this._viewProjectionMatrix=new u.Matrix4,this._enabled=!0}return(0,s.default)(e,[{key:"onUpdatePlanesFromCamera",value:function(e){this._camera=e,this._frustum=this._camera.frustum;var t=this._frustum[c.Camera.DMIN]*this._frustum[c.Camera.DMIN],n=this._frustum[c.Camera.RMIN]*this._frustum[c.Camera.RMIN],r=this._frustum[c.Camera.RMAX]*this._frustum[c.Camera.RMAX],i=this._frustum[c.Camera.UMIN]*this._frustum[c.Camera.UMIN],a=this._frustum[c.Camera.UMAX]*this._frustum[c.Camera.UMAX],o=this._frustum[c.Camera.DMIN],s=this._frustum[c.Camera.DMAX],l=this._frustum[c.Camera.RMIN],u=this._frustum[c.Camera.RMAX],d=this._frustum[c.Camera.UMIN],f=this._frustum[c.Camera.UMAX];this._loc.copyFrom(e.location),this._dVec.copyFrom(e.dVector),this._uVec.copyFrom(e.uVector),this._rVec.copyFrom(e.rVector);var h=this._dVec.dot(this._loc);if(this._camera.perspective){this._planes[c.Camera.DMIN].normal=this._dVec,this._planes[c.Camera.DMIN].d=h+o,this._tmp.copyFrom(this._dVec),this._tmp.neg(),this._planes[c.Camera.DMAX].normal=this._tmp,this._planes[c.Camera.DMAX].d=-(h+s);var _=1/Math.sqrt(t+i),A=-d*_,m=+o*_;this._tmp.copyFrom(this._dVec),this._tmp.mult(A),this._tmp2.copyFrom(this._uVec),this._tmp2.mult(m),this._tmp.add(this._tmp2),this._planes[c.Camera.UMIN].normal=this._tmp,this._planes[c.Camera.UMIN].d=this._loc.dot(this._tmp),_=1/Math.sqrt(t+a),A=+f*_,m=-o*_,this._tmp.copyFrom(this._dVec),this._tmp.mult(A),this._tmp2.copyFrom(this._uVec),this._tmp2.mult(m),this._tmp.add(this._tmp2),this._planes[c.Camera.UMAX].normal=this._tmp,this._planes[c.Camera.UMAX].d=this._loc.dot(this._tmp),_=1/Math.sqrt(t+n),A=-l*_,m=+o*_,this._tmp.copyFrom(this._dVec),this._tmp.mult(A),this._tmp2.copyFrom(this._rVec),this._tmp2.mult(m),this._tmp.add(this._tmp2),this._planes[c.Camera.RMIN].normal=this._tmp,this._planes[c.Camera.RMIN].d=this._loc.dot(this._tmp),_=1/Math.sqrt(t+r),A=+u*_,m=-o*_,this._tmp.copyFrom(this._dVec),this._tmp.mult(A),this._tmp2.copyFrom(this._rVec),this._tmp2.mult(m),this._tmp.add(this._tmp2),this._planes[c.Camera.RMAX].normal=this._tmp,this._planes[c.Camera.RMAX].d=this._loc.dot(this._tmp)}else this._planes[c.Camera.DMIN].normal=this._dVec,this._planes[c.Camera.DMIN].d=h+o,this._tmp.copyFrom(this._dVec),this._tmp.neg(),this._planes[c.Camera.DMAX].normal=this._tmp,this._planes[c.Camera.DMAX].d=-(h+s),this._planes[c.Camera.UMIN].normal=this._uVec,this._planes[c.Camera.UMIN].d=this._loc.dot(this._uVec)+d,this._tmp.copyFrom(this._uVec),this._tmp.neg(),this._planes[c.Camera.UMAX].normal=this._tmp,this._planes[c.Camera.UMAX].d=-(this._loc.dot(this._uVec)+f),this._planes[c.Camera.RMIN].normal=this._rVec,this._planes[c.Camera.RMIN].d=this._loc.dot(this._rVec)+l,this._tmp.copyFrom(this._rVec),this._tmp.neg(),this._planes[c.Camera.RMAX].normal=this._tmp,this._planes[c.Camera.RMAX].d=-(this._loc.dot(this._rVec)+u)}},{key:"isVisible",value:function(e){if(!e.valid||!this._enabled)return!0;for(var t=0,n=this._planeCount;t<n;t++)if(e.whichSide(this._planes[t])<0)return!1;return!0}},{key:"enabled",set:function(e){this._enabled=e},get:function(){return this._enabled}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.GLExtensionManager=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(10);t.GLExtensionManager=function(){function e(){(0,a.default)(this,e),this._extensions={},this._extensionsSupport={};for(var t={ANGLE_instanced_arrays:"instancedArrays",EXT_texture_filter_anisotropic:"textureFilterAnisotropic",EXT_shader_texture_lod:"shaderTextureLod",OES_element_index_uint:"elementIndexUint",OES_standard_derivatives:"standardDerivatives",OES_texture_float:"textureFloat",OES_texture_float_linear:"textureFloatLinear",OES_texture_half_float:"textureHalfFloat",OES_texture_half_float_linear:"textureHalfFloatLinear",OES_vertex_array_object:"vertexArrayObject",WEBGL_compressed_texture_s3tc:"compressedTextureS3TC",WEBGL_debug_renderer_info:"debugRendererInfo",WEBGL_debug_shaders:"debugShaders",WEBGL_depth_texture:"depthTexture",WEBGL_lose_context:"loseContext",WEBGL_draw_buffers:"drawBuffers",WEBGL_compressed_texture_pvrtc:"compressedTexturePVRTC",EXT_blend_minmax:"blendMinMax",EXT_frag_depth:"fragDepth"},n=l.Context.gl.getSupportedExtensions(),r=/^(WEBKIT_|MOZ_)/,i=0;i<n.length;++i){var o=n[i].replace(r,"");this._extensions[t[o]]=l.Context.gl.getExtension(n[i]),this._extensionsSupport[t[o]]=!0,l.Context.logger.info("WebGL Extension Supported: "+t[o])}this.has.standardDerivatives&&l.Context.gl.hint(this.get.standardDerivatives.FRAGMENT_SHADER_DERIVATIVE_HINT_OES,l.Context.gl.NICEST)}return(0,s.default)(e,[{key:"get",get:function(){return this._extensions}},{key:"has",get:function(){return this._extensionsSupport}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Renderbuffer=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(10);t.Renderbuffer=function(){function e(t,n,r){(0,a.default)(this,e),this._loaded=!1,this._internalFormat=t,this._width=n,this._height=r,this._id=null}return(0,s.default)(e,[{key:"allocate",value:function(){this._loaded||(l.Context.logger.debug(this,"creating renderbuffer "+l.Context.getError()),this._id=l.Context.gl.createRenderbuffer(),this._loaded=!0,l.Context.gl.bindRenderbuffer(l.Context.gl.RENDERBUFFER,this._id),l.Context.gl.renderbufferStorage(l.Context.gl.RENDERBUFFER,this._internalFormat,this._width,this._height),l.Context.gl.bindRenderbuffer(l.Context.gl.RENDERBUFFER,null))}},{key:"dtor",value:function(){this._loaded&&(l.Context.gl.deleteRenderbuffer(this._id),this._id=null)}},{key:"enable",value:function(){this._loaded||this.allocate(),l.Context.gl.bindRenderbuffer(l.Context.gl.RENDERBUFFER,this._id)}},{key:"disable",value:function(){l.Context.gl.bindRenderbuffer(l.Context.gl.RENDERBUFFER,null)}},{key:"id",get:function(){return this._id}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TextureManager=void 0;var i=n(9),a=r(i),o=n(46),s=r(o),l=n(14),u=r(l),d=n(4),c=r(d),f=n(1),h=r(f),_=n(2),A=r(_),m=n(6),p=r(m),g=n(5),E=r(g),v=n(41),b=n(48),S=n(7),T=n(10),x=n(75),y=n(517);t.TextureManager=function(e){function t(){(0,h.default)(this,t);var e=(0,p.default)(this,(t.__proto__||(0,c.default)(t)).call(this));return e._width=Math.min(4096,v.Renderer.MAX_TEXTURE_SIZE),e._height=Math.min(4096,v.Renderer.MAX_TEXTURE_SIZE),e._spritesInfo=new u.default,e._atlases=new u.default,e._currentAtlasId=null,e._newSpriteIds=new s.default,e._currentMipmapAtlasId=null,e}return(0,E.default)(t,e),(0,A.default)(t,[{key:"allocateSprite",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(this._spritesInfo.has(n))return this._spritesInfo.get(n);var i=r?this._currentMipmapAtlasId:this._currentAtlasId;this._atlases.has(i)||(i=this._allocateNewAtlas(r),r?this._currentMipmapAtlasId=i:this._currentAtlasId=i);var o=this._atlases.get(i).allocate(e,t,n);o||(i=this._allocateNewAtlas(r),r?this._currentMipmapAtlasId=i:this._currentAtlasId=i,o=this._atlases.get(i).allocate(e,t,n));var s=o.uid,l=o.uvs,u=o.texture,d={id:s,width:e,height:t,uvs:l,texture:u};return T.Context.eventEmitter.emit(this,x.LoadingManager.EVENT_LOADING_START),this._newSpriteIds.add(s),this._spritesInfo.set(s,(0,a.default)({},d,{atlasId:i})),d}},{key:"update",value:function(e,t,n){var r=this._spritesInfo.get(e),i=r.atlasId,a=!1;this._newSpriteIds.has(e)&&(this._newSpriteIds.delete(e),a=!0);var o=this._atlases.get(i);o.render(e,t,n,a)}},{key:"dtor",value:function(){this.dtorActiveResources()}},{key:"_debug",value:function(e){this._atlases.get(e).debug()}},{key:"_allocateNewAtlas",value:function(e){var t=S.Util.getGUID();return this._atlases.set(t,this.addActiveResource(new y.TextureManagerAtlas(this._width,this._height,e))),t}}]),t}(b.ResourceTracker)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TextureManagerAtlas=void 0;var i=n(26),a=r(i),o=n(14),s=r(o),l=n(4),u=r(l),d=n(1),c=r(d),f=n(2),h=r(f),_=n(6),A=r(_),m=n(5),p=r(m),g=n(48),E=n(32),v=n(444),b=r(v),S=n(276),T=n(518),x=n(10),y=n(75),C=t.TextureManagerAtlas=function(e){function t(e,n,r){(0,c.default)(this,t);var i=(0,A.default)(this,(t.__proto__||(0,u.default)(t)).call(this)),a=document.createElement("canvas");if(a.width=e,a.height=n,i._rootNode=new T.TextureManagerAtlasNode(0,0,a.width,a.height),i._nodes=new s.default,i._canvases=[a],i._pica=r?new b.default:null,i._debugColor="red",r){i._debugColor="blue";for(var o=e,l=n;l>1&&o>1;){o/=2,l/=2;var d=document.createElement("canvas");d.width=o,d.height=l,i._canvases.push(d)}}return i._texture=i.addActiveResource(new E.Texture({type:E.Texture.CANVAS,generateMipmaps:!r,anisotropy:{value:16},data:[r?i._canvases:i._canvases[0]]})),i}return(0,p.default)(t,e),(0,h.default)(t,[{key:"allocate",value:function(e,n,r){if(!r)throw new Error("need to specify uid parameter");var i=this._nodes.get(r);if(i)return{uid:i.uid,uvs:i.uvs,texture:i.texture};e+=t.SPRITE_PADDING,n+=t.SPRITE_PADDING;var a=this._rootNode.pack(new S.TextureManagerAtlasRect(0,0,e,n));if(!a)return null;var o=a.rect;if(!o)return null;var s={uid:r,rect:o,uvs:this._makeUvs(o,this._canvases[0].width,this._canvases[0].height),texture:this._texture};return this._nodes.set(r,s),{uid:s.uid,uvs:s.uvs,texture:s.texture}}},{key:"render",value:function(e,n,r,i){var a=this,o=this._nodes.get(e);o&&(o.hash&&o.hash===r||(o.hash=r,this._drawOntoCanvas(e,n,o.rect).then(function(e){var n=e.length;if(n<a._canvases.length)for(var r=0;r<a._canvases.length-n;++r)e.push(e[e.length-1]);a._texture.updateCanvas({x:o.rect.x+t.SPRITE_PADDING/2,y:o.rect.y+t.SPRITE_PADDING/2},e),i&&x.Context.eventEmitter.emit(a,y.LoadingManager.EVENT_LOADING_END)})))}},{key:"dtor",value:function(){this.dtorActiveResources()}},{key:"debug",value:function(){var e=this._canvases[0];document.body.appendChild(e),e.style.display="block",e.style.width="30%"}},{key:"_makeUvs",value:function(e,n,r){var i=t.SPRITE_PADDING,a=i/2;return[(e.x+a+(e.w-i))/n,(e.y+a)/r,(e.x+a)/n,(e.y+a)/r,(e.x+a)/n,(e.y+a+(e.h-i))/r,(e.x+a+(e.w-i))/n,(e.y+a+(e.h-i))/r]}},{key:"_resize",value:function(e,t){var n=this;if(1===e.width&&1===e.height)return a.default.resolve(t);var r=Math.max(e.width/2,1),i=Math.max(e.height/2,1),o=document.createElement("canvas");return o.width=r,o.height=i,this._pica.resize(e,o,{alpha:!0,unsharpAmount:80,unsharpRadius:.6,unsharpThreshold:2}).then(function(e){return t.push(e),n._resize(e,t)})}},{key:"_resizeManualCanvas",value:function(e,n,r,i){var o=Math.pow(2,r),s=t.SPRITE_PADDING/o,l=t.SPRITE_PADDING/2/o;return new a.default(function(t,r){var a=n.getContext("2d");a.clearRect(i.x/o,i.y/o,i.w/o,i.h/o),a.drawImage(e,i.x/o+l,i.y/o+l,i.w/o-s,i.h/o-s),t(e)})}},{key:"_drawOntoCanvas",value:function(e,t,n){var r=this;if(this._pica){return this._resize(t,[t])}return a.default.all(this._canvases.map(function(e,i){return r._resizeManualCanvas(t,e,i,n)}))}}]),t}(g.ResourceTracker);C.SPRITE_PADDING=96},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TextureManagerAtlasNode=void 0;var i=n(1),a=r(i),o=n(2),s=r(o),l=n(276);t.TextureManagerAtlasNode=function(){function e(t,n,r,i){(0,a.default)(this,e),this.left=this.right=null,this.rect=new l.TextureManagerAtlasRect(t,n,r,i),this.filled=!1}return(0,s.default)(e,[{key:"pack",value:function(t){return null!==this.left?this.left.pack(t)||this.right.pack(t):this.filled||!t.fitsIn(this.rect)?null:t.sameSizeAs(this.rect)?(this.filled=!0,this):(this.rect.w-t.w>this.rect.h-t.h?(this.left=new e(this.rect.x,this.rect.y,t.w,this.rect.h),this.right=new e(this.rect.x+t.w,this.rect.y,this.rect.w-t.w,this.rect.h)):(this.left=new e(this.rect.x,this.rect.y,this.rect.w,t.h),this.right=new e(this.rect.x,this.rect.y+t.h,this.rect.w,this.rect.h-t.h)),this.left.pack(t))}}]),e}()},,,,,,,,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.FragmentShader=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(6),c=r(d),f=n(5),h=r(f),_=n(10),A=n(279);t.FragmentShader=function(e){function t(e){return(0,u.default)(this,t),(0,c.default)(this,(t.__proto__||(0,s.default)(t)).call(this,(0,a.default)(e,{type:_.Context.gl.FRAGMENT_SHADER})))}return(0,h.default)(t,e),t}(A.Shader)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ShaderProgram=void 0;var i=n(14),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(6),c=r(d),f=n(8),h=r(f),_=n(2),A=r(_),m=n(5),p=r(m),g=n(10),E=n(58),v=n(95),b=n(7),S="linkUnsuccessful";t.ShaderProgram=function(e){function t(e){(0,u.default)(this,t);var n=(0,c.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e));return n._paramAttributes=b.Util.getParam(e,"attributes",new v.Attributes),n._program=null,n._activeAttributes=new a.default,n._activeUniforms=[],n._activeTextureUniforms=[],n._activeUniformLookup=new a.default,n._fragmentShader=b.Util.getParamRequired(e,"fragmentShader"),n._vertexShader=b.Util.getParamRequired(e,"vertexShader"),n.addResourceDependency(n._fragmentShader),n.addResourceDependency(n._vertexShader),n._createProgram(),n._link(),n}return(0,p.default)(t,e),(0,A.default)(t,null,[{key:"LINK_UNSUCCESSFUL",get:function(){return S}}]),(0,A.default)(t,[{key:"getUniformLocation",value:function(e){return this._activeUniformLookup.get(e).location}},{key:"hasUniform",value:function(e){return this._activeUniformLookup.has(e)}},{key:"_link",value:function(){this.markLoading(),g.Context.gl.attachShader(this._program,this._fragmentShader.shaderObject),g.Context.gl.attachShader(this._program,this._vertexShader.shaderObject);var e=this._paramAttributes.getSemanticsInfo();for(var n in e)g.Context.gl.bindAttribLocation(this._program,e[n].index,e[n].name),g.Context.logger.debug(this,'binding semantic "'+e[n].name+'" to index '+e[n].index+"("+g.Context.getError()+")");g.Context.gl.linkProgram(this._program);var r=g.Context.gl.getProgramParameter(this._program,g.Context.gl.LINK_STATUS);return g.Context.logger.debug(this,"link shader returned: "+r+"("+g.Context.getError()+")"),r?(this._fillAttributes(),this._fillUniforms(),void(this.loaded=!0)):(this.dtor(),t.LINK_UNSUCCESSFUL)}},{key:"dtor",value:function(){g.Context.useShaderResourceHack||(this._fragmentShader.dtor(),this.removeResourceDependency(this._fragmentShader),this._vertexShader.dtor(),this.removeResourceDependency(this._vertexShader),g.Context.gl.deleteProgram(this._program),(0,h.default)(t.prototype.__proto__||(0,s.default)(t.prototype),"dtor",this).call(this))}},{key:"enable",value:function(){g.Context.gl.useProgram(this._program)}},{key:"_createProgram",value:function(){if(this._program=g.Context.gl.createProgram(), !this._program)throw new Error("could not create shader program")}},{key:"_fillAttributes",value:function(){this._activeAttributes.clear();var e=g.Context.gl.getProgramParameter(this._program,g.Context.gl.ACTIVE_ATTRIBUTES);g.Context.logger.debug(this,"parsing attributes. numAttributes: "+e+" ("+g.Context.getError()+")");for(var t=0;t<e;++t){var n=g.Context.gl.getActiveAttrib(this._program,t);this._activeAttributes.set(n.name,{info:n,location:g.Context.gl.getAttribLocation(this._program,n.name)}),g.Context.logger.debug(this,'registering attribute: "'+n.name+'"')}}},{key:"_fillUniforms",value:function(){this._activeUniformLookup.clear(),this._activeUniforms.length=0,this._activeTextureUniforms.length=0;var e=g.Context.gl,t=g.Context.gl.getProgramParameter(this._program,g.Context.gl.ACTIVE_UNIFORMS);g.Context.logger.debug(this,"parsing uniforms numUniforms: "+t+"("+g.Context.getError()+")");for(var n=0;n<t;++n){var r=g.Context.gl.getActiveUniform(this._program,n),i=r.name,a="[0]"===i.substring(i.length-3,i.length);a&&(i=i.substring(0,i.length-3)),i=i.slice(2);var o={info:r,paramName:i,isArray:a,location:g.Context.gl.getUniformLocation(this._program,r.name)};r.type===e.SAMPLER_2D||r.type===e.SAMPLER_CUBE?this._activeTextureUniforms.push(o):this._activeUniforms.push(o),this._activeUniformLookup.set(r.name,o),g.Context.logger.debug(this,'registering uniform: "'+r.name+'"')}}},{key:"paramAttributes",get:function(){return this._paramAttributes},set:function(e){this._paramAttributes=e}},{key:"activeUniforms",get:function(){return this._activeUniforms}},{key:"activeTextureUniforms",get:function(){return this._activeTextureUniforms}}]),t}(E.Resource)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.VertexShader=void 0;var i=n(9),a=r(i),o=n(4),s=r(o),l=n(1),u=r(l),d=n(6),c=r(d),f=n(5),h=r(f),_=n(10),A=n(279);t.VertexShader=function(e){function t(e){return(0,u.default)(this,t),(0,c.default)(this,(t.__proto__||(0,s.default)(t)).call(this,(0,a.default)(e,{type:_.Context.gl.VERTEX_SHADER})))}return(0,h.default)(t,e),t}(A.Shader)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.AndroidWakeLock=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(6),c=r(d),f=n(8),h=r(f),_=n(5),A=r(_),m=n(189),p=n(7);t.AndroidWakeLock=function(e){function t(){(0,s.default)(this,t);var e=(0,c.default)(this,(t.__proto__||(0,a.default)(t)).call(this));return e._video=document.createElement("video"),e._video.addEventListener("ended",function(){e._video.play()}),e}return(0,A.default)(t,e),(0,u.default)(t,[{key:"request",value:function(){if((0,h.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"request",this).call(this),this._video.paused){var e=p.Util.getVideoSupport();e.webm?this._video.src="data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4ECQoWBAhhTgGcBAAAAAAAN7BFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1Osgg3P7AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU3LjI1LjEwMFdBjUxhdmY1Ny4yNS4xMDBzpJDK8dM8tC77MVxWOlu/q8prRImIQPqcgAAAAAAWVK5rAQAAAAAAAEOuAQAAAAAAADrXgQFzxYEBnIEAIrWcg2VuZ4aFVl9WUDiDgQEj44OEO5rKAOABAAAAAAAADrCBCLqBCFSwgQtUuoEIH0O2dQEAAAAAAAF254EAo0DugQAAgDAHAJ0BKggACAAABwiFhYiZhIgAKBbgP8B6gH8AeoH+AzAH+QdoH+A3IH/AeQL/JfwHjH/66LYznGiA/gD+gINTbYD+/3Tf/+////2PFvTX8q//lX/Lk2Xs0g//yuX//2Af+nAqCn/Ph/cY8fP/zCj2/299/98bnJ5f+WpWdg8UT73ojKVD6OP3aogydhu1RBk/6b76VZg4Snf9A+P3+nQ3/rTPfmUpXwG8uJ3+aEPKuAczS3S6KnYCIZorL6+kUkDQBszrOf/+fffo0CL/Jvxb79GgRf5N+OVH/+iVH//olRr0YwG9//oioKOVgQPoALEBAAQQnAAYABhYL/QACAAAo6GBB9AA8QEABBANEADAZoaNuY3cgBAAm63U8R0ClV9D1MCjloELuADRAQAEEA0QAMAAwsF/oABAAACjloEPoADRAQAEEA0QAMAAwsF/oABAAACjloETiADRAQAEEA0QAMAAwsF/oABAAAAfQ7Z1AQAAAAAAAJvnghdwo5aBAAAA0QEABBANEADAAMLBf6AAQAAAo52BA+gA8QEABBABQKNv/gAdMX04sAIAt+j/PBw0AKOWgQfQANEBAAQQDRAAwADCwX+gAEAAAKOWgQu4ANEBAAQQDRAAwADCwX+gAEAAAKOWgQ+gANEBAAQQDRAAwADCwX+gAEAAAKOWgROIANEBAAQQDRAAwADCwX+gAEAAAB9DtnUBAAAAAAAAlOeCLuCjloEAAADRAQAEEA0QAMAAwsF/oABAAACjloED6ADRAQAEEA0QAMAAwsF/oABAAACjloEH0ADRAQAEEA0QAMAAwsF/oABAAACjloELuADRAQAEEA0QAMAAwsF/oABAAACjloEPoADRAQAEEA0QAMAAwsF/oABAAACjloETiADRAQAEEA0QAMAAwsF/oABAAAAfQ7Z1AQAAAAAAAJPngkZQo5WBAAAAsQEABBABQKMAAwsF/oABAACjloED6ADRAQAEEA0QAMAAwsF/oABAAACjloEH0ADRAQAEEA0QAMAAwsF/oABAAACjloELuADRAQAEEA0QAMAAwsF/oABAAACjloEPoADRAQAEEA0QAMAAwsF/oABAAACjloETiADRAQAEEA0QAMAAwsF/oABAAAAfQ7Z1AQAAAAAAAJPngl3Ao5aBAAAA0QEABBANEADAAMLBf6AAQAAAo5aBA+gA0QEABBANEADAAMLBf6AAQAAAo5aBB9AA0QEABBANEADAAMLBf6AAQAAAo5aBC7gA0QEABBANEADAAMLBf6AAQAAAo5aBD6AA0QEABBANEADAAMLBf6AAQAAAo5WBE4gAsQEABBABQKMAAwsF/oABAAAfQ7Z1AQAAAAAAAJTngnUwo5aBAAAA0QEABBANEADAAMLBf6AAQAAAo5aBA+gA0QEABBANEADAAMLBf6AAQAAAo5aBB9AA0QEABBANEADAAMLBf6AAQAAAo5aBC7gA0QEABBANEADAAMLBf6AAQAAAo5aBD6AA0QEABBANEADAAMLBf6AAQAAAo5aBE4gA0QEABBANEADAAMLBf6AAQAAAH0O2dQEAAAAAAACT54KMoKOWgQAAANEBAAQQDRAAwADCwX+gAEAAAKOWgQPoANEBAAQQDRAAwADCwX+gAEAAAKOWgQfQANEBAAQQDRAAwADCwX+gAEAAAKOWgQu4ANEBAAQQDRAAwADCwX+gAEAAAKOVgQ+gALEBAAQQAUCjAAMLBf6AAQAAo5aBE4gA0QEABBANEADAAMLBf6AAQAAAH0O2dQEAAAAAAACU54KkEKOWgQAAANEBAAQQDRAAwADCwX+gAEAAAKOWgQPoANEBAAQQDRAAwADCwX+gAEAAAKOWgQfQANEBAAQQDRAAwADCwX+gAEAAAKOWgQu4ANEBAAQQDRAAwADCwX+gAEAAAKOWgQ+gANEBAAQQDRAAwADCwX+gAEAAAKOWgROIANEBAAQQDRAAwADCwX+gAEAAAB9DtnUBAAAAAAAAk+eCu4CjloEAAADRAQAEEA0QAMAAwsF/oABAAACjloED6ADRAQAEEA0QAMAAwsF/oABAAACjloEH0ADRAQAEEA0QAMAAwsF/oABAAACjlYELuACxAQAEEAFAowADCwX+gAEAAKOWgQ+gANEBAAQQDRAAwADCwX+gAEAAAKOWgROIANEBAAQQDRAAwADCwX+gAEAAAB9DtnUBAAAAAAAAlOeC0vCjloEAAADRAQAEEA0QAMAAwsF/oABAAACjloED6ADRAQAEEA0QAMAAwsF/oABAAACjloEH0ADRAQAEEA0QAMAAwsF/oABAAACjloELuADRAQAEEA0QAMAAwsF/oABAAACjloEPoADRAQAEEA0QAMAAwsF/oABAAACjloETiADRAQAEEA0QAMAAwsF/oABAAAAfQ7Z1AQAAAAAAAJPngupgo5aBAAAA0QEABBANEADAAMLBf6AAQAAAo5aBA+gA0QEABBANEADAAMLBf6AAQAAAo5WBB9AAsQEABBABQKMAAwsF/oABAACjloELuADRAQAEEA0QAMAAwsF/oABAAACjloEPoADRAQAEEA0QAMAAwsF/oABAAACjloETiADRAQAEEA0QAMAAwsF/oABAAAAfQ7Z1AQAAAAAAAJXngwEB0KOWgQAAANEBAAQQDRAAwADCwX+gAEAAAKOWgQPoANEBAAQQDRAAwADCwX+gAEAAAKOWgQfQANEBAAQQDRAAwADCwX+gAEAAAKOWgQu4ANEBAAQQDRAAwADCwX+gAEAAAKOWgQ+gANEBAAQQDRAAwADCwX+gAEAAAKOWgROIANEBAAQQDRAAwADCwX+gAEAAAB9DtnUBAAAAAAAAlOeDARlAo5aBAAAA0QEABBANEADAAMLBf6AAQAAAo5WBA+gAsQEABBABQKMAAwsF/oABAACjloEH0ADRAQAEEA0QAMAAwsF/oABAAACjloELuADRAQAEEA0QAMAAwsF/oABAAACjloEPoADRAQAEEA0QAMAAwsF/oABAAACjloETiADRAQAEEA0QAMAAwsF/oABAAAAfQ7Z1AQAAAAAAAJXngwEwsKOWgQAAANEBAAQQDRAAwADCwX+gAEAAAKOWgQPoANEBAAQQDRAAwADCwX+gAEAAAKOWgQfQANEBAAQQDRAAwADCwX+gAEAAAKOWgQu4ANEBAAQQDRAAwADCwX+gAEAAAKOWgQ+gANEBAAQQDRAAwADCwX+gAEAAAKOWgROIANEBAAQQDRAAwADCwX+gAEAAAB9DtnUBAAAAAAAAlOeDAUggo5WBAAAAsQEABBABQKMAAwsF/oABAACjloED6ADRAQAEEA0QAMAAwsF/oABAAACjloEH0ADRAQAEEA0QAMAAwsF/oABAAACjloELuADRAQAEEA0QAMAAwsF/oABAAACjloEPoADRAQAEEA0QAMAAwsF/oABAAACjloETiADRAQAEEA0QAMAAwsF/oABAAAAfQ7Z1AQAAAAAAAJTngwFfkKOWgQAAANEBAAQQDRAAwADCwX+gAEAAAKOWgQPoANEBAAQQDRAAwADCwX+gAEAAAKOWgQfQANEBAAQQDRAAwADCwX+gAEAAAKOWgQu4ANEBAAQQDRAAwADCwX+gAEAAAKOWgQ+gANEBAAQQDRAAwADCwX+gAEAAAKOVgROIALEBAAQQAUCjAAMLBf6AAQAAH0O2dQEAAAAAAACV54MBdwCjloEAAADRAQAEEA0QAMAAwsF/oABAAACjloED6ADRAQAEEA0QAMAAwsF/oABAAACjloEH0ADRAQAEEA0QAMAAwsF/oABAAACjloELuADRAQAEEA0QAMAAwsF/oABAAACjloEPoADRAQAEEA0QAMAAwsF/oABAAACjloETiADRAQAEEA0QAMAAwsF/oABAAAAfQ7Z1AQAAAAAAAJTngwGOcKOWgQAAANEBAAQQDRAAwADCwX+gAEAAAKOWgQPoANEBAAQQDRAAwADCwX+gAEAAAKOWgQfQANEBAAQQDRAAwADCwX+gAEAAAKOWgQu4ANEBAAQQDRAAwADCwX+gAEAAAKOVgQ+gALEBAAQQAUCjAAMLBf6AAQAAo5aBE4gA0QEABBANEADAAMLBf6AAQAAAH0O2dQEAAAAAAAAd54MBpeCjloEAAADRAQAEEA0QAMAAwsF/oABAAAAcU7trAQAAAAAAABG7j7OBALeK94EB8YIBf/CBAw==":this._video.src="data:video/mp4;base64,AAAAGGZ0eXBpc29tAAAAAG1wNDFhdmMxAAAIA21vb3YAAABsbXZoZAAAAADSa9v60mvb+gABX5AAlw/gAAEAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAdkdHJhawAAAFx0a2hkAAAAAdJr2/rSa9v6AAAAAQAAAAAAlw/gAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAQAAAAHAAAAAAAJGVkdHMAAAAcZWxzdAAAAAAAAAABAJcP4AAAAAAAAQAAAAAG3G1kaWEAAAAgbWRoZAAAAADSa9v60mvb+gAPQkAGjneAFccAAAAAAC1oZGxyAAAAAAAAAAB2aWRlAAAAAAAAAAAAAAAAVmlkZW9IYW5kbGVyAAAABodtaW5mAAAAFHZtaGQAAAABAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAAZHc3RibAAAAJdzdHNkAAAAAAAAAAEAAACHYXZjMQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAMABwASAAAAEgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj//wAAADFhdmNDAWQAC//hABlnZAALrNlfllw4QAAAAwBAAAADAKPFCmWAAQAFaOvssiwAAAAYc3R0cwAAAAAAAAABAAAAbgAPQkAAAAAUc3RzcwAAAAAAAAABAAAAAQAAA4BjdHRzAAAAAAAAAG4AAAABAD0JAAAAAAEAehIAAAAAAQA9CQAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEALcbAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAABuAAAAAQAAAcxzdHN6AAAAAAAAAAAAAABuAAADCQAAABgAAAAOAAAADgAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABMAAAAUc3RjbwAAAAAAAAABAAAIKwAAACt1ZHRhAAAAI6llbmMAFwAAdmxjIDIuMi4xIHN0cmVhbSBvdXRwdXQAAAAId2lkZQAACRRtZGF0AAACrgX//6vcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTQyIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDEzIG1lPWhleCBzdWJtZT03IHBzeT0xIHBzeV9yZD0xLjAwOjAuMDAgbWl4ZWRfcmVmPTEgbWVfcmFuZ2U9MTYgY2hyb21hX21lPTEgdHJlbGxpcz0xIDh4OGRjdD0xIGNxbT0wIGRlYWR6b25lPTIxLDExIGZhc3RfcHNraXA9MSBjaHJvbWFfcXBfb2Zmc2V0PS0yIHRocmVhZHM9MTIgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1hYnIgbWJ0cmVlPTEgYml0cmF0ZT0xMDAgcmF0ZXRvbD0xLjAgcWNvbXA9MC42MCBxcG1pbj0xMCBxcG1heD01MSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAU2WIhAAQ/8ltlOe+cTZuGkKg+aRtuivcDZ0pBsfsEi9p/i1yU9DxS2lq4dXTinViF1URBKXgnzKBd/Uh1bkhHtMrwrRcOJslD01UB+fyaL6ef+DBAAAAFEGaJGxBD5B+v+a+4QqF3MgBXz9MAAAACkGeQniH/+94r6EAAAAKAZ5hdEN/8QytwAAAAAgBnmNqQ3/EgQAAAA5BmmhJqEFomUwIIf/+4QAAAApBnoZFESw//76BAAAACAGepXRDf8SBAAAACAGep2pDf8SAAAAADkGarEmoQWyZTAgh//7gAAAACkGeykUVLD//voEAAAAIAZ7pdEN/xIAAAAAIAZ7rakN/xIAAAAAOQZrwSahBbJlMCCH//uEAAAAKQZ8ORRUsP/++gQAAAAgBny10Q3/EgQAAAAgBny9qQ3/EgAAAAA5BmzRJqEFsmUwIIf/+4AAAAApBn1JFFSw//76BAAAACAGfcXRDf8SAAAAACAGfc2pDf8SAAAAADkGbeEmoQWyZTAgh//7hAAAACkGflkUVLD//voAAAAAIAZ+1dEN/xIEAAAAIAZ+3akN/xIEAAAAOQZu8SahBbJlMCCH//uAAAAAKQZ/aRRUsP/++gQAAAAgBn/l0Q3/EgAAAAAgBn/tqQ3/EgQAAAA5Bm+BJqEFsmUwIIf/+4QAAAApBnh5FFSw//76AAAAACAGePXRDf8SAAAAACAGeP2pDf8SBAAAADkGaJEmoQWyZTAgh//7gAAAACkGeQkUVLD//voEAAAAIAZ5hdEN/xIAAAAAIAZ5jakN/xIEAAAAOQZpoSahBbJlMCCH//uEAAAAKQZ6GRRUsP/++gQAAAAgBnqV0Q3/EgQAAAAgBnqdqQ3/EgAAAAA5BmqxJqEFsmUwIIf/+4AAAAApBnspFFSw//76BAAAACAGe6XRDf8SAAAAACAGe62pDf8SAAAAADkGa8EmoQWyZTAgh//7hAAAACkGfDkUVLD//voEAAAAIAZ8tdEN/xIEAAAAIAZ8vakN/xIAAAAAOQZs0SahBbJlMCCH//uAAAAAKQZ9SRRUsP/++gQAAAAgBn3F0Q3/EgAAAAAgBn3NqQ3/EgAAAAA5Bm3hJqEFsmUwIIf/+4QAAAApBn5ZFFSw//76AAAAACAGftXRDf8SBAAAACAGft2pDf8SBAAAADkGbvEmoQWyZTAgh//7gAAAACkGf2kUVLD//voEAAAAIAZ/5dEN/xIAAAAAIAZ/7akN/xIEAAAAOQZvgSahBbJlMCCH//uEAAAAKQZ4eRRUsP/++gAAAAAgBnj10Q3/EgAAAAAgBnj9qQ3/EgQAAAA5BmiRJqEFsmUwIIf/+4AAAAApBnkJFFSw//76BAAAACAGeYXRDf8SAAAAACAGeY2pDf8SBAAAADkGaaEmoQWyZTAgh//7hAAAACkGehkUVLD//voEAAAAIAZ6ldEN/xIEAAAAIAZ6nakN/xIAAAAAOQZqsSahBbJlMCCH//uAAAAAKQZ7KRRUsP/++gQAAAAgBnul0Q3/EgAAAAAgBnutqQ3/EgAAAAA5BmvBJqEFsmUwIIf/+4QAAAApBnw5FFSw//76BAAAACAGfLXRDf8SBAAAACAGfL2pDf8SAAAAADkGbNEmoQWyZTAgh//7gAAAACkGfUkUVLD//voEAAAAIAZ9xdEN/xIAAAAAIAZ9zakN/xIAAAAAOQZt4SahBbJlMCCH//uEAAAAKQZ+WRRUsP/++gAAAAAgBn7V0Q3/EgQAAAAgBn7dqQ3/EgQAAAA5Bm7xJqEFsmUwIIf/+4AAAAApBn9pFFSw//76BAAAACAGf+XRDf8SAAAAACAGf+2pDf8SBAAAADkGb4EmoQWyZTAgh//7hAAAACkGeHkUVLD//voAAAAAIAZ49dEN/xIAAAAAIAZ4/akN/xIEAAAAOQZokSahBbJlMCCH//uAAAAAKQZ5CRRUsP/++gQAAAAgBnmF0Q3/EgAAAAAgBnmNqQ3/EgQAAAA5BmmhJqEFsmUwIIf/+4QAAAApBnoZFFSw//76BAAAACAGepXRDf8SBAAAACAGep2pDf8SAAAAADkGarEmoQWyZTAgh//7gAAAACkGeykUVLD//voEAAAAIAZ7pdEN/xIAAAAAIAZ7rakN/xIAAAAAPQZruSahBbJlMFEw3//7B",this._video.play()}}},{key:"release",value:function(){(0,h.default)(t.prototype.__proto__||(0,a.default)(t.prototype),"release",this).call(this),this._video.pause(),this._video.src=""}}]),t}(m.WakeLock)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CardboardCameraPhotoConverter=void 0;var i=n(26),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(7),c=n(97),f=n(41),h=n(455),_=r(h),A=216,m=225,p=218,g="http://ns.adobe.com/xap/1.0/",E="http://ns.adobe.com/xmp/extension/",v=71;t.CardboardCameraPhotoConverter=function(){function e(t){(0,s.default)(this,e),this._targetSize=d.Util.getParam(t,"targetSize",Math.min(f.Renderer.MAX_TEXTURE_SIZE,2048))}return(0,u.default)(e,[{key:"convert",value:function(e){return this._decode(e)}},{key:"_decode",value:function(t){var n=this;return new a.default(function(r,i){c.XHRRequest.request({uri:t,responseType:"arraybuffer",noCache:!1,onLoad:function(t){var a=new Uint8Array(t.response),o=e.extractXMP(a,i);if(!o)return void i(new Error("no valid xmp document"));var s=e.getObjectMeta(o,"GPano"),l=e.getObjectMeta(o,"GImage"),u=e.getObjectMeta(o,"GAudio"),d=e.makeImageFromBinary("image/jpeg",a),c=void 0;u.data&&(c=e.makeAudio(u.Mime,u.Data)),d.onload=function(){n._setup(s,l,d,c,r,i)}},onError:i})})}},{key:"_setup",value:function(t,n,r,i,a,o){var s=this;if(!n.Mime||!n.Data)return void o(new Error("no right eye image in metadata"));var l=e.makeImage(n.Mime,n.Data);l.onload=function(){s._buildImage(r,l,t,i,a,o)}}},{key:"_buildImage",value:function(e,t,n,r,i,a){var o=document.createElement("canvas"),s=parseInt(n.FullPanoWidthPixels),l=parseInt(n.CroppedAreaImageHeightPixels),u=this._targetSize/s;o.width=this._targetSize,o.height=this._targetSize;var d=Math.round(parseInt(n.CroppedAreaLeftPixels)*u),c=Math.round(parseInt(n.CroppedAreaTopPixels)*u),f=o.getContext("2d");f.fillStyle="#000",f.fillRect(0,0,o.width,o.height),f.drawImage(e,d,c,this._targetSize,l*u),f.drawImage(t,d,c+o.height/2,this._targetSize,l*u),i({canvas:o,audio:r})}}],[{key:"blurImage",value:function(e,t,n){var r=e.getContext("2d"),i=150,a=Math.min(t,n),o=Math.abs(t-n);r.drawImage(e,0,t,e.width,1,0,a,e.width,o),_.default.canvasRGB(e,0,a,e.width,o,i)}},{key:"makeImageFromBinary",value:function(e,t){var n=new Blob([t],{type:e}),r=URL.createObjectURL(n),i=new Image;return i.src=r,i}},{key:"padBase64",value:function(e){return e+="=".repeat(e.length%4)}},{key:"makeAudio",value:function(t,n){return"data:"+t+";base64,"+e.padBase64(n)}},{key:"makeImage",value:function(e,t){for(var n=atob(t),r=new Uint8Array(n.length),i=0;i<n.length;++i)r[i]=n.charCodeAt(i);var a=new Blob([r],{type:e}),o=URL.createObjectURL(a),s=new Image;return s.src=o,s}},{key:"byteToString",value:function(e,t,n){var r="";t=t||0,n=n||e.length;for(var i=t;i<n;i++)e[i]&&(r+=String.fromCharCode(e[i]));return r}},{key:"getObjectMeta",value:function(e,t){for(var n={},r=e.querySelectorAll("Description"),i=0;i<r.length;i++){var a=r[i];for(var o in a.attributes){var s=a.attributes[o];s.prefix===t&&(n[s.localName]=s.value)}}return n}},{key:"extractXMP",value:function(t,n){var r=e.parseJpeg(t,!0);if(null===r)return void n("xmp metadata missing.");for(var i="",a=!1,o=0;o<r.length;o++){for(var s=!0,l=!0,u=r[o],d=0;d<u.data.length;d++){var c=String.fromCharCode(u.data[d]);if(s&&c!==g[d]&&(s=!1),l&&c!==E[d]&&(l=!1),!l||!s)break}if(s){var f=e.byteToString(u.data),h=new RegExp("<x:xmpmeta([\\s\\S]*)</x:xmpmeta>");i=f.match(h)[0]}else if(l){var _=v;a&&(_+=4),a=!0,i+=e.byteToString(u.data,_)}}var A=new DOMParser;return A.parseFromString("<xml>"+i+"</xml>","text/xml")}},{key:"parseJpeg",value:function(e,t){var n=void 0,r=0,i=function(){return r<e.length?e[r++]:-1};if(255!==i()||i()!==A)return null;for(var a=[];(n=i())!==-1;){if(255!==n)return null;for(;255===(n=i()););if(n===-1)return null;var o=n;if(o===p){if(!t){var s={marker:o,length:-1,data:e.subarray(r)};a.push(s)}return a}var l=i(),u=i();if(l===-1||u===-1)return null;var d=l<<8|u;if(!t||n===m){var c={marker:o,length:d,data:e.subarray(r,r+d-2)};a.push(c)}r+=d-2}return a}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.IOSWakeLock=void 0;var i=n(4),a=r(i),o=n(1),s=r(o),l=n(2),u=r(l),d=n(6),c=r(d),f=n(5),h=r(f),_=n(189),A=n(7);t.IOSWakeLock=function(e){function t(){(0,s.default)(this,t);var e=(0,c.default)(this,(t.__proto__||(0,a.default)(t)).call(this));if(e._oldIOS=!A.Util.isIOS10OrHigher(),e._oldIOS)e._timer=null;else{var n="data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQADQGgcIQADQGgcAAAACQGeYUQn/wALKCEAA0BoHAAAAAkBnmNEJ/8ACykhAANAaBwhAANAaBwAAAANQZpoNExDP/6plgAMuSEAA0BoHAAAAAtBnoZFESwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBnqVEJ/8ACykhAANAaBwAAAAJAZ6nRCf/AAsoIQADQGgcIQADQGgcAAAADUGarDRMQz/+qZYADLghAANAaBwAAAALQZ7KRRUsK/8ACPkhAANAaBwAAAAJAZ7pRCf/AAsoIQADQGgcIQADQGgcAAAACQGe60Qn/wALKCEAA0BoHAAAAA1BmvA0TEM//qmWAAy5IQADQGgcIQADQGgcAAAAC0GfDkUVLCv/AAj5IQADQGgcAAAACQGfLUQn/wALKSEAA0BoHCEAA0BoHAAAAAkBny9EJ/8ACyghAANAaBwAAAANQZs0NExDP/6plgAMuCEAA0BoHAAAAAtBn1JFFSwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBn3FEJ/8ACyghAANAaBwAAAAJAZ9zRCf/AAsoIQADQGgcIQADQGgcAAAADUGbeDRMQz/+qZYADLkhAANAaBwAAAALQZ+WRRUsK/8ACPghAANAaBwhAANAaBwAAAAJAZ+1RCf/AAspIQADQGgcAAAACQGft0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bm7w0TEM//qmWAAy4IQADQGgcAAAAC0Gf2kUVLCv/AAj5IQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHAAAAAkBn/tEJ/8ACykhAANAaBwAAAANQZvgNExDP/6plgAMuSEAA0BoHCEAA0BoHAAAAAtBnh5FFSwr/wAI+CEAA0BoHAAAAAkBnj1EJ/8ACyghAANAaBwhAANAaBwAAAAJAZ4/RCf/AAspIQADQGgcAAAADUGaJDRMQz/+qZYADLghAANAaBwAAAALQZ5CRRUsK/8ACPkhAANAaBwhAANAaBwAAAAJAZ5hRCf/AAsoIQADQGgcAAAACQGeY0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bmmg0TEM//qmWAAy5IQADQGgcAAAAC0GehkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGepUQn/wALKSEAA0BoHAAAAAkBnqdEJ/8ACyghAANAaBwAAAANQZqsNExDP/6plgAMuCEAA0BoHCEAA0BoHAAAAAtBnspFFSwr/wAI+SEAA0BoHAAAAAkBnulEJ/8ACyghAANAaBwhAANAaBwAAAAJAZ7rRCf/AAsoIQADQGgcAAAADUGa8DRMQz/+qZYADLkhAANAaBwhAANAaBwAAAALQZ8ORRUsK/8ACPkhAANAaBwAAAAJAZ8tRCf/AAspIQADQGgcIQADQGgcAAAACQGfL0Qn/wALKCEAA0BoHAAAAA1BmzQ0TEM//qmWAAy4IQADQGgcAAAAC0GfUkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGfcUQn/wALKCEAA0BoHAAAAAkBn3NEJ/8ACyghAANAaBwhAANAaBwAAAANQZt4NExC//6plgAMuSEAA0BoHAAAAAtBn5ZFFSwr/wAI+CEAA0BoHCEAA0BoHAAAAAkBn7VEJ/8ACykhAANAaBwAAAAJAZ+3RCf/AAspIQADQGgcAAAADUGbuzRMQn/+nhAAYsAhAANAaBwhAANAaBwAAAAJQZ/aQhP/AAspIQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHAAACiFtb292AAAAbG12aGQAAAAA1YCCX9WAgl8AAAPoAAAH/AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAGGlvZHMAAAAAEICAgAcAT////v7/AAAF+XRyYWsAAABcdGtoZAAAAAPVgIJf1YCCXwAAAAEAAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAygAAAMoAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAB9AAABdwAAEAAAAABXFtZGlhAAAAIG1kaGQAAAAA1YCCX9WAgl8AAV+QAAK/IFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAUcbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAE3HN0YmwAAACYc3RzZAAAAAAAAAABAAAAiGF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAygDKAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAyYXZjQwFNQCj/4QAbZ01AKOyho3ySTUBAQFAAAAMAEAAr8gDxgxlgAQAEaO+G8gAAABhzdHRzAAAAAAAAAAEAAAA8AAALuAAAABRzdHNzAAAAAAAAAAEAAAABAAAB8GN0dHMAAAAAAAAAPAAAAAEAABdwAAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAAC7gAAAAAQAAF3AAAAABAAAAAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAEEc3RzegAAAAAAAAAAAAAAPAAAAzQAAAAQAAAADQAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAANAAAADQAAAQBzdGNvAAAAAAAAADwAAAAwAAADZAAAA3QAAAONAAADoAAAA7kAAAPQAAAD6wAAA/4AAAQXAAAELgAABEMAAARcAAAEbwAABIwAAAShAAAEugAABM0AAATkAAAE/wAABRIAAAUrAAAFQgAABV0AAAVwAAAFiQAABaAAAAW1AAAFzgAABeEAAAX+AAAGEwAABiwAAAY/AAAGVgAABnEAAAaEAAAGnQAABrQAAAbPAAAG4gAABvUAAAcSAAAHJwAAB0AAAAdTAAAHcAAAB4UAAAeeAAAHsQAAB8gAAAfjAAAH9gAACA8AAAgmAAAIQQAACFQAAAhnAAAIhAAACJcAAAMsdHJhawAAAFx0a2hkAAAAA9WAgl/VgIJfAAAAAgAAAAAAAAf8AAAAAAAAAAAAAAABAQAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACsm1kaWEAAAAgbWRoZAAAAADVgIJf1YCCXwAArEQAAWAAVcQAAAAAACdoZGxyAAAAAAAAAABzb3VuAAAAAAAAAAAAAAAAU3RlcmVvAAAAAmNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAidzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAIABICAgBRAFQAAAAADDUAAAAAABYCAgAISEAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAABYAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAAGAAAAWAAAAXBzdGNvAAAAAAAAAFgAAAOBAAADhwAAA5oAAAOtAAADswAAA8oAAAPfAAAD5QAAA/gAAAQLAAAEEQAABCgAAAQ9AAAEUAAABFYAAARpAAAEgAAABIYAAASbAAAErgAABLQAAATHAAAE3gAABPMAAAT5AAAFDAAABR8AAAUlAAAFPAAABVEAAAVXAAAFagAABX0AAAWDAAAFmgAABa8AAAXCAAAFyAAABdsAAAXyAAAF+AAABg0AAAYgAAAGJgAABjkAAAZQAAAGZQAABmsAAAZ+AAAGkQAABpcAAAauAAAGwwAABskAAAbcAAAG7wAABwYAAAcMAAAHIQAABzQAAAc6AAAHTQAAB2QAAAdqAAAHfwAAB5IAAAeYAAAHqwAAB8IAAAfXAAAH3QAAB/AAAAgDAAAICQAACCAAAAg1AAAIOwAACE4AAAhhAAAIeAAACH4AAAiRAAAIpAAACKoAAAiwAAAItgAACLwAAAjCAAAAFnVkdGEAAAAObmFtZVN0ZXJlbwAAAHB1ZHRhAAAAaG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAAO2lsc3QAAAAzqXRvbwAAACtkYXRhAAAAAQAAAABIYW5kQnJha2UgMC4xMC4yIDIwMTUwNjExMDA=";e._noSleepVideo=document.createElement("video"),e._noSleepVideo.setAttribute("playsinline",""),e._noSleepVideo.setAttribute("src",n),e._noSleepVideo.addEventListener("timeupdate",function(t){e._noSleepVideo.currentTime>.5&&(e._noSleepVideo.currentTime=Math.random())})}return e}return(0,h.default)(t,e),(0,u.default)(t,[{key:"request",value:function(){this._oldIOS?this._timer||(this._timer=setInterval(function(){window.location=window.location,setTimeout(window.stop,0)},3e4)):this._noSleepVideo.play().catch(function(){})}},{key:"release",value:function(){this._oldIOS?this._timer&&(clearInterval(this._timer),this._timer=null):this._noSleepVideo.pause()}}]),t}(_.WakeLock)},,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}var a=n(26),o=i(a),s=n(99),l=i(s),u=n(45),d=i(u),c=n(1),f=i(c),h=n(2),_=i(h);n(653),n(652),n(649),n(650),n(651),n(645),n(646),n(647),n(648),n(727),n(343);var A=n(61),m=n(108),p=n(251),g=n(249),E=n(256),v=n(253),b=n(245),S=n(252),T=n(399),x=n(15),y=r(x),C=n(389),w=i(C),M=n(116),D=n(84),P=n(73),R=n(64),I=n(244),L=n(22),O=function(){function e(){(0,f.default)(this,e),(0,M.enableWebGLStats)()&&this._webglStats(),(0,M.immediateLoad)()&&(0,w.default)(),D.TrackingManager.init({trackingRoot:(0,I.getTrackingRoot)()+"/v-dac884cdc04ea921934408999668b16b33b8334a.gif",simpleTrackingRoot:(0,I.getSimpleTrackingRoot)()+"/v-dac884cdc04ea921934408999668b16b33b8334a.gif"}),R.IFrameManager.init();var t=e.getLocalStorageItemSafe("x-dl8-settings-phone"),n=e.getLocalStorageItemSafe("x-dl8-settings-hmd"),r=e.getLocalStorageItemSafe("x-dl8-settings-gaze-interaction"),i=e.getLocalStorageItemSafe("x-dl8-settings-wizard-complete"),a={href:window.location.href};null!==t&&(a.phone=t),null!==n&&(a.hmd=n),null!==r&&(a.gaze=r),null!==i&&(a.wc=i),D.TrackingManager.instance.addEvent(new P.TrackingEvent({type:P.TrackingEvent.INITIAL_LOAD,payload:a})),this._registerCustomElements(),this._initial=!0,this._fireReadyEvent()}return(0,_.default)(e,[{key:"_webglStats",value:function(){(function(){var e,t,n;e=function(){var e,t,n,r,i,a,o,s,l,u,c,f,h,_,A,m,p,g,E,v,b,S,T,x;return x=[null,"webkit","moz","ms","o"],T=function(e,t){return null!=t&&t.length>0?t+e[0].toUpperCase()+e.substr(1):e},a=function(e,t){var n,r,i,a;if(null!=e)for(n=0,r=x.length;n<r;n++)if(a=x[n],i=T(t,a),null!=e[i])return e[i]},A=function(e,t){return null!=a(e,t)},h=function(e){var t,n;return t=function(t,n){var r;return r=e.getShaderPrecisionFormat(t,n),{rangeMin:r.rangeMin,rangeMax:r.rangeMax,precision:r.precision}},n=function(n){return{LOW_FLOAT:t(n,e.LOW_FLOAT),MEDIUM_FLOAT:t(n,e.MEDIUM_FLOAT),HIGH_FLOAT:t(n,e.HIGH_FLOAT),LOW_INT:t(n,e.LOW_INT),MEDIUM_INT:t(n,e.MEDIUM_INT),HIGH_INT:t(n,e.HIGH_INT)}},{VERTEX_SHADER:n(e.VERTEX_SHADER),FRAGMENT_SHADER:n(e.FRAGMENT_SHADER)}},f=function(e,t){var n,r,i,a,o,s,l;for(l={},r=0,i=t.length;r<i;r++)a=t[r],n=e[a],null!=n&&(o=e.getParameter(n),o instanceof Float32Array||o instanceof Int32Array?l[a]=function(){var e,t,n;for(n=[],e=0,t=o.length;e<t;e++)s=o[e],n.push(s);return n}():l[a]=o);return l},c=function(e){var t,n,r,i,a,o;for(o=e.getSupportedExtensions(),t={},i=0,a=o.length;i<a;i++)r=o[i],r.match("texture_filter_anisotropic")?(n=e.getExtension(r),t[r]={MAX_TEXTURE_MAX_ANISOTROPY_EXT:e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}):r.match("OES_standard_derivatives")?(n=e.getExtension(r),t[r]={FRAGMENT_SHADER_DERIVATIVE_HINT_OES:e.getParameter(n.FRAGMENT_SHADER_DERIVATIVE_HINT_OES)}):r.match("WEBGL_draw_buffers")?(n=e.getExtension(r),t[r]={MAX_COLOR_ATTACHMENTS_WEBGL:e.getParameter(n.MAX_COLOR_ATTACHMENTS_WEBGL),MAX_DRAW_BUFFERS_WEBGL:e.getParameter(n.MAX_DRAW_BUFFERS_WEBGL)}):r.match("WEBGL_debug_renderer_info")?(n=e.getExtension(r),null!=n&&(t[r]={UNMASKED_VENDOR_WEBGL:e.getParameter(n.UNMASKED_VENDOR_WEBGL),UNMASKED_RENDERER_WEBGL:e.getParameter(n.UNMASKED_RENDERER_WEBGL)})):r.match("WEBGL_compressed_texture_astc")&&(n=e.getExtension(r),null!=n&&null!=n.getSupportedProfiles&&(t[r]={supportedProfiles:n.getSupportedProfiles()}));return{supported:o,capabilities:t}},s=function(e,t,n,r){var i;null==r&&(r=!1);try{return i=t.getContext(n,{stencil:!0,failIfMajorPerformanceCaveat:r}),null!=i&&(e.name=n,e.supported=!0),i}catch(e){return null}},l=function(e,t,n,r){var i;return null==r&&(r=!1),i=s(e,t,n,r),null==i&&(i=s(e,t,"experimental-"+n,r)),i},o=function(e,t,n){var r;return r=l(e,t,n,!0),null!=r?(null!=r.getContextAttributes().failIfMajorPerformanceCaveat?e.perfCaveat=!1:e.perfCaveat=null,r):(r=l(e,t,n,!1),null!=r?(e.perfCaveat=!0,r):null)},i=function(e){return e.getContextAttributes().antialias},_=function(e,t){var n,r,a;return n=document.createElement("canvas"),a={supported:!1},null!=n&&null!=n.getContext&&(r=o(a,n,e),null!=r&&(r.enable(r.SAMPLE_ALPHA_TO_COVERAGE),r.enable(r.SAMPLE_COVERAGE),a.antialias=i(r),a.params=f(r,t),a.extensions=c(r),null!=r.getShaderPrecisionFormat?a.shaderPrecision=h(r):a.shaderPrecision=null)),a},u=function(){var e,t,n;return null!=window.ArrayBuffer?(e=new ArrayBuffer(4),n=new Uint32Array(e),t=new Uint8Array(e),n[0]=1,1===t[0]?"little":"big"):"unknown"},p={},p.webgl="ALIASED_LINE_WIDTH_RANGE\nALIASED_POINT_SIZE_RANGE\nALPHA_BITS\nBLUE_BITS\nDEPTH_BITS\nGREEN_BITS\nMAX_COMBINED_TEXTURE_IMAGE_UNITS\nMAX_CUBE_MAP_TEXTURE_SIZE\nMAX_FRAGMENT_UNIFORM_VECTORS\nMAX_RENDERBUFFER_SIZE\nMAX_TEXTURE_IMAGE_UNITS\nMAX_TEXTURE_SIZE\nMAX_VARYING_VECTORS\nMAX_VERTEX_ATTRIBS\nMAX_VERTEX_TEXTURE_IMAGE_UNITS\nMAX_VERTEX_UNIFORM_VECTORS\nMAX_VIEWPORT_DIMS\nRED_BITS\nSAMPLE_COVERAGE_VALUE\nSAMPLES\nSTENCIL_BITS\nSUBPIXEL_BITS\nVENDOR\nRENDERER\nVERSION\nSHADING_LANGUAGE_VERSION\nCOMPRESSED_TEXTURE_FORMATS\nSAMPLE_BUFFERS".split("\n"),p.webgl2new="MAX_3D_TEXTURE_SIZE\nMAX_ARRAY_TEXTURE_LAYERS\nMAX_COLOR_ATTACHMENTS\nMAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS\nMAX_COMBINED_UNIFORM_BLOCKS\nMAX_COMBINED_VERTEX_UNIFORM_COMPONENTS\nMAX_DRAW_BUFFERS\nMAX_ELEMENT_INDEX\nMAX_ELEMENTS_INDICES\nMAX_ELEMENTS_VERTICES\nMAX_FRAGMENT_INPUT_COMPONENTS\nMAX_FRAGMENT_UNIFORM_BLOCKS\nMAX_FRAGMENT_UNIFORM_COMPONENTS\nMAX_PROGRAM_TEXEL_OFFSET\nMAX_SAMPLES\nMAX_SERVER_WAIT_TIMEOUT\nMAX_TEXTURE_LOD_BIAS\nMAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS\nMAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS\nMAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS\nMAX_UNIFORM_BLOCK_SIZE\nMAX_UNIFORM_BUFFER_BINDINGS\nMAX_VARYING_COMPONENTS\nMAX_VERTEX_OUTPUT_COMPONENTS\nMAX_VERTEX_UNIFORM_BLOCKS\nMAX_VERTEX_UNIFORM_COMPONENTS\nMIN_PROGRAM_TEXEL_OFFSET".split("\n"),p.webgl2=p.webgl.concat(p.webgl2new),S=null!=(g=window.screen)?g:{},m=null!=(E=S.orientation)?E:{},r=null!=(v=document.documentElement)?v:{},t=a(navigator,"battery"),e=null!=t?{charging:t.charging,level:t.level,chargingTime:t.chargingTime,dischargingTime:t.dischargingTime}:null,n={statVersion:"4.0",endian:u(),webgl:_("webgl",p.webgl),webgl2:_("webgl2",p.webgl2),requestAnimationFrame:A(window,"requestAnimationFrame"),fullscreen:A(document,"cancelFullScreen"),pointerlock:A(document.body,"requestPointerLock"),gamepads:A(navigator,"getGamepads"),webAudioData:A(window,"AudioContext"),websocket:A(window,"WebSocket"),webworker:A(window,"Worker"),webRTC:{support:A(window,"RTCPeerConnection"),data:A(window,"RTCDataChannelEvent")},page:{referrer:document.referrer, location:document.location.href,navigator:{doNotTrack:navigator.doNotTrack,hardwareConcurrency:navigator.hardwareConcurrency,platform:navigator.platform,vendor:navigator.vendor,maxTouchPoints:navigator.maxTouchPoints,battery:e},document:{clientWidth:r.clientWidth,clientHeight:r.clientHeight},window:{innerWidth:window.innerWidth,innerHeight:window.innerHeight,outerWidth:window.outerWidth,outerHeight:window.outerHeight,devicePixelRatio:window.devicePixelRatio},screen:{availTop:S.availTop,availLeft:S.availLeft,availWidth:S.availWidth,availHeight:S.availHeight,width:S.width,height:S.height,colorDepth:S.colorDepth,pixelDepth:S.pixelDepth,orientation:{type:m.type,angle:m.angle}}}},b=new XMLHttpRequest,b.open("POST","//cdn.webglstats.com",!0),b.setRequestHeader("Content-Type","application/json"),b.send((0,d.default)(n))},t=!1,n=function(){if(!t)return t=!0,setTimeout(e,1)},"complete"===document.readyState?n():null!=document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):null!=document.attachEvent?window.attachEvent("onload",n):n()}).call(this)}}],[{key:"getLocalStorageItemSafe",value:function(e){try{return localStorage.getItem(e)}catch(e){}return null}}]),(0,_.default)(e,[{key:"_fireReadyEvent",value:function(){document.dispatchEvent(new CustomEvent("x-dl8-evt-ready"))}},{key:"_registerCustomElements",value:function(){var e=this;document.addEventListener("x-dl8-evt-element-connected",function(e){(0,l.default)(function(){try{D.TrackingManager.instance.addEvent(new P.TrackingEvent({type:P.TrackingEvent.ELEMENT_CONNECTED,payload:{cid:e.detail.id}}))}catch(t){e.detail.element.hideLoading(),e.detail.element.setErrorState(t.message)}})}),document.addEventListener("x-dl8-evt-element-disconnected",function(e){D.TrackingManager.instance.addEvent(new P.TrackingEvent({type:P.TrackingEvent.ELEMENT_DISCONNECTED,payload:{cid:e.detail.id}})),window.__dl8__delightVrApp&&window.__dl8__delightVrApp.removeContent(e.detail.id)}),document.addEventListener("x-dl8-evt-start",function(t){D.TrackingManager.instance.addEvent(new P.TrackingEvent({type:P.TrackingEvent.START_PLAYER,payload:{cid:t.detail.id}}));var n=t.detail.element,r=void 0;try{r=n.content;var i=(0,A.isMobileBrowser)();!i&&!(0,A.isSafari11OrHigher)()||r.type!==y.CONTENT_TYPE_VIDEO&&r.type!==y.CONTENT_TYPE_HUB||m.Dl8VideoElement.globalVideoElementPrimed||(m.Dl8VideoElement.globalVideoElement.play(),m.Dl8VideoElement.globalVideoElement.pause(),(0,A.needsIOSHack)()&&(m.Dl8VideoElement.globalAudioElement.play(),m.Dl8VideoElement.globalAudioElement.pause()),m.Dl8VideoElement.globalVideoElementPrimed=!0);var a=(0,L.isVrBrowser)()?"force-inline":n.getAttribute("display-mode")||"inline";if(i&&"force-inline"!==a){var s=document.querySelector("#dl8-meta-viewport");s||(s=document.createElement("meta"),s.setAttribute("id","dl8-meta-viewport"),s.setAttribute("name","viewport"),s.setAttribute("content","initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width, viewport-fit = cover"),document.head.appendChild(s))}setTimeout(function(){(0,w.default)(function(){o.default.resolve().then(function(){e._setupElement();var o=n.contentId;window.__dl8__delightVrApp.addContent(r),"force-inline"===a?(e._setupInlineElement(n),window.__dl8__delightVrApp.setDisplayMode("force-inline")):i||"inline"!==a?(e._setupFullscreenElement(),window.__dl8__delightVrApp.setDisplayMode("fullscreen")):(e._setupInlineElement(n),window.__dl8__delightVrApp.setDisplayMode("inline")),n.hideLoading(),(0,L.isVrBrowser)()?e._initial&&t.detail.programmatic?(window.__dl8__delightVrApp.activateContent(o,t.detail.forceShowPlayButton,!0,null,!1),e._waitingInPreloadState=!0,e._preloadedId=o):e._waitingInPreloadState?t.detail.programmatic||(e._waitingInPreloadState=!1,window.__dl8__delightVrApp.activateContent(o,t.detail.forceShowPlayButton,!0,e._preloadedId,!0),e._preloadedId=null,n.classList.add("dl8-active")):(window.__dl8__delightVrApp.activateContent(o,t.detail.forceShowPlayButton),n.classList.add("dl8-active")):(window.__dl8__delightVrApp.activateContent(o,t.detail.forceShowPlayButton),n.classList.add("dl8-active")),document.dispatchEvent(new CustomEvent("x-dl8-evt-did-start",{detail:{id:o}})),e._initial=!1}).catch(function(e){n.hideLoading(),n.setErrorState(e.message)})})},100)}catch(e){n.hideLoading(),n.setErrorState(e.message)}}),document.addEventListener("x-dl8-evt-exit",function(e){D.TrackingManager.instance.addEvent(new P.TrackingEvent({type:P.TrackingEvent.EXIT_PLAYER,payload:{cid:e.detail.id}})),window.__dl8__delightVrApp&&(e.detail.internal||window.__dl8__delightVrApp.exit(e.detail.id),document.dispatchEvent(new CustomEvent("x-dl8-evt-did-exit",{detail:e.detail.id})))}),document.addEventListener("x-dl8-evt-video-play",function(e){(0,w.default)(function(){window.__dl8__delightVrApp.play(e.detail.id)})}),document.addEventListener("x-dl8-evt-video-pause",function(e){(0,w.default)(function(){window.__dl8__delightVrApp.pause(e.detail.id)})}),document.addEventListener("x-dl8-evt-video-seek",function(e){(0,w.default)(function(){window.__dl8__delightVrApp.seek(e.detail.id,e.detail.t)})}),document.addEventListener("x-dl8-evt-video-mute",function(e){(0,w.default)(function(){window.__dl8__delightVrApp.mute(e.detail.id)})}),document.addEventListener("x-dl8-evt-video-unmute",function(e){(0,w.default)(function(){window.__dl8__delightVrApp.unmute(e.detail.id)})}),document.addEventListener("x-dl8-evt-enter-fullscreen",function(e){(0,w.default)(function(){window.__dl8__delightVrApp.enterFullscreen()})}),document.addEventListener("x-dl8-evt-exit-fullscreen",function(e){(0,w.default)(function(){window.__dl8__delightVrApp.exitFullscreen()})}),document.addEventListener("x-dl8-evt-enable-interface",function(e){(0,w.default)(function(){window.__dl8__delightVrApp.enableInterface()})}),document.addEventListener("x-dl8-evt-disable-interface",function(e){(0,w.default)(function(){window.__dl8__delightVrApp.disableInterface()})}),document.addEventListener("x-dl8-evt-show-content",function(e){(0,w.default)(function(){window.__dl8__delightVrApp.showContent(e.detail.contentDesc,e.detail.id)})});var t={hubEnabled:(0,A.getAllowedFeature)("hubEnabled"),imgEnabled:(0,A.getAllowedFeature)("imgEnabled"),videoEnabled:(0,A.getAllowedFeature)("videoEnabled"),ibrEnabled:(0,A.getAllowedFeature)("ibrEnabled"),tourEnabled:(0,A.getAllowedFeature)("tourEnabled"),modelEnabled:(0,A.getAllowedFeature)("modelEnabled"),cinemaEnabled:(0,A.getAllowedFeature)("cinemaEnabled"),liveVideoEnabled:(0,A.getAllowedFeature)("liveVideoEnabled")};t.hubEnabled?T.Dl8HubElement.registerElement(t):document.querySelector("dl8-hub")&&console.error("<dl8-hub> is not enabled on this copy of Delight XR on this domain"),t.imgEnabled?p.Dl8ImgElement.registerElement(t):document.querySelector("dl8-img")&&console.error("<dl8-img> is not enabled on this copy of Delight XR on this domain"),t.videoEnabled?m.Dl8VideoElement.registerElement(t):document.querySelector("dl8-video")&&console.error("<dl8-video> is not enabled on this copy of Delight XR on this domain"),t.ibrEnabled?g.Dl8IbrElement.registerElement(t):document.querySelector("dl8-ibr")&&console.error("<dl8-ibr> is not enabled on this copy of Delight XR on this domain"),t.tourEnabled?E.Dl8TourElement.registerElement(t):document.querySelector("dl8-tour")&&console.error("<dl8-tour> is not enabled on this copy of Delight XR on this domain"),t.modelEnabled?v.Dl8ModelElement.registerElement(t):document.querySelector("dl8-model")&&console.error("<dl8-model> is not enabled on this copy of Delight XR on this domain"),t.cinemaEnabled?b.Dl8CinemaElement.registerElement(t):document.querySelector("dl8-cinema")&&console.error("<dl8-cinema> is not enabled on this copy of Delight XR on this domain"),t.liveVideoEnabled?S.Dl8LiveVideoElement.registerElement(t):document.querySelector("dl8-live-video")&&console.error("<dl8-live-video> is not enabled on this copy of Delight XR on this domain")}},{key:"_setupElement",value:function(){if(!window.__dl8__delightVrApp.embedContainer){var e=document.createElement("div");e.style.display="none",e.style.width="100%",e.style.height="100%",e.style.left="0",e.style.top="0",e.style.pointerEvents="none",e.style.margin="0",e.style.padding="0",e.id="dl8-content-container",document.body.appendChild(e),window.__dl8__delightVrApp.embedContainer=e,window.__dl8__delightVrApp.renderContainer(e)}}},{key:"_setupFullscreenElement",value:function(){var e=window.__dl8__delightVrApp.embedContainer;e.style.zIndex="9999999",e.style.position="fixed",e.style.display="block",document.body.appendChild(e)}},{key:"_setupInlineElement",value:function(e){var t=window.__dl8__delightVrApp.embedContainer;t.style.position="relative",t.style.display="block",e.appendChild(t)}}]),e}();if(!window.__dl8__delightVrLoader){var N=(0,A.getUrlVar)("dl8InternalLoadScript"),B=document.querySelector("meta[name=dl8-internal-load-script-already-enabled]");if(!N||B)window.__dl8__delightVrLoader=new O;else{var F=document.createElement("meta");F.setAttribute("name","dl8-internal-load-script-already-enabled"),document.head.appendChild(F);var k=document.createElement("script");k.src=decodeURIComponent(N),document.head.appendChild(k)}}},,,,,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.NEGATIVE_INFINITY,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return Math.min(Math.max(e,t),n)}function a(e,t,n,r,i){return(e-t)*(i-r)/(n-t)+r}function o(e){return Math.min(Math.max(e,0),1)}function s(e){var t=e<0;e=Math.abs(e);var n=Math.round(e)%60,r=(Math.round(e)-n)/60,i=Math.floor(r/60);return r-=60*i,i>0?i+":"+(r<10?"0"+r:r)+":"+(n<10?"0"+n:n):""+(t?"-":"")+r+":"+(n<10?"0"+n:n)}function l(e,t){for(var n=e.map(function(e){return e.frames}).reduce(function(e,t){return e+t}),r=Math.min(Math.max(0,Math.floor(t*n)),n-1),i=0,a=0,o=0,s=0;o<e.length;++o){var l=e[o];if(r<s+l.frames){a=(r-s)/(l.rows*l.columns);break}i++,s+=l.frames}return{spriteIdx:i,relativeT:a}}function u(e,t){return(0,y.default)(e.track.cues).find(function(e){return e.startTime<=t&&e.endTime>t})}function d(e,t){return(0,y.default)(e.track.cues).findIndex(function(e){return e.startTime<=t&&e.endTime>t})}function c(){if(window&&window.performance){if("function"==typeof window.performance.now)return window.performance.now();if("function"==typeof window.performance.webkitNow)return window.performance.webkitNow()}return Date.now()}function f(e){try{return localStorage.getItem(e)}catch(e){}return null}function h(e,t){try{return localStorage.setItem(e,t)}catch(e){}return null}function _(e){try{return localStorage.removeItem(e)}catch(e){}return null}function A(e,t){var n=e/800,r=i(Math.round(30*n),10,68);return{paddingTop:r,paddingRight:r,paddingBottom:r,paddingLeft:r}}function m(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}function p(){var e=window.chrome,t=window.navigator.vendor,n=window.navigator.userAgent.indexOf("OPR")>-1,r=window.navigator.userAgent.indexOf("Edge")>-1;return!(null===e||void 0===e||"Google Inc."!==t||n!==!1||r!==!1)}function g(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");return!!(t>0||navigator.userAgent.match(/Trident.*rv:11\./))}function E(){return M[0]=Math.floor(268435456*Math.random()).toString(16),M[1]=Math.floor(65536*Math.random()).toString(16),M[2]=(Math.floor(4096*Math.random())+16384).toString(16),M[3]=(Math.floor(16384*Math.random())+32768).toString(16),M[4]=Math.floor(16777216*Math.random()).toString(16),M[5]=Math.floor(16777216*Math.random()).toString(16),M[0]+w.slice(0,8-M[0].length)+"-"+(M[1]+w.slice(0,4-M[1].length))+"-"+(M[2]+w.slice(0,4-M[2].length))+"-"+(M[3]+w.slice(0,4-M[3].length))+"-"+(M[4]+w.slice(0,6-M[4].length)+M[5]+w.slice(0,6-M[5].length))}function v(e,t){var n=void 0,r=void 0;if(t){var i=document.createElement("a");i.setAttribute("href",t),r=i.search}else r=location.search;try{n=unescape(r.match(new RegExp(e+"=+([^&]*)"))[1])}catch(e){n=void 0}return n}function b(){var e=navigator.userAgent.match(/(iPhone|iPad); (CPU iPhone|CPU) OS (\d+)_(\d+)(_(\d+))?\s+/);return!e||e.length<4?{major:0,minor:0}:{major:parseInt(e[3],10),minor:parseInt(e[4],10)}}function S(e){return navigator.userAgent.indexOf(e)!==-1}function T(e,t,n){for(var r=0,i=0,a=0,o=0,s=0,l=0;l<e.length;++l){if(o=e.start(l),s=e.end(l),o<=t&&t<=s){r=o,i=s;break}o>t&&t<=s&&o<=e.start(a)&&(r=o,i=s,a=l)}return n[0]=r,n[1]=i,n}Object.defineProperty(t,"__esModule",{value:!0}),t.isEdge=t.isSafari=t.isIOS=t.isIPadOS=t.isTablet=t.isMobileBrowser=void 0;var x=n(34),y=r(x);t.clamp=i,t.mapNumberToRange=a,t.saturate=o,t.convertSecondsToDisplayString=s,t.getCurrentImageSprite=l,t.getCurrentTrackThumbnail=u,t.getCurrentTrackThumbnailIdx=d,t.performanceNow=c,t.getLocalStorageItemSafe=f,t.setLocalStorageItemSafe=h,t.removeLocalStorageItemSafe=_,t.getOuterUIPlayerPaddings=A,t.isFirefox=m,t.isChrome=p,t.isIE=g,t.getGUID=E,t.getUrlVar=v,t.getIOSVersion=b,t.isDeviceId=S,t.convertBufferState=T;var C=(t.isMobileBrowser=function(){return function(e){return!(!/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)&&!/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))||!!C()}(navigator.userAgent||navigator.vendor||window.opera)},t.isTablet=function(){var e=navigator.userAgent.toLowerCase();return/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(e)||C()},t.isIPadOS=function(){return"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1&&!window.MSStream}),w=(t.isIOS=function(){return/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent)||C()},t.isSafari=function(){return navigator.userAgent.indexOf("Safari")!==-1&&navigator.userAgent.indexOf("Chrome")===-1},t.isEdge=function(){return window.navigator.userAgent.indexOf("Edge")>-1},"00000000"),M=[0,0,0,0,0,0]},,function(e,t,n){e.exports={default:n(563),__esModule:!0}},function(e,t,n){e.exports={default:n(574),__esModule:!0}},function(e,t,n){e.exports={default:n(580),__esModule:!0}},function(e,t,n){e.exports={default:n(581),__esModule:!0}},,function(e,t,n){n(90),n(601),e.exports=n(16).Array.from},function(e,t,n){n(82),n(90),e.exports=n(599)},function(e,t,n){n(82),n(90),e.exports=n(600)},function(e,t,n){var r=n(16),i=r.JSON||(r.JSON={stringify:JSON.stringify});e.exports=function(e){return i.stringify.apply(i,arguments)}},function(e,t,n){n(103),n(90),n(82),n(603),n(618),n(617),n(616),e.exports=n(16).Map},function(e,t,n){n(604),e.exports=n(16).Object.assign},function(e,t,n){n(605);var r=n(16).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){n(606);var r=n(16).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},function(e,t,n){n(607);var r=n(16).Object;e.exports=function(e,t){return r.getOwnPropertyDescriptor(e,t)}},function(e,t,n){n(608);var r=n(16).Object;e.exports=function(e){return r.getOwnPropertyNames(e)}},function(e,t,n){n(324),e.exports=n(16).Object.getOwnPropertySymbols},function(e,t,n){n(609),e.exports=n(16).Object.getPrototypeOf},function(e,t,n){n(610),e.exports=n(16).Object.keys},function(e,t,n){n(611),e.exports=n(16).Object.setPrototypeOf},function(e,t,n){n(619),e.exports=n(16).Object.values},function(e,t,n){n(103),n(90),n(82),n(612),n(620),n(621),e.exports=n(16).Promise},function(e,t,n){n(631),e.exports=n(16).setImmediate},function(e,t,n){n(103),n(90),n(82),n(613),n(624),n(623),n(622),e.exports=n(16).Set},function(e,t,n){n(324),n(103),n(625),n(626),e.exports=n(16).Symbol},function(e,t,n){n(90),n(82),e.exports=n(213).f("iterator")},function(e,t,n){n(103),n(82),n(614),n(628),n(627),e.exports=n(16).WeakMap},,function(e,t){e.exports=function(){}},function(e,t,n){var r=n(100);e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},function(e,t,n){var r=n(81),i=n(155),a=n(597);e.exports=function(e){return function(t,n,o){var s,l=r(t),u=i(l.length),d=a(o,u);if(e&&n!=n){for(;u>d;)if(s=l[d++],s!=s)return!0}else for(;u>d;d++)if((e||d in l)&&l[d]===n)return e||d||0;return!e&&-1}}},function(e,t,n){var r=n(42),i=n(311),a=n(37)("species");e.exports=function(e){var t;return i(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!i(t.prototype)||(t=void 0),r(t)&&(t=t[a],null===t&&(t=void 0))),void 0===t?Array:t}},function(e,t,n){var r=n(586);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){"use strict";var r=n(53),i=n(123);e.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},function(e,t,n){var r=n(102),i=n(205),a=n(122);e.exports=function(e){var t=r(e),n=i.f;if(n)for(var o,s=n(e),l=a.f,u=0;s.length>u;)l.call(e,o=s[u++])&&t.push(o);return t}},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){"use strict";var r=n(150),i=n(123),a=n(124),o={};n(80)(o,n(37)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(o,{next:i(1,n)}),a(e,t+" Iterator")}},function(e,t,n){var r=n(35),i=n(209).set,a=r.MutationObserver||r.WebKitMutationObserver,o=r.process,s=r.Promise,l="process"==n(119)(o);e.exports=function(){var e,t,n,u=function(){var r,i;for(l&&(r=o.domain)&&r.exit();e;){i=e.fn,e=e.next;try{i()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(l)n=function(){o.nextTick(u)};else if(!a||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var d=s.resolve(void 0);n=function(){d.then(u)}}else n=function(){i.call(r,u)};else{var c=!0,f=document.createTextNode("");new a(u).observe(f,{characterData:!0}),n=function(){f.data=c=!c}}return function(r){var i={fn:r,next:void 0};t&&(t.next=i),e||(e=i,n()),t=i}}},function(e,t,n){var r=n(53),i=n(52),a=n(102);e.exports=n(47)?Object.defineProperties:function(e,t){i(e);for(var n,o=a(t),s=o.length,l=0;s>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){var r=n(47),i=n(102),a=n(81),o=n(122).f;e.exports=function(e){return function(t){for(var n,s=a(t),l=i(s),u=l.length,d=0,c=[];u>d;)n=l[d++],r&&!o.call(s,n)||c.push(e?[n,s[n]]:s[n]);return c}}},function(e,t,n){var r=n(42),i=n(52),a=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{r=n(67)(Function.call,n(204).f(Object.prototype,"__proto__").set,2),r(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:a}},function(e,t,n){var r=n(210),i=n(198);e.exports=function(e){return function(t,n){var a,o,s=String(i(t)),l=r(n),u=s.length;return l<0||l>=u?e?"":void 0:(a=s.charCodeAt(l),a<55296||a>56319||l+1===u||(o=s.charCodeAt(l+1))<56320||o>57343?e?s.charAt(l):a:e?s.slice(l,l+2):(a-55296<<10)+(o-56320)+65536)}}},function(e,t,n){var r=n(210),i=Math.max,a=Math.min;e.exports=function(e,t){return e=r(e),e<0?i(e+t,0):a(e,t)}},function(e,t,n){var r=n(35),i=r.navigator;e.exports=i&&i.userAgent||""},function(e,t,n){var r=n(52),i=n(214);e.exports=n(16).getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},function(e,t,n){var r=n(148),i=n(37)("iterator"),a=n(101);e.exports=n(16).isIterable=function(e){var t=Object(e);return void 0!==t[i]||"@@iterator"in t||a.hasOwnProperty(r(t))}},function(e,t,n){"use strict";var r=n(67),i=n(30),a=n(88),o=n(312),s=n(310),l=n(155),u=n(588),d=n(214);i(i.S+i.F*!n(313)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,i,c,f=a(e),h="function"==typeof this?this:Array,_=arguments.length,A=_>1?arguments[1]:void 0,m=void 0!==A,p=0,g=d(f);if(m&&(A=r(A,_>2?arguments[2]:void 0,2)),void 0==g||h==Array&&s(g))for(t=l(f.length),n=new h(t);t>p;p++)u(n,p,m?A(f[p],p):f[p]);else for(c=g.call(f),n=new h;!(i=c.next()).done;p++)u(n,p,m?o(c,A,[i.value,p],!0):i.value);return n.length=p,n}})},function(e,t,n){"use strict";var r=n(583),i=n(314),a=n(101),o=n(81);e.exports=n(202)(Array,"Array",function(e,t){this._t=o(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var r=n(305),i=n(89),a="Map";e.exports=n(149)(a,function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(i(this,a),e);return t&&t.v},set:function(e,t){return r.def(i(this,a),0===e?0:e,t)}},r,!0)},function(e,t,n){var r=n(30);r(r.S+r.F,"Object",{assign:n(315)})},function(e,t,n){var r=n(30);r(r.S,"Object",{create:n(150)})},function(e,t,n){var r=n(30);r(r.S+r.F*!n(47),"Object",{defineProperty:n(53).f})},function(e,t,n){var r=n(81),i=n(204).f;n(151)("getOwnPropertyDescriptor",function(){return function(e,t){return i(r(e),t)}})},function(e,t,n){n(151)("getOwnPropertyNames",function(){return n(316).f})},function(e,t,n){var r=n(88),i=n(318);n(151)("getPrototypeOf",function(){return function(e){return i(r(e))}})},function(e,t,n){var r=n(88),i=n(102);n(151)("keys",function(){return function(e){return i(r(e))}})},function(e,t,n){var r=n(30);r(r.S,"Object",{setPrototypeOf:n(595).set})},function(e,t,n){"use strict";var r,i,a,o,s=n(120),l=n(35),u=n(67),d=n(148),c=n(30),f=n(42),h=n(118),_=n(147),A=n(100),m=n(323),p=n(209).set,g=n(592)(),E=n(203),v=n(320),b=n(598),S=n(321),T="Promise",x=l.TypeError,y=l.process,C=y&&y.versions,w=C&&C.v8||"",M=l[T],D="process"==d(y),P=function(){},R=i=E.f,I=!!function(){try{var e=M.resolve(1),t=(e.constructor={})[n(37)("species")]=function(e){e(P,P)};return(D||"function"==typeof PromiseRejectionEvent)&&e.then(P)instanceof t&&0!==w.indexOf("6.6")&&b.indexOf("Chrome/66")===-1}catch(e){}}(),L=function(e){var t;return!(!f(e)||"function"!=typeof(t=e.then))&&t},O=function(e,t){if(!e._n){e._n=!0;var n=e._c;g(function(){for(var r=e._v,i=1==e._s,a=0,o=function(t){var n,a,o,s=i?t.ok:t.fail,l=t.resolve,u=t.reject,d=t.domain;try{s?(i||(2==e._h&&F(e),e._h=1),s===!0?n=r:(d&&d.enter(),n=s(r),d&&(d.exit(),o=!0)),n===t.promise?u(x("Promise-chain cycle")):(a=L(n))?a.call(n,l,u):l(n)):u(r)}catch(e){d&&!o&&d.exit(),u(e)}};n.length>a;)o(n[a++]);e._c=[],e._n=!1,t&&!e._h&&N(e)})}},N=function(e){p.call(l,function(){var t,n,r,i=e._v,a=B(e);if(a&&(t=v(function(){D?y.emit("unhandledRejection",i,e):(n=l.onunhandledrejection)?n({promise:e,reason:i}):(r=l.console)&&r.error&&r.error("Unhandled promise rejection",i)}),e._h=D||B(e)?2:1),e._a=void 0,a&&t.e)throw t.v})},B=function(e){return 1!==e._h&&0===(e._a||e._c).length},F=function(e){p.call(l,function(){var t;D?y.emit("rejectionHandled",e):(t=l.onrejectionhandled)&&t({promise:e,reason:e._v})})},k=function(e){var t=this;t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),O(t,!0))},U=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw x("Promise can't be resolved itself");(t=L(e))?g(function(){var r={_w:n,_d:!1};try{t.call(e,u(U,r,1),u(k,r,1))}catch(e){k.call(r,e)}}):(n._v=e,n._s=1,O(n,!1))}catch(e){k.call({_w:n,_d:!1},e)}}};I||(M=function(e){_(this,M,T,"_h"),h(e),r.call(this);try{e(u(U,this,1),u(k,this,1))}catch(e){k.call(this,e)}},r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=n(152)(M.prototype,{then:function(e,t){var n=R(m(this,M));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=D?y.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&O(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),a=function(){var e=new r;this.promise=e,this.resolve=u(U,e,1),this.reject=u(k,e,1)},E.f=R=function(e){return e===M||e===o?new a(e):i(e)}),c(c.G+c.W+c.F*!I,{Promise:M}),n(124)(M,T),n(322)(T),o=n(16)[T],c(c.S+c.F*!I,T,{reject:function(e){var t=R(this),n=t.reject;return n(e),t.promise}}),c(c.S+c.F*(s||!I),T,{resolve:function(e){return S(s&&this===o?M:this,e)}}),c(c.S+c.F*!(I&&n(313)(function(e){M.all(e).catch(P)})),T,{all:function(e){var t=this,n=R(t),r=n.resolve,i=n.reject,a=v(function(){var n=[],a=0,o=1;A(e,!1,function(e){var s=a++,l=!1;n.push(void 0),o++,t.resolve(e).then(function(e){l||(l=!0,n[s]=e,--o||r(n))},i)}),--o||r(n)});return a.e&&i(a.v),n.promise},race:function(e){var t=this,n=R(t),r=n.reject,i=v(function(){A(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}})},function(e,t,n){"use strict";var r=n(305),i=n(89),a="Set";e.exports=n(149)(a,function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(i(this,a),e=0===e?0:e,e)}},r)},function(e,t,n){"use strict";var r,i=n(35),a=n(197)(0),o=n(206),s=n(121),l=n(315),u=n(307),d=n(42),c=n(89),f=n(89),h=!i.ActiveXObject&&"ActiveXObject"in i,_="WeakMap",A=s.getWeak,m=Object.isExtensible,p=u.ufstore,g=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},E={get:function(e){if(d(e)){var t=A(e);return t===!0?p(c(this,_)).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(c(this,_),e,t)}},v=e.exports=n(149)(_,g,E,u,!0,!0);f&&h&&(r=u.getConstructor(g,_),l(r.prototype,E),s.NEED=!0,a(["delete","has","get","set"],function(e){var t=v.prototype,n=t[e];o(t,e,function(t,i){if(d(t)&&!m(t)){this._f||(this._f=new r);var a=this._f[e](t,i);return"set"==e?this:a}return n.call(this,t,i)})}))},,function(e,t,n){n(153)("Map")},function(e,t,n){n(154)("Map")},function(e,t,n){var r=n(30);r(r.P+r.R,"Map",{toJSON:n(306)("Map")})},function(e,t,n){var r=n(30),i=n(594)(!1);r(r.S,"Object",{values:function(e){return i(e)}})},function(e,t,n){"use strict";var r=n(30),i=n(16),a=n(35),o=n(323),s=n(321);r(r.P+r.R,"Promise",{finally:function(e){var t=o(this,i.Promise||a.Promise),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then(function(){return n})}:e,n?function(n){return s(t,e()).then(function(){throw n})}:e)}})},function(e,t,n){"use strict";var r=n(30),i=n(203),a=n(320);r(r.S,"Promise",{try:function(e){var t=i.f(this),n=a(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},function(e,t,n){n(153)("Set")},function(e,t,n){n(154)("Set")},function(e,t,n){var r=n(30);r(r.P+r.R,"Set",{toJSON:n(306)("Set")})},function(e,t,n){n(212)("asyncIterator")},function(e,t,n){n(212)("observable")},function(e,t,n){n(153)("WeakMap")},function(e,t,n){n(154)("WeakMap")},,,function(e,t,n){var r=n(30),i=n(209);r(r.G+r.B,{setImmediate:i.set,clearImmediate:i.clear})},,,,,function(e,t,n){n(671);var r=n(91);e.exports=r("Array","filter")},function(e,t,n){n(672);var r=n(91);e.exports=r("Array","findIndex")},function(e,t,n){n(673);var r=n(91);e.exports=r("Array","find")},function(e,t,n){n(676);var r=n(163);e.exports=r.Object.assign},function(e,t,n){n(678);var r=n(91);e.exports=r("String","endsWith")},function(e,t,n){n(679);var r=n(91);e.exports=r("String","includes")},function(e,t,n){n(680);var r=n(91);e.exports=r("String","repeat")},function(e,t,n){n(681);var r=n(91);e.exports=r("String","startsWith")},function(e,t,n){n(670),n(677),n(687),n(682),n(683),n(684),n(685),n(686),n(689),n(688),n(690),n(691),n(692),n(693),n(694),n(695),n(696),n(675),n(674);var r=n(163);e.exports=r.Symbol},function(e,t,n){var r=n(636);e.exports=r},function(e,t,n){var r=n(637);e.exports=r},function(e,t,n){var r=n(638);e.exports=r},function(e,t,n){var r=n(639);e.exports=r},function(e,t,n){var r=n(640);e.exports=r},function(e,t,n){var r=n(641);e.exports=r},function(e,t,n){var r=n(642);e.exports=r},function(e,t,n){var r=n(643);e.exports=r},function(e,t,n){var r=n(644);n(697),n(698),n(699),n(700),n(701),e.exports=r},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){var r=n(128),i=n(129),a=n(669),o=function(e){return function(t,n,o){var s,l=r(t),u=i(l.length),d=a(o,u);if(e&&n!=n){for(;u>d;)if(s=l[d++],s!=s)return!0}else for(;u>d;d++)if((e||d in l)&&l[d]===n)return e||d||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}},function(e,t,n){var r=n(232),i=n(158),a=n(56),o=a("toStringTag"),s="Arguments"==i(function(){return arguments}()),l=function(e,t){try{return e[t]}catch(e){}};e.exports=r?i:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=l(t=Object(e),o))?n:s?i(t):"Object"==(r=i(t))&&"function"==typeof t.callee?"Arguments":r}},function(e,t,n){"use strict";var r=n(165),i=n(70),a=n(159);e.exports=function(e,t,n){var o=r(t);o in e?i.f(e,o,a(0,n)):e[o]=n}},function(e,t,n){var r=n(160);e.exports=r("navigator","userAgent")||""},function(e,t,n){var r=n(160);e.exports=r("document","documentElement")},function(e,t,n){var r=n(63),i=/#|\.prototype\./,a=function(e,t){var n=s[o(e)];return n==u||n!=l&&("function"==typeof t?r(t):!!t)},o=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},s=a.data={},l=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},function(e,t,n){var r=n(69),i=n(158),a=n(56),o=a("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==i(e))}},function(e,t,n){var r=n(38),i=n(336),a=r.WeakMap;e.exports="function"==typeof a&&/native code/.test(i(a))},function(e,t,n){"use strict";var r=n(68),i=n(63),a=n(224),o=n(223),s=n(225),l=n(164),u=n(218),d=Object.assign,c=Object.defineProperty;e.exports=!d||i(function(){if(r&&1!==d({b:1},d(c({},"a",{enumerable:!0,get:function(){c(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),i="abcdefghijklmnopqrst";return e[n]=7,i.split("").forEach(function(e){t[e]=e}),7!=d({},e)[n]||a(d({},t)).join("")!=i})?function(e,t){for(var n=l(e),i=arguments.length,d=1,c=o.f,f=s.f;i>d;)for(var h,_=u(arguments[d++]),A=c?a(_).concat(c(_)):a(_),m=A.length,p=0;m>p;)h=A[p++],r&&!f.call(_,h)||(n[h]=_[h]);return n}:d},function(e,t,n){var r=n(68),i=n(70),a=n(125),o=n(224);e.exports=r?Object.defineProperties:function(e,t){a(e);for(var n,r=o(t),s=r.length,l=0;s>l;)i.f(e,n=r[l++],t[n]);return e}},function(e,t,n){var r=n(128),i=n(222).f,a={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){ try{return i(e)}catch(e){return o.slice()}};e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?s(e):i(r(e))}},function(e,t,n){"use strict";var r=n(232),i=n(656);e.exports=r?{}.toString:function(){return"[object "+i(this)+"]"}},function(e,t,n){var r=n(160),i=n(222),a=n(223),o=n(125);e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(o(e)),n=a.f;return n?t.concat(n(e)):t}},function(e,t,n){"use strict";var r=n(231),i=n(104);e.exports="".repeat||function(e){var t=String(i(this)),n="",a=r(e);if(a<0||a==1/0)throw RangeError("Wrong number of repetitions");for(;a>0;(a>>>=1)&&(t+=t))1&a&&(n+=t);return n}},function(e,t,n){var r=n(231),i=Math.max,a=Math.min;e.exports=function(e,t){var n=r(e);return n<0?i(n+t,0):a(n,t)}},function(e,t,n){"use strict";var r=n(54),i=n(63),a=n(219),o=n(69),s=n(164),l=n(129),u=n(657),d=n(330),c=n(329),f=n(56),h=n(333),_=f("isConcatSpreadable"),A=9007199254740991,m="Maximum allowed index exceeded",p=h>=51||!i(function(){var e=[];return e[_]=!1,e.concat()[0]!==e}),g=c("concat"),E=function(e){if(!o(e))return!1;var t=e[_];return void 0!==t?!!t:a(e)},v=!p||!g;r({target:"Array",proto:!0,forced:v},{concat:function(e){var t,n,r,i,a,o=s(this),c=d(o,0),f=0;for(t=-1,r=arguments.length;t<r;t++)if(a=t===-1?o:arguments[t],E(a)){if(i=l(a.length),f+i>A)throw TypeError(m);for(n=0;n<i;n++,f++)n in a&&u(c,f,a[n])}else{if(f>=A)throw TypeError(m);u(c,f++,a)}return c.length=f,c}})},function(e,t,n){"use strict";var r=n(54),i=n(157).filter,a=n(329),o=n(215),s=a("filter"),l=o("filter");r({target:"Array",proto:!0,forced:!s||!l},{filter:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,n){"use strict";var r=n(54),i=n(157).findIndex,a=n(328),o=n(215),s="findIndex",l=!0,u=o(s);s in[]&&Array(1)[s](function(){l=!1}),r({target:"Array",proto:!0,forced:l||!u},{findIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a(s)},function(e,t,n){"use strict";var r=n(54),i=n(157).find,a=n(328),o=n(215),s="find",l=!0,u=o(s);s in[]&&Array(1)[s](function(){l=!1}),r({target:"Array",proto:!0,forced:l||!u},{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a(s)},function(e,t,n){var r=n(38),i=n(228);i(r.JSON,"JSON",!0)},function(e,t,n){var r=n(228);r(Math,"Math",!0)},function(e,t,n){var r=n(54),i=n(663);r({target:"Object",stat:!0,forced:Object.assign!==i},{assign:i})},function(e,t,n){var r=n(232),i=n(226),a=n(666);r||i(Object.prototype,"toString",a,{unsafe:!0})},function(e,t,n){"use strict";var r=n(54),i=n(127).f,a=n(129),o=n(221),s=n(104),l=n(216),u=n(162),d="".endsWith,c=Math.min,f=l("endsWith"),h=!u&&!f&&!!function(){var e=i(String.prototype,"endsWith");return e&&!e.writable}();r({target:"String",proto:!0,forced:!h&&!f},{endsWith:function(e){var t=String(s(this));o(e);var n=arguments.length>1?arguments[1]:void 0,r=a(t.length),i=void 0===n?r:c(a(n),r),l=String(e);return d?d.call(t,l,i):t.slice(i-l.length,i)===l}})},function(e,t,n){"use strict";var r=n(54),i=n(221),a=n(104),o=n(216);r({target:"String",proto:!0,forced:!o("includes")},{includes:function(e){return!!~String(a(this)).indexOf(i(e),arguments.length>1?arguments[1]:void 0)}})},function(e,t,n){var r=n(54),i=n(668);r({target:"String",proto:!0},{repeat:i})},function(e,t,n){"use strict";var r=n(54),i=n(127).f,a=n(129),o=n(221),s=n(104),l=n(216),u=n(162),d="".startsWith,c=Math.min,f=l("startsWith"),h=!u&&!f&&!!function(){var e=i(String.prototype,"startsWith");return e&&!e.writable}();r({target:"String",proto:!0,forced:!h&&!f},{startsWith:function(e){var t=String(s(this));o(e);var n=a(c(arguments.length>1?arguments[1]:void 0,t.length)),r=String(e);return d?d.call(t,r,n):t.slice(n,n+r.length)===r}})},function(e,t,n){var r=n(27);r("asyncIterator")},function(e,t,n){"use strict";var r=n(54),i=n(68),a=n(38),o=n(55),s=n(69),l=n(70).f,u=n(331),d=a.Symbol;if(i&&"function"==typeof d&&(!("description"in d.prototype)||void 0!==d().description)){var c={},f=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),t=this instanceof f?new d(e):void 0===e?d():d(e);return""===e&&(c[t]=!0),t};u(f,d);var h=f.prototype=d.prototype;h.constructor=f;var _=h.toString,A="Symbol(test)"==String(d("test")),m=/^Symbol\((.*)\)[^)]+$/;l(h,"description",{configurable:!0,get:function(){var e=s(this)?this.valueOf():this,t=_.call(e);if(o(c,e))return"";var n=A?t.slice(7,-1):t.replace(m,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:f})}},function(e,t,n){var r=n(27);r("hasInstance")},function(e,t,n){var r=n(27);r("isConcatSpreadable")},function(e,t,n){var r=n(27);r("iterator")},function(e,t,n){"use strict";var r=n(54),i=n(38),a=n(160),o=n(162),s=n(68),l=n(220),u=n(341),d=n(63),c=n(55),f=n(219),h=n(69),_=n(125),A=n(164),m=n(128),p=n(165),g=n(159),E=n(338),v=n(224),b=n(222),S=n(665),T=n(223),x=n(127),y=n(70),C=n(225),w=n(126),M=n(226),D=n(230),P=n(229),R=n(161),I=n(233),L=n(56),O=n(342),N=n(27),B=n(228),F=n(337),k=n(157).forEach,U=P("hidden"),V="Symbol",G="prototype",H=L("toPrimitive"),z=F.set,Q=F.getterFor(V),X=Object[G],W=i.Symbol,j=a("JSON","stringify"),Y=x.f,q=y.f,Z=S.f,K=C.f,J=D("symbols"),$=D("op-symbols"),ee=D("string-to-symbol-registry"),te=D("symbol-to-string-registry"),ne=D("wks"),re=i.QObject,ie=!re||!re[G]||!re[G].findChild,ae=s&&d(function(){return 7!=E(q({},"a",{get:function(){return q(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=Y(X,t);r&&delete X[t],q(e,t,n),r&&e!==X&&q(X,t,r)}:q,oe=function(e,t){var n=J[e]=E(W[G]);return z(n,{type:V,tag:e,description:t}),s||(n.description=t),n},se=u?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof W},le=function(e,t,n){e===X&&le($,t,n),_(e);var r=p(t,!0);return _(n),c(J,r)?(n.enumerable?(c(e,U)&&e[U][r]&&(e[U][r]=!1),n=E(n,{enumerable:g(0,!1)})):(c(e,U)||q(e,U,g(1,{})),e[U][r]=!0),ae(e,r,n)):q(e,r,n)},ue=function(e,t){_(e);var n=m(t),r=v(n).concat(_e(n));return k(r,function(t){s&&!ce.call(n,t)||le(e,t,n[t])}),e},de=function(e,t){return void 0===t?E(e):ue(E(e),t)},ce=function(e){var t=p(e,!0),n=K.call(this,t);return!(this===X&&c(J,t)&&!c($,t))&&(!(n||!c(this,t)||!c(J,t)||c(this,U)&&this[U][t])||n)},fe=function(e,t){var n=m(e),r=p(t,!0);if(n!==X||!c(J,r)||c($,r)){var i=Y(n,r);return!i||!c(J,r)||c(n,U)&&n[U][r]||(i.enumerable=!0),i}},he=function(e){var t=Z(m(e)),n=[];return k(t,function(e){c(J,e)||c(R,e)||n.push(e)}),n},_e=function(e){var t=e===X,n=Z(t?$:m(e)),r=[];return k(n,function(e){!c(J,e)||t&&!c(X,e)||r.push(J[e])}),r};if(l||(W=function(){if(this instanceof W)throw TypeError("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,t=I(e),n=function(e){this===X&&n.call($,e),c(this,U)&&c(this[U],t)&&(this[U][t]=!1),ae(this,t,g(1,e))};return s&&ie&&ae(X,t,{configurable:!0,set:n}),oe(t,e)},M(W[G],"toString",function(){return Q(this).tag}),M(W,"withoutSetter",function(e){return oe(I(e),e)}),C.f=ce,y.f=le,x.f=fe,b.f=S.f=he,T.f=_e,O.f=function(e){return oe(L(e),e)},s&&(q(W[G],"description",{configurable:!0,get:function(){return Q(this).description}}),o||M(X,"propertyIsEnumerable",ce,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!l,sham:!l},{Symbol:W}),k(v(ne),function(e){N(e)}),r({target:V,stat:!0,forced:!l},{for:function(e){var t=String(e);if(c(ee,t))return ee[t];var n=W(t);return ee[t]=n,te[n]=t,n},keyFor:function(e){if(!se(e))throw TypeError(e+" is not a symbol");if(c(te,e))return te[e]},useSetter:function(){ie=!0},useSimple:function(){ie=!1}}),r({target:"Object",stat:!0,forced:!l,sham:!s},{create:de,defineProperty:le,defineProperties:ue,getOwnPropertyDescriptor:fe}),r({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:he,getOwnPropertySymbols:_e}),r({target:"Object",stat:!0,forced:d(function(){T.f(1)})},{getOwnPropertySymbols:function(e){return T.f(A(e))}}),j){var Ae=!l||d(function(){var e=W();return"[null]"!=j([e])||"{}"!=j({a:e})||"{}"!=j(Object(e))});r({target:"JSON",stat:!0,forced:Ae},{stringify:function(e,t,n){for(var r,i=[e],a=1;arguments.length>a;)i.push(arguments[a++]);if(r=t,(h(t)||void 0!==e)&&!se(e))return f(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!se(t))return t}),i[1]=t,j.apply(null,i)}})}W[G][H]||w(W[G],H,W[G].valueOf),B(W,V),R[U]=!0},function(e,t,n){var r=n(27);r("matchAll")},function(e,t,n){var r=n(27);r("match")},function(e,t,n){var r=n(27);r("replace")},function(e,t,n){var r=n(27);r("search")},function(e,t,n){var r=n(27);r("species")},function(e,t,n){var r=n(27);r("split")},function(e,t,n){var r=n(27);r("toPrimitive")},function(e,t,n){var r=n(27);r("toStringTag")},function(e,t,n){var r=n(27);r("unscopables")},function(e,t,n){var r=n(27);r("asyncDispose")},function(e,t,n){var r=n(27);r("dispose")},function(e,t,n){var r=n(27);r("observable")},function(e,t,n){var r=n(27);r("patternMatch")},function(e,t,n){var r=n(27);r("replaceAll")},function(e,t,n){t=e.exports=n(20)(),t.push([e.id,'#dl8-content-container,#dl8-content-container a,#dl8-content-container abbr,#dl8-content-container acronym,#dl8-content-container address,#dl8-content-container applet,#dl8-content-container area,#dl8-content-container article,#dl8-content-container aside,#dl8-content-container audio,#dl8-content-container b,#dl8-content-container big,#dl8-content-container blockquote,#dl8-content-container button,#dl8-content-container canvas,#dl8-content-container caption,#dl8-content-container cite,#dl8-content-container code,#dl8-content-container col,#dl8-content-container colgroup,#dl8-content-container datalist,#dl8-content-container dd,#dl8-content-container del,#dl8-content-container dfn,#dl8-content-container div,#dl8-content-container dl,#dl8-content-container dt,#dl8-content-container em,#dl8-content-container fieldset,#dl8-content-container figcaption,#dl8-content-container figure,#dl8-content-container footer,#dl8-content-container form,#dl8-content-container h1,#dl8-content-container h2,#dl8-content-container h3,#dl8-content-container h4,#dl8-content-container h5,#dl8-content-container h6,#dl8-content-container header,#dl8-content-container hr,#dl8-content-container i,#dl8-content-container iframe,#dl8-content-container img,#dl8-content-container input,#dl8-content-container ins,#dl8-content-container kbd,#dl8-content-container label,#dl8-content-container legend,#dl8-content-container li,#dl8-content-container main,#dl8-content-container map,#dl8-content-container mark,#dl8-content-container menu,#dl8-content-container meta,#dl8-content-container nav,#dl8-content-container object,#dl8-content-container ol,#dl8-content-container optgroup,#dl8-content-container option,#dl8-content-container output,#dl8-content-container p,#dl8-content-container pre,#dl8-content-container progress,#dl8-content-container q,#dl8-content-container samp,#dl8-content-container section,#dl8-content-container select,#dl8-content-container small,#dl8-content-container span,#dl8-content-container strike,#dl8-content-container strong,#dl8-content-container sub,#dl8-content-container summary,#dl8-content-container sup,#dl8-content-container table,#dl8-content-container tbody,#dl8-content-container td,#dl8-content-container textarea,#dl8-content-container tfoot,#dl8-content-container th,#dl8-content-container thead,#dl8-content-container time,#dl8-content-container tr,#dl8-content-container tt,#dl8-content-container ul,#dl8-content-container var,#dl8-content-container video,.dl8-embed-container,.dl8-embed-container a,.dl8-embed-container abbr,.dl8-embed-container acronym,.dl8-embed-container address,.dl8-embed-container applet,.dl8-embed-container area,.dl8-embed-container article,.dl8-embed-container aside,.dl8-embed-container audio,.dl8-embed-container b,.dl8-embed-container big,.dl8-embed-container blockquote,.dl8-embed-container button,.dl8-embed-container canvas,.dl8-embed-container caption,.dl8-embed-container cite,.dl8-embed-container code,.dl8-embed-container col,.dl8-embed-container colgroup,.dl8-embed-container datalist,.dl8-embed-container dd,.dl8-embed-container del,.dl8-embed-container dfn,.dl8-embed-container div,.dl8-embed-container dl,.dl8-embed-container dt,.dl8-embed-container em,.dl8-embed-container fieldset,.dl8-embed-container figcaption,.dl8-embed-container figure,.dl8-embed-container footer,.dl8-embed-container form,.dl8-embed-container h1,.dl8-embed-container h2,.dl8-embed-container h3,.dl8-embed-container h4,.dl8-embed-container h5,.dl8-embed-container h6,.dl8-embed-container header,.dl8-embed-container hr,.dl8-embed-container i,.dl8-embed-container iframe,.dl8-embed-container img,.dl8-embed-container input,.dl8-embed-container ins,.dl8-embed-container kbd,.dl8-embed-container label,.dl8-embed-container legend,.dl8-embed-container li,.dl8-embed-container main,.dl8-embed-container map,.dl8-embed-container mark,.dl8-embed-container menu,.dl8-embed-container meta,.dl8-embed-container nav,.dl8-embed-container object,.dl8-embed-container ol,.dl8-embed-container optgroup,.dl8-embed-container option,.dl8-embed-container output,.dl8-embed-container p,.dl8-embed-container pre,.dl8-embed-container progress,.dl8-embed-container q,.dl8-embed-container samp,.dl8-embed-container section,.dl8-embed-container select,.dl8-embed-container small,.dl8-embed-container span,.dl8-embed-container strike,.dl8-embed-container strong,.dl8-embed-container sub,.dl8-embed-container summary,.dl8-embed-container sup,.dl8-embed-container table,.dl8-embed-container tbody,.dl8-embed-container td,.dl8-embed-container textarea,.dl8-embed-container tfoot,.dl8-embed-container th,.dl8-embed-container thead,.dl8-embed-container time,.dl8-embed-container tr,.dl8-embed-container tt,.dl8-embed-container ul,.dl8-embed-container var,.dl8-embed-container video{background-attachment:scroll;background-color:transparent;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#000;border:medium none currentColor;bottom:auto;clear:none;clip:auto;color:inherit;counter-increment:none;counter-reset:none;cursor:auto;direction:inherit;display:inline;float:none;font-family:inherit;font-size:inherit;font-style:inherit;font-variant:normal;font-weight:inherit;height:auto;left:auto;letter-spacing:normal;line-height:inherit;list-style-type:inherit;list-style-position:outside;list-style-image:none;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;outline:medium none invert;overflow:visible;padding:0;position:static;quotes:"" "";right:auto;table-layout:auto;text-align:inherit;text-decoration:inherit;text-indent:0;text-transform:none;top:auto;unicode-bidi:normal;vertical-align:baseline;visibility:inherit;white-space:normal;width:auto;word-spacing:normal;z-index:auto;background-origin:padding-box;background-clip:border-box;background-size:auto;-o-border-image:none;border-image:none;border-radius:0;box-shadow:none;box-sizing:content-box;-webkit-column-count:auto;-moz-column-count:auto;column-count:auto;-webkit-column-gap:normal;-moz-column-gap:normal;column-gap:normal;-webkit-column-rule:medium none #000;-moz-column-rule:medium none #000;column-rule:medium none #000;-webkit-column-span:1;-moz-column-span:1;column-span:1;-webkit-column-width:auto;-moz-column-width:auto;column-width:auto;-webkit-font-feature-settings:normal;-moz-font-feature-settings:normal;font-feature-settings:normal;overflow-x:visible;overflow-y:visible;-webkit-hyphens:manual;-moz-hyphens:manual;-ms-hyphens:manual;hyphens:manual;-webkit-perspective:none;-ms-perspective:none;-o-perspective:none;perspective:none;-webkit-perspective-origin:50% 50%;-ms-perspective-origin:50% 50%;-o-perspective-origin:50% 50%;perspective-origin:50% 50%;-webkit-backface-visibility:visible;backface-visibility:visible;text-shadow:none;-o-transition:all 0s ease 0s;transition:all 0s ease 0s;-webkit-transform:none;-o-transform:none;transform:none;-webkit-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform-style:flat;transform-style:flat;word-break:normal}#dl8-content-container,#dl8-content-container address,#dl8-content-container article,#dl8-content-container audio,#dl8-content-container blockquote,#dl8-content-container caption,#dl8-content-container colgroup,#dl8-content-container dd,#dl8-content-container dialog,#dl8-content-container div,#dl8-content-container dl,#dl8-content-container dt,#dl8-content-container fieldset,#dl8-content-container figure,#dl8-content-container footer,#dl8-content-container form,#dl8-content-container h1,#dl8-content-container h2,#dl8-content-container h3,#dl8-content-container h4,#dl8-content-container h5,#dl8-content-container h6,#dl8-content-container header,#dl8-content-container hgroup,#dl8-content-container hr,#dl8-content-container main,#dl8-content-container menu,#dl8-content-container nav,#dl8-content-container ol,#dl8-content-container option,#dl8-content-container p,#dl8-content-container pre,#dl8-content-container progress,#dl8-content-container section,#dl8-content-container summary,#dl8-content-container ul,#dl8-content-container video,.dl8-embed-container,.dl8-embed-container address,.dl8-embed-container article,.dl8-embed-container audio,.dl8-embed-container blockquote,.dl8-embed-container caption,.dl8-embed-container colgroup,.dl8-embed-container dd,.dl8-embed-container dialog,.dl8-embed-container div,.dl8-embed-container dl,.dl8-embed-container dt,.dl8-embed-container fieldset,.dl8-embed-container figure,.dl8-embed-container footer,.dl8-embed-container form,.dl8-embed-container h1,.dl8-embed-container h2,.dl8-embed-container h3,.dl8-embed-container h4,.dl8-embed-container h5,.dl8-embed-container h6,.dl8-embed-container header,.dl8-embed-container hgroup,.dl8-embed-container hr,.dl8-embed-container main,.dl8-embed-container menu,.dl8-embed-container nav,.dl8-embed-container ol,.dl8-embed-container option,.dl8-embed-container p,.dl8-embed-container pre,.dl8-embed-container progress,.dl8-embed-container section,.dl8-embed-container summary,.dl8-embed-container ul,.dl8-embed-container video{display:block}#dl8-content-container h1,#dl8-content-container h2,#dl8-content-container h3,#dl8-content-container h4,#dl8-content-container h5,#dl8-content-container h6,.dl8-embed-container h1,.dl8-embed-container h2,.dl8-embed-container h3,.dl8-embed-container h4,.dl8-embed-container h5,.dl8-embed-container h6{font-weight:700}#dl8-content-container h1,.dl8-embed-container h1{font-size:2em;padding:.67em 0}#dl8-content-container h2,.dl8-embed-container h2{font-size:1.5em;padding:.83em 0}#dl8-content-container h3,.dl8-embed-container h3{font-size:1.17em;padding:.83em 0}#dl8-content-container h4,.dl8-embed-container h4{font-size:1em}#dl8-content-container h5,.dl8-embed-container h5{font-size:.83em}#dl8-content-container p,.dl8-embed-container p{margin:1em 0}#dl8-content-container table,.dl8-embed-container table{display:table}#dl8-content-container thead,.dl8-embed-container thead{display:table-header-group}#dl8-content-container tbody,.dl8-embed-container tbody{display:table-row-group}#dl8-content-container tfoot,.dl8-embed-container tfoot{display:table-footer-group}#dl8-content-container tr,.dl8-embed-container tr{display:table-row}#dl8-content-container td,#dl8-content-container th,.dl8-embed-container td,.dl8-embed-container th{display:table-cell;padding:2px}#dl8-content-container ol,#dl8-content-container ul,.dl8-embed-container ol,.dl8-embed-container ul{margin:1em 0}#dl8-content-container ol li,#dl8-content-container ol ol li,#dl8-content-container ol ol ol li,#dl8-content-container ol ol ul li,#dl8-content-container ol ul ul li,#dl8-content-container ul li,#dl8-content-container ul ol ol li,#dl8-content-container ul ul li,#dl8-content-container ul ul ol li,#dl8-content-container ul ul ul li,.dl8-embed-container ol li,.dl8-embed-container ol ol li,.dl8-embed-container ol ol ol li,.dl8-embed-container ol ol ul li,.dl8-embed-container ol ul ul li,.dl8-embed-container ul li,.dl8-embed-container ul ol ol li,.dl8-embed-container ul ul li,.dl8-embed-container ul ul ol li,.dl8-embed-container ul ul ul li{list-style-position:inside;margin-top:.08em}#dl8-content-container ol ol,#dl8-content-container ol ol ol,#dl8-content-container ol ol ul,#dl8-content-container ol ul,#dl8-content-container ol ul ul,#dl8-content-container ul ol,#dl8-content-container ul ol ol,#dl8-content-container ul ul,#dl8-content-container ul ul ol,#dl8-content-container ul ul ul,.dl8-embed-container ol ol,.dl8-embed-container ol ol ol,.dl8-embed-container ol ol ul,.dl8-embed-container ol ul,.dl8-embed-container ol ul ul,.dl8-embed-container ul ol,.dl8-embed-container ul ol ol,.dl8-embed-container ul ul,.dl8-embed-container ul ul ol,.dl8-embed-container ul ul ul{padding-left:40px;margin:0}#dl8-content-container nav ol,#dl8-content-container nav ul,.dl8-embed-container nav ol,.dl8-embed-container nav ul{list-style-type:none}#dl8-content-container menu,#dl8-content-container ul,.dl8-embed-container menu,.dl8-embed-container ul{list-style-type:disc}#dl8-content-container ol,.dl8-embed-container ol{list-style-type:decimal}#dl8-content-container menu menu,#dl8-content-container menu ul,#dl8-content-container ol menu,#dl8-content-container ol ul,#dl8-content-container ul menu,#dl8-content-container ul ul,.dl8-embed-container menu menu,.dl8-embed-container menu ul,.dl8-embed-container ol menu,.dl8-embed-container ol ul,.dl8-embed-container ul menu,.dl8-embed-container ul ul{list-style-type:circle}#dl8-content-container menu menu menu,#dl8-content-container menu menu ul,#dl8-content-container menu ol menu,#dl8-content-container menu ol ul,#dl8-content-container menu ul menu,#dl8-content-container menu ul ul,#dl8-content-container ol menu menu,#dl8-content-container ol menu ul,#dl8-content-container ol ol menu,#dl8-content-container ol ol ul,#dl8-content-container ol ul menu,#dl8-content-container ol ul ul,#dl8-content-container ul menu menu,#dl8-content-container ul menu ul,#dl8-content-container ul ol menu,#dl8-content-container ul ol ul,#dl8-content-container ul ul menu,#dl8-content-container ul ul ul,.dl8-embed-container menu menu menu,.dl8-embed-container menu menu ul,.dl8-embed-container menu ol menu,.dl8-embed-container menu ol ul,.dl8-embed-container menu ul menu,.dl8-embed-container menu ul ul,.dl8-embed-container ol menu menu,.dl8-embed-container ol menu ul,.dl8-embed-container ol ol menu,.dl8-embed-container ol ol ul,.dl8-embed-container ol ul menu,.dl8-embed-container ol ul ul,.dl8-embed-container ul menu menu,.dl8-embed-container ul menu ul,.dl8-embed-container ul ol menu,.dl8-embed-container ul ol ul,.dl8-embed-container ul ul menu,.dl8-embed-container ul ul ul{list-style-type:square}#dl8-content-container li,.dl8-embed-container li{display:list-item;min-height:auto;min-width:auto;padding-left:20px}#dl8-content-container strong,.dl8-embed-container strong{font-weight:700}#dl8-content-container em,.dl8-embed-container em{font-style:italic}#dl8-content-container code,#dl8-content-container kbd,#dl8-content-container pre,#dl8-content-container samp,.dl8-embed-container code,.dl8-embed-container kbd,.dl8-embed-container pre,.dl8-embed-container samp{font-family:monospace}#dl8-content-container a,.dl8-embed-container a{color:blue;text-decoration:underline}#dl8-content-container a:visited,.dl8-embed-container a:visited{color:#529}#dl8-content-container a,#dl8-content-container a *,#dl8-content-container input[type=checkbox],#dl8-content-container input[type=radio],#dl8-content-container input[type=submit],#dl8-content-container select,.dl8-embed-container a,.dl8-embed-container a *,.dl8-embed-container input[type=checkbox],.dl8-embed-container input[type=radio],.dl8-embed-container input[type=submit],.dl8-embed-container select{cursor:pointer}#dl8-content-container button,#dl8-content-container input[type=submit],.dl8-embed-container button,.dl8-embed-container input[type=submit]{text-align:center;padding:2px 6px 3px;border-radius:4px;text-decoration:none;font-family:arial,helvetica,sans-serif;font-size:small;-webkit-appearance:push-button;color:buttontext;border:1px solid #a6a6a6;background:#d3d3d3;background:#fff;background:-o-linear-gradient(top,#fff 0,#ddd 100%,#d1d1d1 100%,#ddd 100%);background:linear-gradient(180deg,#fff 0,#ddd 100%,#d1d1d1 0,#ddd 0);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#dddddd",GradientType=0);-o-box-shadow:1px 1px 0 #eee;box-shadow:1px 1px 0 #eee;outline:medium none invert;outline:initial}#dl8-content-container button,.dl8-embed-container button{padding:1px 6px 2px;margin-right:5px}#dl8-content-container input[type=hidden],.dl8-embed-container input[type=hidden]{display:none}#dl8-content-container textarea,.dl8-embed-container textarea{-webkit-appearance:textarea;background:#fff;padding:2px;margin-left:4px;word-wrap:break-word;white-space:pre-wrap;font-size:11px;font-family:arial,helvetica,sans-serif;line-height:13px;resize:both}#dl8-content-container input,#dl8-content-container select,#dl8-content-container textarea,.dl8-embed-container input,.dl8-embed-container select,.dl8-embed-container textarea{border:1px solid #ccc}#dl8-content-container select,.dl8-embed-container select{font-size:11px;font-family:helvetica,arial,sans-serif;display:inline-block}#dl8-content-container input:focus,#dl8-content-container textarea:focus,.dl8-embed-container input:focus,.dl8-embed-container textarea:focus{outline:5px auto -webkit-focus-ring-color;outline:initial}#dl8-content-container input[type=text],.dl8-embed-container input[type=text]{background:#fff;padding:1px;font-family:serif;font-family:initial;font-size:small}#dl8-content-container input[type=checkbox],#dl8-content-container input[type=radio],.dl8-embed-container input[type=checkbox],.dl8-embed-container input[type=radio]{border:1px solid #2b2b2b;border-radius:4px;outline:intial}#dl8-content-container input[type=radio],.dl8-embed-container input[type=radio]{margin:2px 2px 3px}#dl8-content-container button:active,#dl8-content-container input[type=submit]:active,.dl8-embed-container button:active,.dl8-embed-container input[type=submit]:active{background:#3b679e;background:-o-linear-gradient(top,#3b679e 0,#2b88d9 50%,#207cca 51%,#7db9e8 100%);background:linear-gradient(180deg,#3b679e 0,#2b88d9 50%,#207cca 51%,#7db9e8);border-color:#5259b0}#dl8-content-container abbr[title],#dl8-content-container acronym[title],#dl8-content-container dfn[title],.dl8-embed-container abbr[title],.dl8-embed-container acronym[title],.dl8-embed-container dfn[title]{cursor:help;border-bottom-width:1px;border-bottom-style:dotted}#dl8-content-container ins,.dl8-embed-container ins{background-color:#ff9;color:#000}#dl8-content-container del,.dl8-embed-container del{text-decoration:line-through}#dl8-content-container blockquote,#dl8-content-container q,.dl8-embed-container blockquote,.dl8-embed-container q{quotes:none}#dl8-content-container:after q,#dl8-content-container blockquote:after,#dl8-content-container blockquote:before,#dl8-content-container li:after,#dl8-content-container li:before,#dl8-content-container q:before,.dl8-embed-container blockquote:after,.dl8-embed-container blockquote:before,.dl8-embed-container li:after,.dl8-embed-container li:before,.dl8-embed-container q:after,.dl8-embed-container q:before{content:""}#dl8-content-container input,#dl8-content-container select,.dl8-embed-container input,.dl8-embed-container select{vertical-align:middle}#dl8-content-container table,.dl8-embed-container table{border-collapse:collapse;border-spacing:0}#dl8-content-container hr,.dl8-embed-container hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0}#dl8-content-container [dir=rtl]{direction:rtl}#dl8-content-container mark,.dl8-embed-container mark{background-color:#ff9;color:#000;font-style:italic;font-weight:700}#dl8-content-container menu,.dl8-embed-container menu{padding-left:40px;padding-top:8px}#dl8-content-container [hidden],#dl8-content-container template,.dl8-embed-container template{display:none}#dl8-content-container abbr[title],.dl8-embed-container abbr[title]{border-bottom:1px dotted}#dl8-content-container sub,#dl8-content-container sup,.dl8-embed-container sub,.dl8-embed-container sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}#dl8-content-container sup,.dl8-embed-container sup{top:-.5em}#dl8-content-container sub,.dl8-embed-container sub{bottom:-.25em}#dl8-content-container img,.dl8-embed-container img{border:0}#dl8-content-container figure,.dl8-embed-container figure{margin:0}#dl8-content-container textarea,.dl8-embed-container textarea{overflow:auto;vertical-align:top}#dl8-content-container,.dl8-embed-container{font-size:medium;line-height:1;direction:ltr;text-align:left}[dir=ltr] #dl8-content-container,[dir=ltr] .dl8-embed-container{text-align:left}[dir=rtl] #dl8-content-container,[dir=rtl] .dl8-embed-container{text-align:right}#dl8-content-container,.dl8-embed-container{font-family:Times New Roman,Times,serif;color:#000;font-style:normal;font-weight:400;text-decoration:none;list-style-type:disc}#dl8-content-container pre,.dl8-embed-container pre{white-space:pre}@font-face{font-family:dl8-elements;src:url('+n(890)+') format("truetype"),url('+n(891)+') format("woff"),url('+n(867)+') format("svg");font-weight:400;font-style:normal}.dl8-active>.dl8-embed-container{display:none!important}.dl8-embed-container{width:100%!important;height:100%!important;position:absolute!important;z-index:99999999999999!important;top:0!important;left:0!important;display:-webkit-flex!important;display:flex!important;-webkit-justify-content:center!important;justify-content:center!important;-webkit-align-content:center!important;align-content:center!important;-webkit-align-items:center!important;align-items:center!important;-webkit-flex-direction:column!important;flex-direction:column!important}.dl8-embed-container .dl8-icon-embed{cursor:pointer;display:inline-block;pointer-events:auto;font-family:dl8-elements;speak:none;font-style:normal;font-weight:400;-webkit-font-feature-settings:normal;-moz-font-feature-settings:normal;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:17.6px;color:#fff;font-size:25.6px;vertical-align:middle;margin-top:-1px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dl8-embed-container .dl8-icon-embed:active{-webkit-filter:drop-shadow(0 0 10px #fff);filter:drop-shadow(0 0 10px #fff)}.dl8-embed-container .dl8-icon-embed.iconVideo:before{content:"\\E906"}.dl8-embed-container .dl8-icon-embed.iconTour:before{content:"\\E902"}.dl8-embed-container .dl8-icon-embed.iconModel:before{content:"\\E900"}.dl8-embed-container .dl8-icon-embed.iconIbr:before{content:"\\E901"}.dl8-embed-container .dl8-icon-embed.iconHub:before{content:"\\E903"}.dl8-embed-container .dl8-icon-embed.iconImage:before{content:"\\E905"}.dl8-embed-container .dl8-icon-embed.iconCinema:before{content:"\\E907"}.dl8-embed-container .dl8-icon-embed.iconLive{line-height:11px}.dl8-embed-container .dl8-icon-embed.iconLive:before{content:"\\E908";position:relative;font-size:11px;top:-4.5px;padding-right:3px;padding-left:2px}.dl8-embed-container .dl8-button{width:100px;height:100px;background-repeat:no-repeat;background-position:26px;background-size:48px;border:none;border-radius:50%;padding:0;color:inherit;text-align:inherit;font-size:100%;font-family:inherit;line-height:inherit;outline:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3;cursor:pointer;transition:-webkit-transform .1s ease-in-out;-o-transition:-o-transform .1s ease-in-out;transition:transform .1s ease-in-out;transition:transform .1s ease-in-out,-webkit-transform .1s ease-in-out,-o-transform .1s ease-in-out;box-shadow:none}.dl8-embed-container .dl8-button ::-moz-focus-inner{border:0}.dl8-embed-container .dl8-button:hover{-webkit-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}.dl8-embed-container .dl8-button:active,.dl8-embed-container .dl8-button:hover{background-repeat:no-repeat;background-position:26px;background-size:48px;border:none}.dl8-embed-container .dl8-button:active{-webkit-transform:scale(.95);-o-transform:scale(.95);transform:scale(.95)}.dl8-embed-container .dl8-button:after{display:none!important}.dl8-embed-container .dl8-play-button{background-image:url('+n(241)+")}.dl8-embed-container .dl8-play-button:hover{background-image:url("+n(241)+")}.dl8-embed-container .dl8-play-button:active{background-image:url("+n(241)+")}.dl8-embed-container .dl8-faulty-tag{background-image:url("+n(169)+")}.dl8-embed-container .dl8-faulty-tag:hover{background-image:url("+n(169)+")}.dl8-embed-container .dl8-faulty-tag:active{background-image:url("+n(169)+")}.dl8-embed-container .dl8-play-button-hidden{display:none}.dl8-embed-container .dl8-faulty-tag-text{color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;letter-spacing:1.92px;font-size:13.2px;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent;overflow:hidden;line-height:18px;max-width:500px;margin:10px;padding:4px 8px;background:#000;text-align:center;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dl8-embed-container .dl8-logo{position:absolute;top:15px;right:15px;z-index:2;width:90px;text-align:right}.dl8-embed-container .dl8-logo>img{max-width:90px;max-height:32px}.dl8-embed-container .dl8-logo>img:hover{opacity:.8;border:0}.dl8-embed-container .dl8-title{position:absolute;top:17px;left:15px;z-index:2;max-width:calc(100% - 160px)}.dl8-embed-container .dl8-title>h3{letter-spacing:1.92px;font-size:17.6px;line-height:19.2px}.dl8-embed-container .dl8-title>h3,.dl8-embed-container .dl8-title>p{color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin:0;padding:0;text-align:left}.dl8-embed-container .dl8-title>p{letter-spacing:.48px;opacity:.7;font-size:12.8px;line-height:24px}.dl8-embed-container .dl8-title>p>a{letter-spacing:.48px;color:inherit}.dl8-embed-container .dl8-tags{position:absolute;bottom:15px;left:15px;z-index:2;cursor:default}.dl8-embed-container .dl8-tags>div{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:#fff;letter-spacing:.48px;font-size:11.52px;padding:3px 11px 2px 6px;line-height:16px;margin:0 2px;border-radius:12px;cursor:inherit;border:1px solid #fff;font-style:inherit}.dl8-embed-container .dl8-gradient-bottom,.dl8-embed-container .dl8-gradient-top{position:absolute;left:0;display:block;width:100%;height:100px;z-index:1}.dl8-embed-container .dl8-gradient-top{top:0;background:-o-linear-gradient(top,rgba(0,0,0,.4) 0,rgba(0,0,0,.05) 80%,transparent 100%);background:linear-gradient(180deg,rgba(0,0,0,.4) 0,rgba(0,0,0,.05) 80%,transparent)}.dl8-embed-container .dl8-gradient-bottom{bottom:0;background:-o-linear-gradient(bottom,rgba(0,0,0,.4) 0,rgba(0,0,0,.05) 80%,transparent 100%);background:linear-gradient(0deg,rgba(0,0,0,.4) 0,rgba(0,0,0,.05) 80%,transparent)}.dl8-loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:999;display:-webkit-flex;display:flex;-webkit-align-content:center;align-content:center;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}#dl8-content-container{overflow:hidden}",""]); },,function(e,t,n){t=e.exports=n(20)(),t.push([e.id,"#dl8-content-container .loaderWrapper,.loaderWrapper{z-index:100}#dl8-content-container .loaderWrapper>.loader,.loaderWrapper>.loader{margin:10px auto;font-size:5px;position:relative;text-indent:-9999em;border-top:.5em solid hsla(0,0%,100%,.2);border-right:.5em solid hsla(0,0%,100%,.2);border-bottom:.5em solid hsla(0,0%,100%,.2);-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 2s infinite linear;-o-animation:load8 2s infinite linear;animation:load8 2s infinite linear}#dl8-content-container .loaderWrapper .loader,#dl8-content-container .loaderWrapper .loader:after,.loaderWrapper .loader,.loaderWrapper .loader:after{border-radius:50%;width:10em;height:10em}#dl8-content-container .loaderWrapper>span,.loaderWrapper>span{position:absolute;top:calc(50% + 42px);left:calc(50% - 14px);font-size:12.8px;font-family:Open Sans,Helvetica,Arial,sans-serif;letter-spacing:.8px}@-webkit-keyframes load8{0%{-webkit-transform:rotate(-55deg);transform:rotate(-55deg)}87%{-webkit-transform:rotate(935deg);transform:rotate(935deg)}to{-webkit-transform:rotate(1025deg);transform:rotate(1025deg)}}@-o-keyframes load8{0%{-o-transform:rotate(-55deg);transform:rotate(-55deg)}87%{-o-transform:rotate(935deg);transform:rotate(935deg)}to{-o-transform:rotate(1025deg);transform:rotate(1025deg)}}@keyframes load8{0%{-webkit-transform:rotate(-55deg);-o-transform:rotate(-55deg);transform:rotate(-55deg)}87%{-webkit-transform:rotate(935deg);-o-transform:rotate(935deg);transform:rotate(935deg)}to{-webkit-transform:rotate(1025deg);-o-transform:rotate(1025deg);transform:rotate(1025deg)}}",""])},,,,,,,,,,,,,,,,,,,,,,,function(e,t){/*! (C) Andrea Giammarchi - @WebReflection - Mit Style License */ !function(e,t){"use strict";function n(){var e=C.splice(0,C.length);for(qe=0;e.length;)e.shift().call(null,e.shift())}function r(e,t){for(var n=0,r=e.length;n<r;n++)A(e[n],t)}function i(e){for(var t,n=0,r=e.length;n<r;n++)t=e[n],L(t,ie[o(t)])}function a(e){return function(t){Be(t)&&(A(t,e),ae.length&&r(t.querySelectorAll(ae),e))}}function o(e){var t=Ge.call(e,"is"),n=e.nodeName.toUpperCase(),r=se.call(re,t?ee+t.toUpperCase():$+n);return t&&-1<r&&!s(n,t)?-1:r}function s(e,t){return-1<ae.indexOf(e+'[is="'+t+'"]')}function l(e){var t=e.currentTarget,n=e.attrChange,r=e.attrName,i=e.target,a=e[j]||2,o=e[q]||3;tt&&(!i||i===t)&&t[G]&&"style"!==r&&(e.prevValue!==e.newValue||""===e.newValue&&(n===a||n===o))&&t[G](r,n===a?null:e.prevValue,n===o?null:e.newValue)}function u(e){var t=a(e);return function(e){C.push(t,e.target),qe&&clearTimeout(qe),qe=setTimeout(n,1)}}function d(e){et&&(et=!1,e.currentTarget.removeEventListener(K,d)),ae.length&&r((e.target||T).querySelectorAll(ae),e.detail===U?U:F),Oe&&h()}function c(e,t){var n=this;Qe.call(n,e,t),w.call(n,{target:n})}function f(e,t){Re(e,t),P?P.observe(e,je):($e&&(e.setAttribute=c,e[N]=D(e),e[B](J,w)),e[B](Z,l)),e[X]&&tt&&(e.created=!0,e[X](),e.created=!1)}function h(){for(var e,t=0,n=Fe.length;t<n;t++)e=Fe[t],oe.contains(e)||(n--,Fe.splice(t--,1),A(e,U))}function _(e){throw new Error("A "+e+" type is already registered")}function A(e,t){var n,r,i=o(e);-1<i&&(I(e,ie[i]),i=0,t!==F||e[F]?t===U&&!e[U]&&(e[F]=!1,e[U]=!0,r="disconnected",i=1):(e[U]=!1,e[F]=!0,r="connected",i=1,Oe&&se.call(Fe,e)<0&&Fe.push(e)),i&&(n=e[t+k]||e[r+k])&&n.call(e))}function m(){}function p(e,t,n){var r=n&&n[V]||"",i=t.prototype,a=Pe(i),o=t.observedAttributes||fe,s={prototype:a};Ne(a,X,{value:function(){if(ye)ye=!1;else if(!this[Ee]){this[Ee]=!0,new t(this),i[X]&&i[X].call(this);var e=Ce[Me.get(t)];(!be||e.create.length>1)&&v(this)}}}),Ne(a,G,{value:function(e){-1<se.call(o,e)&&i[G].apply(this,arguments)}}),i[z]&&Ne(a,H,{value:i[z]}),i[Q]&&Ne(a,W,{value:i[Q]}),r&&(s[V]=r),e=e.toUpperCase(),Ce[e]={constructor:t,create:r?[r,De(e)]:[e]},Me.set(t,e),T[O](e.toLowerCase(),s),b(e),we[e].r()}function g(e){var t=Ce[e.toUpperCase()];return t&&t.constructor}function E(e){return"string"==typeof e?e:e&&e.is||""}function v(e){for(var t,n=e[G],r=n?e.attributes:fe,i=r.length;i--;)t=r[i],n.call(e,t.name||t.nodeName,null,t.value||t.nodeValue)}function b(e){return e=e.toUpperCase(),e in we||(we[e]={},we[e].p=new xe(function(t){we[e].r=t})),we[e].p}function S(){ve&&delete e.customElements,ce(e,"customElements",{configurable:!0,value:new m}),ce(e,"CustomElementRegistry",{configurable:!0,value:m});for(var t=function(t){var n=e[t];if(n){e[t]=function(e){var t,r;return e||(e=this),e[Ee]||(ye=!0,t=Ce[Me.get(e.constructor)],r=be&&1===t.create.length,e=r?Reflect.construct(n,fe,t.constructor):T.createElement.apply(T,t.create),e[Ee]=!0,ye=!1,r||v(e)),e},e[t].prototype=n.prototype;try{n.prototype.constructor=e[t]}catch(r){ge=!0,ce(n,Ee,{value:e[t]})}}},n=y.get(/^HTML[A-Z]*[a-z]/),r=n.length;r--;t(n[r]));T.createElement=function(e,t){var n=E(t);return n?We.call(this,e,De(n)):We.call(this,e)},Ze||(Je=!0,T[O](""))}var T=e.document,x=e.Object,y=function(e){var t,n,r,i,a=/^[A-Z]+[a-z]/,o=function(e){var t,n=[];for(t in l)e.test(t)&&n.push(t);return n},s=function(e,t){t=t.toLowerCase(),t in l||(l[e]=(l[e]||[]).concat(t),l[t]=l[t.toUpperCase()]=e)},l=(x.create||x)(null),u={};for(n in e)for(i in e[n])for(r=e[n][i],l[i]=r,t=0;t<r.length;t++)l[r[t].toLowerCase()]=l[r[t].toUpperCase()]=i;return u.get=function(e){return"string"==typeof e?l[e]||(a.test(e)?[]:""):o(e)},u.set=function(e,t){return a.test(e)?s(e,t):s(t,e),u},u}({collections:{HTMLAllCollection:["all"],HTMLCollection:["forms"],HTMLFormControlsCollection:["elements"],HTMLOptionsCollection:["options"]},elements:{Element:["element"],HTMLAnchorElement:["a"],HTMLAppletElement:["applet"],HTMLAreaElement:["area"],HTMLAttachmentElement:["attachment"],HTMLAudioElement:["audio"],HTMLBRElement:["br"],HTMLBaseElement:["base"],HTMLBodyElement:["body"],HTMLButtonElement:["button"],HTMLCanvasElement:["canvas"],HTMLContentElement:["content"],HTMLDListElement:["dl"],HTMLDataElement:["data"],HTMLDataListElement:["datalist"],HTMLDetailsElement:["details"],HTMLDialogElement:["dialog"],HTMLDirectoryElement:["dir"],HTMLDivElement:["div"],HTMLDocument:["document"],HTMLElement:["element","abbr","address","article","aside","b","bdi","bdo","cite","code","command","dd","dfn","dt","em","figcaption","figure","footer","header","i","kbd","mark","nav","noscript","rp","rt","ruby","s","samp","section","small","strong","sub","summary","sup","u","var","wbr"],HTMLEmbedElement:["embed"],HTMLFieldSetElement:["fieldset"],HTMLFontElement:["font"],HTMLFormElement:["form"],HTMLFrameElement:["frame"],HTMLFrameSetElement:["frameset"],HTMLHRElement:["hr"],HTMLHeadElement:["head"],HTMLHeadingElement:["h1","h2","h3","h4","h5","h6"],HTMLHtmlElement:["html"],HTMLIFrameElement:["iframe"],HTMLImageElement:["img"],HTMLInputElement:["input"],HTMLKeygenElement:["keygen"],HTMLLIElement:["li"],HTMLLabelElement:["label"],HTMLLegendElement:["legend"],HTMLLinkElement:["link"],HTMLMapElement:["map"],HTMLMarqueeElement:["marquee"],HTMLMediaElement:["media"],HTMLMenuElement:["menu"],HTMLMenuItemElement:["menuitem"],HTMLMetaElement:["meta"],HTMLMeterElement:["meter"],HTMLModElement:["del","ins"],HTMLOListElement:["ol"],HTMLObjectElement:["object"],HTMLOptGroupElement:["optgroup"],HTMLOptionElement:["option"],HTMLOutputElement:["output"],HTMLParagraphElement:["p"],HTMLParamElement:["param"],HTMLPictureElement:["picture"],HTMLPreElement:["pre"],HTMLProgressElement:["progress"],HTMLQuoteElement:["blockquote","q","quote"],HTMLScriptElement:["script"],HTMLSelectElement:["select"],HTMLShadowElement:["shadow"],HTMLSlotElement:["slot"],HTMLSourceElement:["source"],HTMLSpanElement:["span"],HTMLStyleElement:["style"],HTMLTableCaptionElement:["caption"],HTMLTableCellElement:["td","th"],HTMLTableColElement:["col","colgroup"],HTMLTableElement:["table"],HTMLTableRowElement:["tr"],HTMLTableSectionElement:["thead","tbody","tfoot"],HTMLTemplateElement:["template"],HTMLTextAreaElement:["textarea"],HTMLTimeElement:["time"],HTMLTitleElement:["title"],HTMLTrackElement:["track"],HTMLUListElement:["ul"],HTMLUnknownElement:["unknown","vhgroupv","vkeygen"],HTMLVideoElement:["video"]},nodes:{Attr:["node"],Audio:["audio"],CDATASection:["node"],CharacterData:["node"],Comment:["#comment"],Document:["#document"],DocumentFragment:["#document-fragment"],DocumentType:["node"],HTMLDocument:["#document"],Image:["img"],Option:["option"],ProcessingInstruction:["node"],ShadowRoot:["#shadow-root"],Text:["#text"],XMLDocument:["xml"]}});"object"!=typeof t&&(t={type:t||"auto"});var C,w,M,D,P,R,I,L,O="registerElement",N="__"+O+(1e5*e.Math.random()>>0),B="addEventListener",F="attached",k="Callback",U="detached",V="extends",G="attributeChanged"+k,H=F+k,z="connected"+k,Q="disconnected"+k,X="created"+k,W=U+k,j="ADDITION",Y="MODIFICATION",q="REMOVAL",Z="DOMAttrModified",K="DOMContentLoaded",J="DOMSubtreeModified",$="<",ee="=",te=/^[A-Z][A-Z0-9]*(?:-[A-Z0-9]+)+$/,ne=["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"],re=[],ie=[],ae="",oe=T.documentElement,se=re.indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},le=x.prototype,ue=le.hasOwnProperty,de=le.isPrototypeOf,ce=x.defineProperty,fe=[],he=x.getOwnPropertyDescriptor,_e=x.getOwnPropertyNames,Ae=x.getPrototypeOf,me=x.setPrototypeOf,pe=!!x.__proto__,ge=!1,Ee="__dreCEv1",ve=e.customElements,be=!/^force/.test(t.type)&&!!(ve&&ve.define&&ve.get&&ve.whenDefined),Se=x.create||x,Te=e.Map||function(){var e,t=[],n=[];return{get:function(e){return n[se.call(t,e)]},set:function(r,i){e=se.call(t,r),e<0?n[t.push(r)-1]=i:n[e]=i}}},xe=e.Promise||function(e){function t(e){for(r=!0;n.length;)n.shift()(e)}var n=[],r=!1,i={catch:function(){return i},then:function(e){return n.push(e),r&&setTimeout(t,1),i}};return e(t),i},ye=!1,Ce=Se(null),we=Se(null),Me=new Te,De=function(e){return e.toLowerCase()},Pe=x.create||function e(t){return t?(e.prototype=t,new e):this},Re=me||(pe?function(e,t){return e.__proto__=t,e}:_e&&he?function(){function e(e,t){for(var n,r=_e(t),i=0,a=r.length;i<a;i++)n=r[i],ue.call(e,n)||ce(e,n,he(t,n))}return function(t,n){do e(t,n);while((n=Ae(n))&&!de.call(n,t));return t}}():function(e,t){for(var n in t)e[n]=t[n];return e}),Ie=e.MutationObserver||e.WebKitMutationObserver,Le=(e.HTMLElement||e.Element||e.Node).prototype,Oe=!de.call(Le,oe),Ne=Oe?function(e,t,n){return e[t]=n.value,e}:ce,Be=Oe?function(e){return 1===e.nodeType}:function(e){return de.call(Le,e)},Fe=Oe&&[],ke=Le.attachShadow,Ue=Le.cloneNode,Ve=Le.dispatchEvent,Ge=Le.getAttribute,He=Le.hasAttribute,ze=Le.removeAttribute,Qe=Le.setAttribute,Xe=T.createElement,We=Xe,je=Ie&&{attributes:!0,characterData:!0,attributeOldValue:!0},Ye=Ie||function(e){$e=!1,oe.removeEventListener(Z,Ye)},qe=0,Ze=O in T&&!/^force-all/.test(t.type),Ke=!0,Je=!1,$e=!0,et=!0,tt=!0;if(Ze||(me||pe?(I=function(e,t){de.call(t,e)||f(e,t)},L=f):(I=function(e,t){e[N]||(e[N]=x(!0),f(e,t))},L=I),Oe?($e=!1,function(){var e=he(Le,B),t=e.value,n=function(e){var t=new CustomEvent(Z,{bubbles:!0});t.attrName=e,t.prevValue=Ge.call(this,e),t.newValue=null,t[q]=t.attrChange=2,ze.call(this,e),Ve.call(this,t)},r=function(e,t){var n=He.call(this,e),r=n&&Ge.call(this,e),i=new CustomEvent(Z,{bubbles:!0});Qe.call(this,e,t),i.attrName=e,i.prevValue=n?r:null,i.newValue=t,n?i[Y]=i.attrChange=1:i[j]=i.attrChange=0,Ve.call(this,i)},i=function(e){var t,n=e.currentTarget,r=n[N],i=e.propertyName;r.hasOwnProperty(i)&&(r=r[i],t=new CustomEvent(Z,{bubbles:!0}),t.attrName=r.name,t.prevValue=r.value||null,t.newValue=r.value=n[i]||null,null==t.prevValue?t[j]=t.attrChange=0:t[Y]=t.attrChange=1,Ve.call(n,t))};e.value=function(e,a,o){e===Z&&this[G]&&this.setAttribute!==r&&(this[N]={className:{name:"class",value:this.className}},this.setAttribute=r,this.removeAttribute=n,t.call(this,"propertychange",i)),t.call(this,e,a,o)},ce(Le,B,e)}()):Ie||(oe[B](Z,Ye),oe.setAttribute(N,1),oe.removeAttribute(N),$e&&(w=function(e){var t,n,r,i=this;if(i===e.target){t=i[N],i[N]=n=D(i);for(r in n){if(!(r in t))return M(0,i,r,t[r],n[r],j);if(n[r]!==t[r])return M(1,i,r,t[r],n[r],Y)}for(r in t)if(!(r in n))return M(2,i,r,t[r],n[r],q)}},M=function(e,t,n,r,i,a){var o={attrChange:e,currentTarget:t,attrName:n,prevValue:r,newValue:i};o[a]=e,l(o)},D=function(e){for(var t,n,r={},i=e.attributes,a=0,o=i.length;a<o;a++)t=i[a],n=t.name,"setAttribute"!==n&&(r[n]=t.value);return r})),T[O]=function(e,t){if(n=e.toUpperCase(),Ke&&(Ke=!1,Ie?(P=function(e,t){function n(e,t){for(var n=0,r=e.length;n<r;t(e[n++]));}return new Ie(function(r){for(var i,a,o,s=0,l=r.length;s<l;s++)i=r[s],"childList"===i.type?(n(i.addedNodes,e),n(i.removedNodes,t)):(a=i.target,tt&&a[G]&&"style"!==i.attributeName&&(o=Ge.call(a,i.attributeName),o!==i.oldValue&&a[G](i.attributeName,i.oldValue,o)))})}(a(F),a(U)),R=function(e){return P.observe(e,{childList:!0,subtree:!0}),e},R(T),ke&&(Le.attachShadow=function(){return R(ke.apply(this,arguments))})):(C=[],T[B]("DOMNodeInserted",u(F)),T[B]("DOMNodeRemoved",u(U))),T[B](K,d),T[B]("readystatechange",d),Le.cloneNode=function(e){var t=Ue.call(this,!!e),n=o(t);return-1<n&&L(t,ie[n]),e&&ae.length&&i(t.querySelectorAll(ae)),t}),Je)return Je=!1;if(-2<se.call(re,ee+n)+se.call(re,$+n)&&_(e),!te.test(n)||-1<se.call(ne,n))throw new Error("The type "+e+" is invalid");var n,s,l=function(){return f?T.createElement(h,n):T.createElement(h)},c=t||le,f=ue.call(c,V),h=f?t[V].toUpperCase():n;return f&&-1<se.call(re,$+h)&&_(h),s=re.push((f?ee:$)+n)-1,ae=ae.concat(ae.length?",":"",f?h+'[is="'+e.toLowerCase()+'"]':h),l.prototype=ie[s]=ue.call(c,"prototype")?c.prototype:Pe(Le),ae.length&&r(T.querySelectorAll(ae),F),l},T.createElement=We=function(e,t){var n=E(t),r=n?Xe.call(T,e,De(n)):Xe.call(T,e),i=""+e,a=se.call(re,(n?ee:$)+(n||i).toUpperCase()),o=-1<a;return n&&(r.setAttribute("is",n=n.toLowerCase()),o&&(o=s(i.toUpperCase(),n))),tt=!T.createElement.innerHTMLHelper,o&&L(r,ie[a]),r}),m.prototype={constructor:m,define:be?function(e,t,n){if(n)p(e,t,n);else{var r=e.toUpperCase();Ce[r]={constructor:t,create:[r]},Me.set(t,r),ve.define(e,t)}}:p,get:be?function(e){return ve.get(e)||g(e)}:g,whenDefined:be?function(e){return xe.race([ve.whenDefined(e),b(e)])}:b},!ve||/^force/.test(t.type))S();else if(!t.noBuiltIn)try{!function(t,n,r){if(n[V]="a",t.prototype=Pe(HTMLAnchorElement.prototype),t.prototype.constructor=t,e.customElements.define(r,t,n),Ge.call(T.createElement("a",{is:r}),"is")!==r||be&&Ge.call(new t,"is")!==r)throw n}(function e(){return Reflect.construct(HTMLAnchorElement,[],e)},{},"document-register-element-a")}catch(e){S()}if(!t.noBuiltIn)try{Xe.call(T,"a","a")}catch(e){De=function(e){return{is:e.toLowerCase()}}}}(window)},,,function(e,t,n){(function(e){(function(){var t,n,r,i,a,o,s,l,u;n={},l=this,"undefined"!=typeof e&&null!==e&&e.exports?e.exports=n:l.ipaddr=n,s=function(e,t,n,r){var i,a;if(e.length!==t.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(i=0;r>0;){if(a=n-r,a<0&&(a=0),e[i]>>a!==t[i]>>a)return!1;r-=n,i+=1}return!0},n.subnetMatch=function(e,t,n){var r,i,a,o,s;null==n&&(n="unicast");for(a in t)for(o=t[a],!o[0]||o[0]instanceof Array||(o=[o]),r=0,i=o.length;r<i;r++)if(s=o[r],e.kind()===s[0].kind()&&e.match.apply(e,s))return a;return n},n.IPv4=function(){function e(e){var t,n,r;if(4!==e.length)throw new Error("ipaddr: ipv4 octet count should be 4");for(t=0,n=e.length;t<n;t++)if(r=e[t],!(0<=r&&r<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=e}return e.prototype.kind=function(){return"ipv4"},e.prototype.toString=function(){return this.octets.join(".")},e.prototype.toNormalizedString=function(){return this.toString()},e.prototype.toByteArray=function(){return this.octets.slice(0)},e.prototype.match=function(e,t){var n;if(void 0===t&&(n=e,e=n[0],t=n[1]),"ipv4"!==e.kind())throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return s(this.octets,e.octets,8,t)},e.prototype.SpecialRanges={unspecified:[[new e([0,0,0,0]),8]],broadcast:[[new e([255,255,255,255]),32]],multicast:[[new e([224,0,0,0]),4]],linkLocal:[[new e([169,254,0,0]),16]],loopback:[[new e([127,0,0,0]),8]],carrierGradeNat:[[new e([100,64,0,0]),10]],private:[[new e([10,0,0,0]),8],[new e([172,16,0,0]),12],[new e([192,168,0,0]),16]],reserved:[[new e([192,0,0,0]),24],[new e([192,0,2,0]),24],[new e([192,88,99,0]),24],[new e([198,51,100,0]),24],[new e([203,0,113,0]),24],[new e([240,0,0,0]),4]]},e.prototype.range=function(){return n.subnetMatch(this,this.SpecialRanges)},e.prototype.toIPv4MappedAddress=function(){return n.IPv6.parse("::ffff:"+this.toString())},e.prototype.prefixLengthFromSubnetMask=function(){var e,t,n,r,i,a,o;for(o={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},e=0,i=!1,t=n=3;n>=0;t=n+=-1){if(r=this.octets[t],!(r in o))return null;if(a=o[r],i&&0!==a)return null;8!==a&&(i=!0),e+=a}return 32-e},e}(),r="(0?\\d+|0x[a-f0-9]+)",i={fourOctet:new RegExp("^"+r+"\\."+r+"\\."+r+"\\."+r+"$","i"),longValue:new RegExp("^"+r+"$","i")},n.IPv4.parser=function(e){var t,n,r,a,o;if(n=function(e){return"0"===e[0]&&"x"!==e[1]?parseInt(e,8):parseInt(e)},t=e.match(i.fourOctet))return function(){var e,i,a,o;for(a=t.slice(1,6),o=[],e=0,i=a.length;e<i;e++)r=a[e],o.push(n(r));return o}();if(t=e.match(i.longValue)){if(o=n(t[1]),o>4294967295||o<0)throw new Error("ipaddr: address outside defined range");return function(){var e,t;for(t=[],a=e=0;e<=24;a=e+=8)t.push(o>>a&255);return t}().reverse()}return null},n.IPv6=function(){function e(e,t){var n,r,i,a,o,s;if(16===e.length)for(this.parts=[],n=r=0;r<=14;n=r+=2)this.parts.push(e[n]<<8|e[n+1]);else{if(8!==e.length)throw new Error("ipaddr: ipv6 part count should be 8 or 16");this.parts=e}for(s=this.parts,i=0,a=s.length;i<a;i++)if(o=s[i],!(0<=o&&o<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");t&&(this.zoneId=t)}return e.prototype.kind=function(){return"ipv6"},e.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},e.prototype.toRFC5952String=function(){var e,t,n,r,i;for(r=/((^|:)(0(:|$)){2,})/g,i=this.toNormalizedString(),e=0,t=-1;n=r.exec(i);)n[0].length>t&&(e=n.index,t=n[0].length);return t<0?i:i.substring(0,e)+"::"+i.substring(e+t)},e.prototype.toByteArray=function(){var e,t,n,r,i;for(e=[],i=this.parts,t=0,n=i.length;t<n;t++)r=i[t],e.push(r>>8),e.push(255&r);return e},e.prototype.toNormalizedString=function(){var e,t,n;return e=function(){var e,n,r,i;for(r=this.parts,i=[],e=0,n=r.length;e<n;e++)t=r[e],i.push(t.toString(16));return i}.call(this).join(":"),n="",this.zoneId&&(n="%"+this.zoneId),e+n},e.prototype.toFixedLengthString=function(){var e,t,n;return e=function(){var e,n,r,i;for(r=this.parts,i=[],e=0,n=r.length;e<n;e++)t=r[e],i.push(t.toString(16).padStart(4,"0"));return i}.call(this).join(":"),n="",this.zoneId&&(n="%"+this.zoneId),e+n},e.prototype.match=function(e,t){var n;if(void 0===t&&(n=e,e=n[0],t=n[1]),"ipv6"!==e.kind())throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return s(this.parts,e.parts,16,t)},e.prototype.SpecialRanges={unspecified:[new e([0,0,0,0,0,0,0,0]),128],linkLocal:[new e([65152,0,0,0,0,0,0,0]),10],multicast:[new e([65280,0,0,0,0,0,0,0]),8],loopback:[new e([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new e([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new e([0,0,0,0,0,65535,0,0]),96],rfc6145:[new e([0,0,0,0,65535,0,0,0]),96],rfc6052:[new e([100,65435,0,0,0,0,0,0]),96],"6to4":[new e([8194,0,0,0,0,0,0,0]),16],teredo:[new e([8193,0,0,0,0,0,0,0]),32],reserved:[[new e([8193,3512,0,0,0,0,0,0]),32]]},e.prototype.range=function(){return n.subnetMatch(this,this.SpecialRanges)},e.prototype.isIPv4MappedAddress=function(){return"ipv4Mapped"===this.range()},e.prototype.toIPv4Address=function(){var e,t,r;if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");return r=this.parts.slice(-2),e=r[0],t=r[1],new n.IPv4([e>>8,255&e,t>>8,255&t])},e.prototype.prefixLengthFromSubnetMask=function(){var e,t,n,r,i,a,o;for(o={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},e=0,i=!1,t=n=7;n>=0;t=n+=-1){if(r=this.parts[t],!(r in o))return null;if(a=o[r],i&&0!==a)return null;16!==a&&(i=!0),e+=a}return 128-e},e}(),a="(?:[0-9a-f]+::?)+",u="%[0-9a-z]{1,}",o={zoneIndex:new RegExp(u,"i"),native:new RegExp("^(::)?("+a+")?([0-9a-f]+)?(::)?("+u+")?$","i"),transitional:new RegExp("^((?:"+a+")|(?:::)(?:"+a+")?)"+(r+"\\."+r+"\\."+r+"\\."+r)+("("+u+")?$"),"i")},t=function(e,t){var n,r,i,a,s,l;if(e.indexOf("::")!==e.lastIndexOf("::"))return null;for(l=(e.match(o.zoneIndex)||[])[0],l&&(l=l.substring(1),e=e.replace(/%.+$/,"")),n=0,r=-1;(r=e.indexOf(":",r+1))>=0;)n++;if("::"===e.substr(0,2)&&n--,"::"===e.substr(-2,2)&&n--,n>t)return null;for(s=t-n,a=":";s--;)a+="0:";return e=e.replace("::",a),":"===e[0]&&(e=e.slice(1)),":"===e[e.length-1]&&(e=e.slice(0,-1)),t=function(){var t,n,r,a;for(r=e.split(":"),a=[],t=0,n=r.length;t<n;t++)i=r[t],a.push(parseInt(i,16));return a}(),{parts:t,zoneId:l}},n.IPv6.parser=function(e){var n,r,i,a,s,l,u;if(o.native.test(e))return t(e,8);if((a=e.match(o.transitional))&&(u=a[6]||"",n=t(a[1].slice(0,-1)+u,6),n.parts)){for(l=[parseInt(a[2]),parseInt(a[3]),parseInt(a[4]),parseInt(a[5])],r=0,i=l.length;r<i;r++)if(s=l[r],!(0<=s&&s<=255))return null;return n.parts.push(l[0]<<8|l[1]),n.parts.push(l[2]<<8|l[3]),{parts:n.parts,zoneId:n.zoneId}}return null},n.IPv4.isIPv4=n.IPv6.isIPv6=function(e){return null!==this.parser(e)},n.IPv4.isValid=function(e){var t;try{return new this(this.parser(e)),!0}catch(e){return t=e,!1}},n.IPv4.isValidFourPartDecimal=function(e){return!(!n.IPv4.isValid(e)||!e.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},n.IPv6.isValid=function(e){var t,n;if("string"==typeof e&&e.indexOf(":")===-1)return!1;try{return t=this.parser(e),new this(t.parts,t.zoneId),!0}catch(e){return n=e,!1}},n.IPv4.parse=function(e){var t;if(t=this.parser(e),null===t)throw new Error("ipaddr: string is not formatted like ip address");return new this(t)},n.IPv6.parse=function(e){var t;if(t=this.parser(e),null===t.parts)throw new Error("ipaddr: string is not formatted like ip address");return new this(t.parts,t.zoneId)},n.IPv4.parseCIDR=function(e){var t,n,r;if((n=e.match(/^(.+)\/(\d+)$/))&&(t=parseInt(n[2]),t>=0&&t<=32))return r=[this.parse(n[1]),t],Object.defineProperty(r,"toString",{value:function(){return this.join("/")}}),r;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},n.IPv4.subnetMaskFromPrefixLength=function(e){var t,n,r;if(e=parseInt(e),e<0||e>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(r=[0,0,0,0],n=0,t=Math.floor(e/8);n<t;)r[n]=255,n++;return t<4&&(r[t]=Math.pow(2,e%8)-1<<8-e%8),new this(r)},n.IPv4.broadcastAddressFromCIDR=function(e){var t,n,r,i,a,o;try{for(t=this.parseCIDR(e),i=t[0].toByteArray(),o=this.subnetMaskFromPrefixLength(t[1]).toByteArray(),a=[],r=0;r<4;)a.push(parseInt(i[r],10)|255^parseInt(o[r],10)),r++;return new this(a)}catch(e){throw n=e,new Error("ipaddr: the address does not have IPv4 CIDR format")}},n.IPv4.networkAddressFromCIDR=function(e){var t,n,r,i,a,o;try{for(t=this.parseCIDR(e),i=t[0].toByteArray(),o=this.subnetMaskFromPrefixLength(t[1]).toByteArray(),a=[],r=0;r<4;)a.push(parseInt(i[r],10)&parseInt(o[r],10)),r++;return new this(a)}catch(e){throw n=e,new Error("ipaddr: the address does not have IPv4 CIDR format")}},n.IPv6.parseCIDR=function(e){var t,n,r;if((n=e.match(/^(.+)\/(\d+)$/))&&(t=parseInt(n[2]),t>=0&&t<=128))return r=[this.parse(n[1]),t],Object.defineProperty(r,"toString",{value:function(){return this.join("/")}}),r;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},n.isValid=function(e){return n.IPv6.isValid(e)||n.IPv4.isValid(e)},n.parse=function(e){if(n.IPv6.isValid(e))return n.IPv6.parse(e);if(n.IPv4.isValid(e))return n.IPv4.parse(e);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},n.parseCIDR=function(e){var t;try{return n.IPv6.parseCIDR(e)}catch(r){t=r;try{return n.IPv4.parseCIDR(e)}catch(e){throw t=e,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},n.fromByteArray=function(e){var t;if(t=e.length,4===t)return new n.IPv4(e);if(16===t)return new n.IPv6(e);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},n.process=function(e){var t;return t=this.parse(e),"ipv6"===t.kind()&&t.isIPv4MappedAddress()?t.toIPv4Address():t}}).call(this)}).call(t,n(242)(e))},,,function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"autoExposure.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"autoExposureRegion.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"autoFocus.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},tex2DLod:{define:"USE_TEX2D_LOD",type:"switch",enabled:!1},highPrecisionBuffer:{define:"USE_HDR",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"autoFocusRegion.frag"},features:{highPrecisionBuffer:{define:"USE_HDR",type:"switch",enabled:!0},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"brightnessExtraction.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"coc.frag"},features:{depthExtension:{define:"USE_DEPTH_EXTENSION",type:"switch",enabled:!0},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},highPrecisionBuffer:{define:"USE_HDR",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"default.vert"},fragmentShader:{name:"debugOverdraw.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"dofSplat.vert"},fragmentShader:{name:"dofSplat.frag"},features:{catsEye:{define:"USE_CATS_EYE",type:"switch",enabled:!0},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},highPrecisionBuffer:{define:"USE_HDR",type:"switch",enabled:!0},logLuvInput:{define:"USE_LOGLUV_INPUT",type:"switch",enabled:!1}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"downsample.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"dynamicGrading.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"floatChannelSpread.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"fxaa.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"gaussianBlur.frag"},features:{horizontal:{define:"BLUR_HORIZONTAL",type:"switch",enabled:!0},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},shadowMomentsBlur:{define:"USE_SHADOW_MOMENTS_BLUR",type:"switch",enabled:!1},highPrecisionBuffer:{define:"USE_HDR",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"ghostingP1.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"ghostingP2.frag"},features:{flareSamples:{define:"NUM_FLARE_SAMPLES",type:"number",value:6,enabled:!0},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"lensFlareOcclusion.vert"},fragmentShader:{name:"lensFlareOcclusion.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"motionBlurMix.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},depthExtension:{define:"USE_DEPTH_EXTENSION",type:"switch",enabled:!1}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"optics.frag"},features:{maxSplatLevel:{define:"MAX_SPLAT_LEVEL",type:"number",value:3,enabled:!0},dof:{define:"USE_DOF",type:"switch",enabled:!0},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},highPrecisionBuffer:{define:"USE_HDR",type:"switch",enabled:!0},logLuvInput:{define:"USE_LOGLUV_INPUT",type:"switch",enabled:!1}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"passThrough.frag"},features:{texCoordScale:{define:"USE_TEXCOORD_SCALE",type:"switch",enabled:!1},texCoordOffset:{define:"USE_TEXCOORD_OFFSET",type:"switch",enabled:!1},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"texture.vert"},fragmentShader:{name:"precomputeIBL.frag"},features:{sampleCount:{define:"NUM_SAMPLES",type:"number",value:1024,enabled:!0},sampleCountLog2:{define:"NUM_SAMPLES_LOG2",type:"number",value:10,enabled:!0},envMapSizeSqr:{define:"ENV_MAP_SIZE_SQR",type:"number",value:65536,enabled:!0},mipmapLevels:{define:"NUM_MIP_LEVELS",type:"number",value:6,enabled:!0},envMapSize:{define:"ENV_MAP_SIZE",type:"number",value:512,enabled:!0},integrateBRDF:{define:"INTEGRATE_BRDF",type:"switch",enabled:!1},integrateEnvMap:{define:"INTEGRATE_ENVMAP",type:"switch",enabled:!1},cubeMap:{define:"USE_CUBE_MAP",type:"switch",enabled:!0,excludes:["latLong"]},latLong:{define:"USE_LAT_LONG",type:"switch",enabled:!1,excludes:["cubeMap"]},diffuse:{define:"USE_DIFFUSE",type:"switch",enabled:!1},prefilteredImportanceSampling:{define:"USE_PREFILTERED_IMPORTANCE_SAMPLING",type:"switch",enabled:!0},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},highPrecisionBuffer:{define:"USE_HDR",type:"switch",enabled:!0},texCoordScale:{define:"USE_TEXCOORD_SCALE",type:"switch",enabled:!1},passthrough:{define:"PASSTHROUGH",type:"switch",enabled:!1}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"precomputeIBL.frag"},features:{sampleCount:{define:"NUM_SAMPLES",type:"number",value:1024,enabled:!0},sampleCountLog2:{define:"NUM_SAMPLES_LOG2",type:"number",value:10,enabled:!0},envMapSizeSqr:{define:"ENV_MAP_SIZE_SQR",type:"number",value:65536,enabled:!0},mipmapLevels:{define:"NUM_MIP_LEVELS",type:"number",value:6,enabled:!0},envMapSize:{define:"ENV_MAP_SIZE",type:"number",value:512,enabled:!0},integrateBRDF:{define:"INTEGRATE_BRDF",type:"switch",enabled:!1},integrateEnvMap:{define:"INTEGRATE_ENVMAP",type:"switch",enabled:!1},cubeMap:{define:"USE_CUBE_MAP",type:"switch",enabled:!0,excludes:["latLong"]},latLong:{define:"USE_LAT_LONG",type:"switch",enabled:!1,excludes:["cubeMap"]},diffuse:{define:"USE_DIFFUSE",type:"switch",enabled:!1},prefilteredImportanceSampling:{define:"USE_PREFILTERED_IMPORTANCE_SAMPLING",type:"switch",enabled:!0},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},highPrecisionBuffer:{define:"USE_HDR",type:"switch",enabled:!0},texCoordScale:{define:"USE_TEXCOORD_SCALE",type:"switch",enabled:!1},passthrough:{define:"PASSTHROUGH",type:"switch",enabled:!1}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"ssao.frag"},features:{numDir:{define:"NUM_DIR",type:"number",value:16,enabled:!0},numSteps:{define:"NUM_STEPS",type:"number",value:8,enabled:!0},viewSpaceDepth:{define:"USE_VIEW_SPACE_DEPTH",type:"switch",enabled:!1},useDepthExtension:{define:"USE_DEPTH_EXTENSION",type:"switch",enabled:!0},useGbufferNormals:{define:"USE_GBUFFER_NORMALS",type:"switch",enabled:!1},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},highPrecisionBuffer:{define:"USE_HDR",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"ssaoBlur.frag"},features:{horizontal:{define:"BLUR_HORIZONTAL",type:"switch",enabled:!0},blurRadius:{define:"BLUR_RADIUS",type:"number",value:7,enabled:!0},viewSpaceDepth:{define:"USE_VIEW_SPACE_DEPTH",type:"switch",enabled:!1},useDepthExtension:{define:"USE_DEPTH_EXTENSION",type:"switch",enabled:!0},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"ssrTrace.vert"},fragmentShader:{name:"ssrTrace2.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"stereoLensDistort.vert"},fragmentShader:{name:"texture.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},vignette:{define:"USE_VIGNETTE",type:"switch",enabled:!1},chromaticAberration:{define:"USE_CHROMATIC_ABERRATION",type:"switch",enabled:!1}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"temporalAAResolve2.frag"},features:{highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},depthExtension:{define:"USE_DEPTH_EXTENSION",type:"switch",enabled:!1},weightScale:{define:"WEIGHT_SCALE",type:"number",value:1,enabled:!0},maxMotionLength:{define:"MAX_MOTION_LENGTH",type:"number",value:1,enabled:!0}}}},function(e,t){e.exports={vertexShader:{name:"fullscreen.vert"},fragmentShader:{name:"tonemap.frag"},features:{ bloom:{define:"USE_BLOOM",type:"switch",enabled:!0},bloomPasses:{define:"BLOOM_PASSES",type:"number",value:5,enabled:!0},grain:{define:"USE_GRAIN",type:"switch",enabled:!0},fog:{define:"USE_FOG",type:"switch",enabled:!1},ghosting:{define:"USE_GHOSTING",type:"switch",enabled:!0},lensdirt:{define:"USE_LENS_DIRT",type:"switch",enabled:!0},colorGrading:{define:"USE_COLOR_GRADING",type:"switch",enabled:!0},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},highPrecisionBuffer:{define:"USE_HDR",type:"switch",enabled:!0},vignetting:{define:"USE_VIGNETTING",type:"switch",enabled:!0},colorGradient:{define:"USE_COLOR_GRADIENT",type:"switch",enabled:!1},tiltShiftBlur:{define:"USE_TILT_SHIFT_BLUR",type:"switch",enabled:!1},lowEndDof:{define:"USE_LOW_END_DOF",type:"switch",enabled:!1},depthExtension:{define:"USE_DEPTH_EXTENSION",type:"switch",enabled:!1},dofBlurTextureCount:{define:"DOF_BLUR_TEXTURE_COUNT",type:"number",value:2,enabled:!0},tonemapSimple:{define:"USE_TONEMAP_SIMPLE",type:"switch",enabled:!1,excludes:["tonemapFilmic"]},tonemapFilmic:{define:"USE_TONEMAP_FILMIC",type:"switch",enabled:!0,excludes:["tonemapSimple"]},chromaticAbberation:{define:"USE_CHROMATIC_ABBERATION",type:"switch",enabled:!1},sharpenImage:{define:"USE_SHARPEN_IMAGE",type:"switch",enabled:!1}}}},function(e,t){e.exports={vertexShader:{name:"uberSurface.vert"},fragmentShader:{name:"uberSurface.frag"},features:{litParticle:{define:"LIT_PARTICLE",type:"switch",enabled:!1,excludes:["litPointSprite","depthTexture","shadowMap","varianceShadowMap","particleDepth","unlit","nop","lit","ssrPre","lensFlare","particle"]},particle:{define:"PARTICLE",type:"switch",enabled:!1,excludes:["litPointSprite","depthTexture","shadowMap","varianceShadowMap","particleDepth","unlit","nop","lit","ssrPre","lensFlare","litParticle"]},particleRotation:{define:"PARTICLE_ROTATION",type:"switch",enabled:!1},bentNormalMapping:{define:"USE_BENT_NORMAL_MAP",type:"switch",enabled:!1},normalMapping:{define:"USE_NORMAL_MAP",type:"switch",enabled:!1},normalMapWithRoughness:{define:"USE_NORMAL_MAP_WITH_ROUGHNESS",type:"switch",enabled:!1,excludes:["roughnessTexture","reflectanceWithRoughness"]},normalMapWithRoughnessRABG:{define:"USE_NORMAL_MAP_RABG",type:"switch",enabled:!1},perVertexNormal:{define:"USE_VERTEX_NORMAL",type:"switch",enabled:!0},perVertexTangentSpace:{define:"USE_VERTEX_TANGENT_SPACE",type:"switch",enabled:!1},perVertexOcclusion:{define:"USE_VERTEX_AO",type:"switch",enabled:!1},constantRandomVertexOffset:{define:"USE_CONSTANT_RANDOM_VERTEX_OFFSET",type:"switch",enabled:!1},randomVertexOffset:{define:"USE_RANDOM_VERTEX_OFFSET",type:"switch",enabled:!1},vertexDisplacement:{define:"USE_VERTEX_DISPLACEMENT",type:"switch",enabled:!1},latlongIBR:{define:"USE_LATLONG_IBR",type:"switch",enabled:!1,excludes:["cubeIBR"]},cubeIBR:{define:"USE_CUBE_IBR",type:"switch",enabled:!1,excludes:["latlongIBR"]},deferredTexturing:{define:"USE_DEFERRED_TEXTURING",type:"switch",enabled:!1},diffuseTexture:{define:"USE_DIFFUSE_TEXTURE",type:"switch",enabled:!1,excludes:["diffuseColor","diffuseTextureWithAlpha"]},diffuseTextureWithAlpha:{define:"USE_DIFFUSE_TEXTURE_WITH_ALPHA",type:"switch",enabled:!1,excludes:["diffuseColor","diffuseTexture"]},diffuseColor:{define:"USE_DIFFUSE_COLOR",type:"switch",enabled:!1},diffuseDefault:{define:"DIFFUSE_DEFAULT",type:"number",value:1,enabled:!0},irradianceIncludingDiffuse:{define:"USE_IRRADIANCE_INCLUDING_DIFFUSE",type:"switch",enabled:!1},irradianceBlend:{define:"USE_IRRADIANCE_BLEND",type:"switch",enabled:!1},bakedMapsUse2ndUV:{define:"USE_2ND_UV_FOR_BAKED_MAPS",type:"switch",enabled:!1},applyAoOnIrradiance:{define:"APPLY_AO_ON_IRRADIANCE",type:"switch",enabled:!1},aoBlendSoft:{define:"AO_BLEND_SOFT",type:"switch",enabled:!1,excludes:["aoBlendStrong"]},aoBlendStrong:{define:"AO_BLEND_STRONG",type:"switch",enabled:!1,excludes:["aoBlendSoft"]},dynamicAmbientOcclusion:{define:"USE_DYNAMIC_AMBIENT_OCCLUSION",type:"switch",enabled:!1},staticAmbientOcclusion:{define:"USE_STATIC_AMBIENT_OCCLUSION",type:"switch",enabled:!1},staticAmbientDirectionalOcclusion:{define:"USE_STATIC_AMBIENT_DIRECTIONAL_OCCLUSION",type:"switch",enabled:!1},reflectanceWithAnisotropy:{define:"USE_REFLECTANCE_WITH_ANISOTROPY",type:"switch",enabled:!1,excludes:["anisotropyTexture","reflectanceWithRoughness"]},reflectanceWithRoughness:{define:"USE_REFLECTANCE_WITH_ROUGHNESS",type:"switch",enabled:!1,excludes:["reflectanceWithAnisotropy","normalMapWithRoughness","roughnessTexture"]},specularTexture:{define:"USE_SPECULAR_TEXTURE",type:"switch",enabled:!1,excludes:["metallicValue","metallicTexture"]},specularColor:{define:"USE_SPECULAR_COLOR",type:"switch",enabled:!1,excludes:["metallicValue","metallicTexture"]},specularDefault:{define:"SPECULAR_DEFAULT",type:"number",value:1,enabled:!0},metallicValue:{define:"USE_METALLIC_VALUE",type:"switch",enabled:!1,excludes:["specularTexture","specularColor"]},metallicTexture:{define:"USE_METALLIC_TEXTURE",type:"switch",enabled:!1,excludes:["specularTexture","specularColor"]},dielectricReflectance:{define:"DIELECTRIC_REFLECTANCE",type:"number",value:.04,enabled:!0},roughnessTexture:{define:"USE_ROUGHNESS_TEXTURE",type:"switch",enabled:!1,excludes:["normalMapWithRoughness"]},roughnessValue:{define:"USE_ROUGHNESS_VALUE",type:"switch",enabled:!1},roughnessDefault:{define:"ROUGHNESS_DEFAULT",type:"number",value:1,enabled:!0},wetnessTexture:{define:"USE_WETNESS_TEXTURE",type:"switch",enabled:!1},wetnessValue:{define:"USE_WETNESS_VALUE",type:"switch",enabled:!1},anisotropyTexture:{define:"USE_ANISOTROPY_TEXTURE",type:"switch",enabled:!1,excludes:["specularWithAnisotropy"]},anisotropyValue:{define:"USE_ANISOTROPY_VALUE",type:"switch",enabled:!1},opacityTexture:{define:"USE_OPACITY_TEXTURE",type:"switch",enabled:!1},opacityValue:{define:"USE_OPACITY_VALUE",type:"switch",enabled:!1},opacityDefault:{define:"OPACITY_DEFAULT",type:"number",value:1,enabled:!0},twoSidedMaterial:{define:"USE_TWO_SIDED_MATERIAL",type:"switch",enabled:!1},fresnelOpacity:{define:"USE_FRESNEL_OPACITY",type:"switch",enabled:!0},ambientDiffuseTexture:{define:"USE_AMBIENT_DIFFUSE_TEXTURE",type:"switch",enabled:!1},ambientDiffuseProbeTexture:{define:"USE_AMBIENT_DIFFUSE_PROBE_TEXTURE",type:"switch",enabled:!1},ambientDiffuseSH:{define:"USE_AMBIENT_DIFFUSE_SH",type:"switch",enabled:!1},ambientIBL:{define:"USE_AMBIENT_IBL",type:"switch",enabled:!1},envBrdfLut:{define:"USE_ENV_BRDF_LUT",type:"switch",enabled:!0},specularPowerIblLookup:{define:"USE_SPECULAR_POWER_IBL_LOOKUP",type:"switch",enabled:!1},ambientSSR:{define:"USE_AMBIENT_SSR",type:"switch",enabled:!1},ambientColor:{define:"USE_AMBIENT_COLOR",type:"switch",enabled:!1},emissiveTexture:{define:"USE_EMISSIVE_TEXTURE",type:"switch",enabled:!1},emissiveColor:{define:"USE_EMISSIVE_COLOR",type:"switch",enabled:!1},emissiveDefault:{define:"EMISSIVE_DEFAULT",type:"number",value:0,enabled:!0},rgbmEmissiveInput:{define:"USE_RGBM_EMISSIVE_INPUT",type:"switch",enabled:!1},rgbmNormalInput:{define:"USE_RGBM_NORMAL_INPUT",type:"switch",enabled:!1},rgbmDiffuseInput:{define:"USE_RGBM_DIFFUSE_INPUT",type:"switch",enabled:!1},highlightColor:{define:"USE_HIGHLIGHT_COLOR",type:"switch",enabled:!1},highPrecisionBuffer:{define:"USE_HDR",type:"switch",enabled:!0},logLuvInput:{define:"USE_LOGLUV_INPUT",type:"switch",enabled:!1},rgbmInput:{define:"USE_RGBM_INPUT",type:"switch",enabled:!1},rgbmRadianceProbeInput:{define:"USE_RGBM_RADIANCE_PROBE_INPUT",type:"switch",enabled:!1},rgbmIrradianceProbeInput:{define:"USE_RGBM_IRRADIANCE_PROBE_INPUT",type:"switch",enabled:!1},rgbmIrradianceInput:{define:"USE_RGBM_IRRADIANCE_INPUT",type:"switch",enabled:!1},vignetting:{define:"USE_VIGNETTING",type:"switch",enabled:!0},colorGradient:{define:"USE_COLOR_GRADIENT",type:"switch",enabled:!1},depthTexture:{define:"DEPTH_TEXTURE",type:"switch",enabled:!1,excludes:["litPointSprite","shadowMap","varianceShadowMap","particle","particleDepth","unlit","nop","lit","ssrPre","lensFlare"]},particleDepth:{define:"PARTICLE_DEPTH",type:"switch",enabled:!1,excludes:["litPointSprite","shadowMap","varianceShadowMap","particle","depthTexture","unlit","nop","lit","ssrPre","lensFlare"]},shadowMap:{define:"SHADOW_MAP",type:"switch",enabled:!1,excludes:["litPointSprite","depthTexture","varianceShadowMap","particle","particleDepth","unlit","nop","lit","ssrPre","lensFlare"]},varianceShadowMap:{define:"VARIANCE_SHADOW_MAP",type:"switch",enabled:!1,excludes:["litPointSprite","depthTexture","shadowMap","particle","particleDepth","unlit","nop","lit","ssrPre","lensFlare"]},lit:{define:"LIT",type:"switch",enabled:!1,excludes:["litPointSprite","depthTexture","shadowMap","particle","particleDepth","varianceShadowMap","nop","unlit","ssrPre","lensFlare"]},litPointSprite:{define:"LIT_POINT_SPRITE",type:"switch",enabled:!1,excludes:["lit","depthTexture","shadowMap","particle","particleDepth","varianceShadowMap","nop","unlit","ssrPre","lensFlare"]},writeDepth:{define:"WRITE_DEPTH",type:"switch",enabled:!1},directionalLightCount:{define:"DIR_LIGHT_COUNT",type:"number",value:0,enabled:!0},shadowedDirectionalLightCount:{define:"SHADOWED_DIR_LIGHT_COUNT",type:"number",value:0,enabled:!0},pointLightCount:{define:"POINT_LIGHT_COUNT",type:"number",value:0,enabled:!0},shadowedPointLightCount:{define:"SHADOWED_POINT_LIGHT_COUNT",type:"number",value:0,enabled:!0},spotLightCount:{define:"SPOT_LIGHT_COUNT",type:"number",value:0,enabled:!0},shadowedSpotLightCount:{define:"SHADOWED_SPOT_LIGHT_COUNT",type:"number",value:0,enabled:!0},sphereLightCount:{define:"SPHERE_LIGHT_COUNT",type:"number",value:0,enabled:!0},shadowedSphereLightCount:{define:"SHADOWED_SPHERE_LIGHT_COUNT",type:"number",value:0,enabled:!0},areaLightCount:{define:"AREA_LIGHT_COUNT",type:"number",value:0,enabled:!0},shadowedAreaLightCount:{define:"SHADOWED_AREA_LIGHT_COUNT",type:"number",value:0,enabled:!0},tubeLightCount:{define:"TUBE_LIGHT_COUNT",type:"number",value:0,enabled:!0},shadowedTubeLightCount:{define:"SHADOWED_TUBE_LIGHT_COUNT",type:"number",value:0,enabled:!0},unlit:{define:"UNLIT",type:"switch",enabled:!1,excludes:["litPointSprite","depthTexture","shadowMap","particle","particleDepth","varianceShadowMap","nop","lit","ssrPre","lensFlare"]},unlitTexture:{define:"USE_UNLIT_TEXTURE",type:"switch",enabled:!1},smoothBorder:{define:"USE_SMOOTH_BORDER",type:"switch",enabled:!1},smoothStrength:{define:"SMOOTH_STRENGTH",type:"number",value:10,enabled:!0},billboarding:{define:"USE_BILLBOARDING",type:"switch",enabled:!1},billboardOffset:{define:"USE_BILLBOARD_OFFSET",type:"switch",enabled:!1},skyBox:{define:"USE_SKYBOX",type:"switch",enabled:!1,excludes:["ndcScaling","fullscreen","skyBoxSH"]},skyBoxSH:{define:"USE_SKYBOX_SH",type:"switch",enabled:!1,excludes:["ndcScaling","fullscreen","skyBox"]},unlitColor:{define:"USE_UNLIT_COLOR",type:"switch",enabled:!1},unlitGradient:{define:"USE_UNLIT_GRADIENT",type:"switch",enabled:!1},unlitGain:{define:"USE_UNLIT_GAIN",type:"switch",enabled:!1},spriteAnimation:{define:"USE_SPRITE_ANIMATION",type:"switch",enabled:!1},spriteAnimationOriginTopLeft:{define:"USE_SPRITE_ANIMATION_ORIGIN_TOP_LEFT",type:"switch",enabled:!1},diffuseSpriteAnimation:{define:"USE_DIFFUSE_SPRITE_ANIMATION",type:"switch",enabled:!1},texCoordOffset:{define:"USE_TEXCOORD_OFFSET",type:"switch",enabled:!1},texCoordScale:{define:"USE_TEXCOORD_SCALE",type:"switch",enabled:!1},texCoordRotation:{define:"USE_TEXCOORD_ROTATION",type:"switch",enabled:!1},texCoordTrim:{define:"USE_TEXCOORD_TRIM",type:"switch",enabled:!1},ndcScaling:{define:"USE_NDC_SCALING",type:"switch",enabled:!1,excludes:["fullscreen","skyBox","skyBoxSH"]},ndcRotation:{define:"USE_NDC_ROTATION",type:"switch",enabled:!1},fullscreen:{define:"USE_FULLSCREEN_QUAD",type:"switch",enabled:!1,excludes:["ndcScaling","skyBox","skyBoxSH"]},discardAlpha:{define:"DISCARD_ALPHA",type:"switch",enabled:!1},viewSpaceDepth:{define:"USE_VIEW_SPACE_DEPTH",type:"switch",enabled:!1},gammaSpace:{define:"USE_GAMMA_SPACE",type:"switch",enabled:!0},gammaSpaceSpecular:{define:"USE_GAMMA_SPACE_SPECULAR",type:"switch",enabled:!1},gammaSpaceIrradiance:{define:"USE_GAMMA_SPACE_IRRADIANCE",type:"switch",enabled:!1},gammaSpaceRoughness:{define:"USE_GAMMA_SPACE_ROUGHNESS",type:"switch",enabled:!1},gammaSpaceEmissive:{define:"USE_GAMMA_SPACE_EMISSIVE",type:"switch",enabled:!1},highPrecisionFloat:{define:"USE_HIGHP_FLOAT",type:"switch",enabled:!0},ssrPre:{define:"SSR_PRE",type:"switch",enabled:!1,excludes:["litPointSprite","depthTexture","shadowMap","particle","particleDepth","varianceShadowMap","unlit","lit","nop","lensFlare"]},nop:{define:"NOP",type:"switch",enabled:!1,excludes:["litPointSprite","depthTexture","shadowMap","particle","particleDepth","varianceShadowMap","unlit","lit","ssrPre","lensFlare"]},maxLightCount:{define:"MAX_LIGHT_COUNT",type:"number",value:32,enabled:!0},oitTransparency:{define:"USE_OIT_TRANSPARENCY",type:"switch",enabled:!1},transparency:{define:"USE_TRANSPARENCY",type:"switch",enabled:!1},refraction:{define:"USE_REFRACTION",type:"switch",enabled:!1},refractionBlurPassCount:{define:"REFRACTION_BLUR_PASS_COUNT",type:"number",value:3,enabled:!0},standardBrdf:{define:"USE_STANDARD_BRDF",type:"switch",enabled:!0,excludes:["anisotropicBrdf","clothBrdf"]},anisotropicBrdf:{define:"USE_ANISOTROPIC_BRDF",type:"switch",enabled:!1,excludes:["standardBrdf","clothBrdf"]},clothBrdf:{define:"USE_CLOTH_BRDF",type:"switch",enabled:!1,excludes:["standardBrdf","anisotropicBrdf"]},schlickFresnel:{define:"USE_SCHLICK_FRESNEL",type:"switch",enabled:!0,excludes:["referenceFresnel"]},referenceFresnel:{define:"USE_REFERENCE_FRESNEL",type:"switch",enabled:!1,excludes:["schlickFresnel"]},ggxDistribution:{define:"USE_GGX_DISTRIBUTION",type:"switch",enabled:!0,excludes:["beckmannDistribution"]},beckmannDistribution:{define:"USE_BECKMANN_DISTRIBUTION",type:"switch",enabled:!1,excludes:["ggxDistribution"]},schlickVisibility:{define:"USE_SCHLICK_VISIBILITY",type:"switch",enabled:!1,excludes:["smithVisibility","smithJointVisibility"]},smithVisibility:{define:"USE_SMITH_VISIBILITY",type:"switch",enabled:!1,excludes:["schlickVisibility","smithJointVisibility"]},smithJointVisibility:{define:"USE_SMITHJOINT_VISIBILITY",type:"switch",enabled:!0,excludes:["schlickVisibility","smithVisibility"]},clearcoatValue:{define:"USE_CLEARCOAT_VALUE",type:"switch",enabled:!1},clearcoatTexture:{define:"USE_CLEARCOAT_TEXTURE",type:"switch",enabled:!1},lambertDiffuse:{define:"USE_LAMBERT_DIFFUSE",type:"switch",enabled:!0,excludes:["burleyDiffuse","orenNayarDiffuse"]},burleyDiffuse:{define:"USE_BURLEY_DIFFUSE",type:"switch",enabled:!1,excludes:["lambertDiffuse","orenNayarDiffuse"]},orenNayarDiffuse:{define:"USE_ORENNAYAR_DIFFUSE",type:"switch",enabled:!1,excludes:["burleyDiffuse","lambertDiffuse"]},parallaxCorrection:{define:"USE_PARALLAX_CORRECTION",type:"switch",enabled:!1},lensFlare:{define:"USE_LENS_FLARE",type:"switch",enabled:!1,excludes:["litPointSprite","depthTexture","shadowMap","particle","particleDepth","varianceShadowMap","unlit","lit","ssrPre","nop"]},autoRotate:{define:"USE_AUTO_ROTATE",type:"switch",enabled:!1},textureOcclude:{define:"USE_FLARE_TEXTURE_OCCLUDE",type:"switch",enabled:!1},offsetScaling:{define:"USE_OFFSET_SCALING",type:"switch",enabled:!1},customRotation:{define:"USE_CUSTOM_ROTATION",type:"switch",enabled:!1},latlongFormat:{define:"USE_LATLONG_FORMAT",type:"switch",enabled:!0,excludes:["paraboloidFormat","cubemapFormat","stereoscopicFormat"]},paraboloidFormat:{define:"USE_PARABOLOID_FORMAT",type:"switch",enabled:!1,excludes:["latlongFormat","cubemapFormat","stereoscopicFormat"]},cubemapFormat:{define:"USE_CUBEMAP_FORMAT",type:"switch",enabled:!1,excludes:["latlongFormat","paraboloidFormat","stereoscopicFormat"]},stereoscopicFormat:{define:"USE_STEREOSCOPIC_FORMAT",type:"switch",enabled:!1,excludes:["latlongFormat","cubemapFormat","paraboloidFormat"]},stereoscopicFlatLr:{define:"USE_STEREOSCOPIC_FLAT_LR",type:"switch",enabled:!1,excludes:["stereoscopicFlatTb"]},stereoscopicFlatTb:{define:"USE_STEREOSCOPIC_FLAT_TB",type:"switch",enabled:!1,excludes:["stereoscopicFlatLr"]},stereoscopicFisheyeLr:{define:"USE_STEREOSCOPIC_FISHEYE_LR",type:"switch",enabled:!1,excludes:["stereoscopic360Lr","stereoscopic180TbSpherical","stereoscopic360Tb","stereoscopic180Lr","stereoscopic180Tb","stereoscopicCubemap","stereoscopicLatlong"]},stereoscopic180LrSpherical:{define:"USE_STEREOSCOPIC_180_LR_SPHERICAL",type:"switch",enabled:!1,excludes:["stereoscopic360Lr","stereoscopic180TbSpherical","stereoscopic360Lr","stereoscopic360Tb","stereoscopic180Lr","stereoscopic180Tb","stereoscopicCubemap","stereoscopicFisheyeLr","stereoscopicLatlong"]},stereoscopic360Lr:{define:"USE_STEREOSCOPIC_360_LR",type:"switch",enabled:!1,excludes:["stereoscopic180LrSpherical","stereoscopic180TbSpherical","stereoscopic360Tb","stereoscopic180Lr","stereoscopic180Tb","stereoscopicCubemap","stereoscopicFisheyeLr","stereoscopicLatlong"]},stereoscopic180TbSpherical:{define:"USE_STEREOSCOPIC_180_TB_SPHERICAL",type:"switch",enabled:!1,excludes:["stereoscopic180LrSpherical","stereoscopic360Lr","stereoscopic360Tb","stereoscopic180Lr","stereoscopic180Tb","stereoscopicCubemap","stereoscopicFisheyeLr","stereoscopicLatlong"]},stereoscopic360Tb:{define:"USE_STEREOSCOPIC_360_TB",type:"switch",enabled:!1,excludes:["stereoscopic180LrSpherical","stereoscopic360Lr","stereoscopic180TbSpherical","stereoscopic180Lr","stereoscopic180Tb","stereoscopicCubemap","stereoscopicFisheyeLr","stereoscopicLatlong"]},stereoscopic180Lr:{define:"USE_STEREOSCOPIC_180_LR",type:"switch",enabled:!1,excludes:["stereoscopic180LrSpherical","stereoscopic360Lr","stereoscopic180TbSpherical","stereoscopic360Tb","stereoscopic180Tb","stereoscopicCubemap","stereoscopicFisheyeLr","stereoscopicLatlong"]},stereoscopic180Tb:{define:"USE_STEREOSCOPIC_180_TB",type:"switch",enabled:!1,excludes:["stereoscopic180LrSpherical","stereoscopic360Lr","stereoscopic180TbSpherical","stereoscopic360Tb","stereoscopic180Lr","stereoscopicCubemap","stereoscopicFisheyeLr","stereoscopicLatlong"]},stereoscopicLatlong:{define:"USE_STEREOSCOPIC_LATLONG",type:"switch",enabled:!1,excludes:["stereoscopic180LrSpherical","stereoscopic360Lr","stereoscopic180TbSpherical","stereoscopic360Tb","stereoscopic180Tb","stereoscopic180Lr","stereoscopicFisheyeLr","stereoscopicCubemap"]},stereoscopicCubemap:{define:"USE_STEREOSCOPIC_CUBEMAP",type:"switch",enabled:!1,excludes:["stereoscopic180LrSpherical","stereoscopic360Lr","stereoscopic180TbSpherical","stereoscopic360Tb","stereoscopic180Tb","stereoscopicFisheyeLr","stereoscopic180Lr","stereoscopicLatlong"]},mono180:{define:"USE_MONO_180",type:"switch",enabled:!1},stereoscopicPreSeparated:{define:"USE_STEREOSCOPIC_PRE_SEPARATED",type:"switch",enabled:!1},roughnessWorkflow:{define:"USE_ROUGHNESS_WORKFLOW",type:"switch",enabled:!0,excludes:["glossinessWorkflow","specularPowerWorkflow"]},glossinessWorkflow:{define:"USE_GLOSSINESS_WORKFLOW",type:"switch",enabled:!1,excludes:["roughnessWorkflow","specularPowerWorkflow"]},specularPowerWorkflow:{define:"USE_SPECULAR_POWER_WORKFLOW",type:"switch",enabled:!1,excludes:["roughnessWorkflow","glossinessWorkflow"]},primitiveInformation:{define:"USE_PRIMITIVE_INFORMATION",type:"switch",enabled:!1},rightHandedCoordinateSystem:{define:"USE_RIGHT_HANDED_COORDINATE_SYSTEM",type:"switch",enabled:!0},paraboloidProjection:{define:"USE_PARABOLOID_PROJECTION",type:"switch",enabled:!1},zDepthFog:{define:"USE_Z_DEPTH_FOG",type:"switch",enabled:!1},surfaceVignetting:{define:"USE_SURFACE_VIGNETTING",type:"switch",enabled:!1},highLuminanceDiffuseBoost:{define:"USE_HIGH_LUMINANCE_DIFFUSE_BOOST",type:"switch",enabled:!1},complexSrgbConversion:{define:"USE_COMPLEX_SRGB_CONVERSION",type:"switch",enabled:!1},envRotation:{define:"USE_ENV_ROTATION",type:"switch",enabled:!1},iblDirectionalShadowing:{define:"USE_IBL_DIRECTIONAL_SHADOWING",type:"switch",enabled:!1},mipmapBias:{define:"MIPMAP_BIAS",type:"number",value:0,enabled:!0},envHasMipmaps:{define:"ENV_HAS_MIPMAPS",type:"switch",enabled:!1},depthCorrection:{define:"USE_DEPTH_CORRECTION",type:"switch",enabled:!1},depth32Packing:{define:"USE_DEPTH_PACKING",type:"switch",enabled:!1},depth24Packing:{define:"USE_DEPTH_24_PACKING",type:"switch",enabled:!1},flippedLatlongY:{define:"FLIPPED_LATLONG_Y",type:"switch",enabled:!0},convertToBGRA:{define:"CONVERT_TO_BGRA",type:"switch",enabled:!1},flipY:{define:"FLIP_Y",type:"switch",enabled:!1},uvBasedRadialOpacity:{define:"USE_UV_BASED_RADIAL_OPACITY",type:"switch",enabled:!1},environmentRefraction:{define:"USE_ENVIRONMENT_REFRACTION",type:"switch",enabled:!1},environmentRefractionDispersion:{define:"USE_ENVIRONMENT_REFRACTION_DISPERSION",type:"switch",enabled:!1},discardTransparent:{define:"DISCARD_TRANSPARENT",type:"switch",enabled:!1,excludes:["discardOpaque","discardNone"]},discardOpaque:{define:"DISCARD_OPAQUE",type:"switch",enabled:!1,excludes:["discardTransparent","discardNone"]},discardNone:{define:"DISCARD_NONE",type:"switch",enabled:!1,excludes:["discardTransparent","discardOpaque"]},tonemapSimple:{define:"USE_TONEMAP_SIMPLE",type:"switch",enabled:!1,excludes:["tonemapFilmic"]},tonemapFilmic:{define:"USE_TONEMAP_FILMIC",type:"switch",enabled:!0,excludes:["tonemapSimple"]},fresnelOutline:{define:"USE_FRESNEL_OUTLINE",type:"switch",enabled:!1},foveatedEnv:{define:"USE_FOVEATED_ENV",type:"switch",enabled:!1},foveaDistortionExponentX:{define:"FOVEA_DISTORTION_EXPONENT_X",type:"number",value:1,enabled:!0},foveaDistortionExponentY:{define:"FOVEA_DISTORTION_EXPONENT_Y",type:"number",value:1,enabled:!0},lockToCameraPosition:{define:"LOCK_TO_CAMERA_POSITION",type:"switch",enabled:!1},rgss:{define:"USE_RGSS",type:"switch",enabled:!1}}}},,,,,function(e,t,n){/*!mobile-detect v1.4.4 2019-09-21*/ /*!@license Copyright 2013, Heinrich Goebl, License: MIT, see https://github.com/hgoebl/mobile-detect.js*/ !function(e,t){e(function(){"use strict";function e(e,t){return null!=e&&null!=t&&e.toLowerCase()===t.toLowerCase()}function n(e,t){var n,r,i=e.length;if(!i||!t)return!1;for(n=t.toLowerCase(),r=0;r<i;++r)if(n===e[r].toLowerCase())return!0;return!1}function r(e){for(var t in e)l.call(e,t)&&(e[t]=new RegExp(e[t],"i"))}function i(e){return(e||"").substr(0,500)}function a(e,t){this.ua=i(e),this._cache={},this.maxPhoneWidth=t||600}var o={};o.mobileDetectRules={phones:{iPhone:"\\biPhone\\b|\\biPod\\b",BlackBerry:"BlackBerry|\\bBB10\\b|rim[0-9]+|\\b(BBA100|BBB100|BBD100|BBE100|BBF100|STH100)\\b-[0-9]+",HTC:"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\bEVO\\b|T-Mobile G1|Z520m|Android [0-9.]+; Pixel",Nexus:"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6",Dell:"Dell[;]? (Streak|Aero|Venue|Venue Pro|Flash|Smoke|Mini 3iX)|XCD28|XCD35|\\b001DL\\b|\\b101DL\\b|\\bGS01\\b",Motorola:"Motorola|DROIDX|DROID BIONIC|\\bDroid\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\bMoto E\\b|XT1068|XT1092|XT1052",Samsung:"\\bSamsung\\b|SM-G950F|SM-G955F|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F|SM-G920F|SM-G920V|SM-G930F|SM-N910C|SM-A310F|GT-I9190|SM-J500FN|SM-G903F|SM-J330F",LG:"\\bLG\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323|M257)|LM-G710",Sony:"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533",Asus:"Asus.*Galaxy|PadFone.*Mobile",NokiaLumia:"Lumia [0-9]{3,4}",Micromax:"Micromax.*\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\b",Palm:"PalmSource|Palm",Vertu:"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature",Pantech:"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790",Fly:"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250",Wiko:"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM",iMobile:"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)",SimValley:"\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\b",Wolfgang:"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q",Alcatel:"Alcatel",Nintendo:"Nintendo (3DS|Switch)",Amoi:"Amoi",INQ:"INQ",OnePlus:"ONEPLUS",GenericPhone:"Tapatalk|PDA;|SAGEM|\\bmmp\\b|pocket|\\bpsp\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\bwap\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser"},tablets:{iPad:"iPad|iPad.*Mobile",NexusTablet:"Android.*Nexus[\\s]+(7|9|10)",GoogleTablet:"Android.*Pixel C",SamsungTablet:"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-T116BU|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y?|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587|SM-P350|SM-P555M|SM-P355M|SM-T113NU|SM-T815Y|SM-T585|SM-T285|SM-T825|SM-W708|SM-T835|SM-T830|SM-T837V|SM-T720|SM-T510|SM-T387V",Kindle:"Kindle|Silk.*Accelerated|Android.*\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI|KFFOWI|KFGIWI|KFMEWI)\\b|Android.*Silk/[0-9.]+ like Chrome/[0-9.]+ (?!Mobile)",SurfaceTablet:"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)",HPTablet:"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10",AsusTablet:"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\bK00F\\b|\\bK00C\\b|\\bK00E\\b|\\bK00L\\b|TX201LA|ME176C|ME102A|\\bM80TA\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\\bME70C\\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z|\\bP027\\b|\\bP024\\b|\\bP00C\\b",BlackBerryTablet:"PlayBook|RIM Tablet",HTCtablet:"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410",MotorolaTablet:"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617",NookTablet:"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2",AcerTablet:"Android.*; \\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\b|W3-810|\\bA3-A10\\b|\\bA3-A11\\b|\\bA3-A20\\b|\\bA3-A30",ToshibaTablet:"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO",LGTablet:"\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\b",FujitsuTablet:"Android.*\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\b",PrestigioTablet:"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002",LenovoTablet:"Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-850M|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)|TB-X103F|TB-X304X|TB-X304F|TB-X304L|TB-X505F|TB-X505L|TB-X505X|TB-X605F|TB-X605L|TB-8703F|TB-8703X|TB-8703N|TB-8704N|TB-8704F|TB-8704X|TB-8704V|TB-7304F|TB-7304I|TB-7304X|Tab2A7-10F|Tab2A7-20F|TB2-X30L|YT3-X50L|YT3-X50F|YT3-X50M|YT-X705F|YT-X703F|YT-X703L|YT-X705L|YT-X705X|TB2-X30F|TB2-X30L|TB2-X30M|A2107A-F|A2107A-H|TB3-730F|TB3-730M|TB3-730X|TB-7504F|TB-7504X",DellTablet:"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7",YarvikTablet:"Android.*\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\b",MedionTablet:"Android.*\\bOYO\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB",ArnovaTablet:"97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2",IntensoTablet:"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004",IRUTablet:"M702pro",MegafonTablet:"MegaFon V9|\\bZTE V9\\b|Android.*\\bMT7A\\b",EbodaTablet:"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)",AllViewTablet:"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)",ArchosTablet:"\\b(101G9|80G9|A101IT)\\b|Qilive 97R|Archos5|\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|c|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\b",AinolTablet:"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark",NokiaLumiaTablet:"Lumia 2520",SonyTablet:"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP641|SGP612|SOT31|SGP771|SGP611|SGP612|SGP712",PhilipsTablet:"\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\b",CubeTablet:"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT",CobyTablet:"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010",MIDTablet:"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10",MSITablet:"MSI \\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\b",SMiTTablet:"Android.*(\\bMID\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)",RockChipTablet:"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A",FlyTablet:"IQ310|Fly Vision",bqTablet:"Android.*(bq)?.*\\b(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris ([E|M]10|M8))\\b|Maxwell.*Lite|Maxwell.*Plus",HuaweiTablet:"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim|M2-A01L|BAH-L09|BAH-W09|AGS-L09|CMR-AL19",NecTablet:"\\bN-06D|\\bN-08D",PantechTablet:"Pantech.*P4100",BronchoTablet:"Broncho.*(N701|N708|N802|a710)",VersusTablet:"TOUCHPAD.*[78910]|\\bTOUCHTAB\\b",ZyncTablet:"z1000|Z99 2G|z930|z990|z909|Z919|z900",PositivoTablet:"TB07STA|TB10STA|TB07FTA|TB10FTA",NabiTablet:"Android.*\\bNabi",KoboTablet:"Kobo Touch|\\bK080\\b|\\bVox\\b Build|\\bArc\\b Build",DanewTablet:"DSlide.*\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\b",TexetTablet:"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE",PlaystationTablet:"Playstation.*(Portable|Vita)",TrekstorTablet:"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab",PyleAudioTablet:"\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\b",AdvanTablet:"Android.* \\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\b ",DanyTechTablet:"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1",GalapadTablet:"Android.*\\bG1\\b(?!\\))",MicromaxTablet:"Funbook|Micromax.*\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\b",KarbonnTablet:"Android.*\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\b",AllFineTablet:"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide",PROSCANTablet:"\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\b",YONESTablet:"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026",ChangJiaTablet:"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503",GUTablet:"TX-A1301|TX-M9002|Q702|kf026",PointOfViewTablet:"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10",OvermaxTablet:"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)|Qualcore 1027",HCLTablet:"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync",DPSTablet:"DPS Dream 9|DPS Dual 7",VistureTablet:"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10",CrestaTablet:"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989",MediatekTablet:"\\bMT8125|MT8389|MT8135|MT8377\\b",ConcordeTablet:"Concorde([ ]+)?Tab|ConCorde ReadMan",GoCleverTablet:"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042",ModecomTablet:"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003",VoninoTablet:"\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\bQ8\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\b",ECSTablet:"V07OT2|TM105A|S10OT1|TR10CS1",StorexTablet:"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab",VodafoneTablet:"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497|VFD 1400",EssentielBTablet:"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2",RossMoorTablet:"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711",iMobileTablet:"i-mobile i-note",TolinoTablet:"tolino tab [0-9.]+|tolino shine",AudioSonicTablet:"\\bC-22Q|T7-QC|T-17B|T-17P\\b",AMPETablet:"Android.* A78 ",SkkTablet:"Android.* (SKYPAD|PHOENIX|CYCLOPS)",TecnoTablet:"TECNO P9|TECNO DP8D",JXDTablet:"Android.* \\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\b",iJoyTablet:"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)",FX2Tablet:"FX2 PAD7|FX2 PAD10",XoroTablet:"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151",ViewsonicTablet:"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a",VerizonTablet:"QTAQZ3|QTAIR7|QTAQTZ3|QTASUN1|QTASUN2|QTAXIA1",OdysTablet:"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\bXELIO\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10",CaptivaTablet:"CAPTIVA PAD",IconbitTablet:"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S",TeclastTablet:"T98 4G|\\bP80\\b|\\bX90HD\\b|X98 Air|X98 Air 3G|\\bX89\\b|P80 3G|\\bX80h\\b|P98 Air|\\bX89HD\\b|P98 3G|\\bP90HD\\b|P89 3G|X98 3G|\\bP70h\\b|P79HD 3G|G18d 3G|\\bP79HD\\b|\\bP89s\\b|\\bA88\\b|\\bP10HD\\b|\\bP19HD\\b|G18 3G|\\bP78HD\\b|\\bA78\\b|\\bP75\\b|G17s 3G|G17h 3G|\\bP85t\\b|\\bP90\\b|\\bP11\\b|\\bP98t\\b|\\bP98HD\\b|\\bG18d\\b|\\bP85s\\b|\\bP11HD\\b|\\bP88s\\b|\\bA80HD\\b|\\bA80se\\b|\\bA10h\\b|\\bP89\\b|\\bP78s\\b|\\bG18\\b|\\bP85\\b|\\bA70h\\b|\\bA70\\b|\\bG17\\b|\\bP18\\b|\\bA80s\\b|\\bA11s\\b|\\bP88HD\\b|\\bA80h\\b|\\bP76s\\b|\\bP76h\\b|\\bP98\\b|\\bA10HD\\b|\\bP78\\b|\\bP88\\b|\\bA11\\b|\\bA10t\\b|\\bP76a\\b|\\bP76t\\b|\\bP76e\\b|\\bP85HD\\b|\\bP85a\\b|\\bP86\\b|\\bP75HD\\b|\\bP76v\\b|\\bA12\\b|\\bP75a\\b|\\bA15\\b|\\bP76Ti\\b|\\bP81HD\\b|\\bA10\\b|\\bT760VE\\b|\\bT720HD\\b|\\bP76\\b|\\bP73\\b|\\bP71\\b|\\bP72\\b|\\bT720SE\\b|\\bC520Ti\\b|\\bT760\\b|\\bT720VE\\b|T720-3GE|T720-WiFi",OndaTablet:"\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\b[\\s]+|V10 \\b4G\\b",JaytechTablet:"TPC-PA762",BlaupunktTablet:"Endeavour 800NG|Endeavour 1010",DigmaTablet:"\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\b",EvolioTablet:"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\bEvotab\\b|\\bNeura\\b",LavaTablet:"QPAD E704|\\bIvoryS\\b|E-TAB IVORY|\\bE-TAB\\b",AocTablet:"MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712",MpmanTablet:"MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\bMPG7\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010",CelkonTablet:"CT695|CT888|CT[\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\bCT-1\\b",WolderTablet:"miTab \\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\b",MediacomTablet:"M-MPI10C3G|M-SP10EG|M-SP10EGP|M-SP10HXAH|M-SP7HXAH|M-SP10HXBH|M-SP8HXAH|M-SP8MXA",MiTablet:"\\bMI PAD\\b|\\bHM NOTE 1W\\b",NibiruTablet:"Nibiru M1|Nibiru Jupiter One",NexoTablet:"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI",LeaderTablet:"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100",UbislateTablet:"UbiSlate[\\s]?7C",PocketBookTablet:"Pocketbook",KocasoTablet:"\\b(TB-1207)\\b",HisenseTablet:"\\b(F5281|E2371)\\b",Hudl:"Hudl HT7S3|Hudl 2",TelstraTablet:"T-Hub2",GenericTablet:"Android.*\\b97D\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\bA7EB\\b|CatNova8|A1_07|CT704|CT1002|\\bM721\\b|rk30sdk|\\bEVOTAB\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\bM6pro\\b|CT1020W|arc 10HD|\\bTP750\\b|\\bQTAQZ3\\b|WVT101|TM1088|KT107"},oss:{AndroidOS:"Android",BlackBerryOS:"blackberry|\\bBB10\\b|rim tablet os",PalmOS:"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino",SymbianOS:"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\bS60\\b",WindowsMobileOS:"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Windows Mobile|Windows Phone [0-9.]+|WCE;",WindowsPhoneOS:"Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;",iOS:"\\biPhone.*Mobile|\\biPod|\\biPad|AppleCoreMedia",iPadOS:"CPU OS 13",MeeGoOS:"MeeGo",MaemoOS:"Maemo",JavaOS:"J2ME/|\\bMIDP\\b|\\bCLDC\\b",webOS:"webOS|hpwOS",badaOS:"\\bBada\\b",BREWOS:"BREW"},uas:{Chrome:"\\bCrMo\\b|CriOS|Android.*Chrome/[.0-9]* (Mobile)?",Dolfin:"\\bDolfin\\b",Opera:"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR/[0-9.]+$|Coast/[0-9.]+",Skyfire:"Skyfire",Edge:"Mobile Safari/[.0-9]* Edge",IE:"IEMobile|MSIEMobile",Firefox:"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS",Bolt:"bolt",TeaShark:"teashark",Blazer:"Blazer",Safari:"Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari",WeChat:"\\bMicroMessenger\\b",UCBrowser:"UC.*Browser|UCWEB",baiduboxapp:"baiduboxapp",baidubrowser:"baidubrowser",DiigoBrowser:"DiigoBrowser",Mercury:"\\bMercury\\b",ObigoBrowser:"Obigo",NetFront:"NF-Browser",GenericBrowser:"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger",PaleMoon:"Android.*PaleMoon|Mobile.*PaleMoon"},props:{Mobile:"Mobile/[VER]",Build:"Build/[VER]",Version:"Version/[VER]",VendorID:"VendorID/[VER]",iPad:"iPad.*CPU[a-z ]+[VER]",iPhone:"iPhone.*CPU[a-z ]+[VER]",iPod:"iPod.*CPU[a-z ]+[VER]",Kindle:"Kindle/[VER]",Chrome:["Chrome/[VER]","CriOS/[VER]","CrMo/[VER]"],Coast:["Coast/[VER]"],Dolfin:"Dolfin/[VER]",Firefox:["Firefox/[VER]","FxiOS/[VER]"],Fennec:"Fennec/[VER]",Edge:"Edge/[VER]",IE:["IEMobile/[VER];","IEMobile [VER]","MSIE [VER];","Trident/[0-9.]+;.*rv:[VER]"],NetFront:"NetFront/[VER]",NokiaBrowser:"NokiaBrowser/[VER]",Opera:[" OPR/[VER]","Opera Mini/[VER]","Version/[VER]"],"Opera Mini":"Opera Mini/[VER]","Opera Mobi":"Version/[VER]",UCBrowser:["UCWEB[VER]","UC.*Browser/[VER]"],MQQBrowser:"MQQBrowser/[VER]",MicroMessenger:"MicroMessenger/[VER]",baiduboxapp:"baiduboxapp/[VER]",baidubrowser:"baidubrowser/[VER]",SamsungBrowser:"SamsungBrowser/[VER]",Iron:"Iron/[VER]",Safari:["Version/[VER]","Safari/[VER]"],Skyfire:"Skyfire/[VER]",Tizen:"Tizen/[VER]",Webkit:"webkit[ /][VER]",PaleMoon:"PaleMoon/[VER]",Gecko:"Gecko/[VER]",Trident:"Trident/[VER]",Presto:"Presto/[VER]",Goanna:"Goanna/[VER]",iOS:" \\bi?OS\\b [VER][ ;]{1}",Android:"Android [VER]",BlackBerry:["BlackBerry[\\w]+/[VER]","BlackBerry.*Version/[VER]","Version/[VER]"],BREW:"BREW [VER]",Java:"Java/[VER]","Windows Phone OS":["Windows Phone OS [VER]","Windows Phone [VER]"],"Windows Phone":"Windows Phone [VER]","Windows CE":"Windows CE/[VER]","Windows NT":"Windows NT [VER]",Symbian:["SymbianOS/[VER]","Symbian/[VER]"],webOS:["webOS/[VER]","hpwOS/[VER];"]},utils:{Bot:"Googlebot|facebookexternalhit|Google-AMPHTML|s~amp-validator|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom|contentkingapp",MobileBot:"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker/M1A1-R2D2",DesktopMode:"WPDesktop",TV:"SonyDTV|HbbTV",WebKit:"(webkit)[ /]([\\w.]+)",Console:"\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|Nintendo Switch|PLAYSTATION|Xbox)\\b",Watch:"SM-V700"}},o.detectMobileBrowsers={fullPattern:/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,shortPattern:/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i, tabletPattern:/android|ipad|playbook|silk/i};var s,l=Object.prototype.hasOwnProperty;return o.FALLBACK_PHONE="UnknownPhone",o.FALLBACK_TABLET="UnknownTablet",o.FALLBACK_MOBILE="UnknownMobile",s="isArray"in Array?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},function(){var e,t,n,i,a,u,d=o.mobileDetectRules;for(e in d.props)if(l.call(d.props,e)){for(t=d.props[e],s(t)||(t=[t]),a=t.length,i=0;i<a;++i)n=t[i],u=n.indexOf("[VER]"),u>=0&&(n=n.substring(0,u)+"([\\w._\\+]+)"+n.substring(u+5)),t[i]=new RegExp(n,"i");d.props[e]=t}r(d.oss),r(d.phones),r(d.tablets),r(d.uas),r(d.utils),d.oss0={WindowsPhoneOS:d.oss.WindowsPhoneOS,WindowsMobileOS:d.oss.WindowsMobileOS}}(),o.findMatch=function(e,t){for(var n in e)if(l.call(e,n)&&e[n].test(t))return n;return null},o.findMatches=function(e,t){var n=[];for(var r in e)l.call(e,r)&&e[r].test(t)&&n.push(r);return n},o.getVersionStr=function(e,t){var n,r,i,a,s=o.mobileDetectRules.props;if(l.call(s,e))for(n=s[e],i=n.length,r=0;r<i;++r)if(a=n[r].exec(t),null!==a)return a[1];return null},o.getVersion=function(e,t){var n=o.getVersionStr(e,t);return n?o.prepareVersionNo(n):NaN},o.prepareVersionNo=function(e){var t;return t=e.split(/[a-z._ \/\-]/i),1===t.length&&(e=t[0]),t.length>1&&(e=t[0]+".",t.shift(),e+=t.join("")),Number(e)},o.isMobileFallback=function(e){return o.detectMobileBrowsers.fullPattern.test(e)||o.detectMobileBrowsers.shortPattern.test(e.substr(0,4))},o.isTabletFallback=function(e){return o.detectMobileBrowsers.tabletPattern.test(e)},o.prepareDetectionCache=function(e,n,r){if(e.mobile===t){var i,s,l;return(s=o.findMatch(o.mobileDetectRules.tablets,n))?(e.mobile=e.tablet=s,void(e.phone=null)):(i=o.findMatch(o.mobileDetectRules.phones,n))?(e.mobile=e.phone=i,void(e.tablet=null)):void(o.isMobileFallback(n)?(l=a.isPhoneSized(r),l===t?(e.mobile=o.FALLBACK_MOBILE,e.tablet=e.phone=null):l?(e.mobile=e.phone=o.FALLBACK_PHONE,e.tablet=null):(e.mobile=e.tablet=o.FALLBACK_TABLET,e.phone=null)):o.isTabletFallback(n)?(e.mobile=e.tablet=o.FALLBACK_TABLET,e.phone=null):e.mobile=e.tablet=e.phone=null)}},o.mobileGrade=function(e){var t=null!==e.mobile();return e.os("iOS")&&e.version("iPad")>=4.3||e.os("iOS")&&e.version("iPhone")>=3.1||e.os("iOS")&&e.version("iPod")>=3.1||e.version("Android")>2.1&&e.is("Webkit")||e.version("Windows Phone OS")>=7||e.is("BlackBerry")&&e.version("BlackBerry")>=6||e.match("Playbook.*Tablet")||e.version("webOS")>=1.4&&e.match("Palm|Pre|Pixi")||e.match("hp.*TouchPad")||e.is("Firefox")&&e.version("Firefox")>=12||e.is("Chrome")&&e.is("AndroidOS")&&e.version("Android")>=4||e.is("Skyfire")&&e.version("Skyfire")>=4.1&&e.is("AndroidOS")&&e.version("Android")>=2.3||e.is("Opera")&&e.version("Opera Mobi")>11&&e.is("AndroidOS")||e.is("MeeGoOS")||e.is("Tizen")||e.is("Dolfin")&&e.version("Bada")>=2||(e.is("UC Browser")||e.is("Dolfin"))&&e.version("Android")>=2.3||e.match("Kindle Fire")||e.is("Kindle")&&e.version("Kindle")>=3||e.is("AndroidOS")&&e.is("NookTablet")||e.version("Chrome")>=11&&!t||e.version("Safari")>=5&&!t||e.version("Firefox")>=4&&!t||e.version("MSIE")>=7&&!t||e.version("Opera")>=10&&!t?"A":e.os("iOS")&&e.version("iPad")<4.3||e.os("iOS")&&e.version("iPhone")<3.1||e.os("iOS")&&e.version("iPod")<3.1||e.is("Blackberry")&&e.version("BlackBerry")>=5&&e.version("BlackBerry")<6||e.version("Opera Mini")>=5&&e.version("Opera Mini")<=6.5&&(e.version("Android")>=2.3||e.is("iOS"))||e.match("NokiaN8|NokiaC7|N97.*Series60|Symbian/3")||e.version("Opera Mobi")>=11&&e.is("SymbianOS")?"B":(e.version("BlackBerry")<5||e.match("MSIEMobile|Windows CE.*Mobile")||e.version("Windows Mobile")<=5.2,"C")},o.detectOS=function(e){return o.findMatch(o.mobileDetectRules.oss0,e)||o.findMatch(o.mobileDetectRules.oss,e)},o.getDeviceSmallerSide=function(){return window.screen.width<window.screen.height?window.screen.width:window.screen.height},a.prototype={constructor:a,mobile:function(){return o.prepareDetectionCache(this._cache,this.ua,this.maxPhoneWidth),this._cache.mobile},phone:function(){return o.prepareDetectionCache(this._cache,this.ua,this.maxPhoneWidth),this._cache.phone},tablet:function(){return o.prepareDetectionCache(this._cache,this.ua,this.maxPhoneWidth),this._cache.tablet},userAgent:function(){return this._cache.userAgent===t&&(this._cache.userAgent=o.findMatch(o.mobileDetectRules.uas,this.ua)),this._cache.userAgent},userAgents:function(){return this._cache.userAgents===t&&(this._cache.userAgents=o.findMatches(o.mobileDetectRules.uas,this.ua)),this._cache.userAgents},os:function(){return this._cache.os===t&&(this._cache.os=o.detectOS(this.ua)),this._cache.os},version:function(e){return o.getVersion(e,this.ua)},versionStr:function(e){return o.getVersionStr(e,this.ua)},is:function(t){return n(this.userAgents(),t)||e(t,this.os())||e(t,this.phone())||e(t,this.tablet())||n(o.findMatches(o.mobileDetectRules.utils,this.ua),t)},match:function(e){return e instanceof RegExp||(e=new RegExp(e,"i")),e.test(this.ua)},isPhoneSized:function(e){return a.isPhoneSized(e||this.maxPhoneWidth)},mobileGrade:function(){return this._cache.grade===t&&(this._cache.grade=o.mobileGrade(this)),this._cache.grade}},"undefined"!=typeof window&&window.screen?a.isPhoneSized=function(e){return e<0?t:o.getDeviceSmallerSide()<=e}:a.isPhoneSized=function(){},a._impl=o,a.version="1.4.4 2019-09-21",a})}(function(t){return"undefined"!=typeof e&&e.exports?function(t){e.exports=t()}:n(369)}())},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){e.exports="uniform sampler2D u_baseTexture;\nuniform float u_mipmapLevel;\n\nfloat calcLuminance(vec4 color) {\n return max(dot(color.rgb, vec3(0.299, 0.587, 0.114)), 0.0001);\n}\n\nvec4 pack(const in float v) {\n const vec4 bit_shift = vec4(256.0*256.0*256.0, 256.0*256.0, 256.0, 1.0);\n const vec4 bit_mask = vec4(0.0, 1.0/256.0, 1.0/256.0, 1.0/256.0);\n vec4 res = fract(v * bit_shift);\n res -= res.xxyz * bit_mask;\n return res;\n}\n\nvec4 encodeFloat(float v) {\n vec4 c = vec4(0.0, 0.0, 0.0, 0.0);\n if (v < 0.0) {\n c[0] += 64.0;\n v = -v;\n }\n float f = 0.0;\n float e = ceil(log2(v));\n float m = v * exp2(-e);\n if (e < 0.0) {\n e = -e;\n c[0] += 128.0;\n }\n c[0] += e;\n m *= 255.0;\n f = floor(m);\n c[1] = f;\n m -= f;\n m *= 255.0;\n f = floor(m);\n c[2] = f;\n m -= f;\n m *= 255.0;\n c[3] = floor(m);\n return c * 3.921569E-03;\n}\n\nvoid main() {\n\tgl_FragColor = encodeFloat(calcLuminance(texture2D(u_baseTexture, vec2(0.5), u_mipmapLevel)));\n}\n"},function(e,t){e.exports="uniform sampler2D u_baseTexture;\nuniform vec2 u_bl;\nuniform vec2 u_tr;\n\nvarying vec2 v_texCoord0;\n\n\nvoid main() {\n\tvec2 coord = u_bl + (u_tr - u_bl) * v_texCoord0;\n\tgl_FragColor = texture2D(u_baseTexture, coord);\n}\n"},function(e,t){e.exports="uniform sampler2D u_depthTexture;\n\nuniform float u_mipmapLevel;\n\nvec4 packFloat(const in float f) {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 160581375.0) * clamp(f, 0.0, 0.9999999);\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0/255.0,1.0/255.0,1.0/255.0,0.0);\n return enc;\n}\n\nfloat unpackFloat4(vec4 rgba) {\n return dot(rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0 / 160581375.0));\n}\n\nvoid main() {\n#if defined(USE_HDR)\n #if defined(USE_TEX2D_LOD)\n gl_FragColor = packFloat(texture2DLodEXT(u_depthTexture, vec2(0.5), u_mipmapLevel).x);\n #else\n gl_FragColor = packFloat(texture2D(u_depthTexture, vec2(0.5)).x);\n #endif\n#else\n\tgl_FragColor = texture2D(u_depthTexture, vec2(0.5));\n#endif\n\n}\n"},function(e,t){e.exports="uniform sampler2D u_depthTexture;\nuniform vec2 u_bl;\nuniform vec2 u_tr;\n\nvarying vec2 v_texCoord0;\n\nvec4 packFloat(const in float f) {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 160581375.0) * clamp(f, 0.0, 0.9999999);\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0/255.0,1.0/255.0,1.0/255.0,0.0);\n return enc;\n}\n\nvoid main()\n{\n#if defined(USE_HDR)\n gl_FragColor = texture2D(u_depthTexture, u_bl + (u_tr - u_bl) * v_texCoord0);\n#else\n gl_FragColor = packFloat(texture2D(u_depthTexture, u_bl + (u_tr - u_bl) * v_texCoord0).x);\n#endif\n\n}\n"},function(e,t){e.exports="uniform sampler2D u_baseTexture;\nuniform float u_glareThreshold;\n\nvarying vec2 v_texCoord0;\n\nfloat calcLuminance(vec3 color) {\n return max(dot(color.rgb, vec3(0.299, 0.587, 0.114)), 0.0001);\n}\n\nvoid main() {\n // TODO: FFT Based Convolution of the output of this effect\n\tvec4 color = clamp(texture2D(u_baseTexture, v_texCoord0), 0.0, 100.0);\n\tfloat weight = step(u_glareThreshold, calcLuminance(color.rgb));\n\n gl_FragColor = vec4(color.rgba*weight);\n}\n"},function(e,t){e.exports="varying vec2 v_texCoord0;\n\nuniform sampler2D u_depthTexture;\nuniform vec3 u_fDLS;\nuniform vec4 u_projection;\n\n#if !defined(USE_DEPTH_EXTENSION)\nvec4 packFloat4(float f) {\n vec4 Encoded = vec4( 1.0, 255.0, 65025.0, 160581375.0 ) * f;\n Encoded = fract( Encoded );\n Encoded -= Encoded.yzww * vec4( 1.0/255.0, 1.0/255.0, 1.0/255.0, 0.0 );\n return Encoded;\n}\n\nfloat unpackFloat4(vec4 rgba) {\n return dot(rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0 / 160581375.0));\n}\n#endif\n\nvoid main() {\n float depth = 0.0;\n\n#if defined(USE_DEPTH_EXTENSION)\n depth = texture2D(u_depthTexture, v_texCoord0).x;\n#else\n #if defined(USE_HDR)\n depth = texture2D(u_depthTexture, v_texCoord0).x;\n #else\n depth = unpackFloat4(texture2D(u_depthTexture, v_texCoord0));\n #endif\n#endif\n depth = u_projection.y / ((2.0 * depth - 1.0) - u_projection.x);\n\n // premultiply signed coc\n float f = u_fDLS.y; //focal length in mm\n float d = u_fDLS.x * 1000.0; //focal plane in mm\n float o = depth*1000.0; //depth in mm\n\n float a = (o*f)/(o-f);\n float b = (d*f)/(d-f);\n float c = (d-f)/(d*u_fDLS.z);\n\n float coc = (a-b)*c;\n\n#if defined(USE_HDR)\n gl_FragColor = vec4(coc, 0.0, 0.0, 1.0);\n#else\n gl_FragColor = packFloat4(coc);\n#endif\n}\n"},function(e,t){e.exports="void main() {\n\tgl_FragColor = vec4(1.0, 1.0, 1.0, 0.1);\n}\n"},function(e,t){e.exports="uniform mat4 u_worldMatrix;\nuniform mat4 u_viewMatrix;\nuniform mat4 u_projectionMatrix;\n\nattribute vec3 position;\n\nvoid main() {\n mat4 wvpMatrix = u_projectionMatrix * u_viewMatrix * u_worldMatrix;\n\tgl_Position = wvpMatrix * vec4(position, 1.0);\n}\n\n"},function(e,t){e.exports="uniform sampler2D u_apertureTexture;\n\nvarying vec3 v_color;\n\n#if defined(USE_CATS_EYE) \nvarying vec2 v_eclipseOffset;\nuniform sampler2D u_pupilTexture;\n#endif\n\nvoid main() {\n vec2 coord = gl_PointCoord;\n float cocWeight = texture2D(u_apertureTexture, coord).r;\n \n#if defined(USE_CATS_EYE) \n coord += v_eclipseOffset; \n float eclipseWeight = texture2D(u_pupilTexture, coord).r;\n \n\tgl_FragColor = vec4(v_color * eclipseWeight, cocWeight);\n#else\n\tgl_FragColor = vec4(v_color, cocWeight);\n#endif\n}\n"},function(e,t){e.exports="\nattribute vec2 position;\n\nuniform mat4 u_worldMatrix;\nuniform mat4 u_viewMatrix;\nuniform mat4 u_projectionMatrix;\n\nuniform float u_pointSize;\nuniform float u_filmHeight;\nuniform float u_height;\nuniform float u_width;\nuniform float u_cocThreshold;\nuniform float u_upperCocThreshold;\nuniform float u_fStop;\nuniform float u_focalLength;\nuniform float u_opticalVignettingStrength;\n\nuniform sampler2D u_plainTexture;\nuniform sampler2D u_cocTexture;\n\nvarying vec3 v_color;\n\n#if defined(USE_CATS_EYE)\nvarying vec2 v_eclipseOffset;\n#endif\n\n#if !defined(USE_HDR)\nfloat unpackFloat4( vec4 rgba )\n{\n return dot( rgba, vec4( 1.0, 1.0/255.0, 1.0/65025.0, 1.0/160581375.0 ) );\n}\n\n// Inverse M matrix, for decoding\nconst mat3 InverseM = float3x3(\n 6.0013, -2.700, -1.7995,\n -1.332, 3.1029, -5.7720,\n .3007, -1.088, 5.6268);\n\nvec3 logLuvDecode(vec4 vLogLuv) {\n float Le = vLogLuv.z * 255.0 + vLogLuv.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 / vLogLuv.y;\n Xp_Y_XYZp.x = vLogLuv.x * Xp_Y_XYZp.z;\n vec3 vRGB = InverseM * Xp_Y_XYZp;\n return max(vRGB, 0.0);\n}\n#endif\n\n\nfloat getOpticalVignetting(float distSqr) {\n float vignettingDistanceSqr = u_fStop * u_focalLength / (100.0*u_opticalVignettingStrength);\n float factor = smoothstep(0.0, vignettingDistanceSqr, distSqr);\n return factor*factor;\n}\n\nvoid main() {\n\n#if defined(USE_LOGLUV_INPUT)\n v_color = logLuvDecode(texture2D(u_plainTexture, position));\n#else\n v_color = texture2D(u_plainTexture, position).rgb;\n#endif\n v_color = clamp(v_color, 0.0, 100.0);\n\n float signedCoc = 0.0;\n#if defined(USE_HDR)\n signedCoc = texture2D(u_cocTexture, position).x;\n#else\n signedCoc = unpackFloat4(texture2D(u_cocTexture, position));\n#endif\n\tfloat realCoc = abs(signedCoc) / u_filmHeight * u_height * 2.0;\n\t\n if(realCoc < u_cocThreshold || realCoc > u_upperCocThreshold) {\n \tgl_Position = vec4(-20000,-20000,-20000,1);\n return;\n }\n\n float level = ceil(log2(max(1.0, realCoc/u_pointSize)));\n float levelPow2 = exp2(level+1.0) * 0.5;\n\n float bgWeight = step(0.0, signedCoc);\n float halfPointSize = u_pointSize * 0.5;\n\n float offset = (2.0*u_height) * (1.0/levelPow2 * (exp2(level + 1.0) - 1.0) - 1.0) + level * halfPointSize;\n vec2 finalPosition = vec2(u_width * position.x, u_height * position.y) / levelPow2;\n finalPosition += vec2(bgWeight * (u_width + halfPointSize), offset);\n\n\tvec4 homogenousPosition = vec4(finalPosition.x, finalPosition.y, 1.0, 1.0);\n mat4 wvpMatrix = u_projectionMatrix * u_viewMatrix * u_worldMatrix;\n\tgl_Position = wvpMatrix * homogenousPosition;\n\n#if defined(USE_CATS_EYE)\n vec2 dir = position - vec2(0.5, 0.5);\n float v = getOpticalVignetting(dot(dir, dir));\n v_eclipseOffset = vec2(1.0, -1.0) * normalize(dir)*v;\n#endif\n\n gl_PointSize = realCoc / levelPow2;\n}\n"},function(e,t){e.exports="uniform vec2 u_pixelSize;\nuniform sampler2D u_baseTexture;\nvarying vec2 v_texCoord0;\n\nvoid main() {\n vec4 color = vec4(0.0);\n color += texture2D(u_baseTexture, v_texCoord0 + vec2(u_pixelSize.x * 0.5, u_pixelSize.y * 0.5));\n color += texture2D(u_baseTexture, v_texCoord0 - vec2(u_pixelSize.x * 0.5, u_pixelSize.y * 0.5));\n color += texture2D(u_baseTexture, v_texCoord0 + vec2(-u_pixelSize.x * 0.5, u_pixelSize.y * 0.5));\n color += texture2D(u_baseTexture, v_texCoord0 + vec2(u_pixelSize.x * 0.5, -u_pixelSize.y * 0.5));\n gl_FragColor = color * 0.25;\n}\n"},function(e,t){e.exports="varying vec2 v_texCoord0;\n\nuniform sampler2D u_rgbLut;\nuniform float u_hue;\nuniform float u_value;\nuniform float u_saturation;\n\nvec3 hsvToRgb(vec3 c)\n{\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\nvec3 rgbToHsv(vec3 c)\n{\n vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n // TODO: check wheter this is faster because of conditional moves\n //vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);\n //vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);\n\n float d = q.x - min(q.w, q.y);\n float e = 1.0e-10;\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n}\n\nvoid main() {\n vec3 hsv = rgbToHsv(texture2D(u_rgbLut, v_texCoord0).rgb);\n hsv *= vec3(u_hue, u_saturation, u_value);\n gl_FragColor = vec4(hsvToRgb(hsv), 1.0); \n}\n"},function(e,t){e.exports="uniform sampler2D u_baseTexture;\nuniform int u_channel;\n\nvarying vec2 v_texCoord0;\n\nvec4 packFloat(const in float f) {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 160581375.0) * clamp(f, 0.0, 0.9999999);\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0/255.0,1.0/255.0,1.0/255.0,0.0);\n return enc;\n}\n\n\nvoid main()\n{\n if(u_channel == 0) {\n gl_FragColor = packFloat(texture2D(u_baseTexture, v_texCoord0).x/255.0);\n } else if(u_channel == 1) {\n gl_FragColor = packFloat(texture2D(u_baseTexture, v_texCoord0).y/255.0);\n } else if(u_channel == 2) {\n gl_FragColor = packFloat(texture2D(u_baseTexture, v_texCoord0).z/255.0);\n } else if(u_channel == 3) {\n gl_FragColor = packFloat(texture2D(u_baseTexture, v_texCoord0).w/255.0);\n }\n}\n\n"},function(e,t){e.exports="// should be LDR and non linear! aka gamma space\n//FXAA requires the non-linear (perceptually encoded) RGB input and texture \n//filtering: as a performance optimization, the algorithm�s end-of-edge search step \n//samples halfway between a pair of texels, and it is important that the fetch returns \n//the perceptual blend of the two texels instead of the linearly correct blend.\n\nuniform sampler2D u_baseTexture;\nuniform vec2 u_texCoordOffset;\n\nvarying vec2 v_texCoord0;\n\nconst float FXAA_SPAN_MAX = 8.0;\nconst float FXAA_REDUCE_MUL = 1.0/8.0;\nconst float FXAA_REDUCE_MIN = (1.0/128.0);\n\nvoid main() {\n\tvec3 rgbNW = texture2D(u_baseTexture, v_texCoord0.xy + (vec2(-1.0, -1.0) * u_texCoordOffset)).xyz;\n\tvec3 rgbNE = texture2D(u_baseTexture, v_texCoord0.xy + (vec2(+1.0, -1.0) * u_texCoordOffset)).xyz;\n\tvec3 rgbSW = texture2D(u_baseTexture, v_texCoord0.xy + (vec2(-1.0, +1.0) * u_texCoordOffset)).xyz;\n\tvec3 rgbSE = texture2D(u_baseTexture, v_texCoord0.xy + (vec2(+1.0, +1.0) * u_texCoordOffset)).xyz;\n\tvec3 rgbM = texture2D(u_baseTexture, v_texCoord0.xy).xyz;\n\t\t\n\tvec3 luma = vec3(0.299, 0.587, 0.114);\n\tfloat lumaNW = dot(rgbNW, luma);\n\tfloat lumaNE = dot(rgbNE, luma);\n\tfloat lumaSW = dot(rgbSW, luma);\n\tfloat lumaSE = dot(rgbSE, luma);\n\tfloat lumaM = dot( rgbM, luma);\n\t\t\n\tfloat lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\n\tfloat lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\n\t\t\n\tvec2 dir;\n\tdir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\n\tdir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));\n\t\t\n\tfloat dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);\n\t\t \n\tfloat rcpDirMin = 1.0/(min(abs(dir.x), abs(dir.y)) + dirReduce);\n\t\t\n\tdir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX), \n\t max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX), dir * rcpDirMin)) * u_texCoordOffset;\n\t\t\t\n\tvec4 rgbA = (1.0/2.0) * (\n\t texture2D(u_baseTexture, v_texCoord0.xy + dir * (1.0/3.0 - 0.5)).xyzw +\n\t texture2D(u_baseTexture, v_texCoord0.xy + dir * (2.0/3.0 - 0.5)).xyzw);\n\tvec4 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * (\n\t texture2D(u_baseTexture, v_texCoord0.xy + dir * (0.0/3.0 - 0.5)).xyzw +\n\t texture2D(u_baseTexture, v_texCoord0.xy + dir * (3.0/3.0 - 0.5)).xyzw);\n\tfloat lumaB = dot(rgbB.rgb, luma);\n\t\n\tif((lumaB < lumaMin) || (lumaB > lumaMax)) {\n\t\tgl_FragColor = rgbA;\n\t}\n\telse {\n\t\tgl_FragColor = rgbB;\n\t}\n}\n"},function(e,t){e.exports="uniform sampler2D u_baseTexture;\nuniform float u_pixelSize;\nuniform float u_pixelSize2;\n\nvarying vec2 v_texCoord0;\n\nfloat offset1 = 1.3846153846;\nfloat offset2 = 3.2307692308;\n\nfloat weight0 = 0.2270270270;\nfloat weight1 = 0.3162162162;\nfloat weight2 = 0.0702702703;\n\n#if defined(USE_SHADOW_MOMENTS_BLUR)\nvec2 packFloat2( float f ) {\n f *= 256.0;\n float x = floor( f );\n f = ( f - x ) * 256.0;\n\n float y = floor( f );\n x *= 0.00390625;\n y *= 0.00390625;\n\n return vec2( x, y );\n}\n\nfloat unpackFloat2(vec2 v) {\n return v.x + (v.y * 0.00390625);\n}\n#endif\n\nvec4 blur(sampler2D texture, vec2 texCoords, float pixelSize) {\n#if !defined(USE_SHADOW_MOMENTS_BLUR)\n vec4 color = texture2D(texture, texCoords) * weight0;\n#else\n vec4 color = texture2D(texture, texCoords);\n color.xy = vec2(unpackFloat2(color.xy), unpackFloat2(color.zw)) * weight0;\n#endif\n\n#if defined(BLUR_HORIZONTAL)\n vec2 pixelOffset1 = vec2(offset1*pixelSize, 0.0);\n vec2 pixelOffset2 = vec2(offset2*pixelSize, 0.0);\n#else\n vec2 pixelOffset1 = vec2(0.0, offset1*pixelSize);\n vec2 pixelOffset2 = vec2(0.0, offset2*pixelSize);\n#endif\n\n#if !defined(USE_SHADOW_MOMENTS_BLUR)\n color += texture2D(texture, texCoords+pixelOffset1) * weight1;\n color += texture2D(texture, texCoords-pixelOffset1) * weight1;\n\n color += texture2D(texture, texCoords+pixelOffset2) * weight2;\n color += texture2D(texture, texCoords-pixelOffset2) * weight2;\n#else\n vec4 texel = texture2D(texture, texCoords+pixelOffset1);\n color.xy += vec2(unpackFloat2(texel.xy), unpackFloat2(texel.zw)) * weight1;\n texel = texture2D(texture, texCoords-pixelOffset1);\n color.xy += vec2(unpackFloat2(texel.xy), unpackFloat2(texel.zw)) * weight1;\n\n texel = texture2D(texture, texCoords+pixelOffset2);\n color.xy += vec2(unpackFloat2(texel.xy), unpackFloat2(texel.zw)) * weight2;\n texel = texture2D(texture, texCoords-pixelOffset2);\n color.xy += vec2(unpackFloat2(texel.xy), unpackFloat2(texel.zw)) * weight2;\n#endif\n\n return color;\n}\n\nvoid main() {\n#if !defined(USE_SHADOW_MOMENTS_BLUR)\n\tgl_FragColor = blur(u_baseTexture, v_texCoord0, u_pixelSize * u_pixelSize2);\n#else\n vec4 result = blur(u_baseTexture, v_texCoord0, u_pixelSize * u_pixelSize2);\n\tgl_FragColor = vec4(packFloat2(result.x), packFloat2(result.y));\n#endif\n}\n\n"},function(e,t){e.exports="uniform sampler2D u_bloomTexture1;\nuniform sampler2D u_bloomTexture2;\nuniform sampler2D u_maskTexture;\nuniform float u_ghostingThreshold;\n\nvarying vec2 v_texCoord0;\n\nfloat calcLuminance(vec3 color) {\n return max(dot(color, vec3(0.299, 0.587, 0.114)), 0.0001);\n}\n\nvoid main() {\n //float s1 = 2.0;\n float s2 = -1.0;\n //vec2 texCoord1 = (v_texCoord0 - 0.5) * s1 + 0.5;\n vec2 texCoord2 = (v_texCoord0 - 0.5) * s2 + 0.5;\n\n //vec4 bloom1 = texture2D(u_bloomTexture1, texCoord1);\n vec4 bloom2 = texture2D(u_bloomTexture2, texCoord2); \n // float mask1 = texture2D(u_maskTexture, texCoord1).x;\n float mask2 = texture2D(u_maskTexture, texCoord2).x;\n \n //vec3 color = bloom1.rgb*mask1 + bloom2.rgb*mask2;\n vec4 color = vec4(bloom2.rgb*mask2, bloom2.a);\n\n float lum = calcLuminance(color.rgb);\n color.rgb *= smoothstep(u_ghostingThreshold, u_ghostingThreshold + u_ghostingThreshold, lum);\n gl_FragColor = color;\n}\n"},function(e,t){e.exports="varying vec2 v_texCoord0;\n\nuniform sampler2D u_baseTexture;\n\nconst float norm = 1.0 / 3.0;\nconst float dispersal = 0.3;\nconst float halo = 0.52;\nconst vec3 chromaticDispersal = vec3(1.02,1.0,0.98) * 0.97;\n\nvec4 textureDistorted(sampler2D tex, vec2 sampleCenter, vec2 sampleVector, vec3 distortion) {\n\tvec2 ra = texture2D(tex, sampleCenter + sampleVector * distortion.r).xw;\n\tvec2 ga = texture2D(tex, sampleCenter + sampleVector * distortion.g).yw;\n\tvec2 ba = texture2D(tex, sampleCenter + sampleVector * distortion.b).zw;\n return vec4(ra.x, ga.x, ba.x, (ra.y + ga.y + ba.y) * norm);\n}\n\nvoid main() {\n vec2 centerToUV = vec2(0.5) - v_texCoord0;\n\tvec2 sampleVector = (centerToUV) * dispersal;\n\tvec2 haloVector = normalize(sampleVector) * halo;\n\n vec4 result = textureDistorted(u_baseTexture, v_texCoord0 + haloVector, haloVector, chromaticDispersal);\n\n\n\tfor(int i = 0; i < NUM_FLARE_SAMPLES; ++i) {\n vec2 offset = sampleVector * float(i);\n\t\tresult += textureDistorted(u_baseTexture, v_texCoord0 + offset, offset, chromaticDispersal);\n\t}\n\n gl_FragColor = result;\n}\n"},function(e,t){e.exports="uniform sampler2D u_baseTexture;\n\nvarying vec2 v_texCoord0;\n\nvoid main() {\n\tvec4 color = texture2D(u_baseTexture, v_texCoord0);\n\tgl_FragColor = color;\n}\n"},function(e,t){e.exports="uniform mat4 u_worldMatrix;\nuniform mat4 u_viewMatrix;\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_inverseProjectionMatrix;\nuniform float u_aspect;\nuniform float u_scale;\n\nattribute vec3 position;\nattribute vec2 texCoord0;\n\nvarying vec2 v_texCoord0;\n\nvoid main() {\n v_texCoord0 = texCoord0;\n vec4 homogenousPosition = u_projectionMatrix * u_viewMatrix * (u_worldMatrix * vec4(0, 0, 0, 1));\n vec3 lightPosVS = homogenousPosition.xyz / homogenousPosition.w;\n if(abs(lightPosVS.x) <= 1.2 && abs(lightPosVS.y) <= 1.2) {\n lightPosVS.xy += vec2(position.x, position.y * u_aspect) * u_scale;\n gl_Position = vec4(lightPosVS.xyz * homogenousPosition.w, homogenousPosition.w);\n }\n else {\n gl_Position = vec4(-10.0, -10.0, -10.0, 1.0);\n }\n}\n"},function(e,t){e.exports="uniform sampler2D u_currentFrameTexture;\nuniform sampler2D u_previousFrameTexture;\n\nvarying vec2 v_texCoord0;\n\nvoid main() {\n vec4 curColor = texture2D(u_currentFrameTexture, v_texCoord0);\n vec4 prevColor = texture2D(u_previousFrameTexture, v_texCoord0);\n\n gl_FragColor = mix(curColor, prevColor, 0.5);\n // gl_FragColor = curColor;\n}\n"},function(e,t){e.exports="#define PI_FOURTH 0.78539816339\n\nvarying vec2 v_texCoord0;\n\nuniform sampler2D u_baseTexture;\n\n#if defined(USE_DOF)\nuniform sampler2D u_splatTexture;\nuniform sampler2D u_cocTexture;\n\nuniform vec2 u_size;\n\nuniform float u_cocThreshold;\nuniform float u_cocThresholdRange;\nuniform float u_pointSize;\nuniform float u_widthScale;\n\nuniform vec2 u_filmSize;\n#endif\n\nuniform float u_fStop;\nuniform float u_shutterSpeed;\nuniform float u_lensTransmittance;\nuniform float u_filmSpeed;\n\nfloat getCalibratedLuminanceFactor() {\n\treturn PI_FOURTH*u_filmSpeed *u_lensTransmittance*u_shutterSpeed/(u_fStop*u_fStop);\n}\n\n#if !defined(USE_HDR)\nfloat unpackFloat4(vec4 rgba) {\n return dot(rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0/160581375.0 ));\n}\n\nconst mat3 M = mat3(\n 0.2209, 0.3390, 0.4184,\n 0.1138, 0.6780, 0.7319,\n 0.0102, 0.1130, 0.2969);\n\nvec4 logLuvEncode(vec3 vRGB) {\n vec4 vResult;\n vec3 Xp_Y_XYZp = M * vRGB;\n Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\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}\n\n// Inverse M matrix, for decoding\nconst mat3 InverseM = mat3(\n 6.0013, -2.700, -1.7995,\n -1.332, 3.1029, -5.7720,\n .3007, -1.088, 5.6268);\n\nvec3 logLuvDecode(vec4 vLogLuv) {\n float Le = vLogLuv.z * 255.0 + vLogLuv.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 / vLogLuv.y;\n Xp_Y_XYZp.x = vLogLuv.x * Xp_Y_XYZp.z;\n vec3 vRGB = InverseM * Xp_Y_XYZp;\n return max(vRGB, 0.0);\n}\n#endif\n\nvoid main() {\n\n vec4 color = vec4(0.0);\n\n#if defined(USE_DOF)\n vec4 background = vec4(0.0);\n vec4 foreground = vec4(0.0);\n \n vec2 halfPointSize = u_pointSize * 0.5 / u_size;\n float foregroundOffset = 0.5 * u_widthScale + halfPointSize.x * u_widthScale;\n float levelOffset = 0.0;\n \n float levelPow2 = 1.0;\n \n for(int i = 0; i < MAX_SPLAT_LEVEL; ++i) {\n float level = float(i);\n\n vec2 finalPositionBackground = v_texCoord0 / (levelPow2 * 2.0) * vec2(u_widthScale, 1.0);\n finalPositionBackground.y += levelOffset + level * halfPointSize.y;\n \n background += texture2D(u_splatTexture, finalPositionBackground);\n \n vec2 finalPositionForeground = finalPositionBackground;\n finalPositionForeground.x += foregroundOffset;\n \n foreground += texture2D(u_splatTexture, finalPositionForeground);\n\n levelPow2 *= 2.0;\n levelOffset += 1.0 / levelPow2;\n }\n \n if(background.a != 0.0) {\n background.rgb /= background.a;\n }\n if(foreground.a != 0.0) {\n foreground.rgb /= foreground.a;\n }\n\n \n vec2 dir = v_texCoord0 - vec2(0.5, 0.5);\n float dist = dot(dir, dir);\n\n\tfloat signedCoc = 0.0;\n #if defined(USE_HDR)\n\tsignedCoc = texture2D(u_cocTexture, v_texCoord0).x;\n #else\n signedCoc = unpackFloat4(texture2D(u_cocTexture, v_texCoord0));\n #endif\n float coc = abs(signedCoc) / u_filmSize.y * u_size.y;\n\n #if defined(USE_LOGLUV_INPUT)\n color = vec4(logLuvDecode(texture2D(u_baseTexture, v_texCoord0)), 1.0);\n #else\n\tcolor = texture2D(u_baseTexture, v_texCoord0);\n #endif\n\n float weight = smoothstep(u_cocThreshold*2.0, u_cocThreshold*2.0 + u_cocThresholdRange, coc);\n float bgThreshold = step(0.0, signedCoc);\n\n float bgWeight = weight * (1.0 - bgThreshold);\n float fgWeight = weight * bgThreshold;\n \n color = vec4((1.0 - bgWeight) * color.rgb + bgWeight * background.rgb, 1.0);\n color = vec4((1.0 - fgWeight) * color.rgb + fgWeight * foreground.rgb, 1.0);\n#else\n color = texture2D(u_baseTexture, v_texCoord0);\n#endif\n\n color.rgb *= getCalibratedLuminanceFactor();\n\n // NOTE: fake HDR ends here, all passes after that need\n // real floating point precision (16 or 32bit per channel)\n\tgl_FragColor = color;\n}\n\n"},function(e,t){e.exports="uniform sampler2D u_baseTexture;\nvarying vec2 v_texCoord0;\n\nvoid main() {\n\tgl_FragColor = texture2D(u_baseTexture, v_texCoord0);\n}\n"},function(e,t){e.exports="\n#define PI 3.141592654\n\n#if !defined(USE_DEPTH_EXTENSION)\nfloat unpackFloat4(vec4 rgba) {\n return dot(rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0 / 160581375.0));\n}\n#endif\n\nvarying vec2 v_texCoord0;\n\nuniform sampler2D u_depthTexture;\nuniform sampler2D u_randomTexture;\n\n#if defined(USE_GBUFFER_NORMALS)\nuniform sampler2D u_normalTexture;\n#endif\n\nuniform vec2 u_focalLength;\nuniform vec2 u_invFocalLength;\nuniform float u_contrast;\nuniform float u_radius;\nuniform float u_invRadius;\nuniform float u_sqrRadius;\nuniform float u_angleBias;\nuniform float u_attenuation;\n\nuniform vec2 u_resolution;\nuniform vec2 u_invResolution;\n\n#if !defined(USE_VIEW_SPACE_DEPTH)\nuniform vec4 u_projection;\n#endif\n\nvec3 uvToEye(vec2 uv, float eyeZ) {\n uv = (uv * vec2(2.0, -2.0) - vec2(1.0, -1.0));\n return vec3(uv * u_invFocalLength * eyeZ, eyeZ);\n}\n\nvec3 fetchEyePos(vec2 uv) {\n\nfloat depth = 0.0;\n\n#if defined(USE_VIEW_SPACE_DEPTH)\n depth = texture2D(u_depthTexture, uv).x;\n#else\n #if defined(USE_DEPTH_EXTENSION)\n depth = u_projection.y / ((2.0*texture2D(u_depthTexture, uv).x - 1.0) - u_projection.x);\n #else\n #if defined(USE_HDR)\n depth = texture2D(u_depthTexture, v_texCoord0).x;\n #else\n depth = unpackFloat4(texture2D(u_depthTexture, v_texCoord0));\n #endif\n depth = u_projection.y / (depth - u_projection.x);\n #endif\n#endif\n\n return uvToEye(uv, depth);\n}\n\nfloat length2(vec3 v) {\n return dot(v, v);\n}\n\nvec3 minDiff(vec3 p, vec3 pr, vec3 pl) {\n vec3 v1 = pr - p;\n vec3 v2 = p - pl;\n return (length2(v1) < length2(v2)) ? v1 : v2;\n}\n\nvec2 snapUvOffset(vec2 uv) {\n return floor((uv * u_resolution) + 0.5) * u_invResolution;\n}\n\nfloat falloff(float r) {\n return 1.0 - u_attenuation*r*r;\n}\n\nfloat invlength(vec2 v) {\n return inversesqrt(dot(v,v));\n}\n\nfloat tangent(vec3 t) {\n return -t.z * invlength(t.xy);\n}\n\nfloat tangent(vec3 p, vec3 s) {\n return (p.z - s.z) / length(s.xy - p.xy);\n}\n\nfloat biasedTangent(vec3 t) {\n float phi = atan(tangent(t)) + u_angleBias;\n return tan(min(phi, PI*0.5));\n}\n\nfloat accumulatedHorizonOcclusion(vec2 deltaUV,\n vec2 uv0,\n vec3 p,\n float randstep,\n vec3 dPdu,\n vec3 dPdv) {\n vec2 uv = uv0 + snapUvOffset(randstep * deltaUV);\n\n deltaUV = snapUvOffset(deltaUV);\n vec3 t = deltaUV.x * dPdu + deltaUV.y * dPdv;\n\n float tanH = biasedTangent(t);\n float sinH = tanH / sqrt(1.0 + tanH*tanH);\n\n float ao = 0.0;\n for(int j = 1; j <= NUM_STEPS; ++j) {\n uv += deltaUV;\n vec3 s = fetchEyePos(uv);\n\n float d2 = length2(s - p);\n if(d2 < u_sqrRadius) {\n float tanS = tangent(p, s);\n\n if(tanS > tanH) {\n float sinS = tanS / sqrt(1.0 + tanS*tanS);\n float r = sqrt(d2) * u_invRadius;\n ao += falloff(r) * (sinS - sinH);\n\n tanH = tanS;\n sinH = sinS;\n }\n }\n }\n\n return ao;\n}\n\nvec2 rotateDirection(vec2 dir, vec2 cosSin) {\n return vec2(dir.x*cosSin.x - dir.y*cosSin.y, dir.x*cosSin.y + dir.y*cosSin.x);\n}\n\nvec3 decode(vec2 enc) {\n vec3 n;\n n.z = dot(enc, enc)*2.0 - 1.0;\n n.xy = normalize(enc)*sqrt(1.0-n.z*n.z);\n return n;\n}\n\nvec3 tangentEyePos(vec2 uv, vec4 tangentPlane) {\n vec3 v = fetchEyePos(uv);\n float NdotV = dot(tangentPlane.xyz, v);\n if (NdotV < 0.0) {\n v *= (tangentPlane.w / NdotV);\n }\n return v;\n}\n\nfloat hbao(vec3 positionVS) {\n\n vec2 stepSize = 0.5 * u_radius * u_focalLength / positionVS.z;\n\n float tapRadius = min(stepSize.x * u_resolution.x, stepSize.y * u_resolution.y);\n if(tapRadius < 1.0) return 1.0;\n\n stepSize = stepSize / (float(NUM_STEPS) + 1.0);\n\n vec3 pr, pl, pt, pb;\n#if defined(USE_GBUFFER_NORMALS)\n vec4 normalRM = texture2D(u_normalTexture, v_texCoord0);\n vec3 normal = decode(normalRM.xy);\n vec4 tangentPlane = vec4(normal, dot(positionVS, normal));\n pr = tangentEyePos(v_texCoord0 + vec2(u_invResolution.x, 0.0), tangentPlane);\n pl = tangentEyePos(v_texCoord0 + vec2(-u_invResolution.x, 0.0), tangentPlane);\n pt = tangentEyePos(v_texCoord0 + vec2(0.0, u_invResolution.y), tangentPlane);\n pb = tangentEyePos(v_texCoord0 + vec2(0.0, -u_invResolution.y), tangentPlane);\n#else\n pr = fetchEyePos(v_texCoord0 + vec2(u_invResolution.x, 0.0));\n pl = fetchEyePos(v_texCoord0 + vec2(-u_invResolution.x, 0.0));\n pt = fetchEyePos(v_texCoord0 + vec2(0.0, u_invResolution.y));\n pb = fetchEyePos(v_texCoord0 + vec2(0.0, -u_invResolution.y));\n#endif\n\n\n vec3 dPdu = minDiff(positionVS, pr, pl);\n vec3 dPdv = minDiff(positionVS, pt, pb) * (u_resolution.y * u_invResolution.x);\n\n vec3 rand = texture2D(u_randomTexture, mod(v_texCoord0, 1.0/64.0)*64.0).xyz;\n\n float ao = 0.0;\n float alpha = 2.0 * PI / float(NUM_DIR);\n\n for(int d = 0; d < NUM_DIR; ++d) {\n float angle = alpha * float(d);\n vec2 dir = vec2(cos(angle), sin(angle));\n vec2 deltaUV = rotateDirection(dir, rand.xy) * stepSize.xy;\n ao += accumulatedHorizonOcclusion(deltaUV, v_texCoord0, positionVS, rand.z, dPdu, dPdv);\n }\n\n return 1.0 - ao / float(NUM_DIR) * u_contrast;\n\n}\n\nvoid main() {\n vec3 position = fetchEyePos(v_texCoord0);\n float hbaoTerm = hbao(position);\n gl_FragColor = vec4(vec3(hbaoTerm), 1.0);\n}\n"; },function(e,t){e.exports="uniform sampler2D u_aoTexture;\nuniform sampler2D u_depthTexture;\nuniform float u_invResolution;\nuniform float u_blurFalloff;\nuniform float u_sharpness;\n\n#if !defined(USE_VIEW_SPACE_DEPTH)\nuniform float u_projectionA;\nuniform float u_projectionB;\n#endif\n\nvarying vec2 v_texCoord0;\n\nfloat fetchEyeZ(vec2 uv) {\n#if defined(USE_VIEW_SPACE_DEPTH) \n float depth = texture2D(u_depthTexture, uv).x;\n#else\n #if defined(USE_DEPTH_EXTENSION)\n float depth = u_projectionB / ((2.0*texture2D(u_depthTexture, uv).x - 1.0) - u_projectionA);\n #else\n float depth = u_projectionB / (texture2D(u_depthTexture, uv).x - u_projectionA);\n #endif\n#endif\n return depth;\n}\n\nfloat blur() {\n float b = 0.0;\n float wTotal = 0.0;\n float centerC = texture2D(u_aoTexture, v_texCoord0).x;\n float centerD = fetchEyeZ(v_texCoord0);\n \n float r;\n for(int ri = -BLUR_RADIUS; ri <= BLUR_RADIUS; ++ri) {\n r = float(ri);\n#if defined(BLUR_HORIZONTAL) \n vec2 uv = v_texCoord0 + vec2(r*u_invResolution, 0.0);\n#else\n vec2 uv = v_texCoord0 + vec2(0.0, r*u_invResolution);\n#endif\n \n float c = texture2D(u_aoTexture, uv).x;\n float d = fetchEyeZ(uv);\n\n float ddiff = d - centerD;\n float w = exp(-r*r*u_blurFalloff - ddiff*ddiff*u_sharpness); \n wTotal += w;\n b += w*c;\n }\n\n return b/wTotal;\n}\n\nvoid main() {\n float blurTerm = blur();\n\tgl_FragColor = vec4(vec3(blurTerm), 1.0);\n\t//gl_FragColor = texture2D(u_aoTexture, v_texCoord0);\n}\n\n"},function(e,t){e.exports="uniform mat4 u_inverseProjectionMatrix;\nuniform mat4 u_projectionMatrix;\n// (width, height, 1.0/(far - near), undef)\nuniform vec4 u_renderSizeInfos;\n\nattribute vec3 position;\nattribute vec2 texCoord0;\n\nvarying vec3 v_position;\nvarying vec2 v_texCoord0;\n\nvoid main() {\n v_texCoord0 = texCoord0;\n vec4 homogenousPosition = vec4(position, 1.0);\n vec4 projViewSpace = (u_inverseProjectionMatrix * homogenousPosition);\n v_position = projViewSpace.xyz / projViewSpace.w;\n gl_Position = homogenousPosition;\n}\n"},function(e,t){e.exports="uniform mat4 u_projectionMatrix;\nuniform sampler2D u_ssrPreTexture;\nuniform sampler2D u_colorTexture;\nuniform vec4 u_projection;\n\nvarying vec2 v_texCoord0;\nvarying vec3 v_position;\n\n#define MAX_STEPS 128\n#define STEP_DISTANCE 0.002\n#define ERROR 0.5\n\nfloat distanceSquared(vec2 a, vec2 b) {\n a -= b;\n return dot(a, a);\n}\n\nfloat rand(vec2 co) {\n return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);\n}\n\n vec3 convertCameraSpaceToScreenSpace(vec3 cameraSpace) {\n vec4 clipSpace = u_projectionMatrix * vec4(cameraSpace, 1.0);\n vec3 NDCSpace = clipSpace.xyz / clipSpace.w;\n vec3 screenSpace = 0.5 * NDCSpace + vec3(0.5);\n return screenSpace;\n }\n\nvoid main() {\n vec3 viewDirectionCS = vec3(v_position.xy / v_position.z, 1.0);\n vec4 normalDepthFrag = texture2D(u_ssrPreTexture, v_texCoord0);\n vec3 normalCS = normalDepthFrag.xyz;\n float depth = normalDepthFrag.w;\n vec3 positionCS = viewDirectionCS * depth;\n viewDirectionCS = normalize(viewDirectionCS);\n vec3 reflectionCS = reflect(viewDirectionCS, normalCS);\n\n vec3 positionTS = convertCameraSpaceToScreenSpace(positionCS);\n vec3 reflectionPositionTS = convertCameraSpaceToScreenSpace(positionCS + reflectionCS);\n vec3 rayStepTS = STEP_DISTANCE*normalize(reflectionPositionTS - positionTS);\n\n // jitter\n float jitter = 1.0 + clamp(rand(gl_FragCoord.xy), 0.0, 1.0);\n //float jitter = 1.0;\n vec3 oldPosition = positionTS + jitter * rayStepTS;\n float oldSampleDepth = texture2D(u_ssrPreTexture, oldPosition.xy).w;\n float oldDepth = u_projection.y / ((2.0 * oldPosition.z - 1.0) - u_projection.x);\n\n vec3 currentPosition = oldPosition + rayStepTS;\n\n vec2 hitPos = vec2(0.0);\n vec3 hitNormal = vec3(0.0);\n int distanceTraveled = 0;\n\n vec3 debug = vec3(1.0, 0.0, 0.0);\n\n for(int stepCount = 0; stepCount < MAX_STEPS; ++stepCount) {\n if(currentPosition.x < 0.0 || currentPosition.x > 1.0 || currentPosition.y < 0.0 || currentPosition.y > 1.0 ||\n currentPosition.z < 0.0 || currentPosition.z > 1.0) {\n break;\n }\n\n vec2 samplePos = currentPosition.xy;\n float currentDepth = u_projection.y / ((2.0 * currentPosition.z - 1.0) - u_projection.x);\n vec4 sampleNormalDepth = texture2D(u_ssrPreTexture, samplePos);\n vec3 sampleNormal = sampleNormalDepth.xyz;\n float sampleDepth = sampleNormalDepth.w;\n\n\n // condition of hit\n float diff = currentDepth - sampleDepth;\n if(diff >= 0.0 && diff < ERROR) {\n distanceTraveled = stepCount;\n // refine by line intersect\n\n vec3 oP = vec3(oldPosition.x, oldPosition.y, oldDepth);\n vec3 cP = vec3(currentPosition.x, currentPosition.y, currentDepth);\n\n vec3 oH = vec3(oP.x, oP.y, oldSampleDepth);\n vec3 cH = vec3(cP.x, cP.y, sampleDepth);\n\n vec3 da = cP - oP;\n vec3 db = cH - oH;\n vec3 dc = oH - oP;\n\n vec3 dab = cross(da,db);\n vec3 dcb = cross(dc,db);\n\n float s = clamp(dot(dcb, dab) / dot(dab, dab), 0.0, 1.0);\n\n hitPos = oP.xy + s * da.xy;\n hitNormal = sampleNormal;\n\n debug = vec3(s);\n\n break;\n }\n\n\n oldPosition = currentPosition;\n oldDepth = currentDepth;\n oldSampleDepth = sampleDepth;\n currentPosition = oldPosition + rayStepTS;\n }\n\n // depends on distance traveled, VdotN, distance to screen edges of hitpos, RdotSampleN\n float rayDistanceWeight = float(distanceTraveled) / float(MAX_STEPS);\n rayDistanceWeight *= rayDistanceWeight;\n rayDistanceWeight = 1.0 - rayDistanceWeight;\n\n viewDirectionCS = -viewDirectionCS;\n float lookDirectionWeight = clamp(dot(viewDirectionCS, normalCS), 0.0, 1.0);\n lookDirectionWeight *= lookDirectionWeight;\n lookDirectionWeight = 1.0 - lookDirectionWeight;\n\n float screenBorderWeight = 1.0 - clamp(4.0 * distanceSquared(vec2(0.5), hitPos), 0.0, 1.0);\n\n float hitPosOrientationWeight = dot(viewDirectionCS, hitNormal);\n hitPosOrientationWeight *= hitPosOrientationWeight;\n\n float weight = rayDistanceWeight * lookDirectionWeight * screenBorderWeight * hitPosOrientationWeight;\n\n // reprojection\n //vec4 prevPos = u_previousViewProjectionMatrix * u_currentInverseViewProjectionMatrix *\n // vec4(2.0 * hitPos + vec3(1.0), 1.0);\n //prevPos /= prevPos.w;\n //prevPos.xy = (prevPos.xy + vec2(1.0)) * 0.5;\n vec2 prevPos = hitPos;\n\n //gl_FragColor = vec4(texture2D(u_colorTexture, prevPos).rgb*weight, weight);\n\n //debug = vec3((u_projection.y / (positionTS.z - u_projection.x)) / 500.0);\n // debug = reflectionCS;\n //gl_FragColor = vec4(debug, 1.0);\n gl_FragColor = vec4(texture2D(u_colorTexture, prevPos).rgb, weight);\n}\n"},function(e,t){e.exports="attribute vec2 position;\nattribute vec3 texCoord0;\n\nvarying vec2 v_texCoord0;\n\nuniform vec4 u_viewportOffsetScale[2];\n\nvoid main() {\n vec4 viewport = u_viewportOffsetScale[int(texCoord0.z)];\n v_texCoord0 = (texCoord0.xy * viewport.zw) + viewport.xy;\n gl_Position = vec4(position, 1.0, 1.0);\n}\n"},function(e,t){e.exports="uniform sampler2D u_currentFrameTexture;\nuniform sampler2D u_previousFrameTexture;\nuniform sampler2D u_depthTexture;\nuniform mat4 u_previousViewProjectionMatrix;\nuniform mat4 u_currentInverseViewProjectionMatrix;\nuniform vec2 u_k;\nuniform vec2 u_texelSizeHalf;\nuniform vec2 u_jitter;\n\nvarying vec2 v_texCoord0;\n\nvoid main() {\n \n#if defined(USE_DEPTH_EXTENSION)\n float depth = (2.0*texture2D(u_depthTexture, v_texCoord0).x - 1.0);\n#else\n float depth = texture2D(u_depthTexture, v_texCoord0).x;\n#endif\n vec4 fragPos = vec4(2.0 * v_texCoord0 - vec2(1.0), depth, 1.0);\n vec4 prevPos = u_previousViewProjectionMatrix * u_currentInverseViewProjectionMatrix * fragPos;\n prevPos /= prevPos.w;\n prevPos.xy = (prevPos.xy + vec2(1.0)) * 0.5;\n\n //vec3 posWS = u_camPosWS + u_camDirWS * depth;\n //vec4 prevPos = u_previousViewProjectionMatrix * vec4(posWS, 1.0);\n //prevPos /= prevPos.w;\n\n vec4 curColor = texture2D(u_currentFrameTexture, v_texCoord0);\n vec4 prevColor = texture2D(u_previousFrameTexture, prevPos.xy);\n\n vec4 tl = texture2D(u_currentFrameTexture, v_texCoord0 + vec2(-u_texelSizeHalf.x, u_texelSizeHalf.y));\n vec4 tr = texture2D(u_currentFrameTexture, v_texCoord0 + vec2(u_texelSizeHalf.x, u_texelSizeHalf.y));\n vec4 bl = texture2D(u_currentFrameTexture, v_texCoord0 + vec2(-u_texelSizeHalf.x, -u_texelSizeHalf.y));\n vec4 br = texture2D(u_currentFrameTexture, v_texCoord0 + vec2(u_texelSizeHalf.x, -u_texelSizeHalf.y));\n\n vec4 maxCol = max(tl, max(tr, max(bl, br)));\n vec4 minCol = min(tl, min(tr, min(bl, br)));\n\n vec4 weight = abs((tl + tr + bl + br) * 0.25 - curColor);\n// vec4 inv = 1.0 / mix(u_k.x, u_k.y, weight);\n vec4 inv = 1.0 / (u_k.x * (vec4(1.0) - weight) + u_k.y * weight);\n\n gl_FragColor = mix(curColor, clamp(prevColor, minCol, maxCol), clamp(inv, 0.0, 1.0));\n //gl_FragColor = mix(curColor, prevColor, 0.9);\n //gl_FragColor = (curColor, prevColor, 0.9);\n //gl_FragColor = vec4(vec3(prevPos.xy - v_texCoord0, 0.0), 1.0);\n //gl_FragColor = vec4(128.0 * (prevColor.rgb - curColor.rgb), 1.0);\n}\n"},824,function(e,t){e.exports="uniform mat4 u_worldMatrix;\nuniform mat4 u_viewMatrix;\nuniform mat4 u_projectionMatrix;\n\nattribute vec3 position;\nattribute vec2 texCoord0;\n\nvarying vec2 v_texCoord0;\n\nvoid main() {\n\tv_texCoord0 = texCoord0;\n\tmat4 wvpMatrix = u_projectionMatrix * u_viewMatrix * u_worldMatrix;\n\tgl_Position = wvpMatrix * vec4(position, 1.0);\n}\n"},function(e,t){e.exports="varying vec2 v_texCoord0;\n\nuniform sampler2D u_baseTexture;\n\n#if defined(USE_BLOOM)\nuniform sampler2D u_bloomTextures[BLOOM_PASSES];\nuniform float u_glareVisibility;\n#endif\n\n#if defined(USE_GHOSTING)\nuniform sampler2D u_ghostingTexture;\nuniform float u_ghostingVisibility;\n#endif\n\n#if defined (USE_LENS_DIRT)\nuniform sampler2D u_lensDirtTexture;\nuniform float u_dirtVisibility;\n#endif\n\n#if defined(USE_GRAIN)\nuniform float u_grainAmount;\nuniform float u_grainPanning;\nuniform sampler2D u_grainTexture;\nuniform float u_grainTextureSize;\n#endif\n\n#if defined(USE_PATTERN)\nuniform sampler2D u_patternTexture;\n#endif\n\n#if defined(USE_COLOR_GRADING)\nuniform sampler2D u_lut;\nuniform vec4 u_lutParams;\n#endif\n\n#if (defined(USE_FOG) || defined(USE_LOW_END_DOF))\nuniform sampler2D u_depthTexture;\n#endif\n\n#if defined(USE_FOG)\nuniform vec3 u_fogColor;\nuniform float u_fogDensity;\n#endif\n\n#if defined(USE_HDR)\n #if defined(USE_VIGNETTING)\n uniform float u_focalLength;\n uniform float u_opticalVignettingStrength;\n uniform float u_distanceToFilm;\n uniform vec2 u_filmSize;\n uniform float u_fStop;\n #endif\n\n\n #if defined(USE_COLOR_GRADIENT)\n uniform vec4 u_gradientColorA;\n uniform vec4 u_gradientColorB;\n uniform vec2 u_gradientDirection;\n #endif\n#endif\n\n#if defined(USE_TILT_SHIFT_BLUR)\nuniform sampler2D u_tiltShiftBlurTexture;\nuniform float u_tiltShiftBlurAmount;\n#endif\n\n#if defined(USE_LOW_END_DOF)\nuniform vec4 u_fDLSA;\nuniform vec2 u_filmHeightHeight;\nuniform vec4 u_projection;\nuniform sampler2D u_dofBlurTexture;\n\n #if !defined(USE_DEPTH_EXTENSION)\n float unpackFloat4(vec4 rgba) {\n return dot(rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0 / 160581375.0));\n }\n #endif\n#endif\n\n#if defined(USE_SHARPEN_IMAGE)\n uniform vec2 u_size;\n uniform float u_sharpenAmount;\n float stepX = 1.0 / u_size.x;\n float stepY = 1.0 / u_size.y;\n mat3 LAPLACE_KERNEL = mat3(\n -0.5 * u_sharpenAmount, -u_sharpenAmount, -0.5 * u_sharpenAmount,\n -u_sharpenAmount, u_sharpenAmount * 6.0, -u_sharpenAmount,\n -0.5 * u_sharpenAmount, -u_sharpenAmount, -0.5 * u_sharpenAmount\n );\n#endif\n\n#if defined(USE_CHROMATIC_ABBERATION)\n uniform float u_chromaticAbberationAmount;\n#endif\n\nvec3 toneMapFilmicALU(vec3 color) {\n color = max(vec3(0), color - vec3(0.004));\n color = (color * (6.2*color + vec3(0.5))) / (color * (6.2 * color + vec3(1.7)) + vec3(0.06));\n color = min(vec3(1.0,1.0,1.0), color);\n return color;\n}\n\nvec3 toneMapSimple(vec3 color) {\n return pow(color, vec3(1.0 / 2.2));\n}\n\nvec3 toneMap(vec3 color) {\n #if defined(USE_TONEMAP_FILMIC)\n color = toneMapFilmicALU(color);\n #else\n color = toneMapSimple(color);\n #endif\n return color;\n}\n\nfloat calcLuminance(vec3 color) {\n return max(dot(color, vec3(0.299, 0.587, 0.114)), 0.0001);\n}\n\nfloat cut(vec3 color) {\n return step(0.0001, color.r + color.g + color.b);\n}\n\nvec4 recombineBloomAndGhosting(float alpha) {\n vec4 color = vec4(0.0, 0.0, 0.0, 1.0);\n\n#if defined(USE_BLOOM)\n vec4 accum = vec4(0.0);\n accum += texture2D(u_bloomTextures[0], v_texCoord0);\n accum += texture2D(u_bloomTextures[1], v_texCoord0);\n accum += texture2D(u_bloomTextures[2], v_texCoord0);\n accum += texture2D(u_bloomTextures[3], v_texCoord0);\n accum += texture2D(u_bloomTextures[4], v_texCoord0);\n color.rgb = accum.rgb * u_glareVisibility;\n color.a = min(1.0, step(0.99999, alpha) + 0.8);\n#endif\n\n#if defined(USE_GHOSTING)\n vec3 ghosting = texture2D(u_ghostingTexture, v_texCoord0.xy).rgb * u_ghostingVisibility;\n#if defined (USE_LENS_DIRT)\n vec3 dirt = texture2D(u_lensDirtTexture, v_texCoord0.xy).rgb;\n ghosting = (1.0 - u_dirtVisibility) * ghosting + ghosting * dirt * u_dirtVisibility;\n#endif\n color.rgb += ghosting;\n#endif\n\n return color;\n}\n\n#if defined(USE_GRAIN)\n vec3 blendOverlay(vec3 target, vec3 blend) {\n vec3 factor = step(vec3(0.5), target);\n return factor * (1.0 - (1.0 - 2.0 * (target - 0.5)) * (1.0 - blend)) + (1.0 - factor) * ((2.0 * target) * blend);\n }\n#endif\n\n#if (defined(USE_COLOR_GRADING) || defined(USE_GRAIN))\n vec3 lookup3D(vec3 coord, sampler2D lut, float lutSize, float lutSliceSize, float lutSlicePixelSize,\n float lutSliceInnerSize) {\n float zSlice0 = min(floor(coord.z * lutSize), lutSize - 1.0);\n float zSlice1 = min(zSlice0 + 1.0, lutSize - 1.0);\n float xOffset = lutSlicePixelSize * 0.5 + coord.x * lutSliceInnerSize * lutSliceSize;\n float s0 = xOffset + (zSlice0 * lutSliceSize);\n float s1 = xOffset + (zSlice1 * lutSliceSize);\n float yOffset = (0.5 + coord.y * (lutSize - 1.0)) / lutSize;\n vec3 slice0Color = texture2D(lut, vec2(s0, yOffset)).rgb;\n vec3 slice1Color = texture2D(lut, vec2(s1, yOffset)).rgb;\n float zOffset = mod(coord.z * lutSize, 1.0);\n return mix(slice0Color, slice1Color, zOffset);\n }\n#endif\n\n#if defined(USE_HDR)\n #if defined(USE_COLOR_GRADIENT)\n vec3 linearGradient(vec3 color) {\n vec4 g = mix(u_gradientColorA, u_gradientColorB, dot(v_texCoord0, u_gradientDirection));\n return (1.0 - g.a) * color + g.a * g.rgb;\n }\n #endif\n\n #if defined(USE_VIGNETTING)\n float getNaturalVignetting(vec2 dir) {\n float result = 1.0;\n float dist = length(u_filmSize*dir);\n\n float cosAlpha = cos(atan(dist / u_distanceToFilm));\n result = cosAlpha*cosAlpha*cosAlpha*cosAlpha;\n\n return result;\n }\n\n float getOpticalVignetting(float distSqr) {\n float result = 1.0;\n float vignettingDistanceSqr = u_fStop * u_focalLength / (100.0*u_opticalVignettingStrength);\n float factor = smoothstep(0.0, vignettingDistanceSqr, distSqr);\n result = 1.0 - factor;\n\n return result;\n }\n #endif\n#endif\n\n#if defined(USE_LOW_END_DOF)\n float depthLookup(sampler2D tex, vec2 coords, vec4 projection) {\n float depth = 0.0;\n #if defined(USE_DEPTH_EXTENSION)\n depth = texture2D(tex, coords).x;\n #else\n #if defined(USE_HDR)\n depth = texture2D(tex, coords).x;\n #else\n depth = unpackFloat4(texture2D(tex, coords));\n #endif\n #endif\n return projection.y / ((2.0 * depth - 1.0) - projection.x);\n }\n\n vec4 discTap(sampler2D colorTex, sampler2D depthTex, vec2 coords, vec2 aspectcorrect, vec2 radius, vec2 radius9, vec2 radius7, vec2 radius4, float bias, float depth, vec4 projection) {\n\n vec2 tapWeights1[16];\n tapWeights1[0] = vec2(0.0, 0.4);\n tapWeights1[1] = vec2( 0.15, 0.37);\n tapWeights1[2] = vec2( 0.29, 0.29);\n tapWeights1[3] = vec2( -0.37, 0.15);\n tapWeights1[4] = vec2( 0.40, 0.0 );\n tapWeights1[5] = vec2( 0.37, -0.15);\n tapWeights1[6] = vec2( 0.29, -0.29);\n tapWeights1[7] = vec2( -0.15, -0.37);\n tapWeights1[8] = vec2( 0.0, -0.4 );\n tapWeights1[9] = vec2( -0.15, 0.37);\n tapWeights1[10] = vec2( -0.29, 0.29);\n tapWeights1[11] = vec2( 0.37, 0.15);\n tapWeights1[12] = vec2( -0.4, 0.0 );\n tapWeights1[13] = vec2( -0.37, -0.15);\n tapWeights1[14] = vec2( -0.29, -0.29);\n tapWeights1[15] = vec2( 0.15, -0.37);\n\n vec2 tapWeights2[8];\n tapWeights2[0] = vec2( 0.29, 0.29 );\n tapWeights2[1] = vec2( 0.4, 0.0 );\n tapWeights2[2] = vec2( 0.29, -0.29 );\n tapWeights2[3] = vec2( 0.0, -0.4 );\n tapWeights2[4] = vec2( -0.29, 0.29 );\n tapWeights2[5] = vec2( -0.4, 0.0 );\n tapWeights2[6] = vec2( -0.29, -0.29 );\n tapWeights2[7] = vec2( 0.0, 0.4 );\n\n float accumWeight = 1.0;\n vec4 col = vec4(0.0);\n col += texture2D( colorTex, coords.xy , bias);\n\n for(int i = 0; i < 16; i++) {\n vec2 tapCoords = coords.xy + ( tapWeights1[i] * aspectcorrect ) * radius;\n float depthTap = depthLookup(depthTex, tapCoords, projection);\n\n float weight = step(-5.0, depthTap - depth);\n accumWeight += weight;\n col += texture2D( colorTex, tapCoords, bias) * weight;\n }\n\n for(int i = 0; i < 8; i++) {\n vec2 tapCoords = coords.xy + ( tapWeights2[i] * aspectcorrect ) * radius4;\n float depthTap = depthLookup(depthTex, tapCoords, projection);\n\n float weight = step(-5.0, depthTap - depth);\n accumWeight += weight;\n col += texture2D( colorTex, tapCoords, bias) * weight;\n }\n\n return col / accumWeight;\n\n /*\n col += texture2D( colorTex, coords.xy + ( vec2( 0.15, 0.37 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.37, 0.15 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.40, 0.0 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.37, -0.15 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.15, -0.37 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.15, 0.37 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.37, 0.15 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.37, -0.15 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * radius , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.15, -0.37 ) * aspectcorrect ) * radius , bias);\n */\n /* col += texture2D( colorTex, coords.xy + ( vec2( 0.15, 0.37 ) * aspectcorrect ) * radius9 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.37, 0.15 ) * aspectcorrect ) * radius9 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.37, -0.15 ) * aspectcorrect ) * radius9 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.15, -0.37 ) * aspectcorrect ) * radius9 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.15, 0.37 ) * aspectcorrect ) * radius9 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.37, 0.15 ) * aspectcorrect ) * radius9 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.37, -0.15 ) * aspectcorrect ) * radius9 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.15, -0.37 ) * aspectcorrect ) * radius9 , bias);\n\n col += texture2D( colorTex, coords.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * radius7 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.40, 0.0 ) * aspectcorrect ) * radius7 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * radius7 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * radius7 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * radius7 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * radius7 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * radius7 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * radius7 , bias);*/\n\n /* col += texture2D( colorTex, coords.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * radius4 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.4, 0.0 ) * aspectcorrect ) * radius4 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * radius4 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * radius4 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * radius4 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * radius4 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * radius4 , bias);\n col += texture2D( colorTex, coords.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * radius4 , bias);\n return col / 25.0;*/\n // return col;\n }\n\n vec4 lowEndDof(sampler2D depthTex, sampler2D colorTex, vec2 coords, vec4 fdlsa, vec4 projection, vec2 filmHeightHeight) {\n float depth = depthLookup(depthTex, coords, projection);\n float f = fdlsa.y; //focal length in mm\n float d = fdlsa.x * 1000.0; //focal plane in mm\n float o = depth*1000.0; //depth in mm\n float a = (o*f)/(o-f);\n float b = (d*f)/(d-f);\n float c = (d-f)/(d*fdlsa.z);\n float coc = (a-b)*c;\n\n vec2 aspectcorrect = vec2(1.0, fdlsa.w);\n vec2 radius = vec2(2.0 * abs(coc) / filmHeightHeight.x);\n vec2 radius9 = radius * 0.9;\n vec2 radius7 = radius * 0.7;\n vec2 radius4 = radius * 0.4;\n float bias = radius.x * float(DOF_BLUR_TEXTURE_COUNT - 3);\n\n return mix(texture2D(colorTex, coords), discTap(u_dofBlurTexture, depthTex, coords, aspectcorrect, radius, radius9, radius7, radius4, 0.0, depth, projection), smoothstep(2.0 / u_filmHeightHeight.y, 7.0 / u_filmHeightHeight.y, radius.x));\n //return discTap(colorTex, depthTex, coords, aspectcorrect, radius, radius9, radius7, radius4, 0.0, depth, projection);\n }\n#endif\n\n#if defined(USE_TILT_SHIFT_BLUR)\n vec4 tiltShiftBlur(vec4 baseColor, sampler2D blurTex, vec2 coords) {\n float blurAmount = 0.5 - coords.y;\n blurAmount *= blurAmount;\n blurAmount *= u_tiltShiftBlurAmount; // 11.0\n\n #if defined(USE_LENS_DIRT)\n vec4 blur = texture2D(blurTex, coords);\n // TODO: export as params\n #if defined(USE_HDR)\n float dirtAmount = 0.45;\n #else\n float dirtAmount = 0.1;\n #endif\n vec4 blurColor = mix(blur, blur*texture2D(u_lensDirtTexture, coords), dirtAmount);\n #else\n vec4 blurColor = texture2D(blurTex, coords);\n #endif\n\n return mix(baseColor, blurColor, min(blurAmount, 1.0));\n }\n#endif\n\nvoid main() {\n#if ((defined(USE_VIGNETTING) && defined(USE_HDR)) || defined(USE_CHROMATIC_ABBERATION))\n vec2 dir = v_texCoord0 - 0.5;\n float dist = dot(dir, dir);\n#endif\n\n#if defined(USE_LOW_END_DOF)\n vec4 color = lowEndDof(u_depthTexture, u_baseTexture, v_texCoord0, u_fDLSA, u_projection, u_filmHeightHeight);\n#else\n #if defined(USE_CHROMATIC_ABBERATION)\n float red = texture2D(u_baseTexture, v_texCoord0 - u_chromaticAbberationAmount * dist).r;\n vec2 base = texture2D(u_baseTexture, v_texCoord0).ga;\n float blue = texture2D(u_baseTexture, v_texCoord0 + u_chromaticAbberationAmount * dist).b;\n vec4 color = vec4(red, base.x, blue, base.y);\n #else\n vec4 color = texture2D(u_baseTexture, v_texCoord0);\n #endif\n#endif\n\n#if defined(USE_SHARPEN_IMAGE)\n vec2 offset = vec2(0.0);\n for (int i = 0; i < 3; i++) {\n offset.x = (1.0 - float(i)) * stepX;\n for (int j = 0; j < 3; j++) {\n offset.y = (1.0 - float(j)) * stepY;\n color += LAPLACE_KERNEL[i][j] * texture2D(u_baseTexture, v_texCoord0 + offset);\n }\n }\n#endif\n\n#if defined(USE_TILT_SHIFT_BLUR)\n color = tiltShiftBlur(color, u_tiltShiftBlurTexture, v_texCoord0);\n#endif\n\n#if defined(USE_HDR)\n #if defined(USE_COLOR_GRADIENT)\n // TODO: consider gradient alpha?\n color.rgb = linearGradient(color.rgb);\n #endif\n #if defined(USE_VIGNETTING)\n\t color.rgb *= getOpticalVignetting(dist) * getNaturalVignetting(dir);\n\t #endif\n#endif\n\n vec4 bloomGhostingColor = recombineBloomAndGhosting(color.a);\n color.rgb += bloomGhostingColor.rgb;\n\n#if defined(USE_FOG)\n // TODO: support multiple type depth inputs? what do we expect here?\n float e = exp(u_fogDensity * texture2D(u_depthTexture, v_texCoord0).r);\n float weight = 1.0 / (e*e);\n color.rgb = mix(u_fogColor, color.rgb, weight);\n#endif\n\n#if defined(USE_HDR)\n color.rgb = toneMap(color.rgb);\n //color.rgb *= bloomGhostingColor.a;\n#endif\n\n#if defined(USE_GRAIN)\n vec2 grainLUTCoord = mod(vec2(gl_FragCoord.x, gl_FragCoord.y + u_grainPanning), u_grainTextureSize) / u_grainTextureSize;\n vec3 grain = texture2D(u_grainTexture, grainLUTCoord).rgb;\n\n float amount = clamp(u_grainAmount * (0.8 - calcLuminance(color.rgb)), 0.0, 1.0);\n color.rgb = (1.0 - amount) * color.rgb + amount * blendOverlay(color.rgb, grain);\n#endif\n\n#if defined(USE_COLOR_GRADING)\n color.rgb = lookup3D(color.rgb, u_lut, u_lutParams.x, u_lutParams.y, u_lutParams.z, u_lutParams.w);\n#endif\n gl_FragColor = color;\n}\n"},function(e,t){e.exports="#define ALPHA_THRESHOLD 0.1\n#define PI 3.141592654\n#define TWOPI 6.283185307\n#define INV_PI 0.3183098861\n#define INV_TWOPI 0.1591549431\n#define SQRT_OF_TWO_OVER_PI 0.7978845608028654\n#define LIGHT_CUTOFF 0.001\n\n#if (defined(USE_CLEARCOAT_VALUE) || defined(USE_CLEARCOAT_TEXTURE))\n #define USE_CLEARCOAT\n#endif\n\nuniform float u_rightEye;\nuniform vec2 u_size;\n\n#if defined(USE_COMPLEX_SRGB_CONVERSION)\nvec3 toLinearColor(vec3 sRGBCol) {\n vec3 linearRGBLo = sRGBCol / 12.92;\n vec3 linearRGBHi = pow((sRGBCol + 0.055) / 1.055, 2.4);\n vec3 res = (sRGBCol <= vec3(0.04045)) ? linearRGBLo : linearRGBHi;\n return res;\n}\nvec4 toLinear(vec4 sRGBCol) {\n vec4 linearRGBLo = sRGBCol / 12.92;\n vec4 linearRGBHi = pow((sRGBCol + 0.055) / 1.055, 2.4);\n vec4 res = (sRGBCol <= vec4(0.04045)) ? linearRGBLo : linearRGBHi;\n return res;\n}\nvec3 toSRGB (vec3 linearCol) {\n vec3 sRGBLo = linearCol * 12.92;\n vec3 sRGBHi = (pow(abs(linearCol), 1.0 / 2.4) * 1.055) - 0.055;\n vec3 res = (linearCol <= vec3(0.0031308)) ? sRGBLo : sRGBHi;\n return res;\n}\n#else\nvec4 toLinear(vec4 vector) { return pow(vector, vec4(2.2)); }\nvec3 toLinearColor(vec3 vector) { return pow(vector, vec3(2.2)); }\nvec3 toSRGB(vec3 vector) { return pow(vector, vec3(1.0/2.2)); }\n#endif\n\nfloat calcLuminance(vec3 color) {\n return max(dot(color, vec3(0.299, 0.587, 0.114)), 0.0001);\n}\n\nmat3 transpose(mat3 m) {\n return mat3( m[0][0], m[1][0], m[2][0], // new col 0\n m[0][1], m[1][1], m[2][1], // new col 1\n m[0][2], m[1][2], m[2][2] // new col 1\n );\n}\n\n#if defined(USE_AMBIENT_IBL)\n uniform float u_radianceMipLevels;\n #if defined(USE_AMBIENT_DIFFUSE_PROBE_TEXTURE)\n #if defined(USE_CUBEMAP_FORMAT)\n uniform samplerCube u_irradianceProbeTexture;\n #else\n uniform sampler2D u_irradianceProbeTexture;\n #endif\n #elif defined(USE_AMBIENT_DIFFUSE_SH)\n // NOTE: these are precomputed in another pass and then blended according to POI\n uniform vec3 u_irradianceShCoefficients[9];\n #endif\n\n #if defined(USE_CUBEMAP_FORMAT)\n // NOTE: this is precomputed when light probes are processed and then blended according to POI\n uniform samplerCube u_radianceTexture;\n #else\n uniform sampler2D u_radianceTexture;\n #endif\n\n #if defined(USE_SPECULAR_POWER_IBL_LOOKUP)\n // nMips, mipOffset, userScale\n uniform vec3 u_iblConvData;\n #endif\n\n #if defined(USE_AMBIENT_SSR)\n uniform sampler2D u_ssrTraceTexture;\n #endif\n\n // the bounding box matrix and position is taken from the nearest probe\n // Transform in local unit parallax cube space (scaled and rotated)\n #if (defined(USE_PARALLAX_CORRECTION) || defined(USE_ENV_ROTATION))\n uniform mat4 u_localizedEnvironmentInverseMatrix;\n #endif\n\n #if defined(USE_PARALLAX_CORRECTION)\n uniform vec3 u_localizedEnvironmentOffset;\n uniform vec3 u_localizedEnvironmentMin;\n uniform vec3 u_localizedEnvironmentMax;\n #endif\n\n #if defined(USE_ENV_BRDF_LUT)\n uniform sampler2D u_brdfTexture;\n #else\n vec3 envGGXBrdfApproximation(vec3 specular, float roughness, float NdotV, float clearcoat) {\n vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);\n vec4 c1 = vec4(1.0, 0.0425, 1.04, -0.04);\n vec4 r = roughness * c0 + c1;\n float a004 = min(r.x * r.x, exp2(-9.28 * NdotV)) * r.x + r.y;\n vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;\n #if defined(USE_CLEARCOAT)\n return specular * AB.x + AB.y * (1.0 - clearcoat);\n #else\n return specular * AB.x + AB.y;\n #endif\n }\n #endif\n\n #if defined(USE_BENT_NORMAL_MAP)\n uniform sampler2D u_bentNormalTexture;\n #endif\n\n #if defined(USE_ENVIRONMENT_REFRACTION)\n uniform samplerCube u_environmentRefractionNormalTexture;\n uniform samplerCube u_environmentRefractionDepthTexture;\n uniform mat4 u_environmentRefractionMatrix;\n uniform vec2 u_environmentRefractionNearFar;\n uniform mat4 u_inverseWorldMatrix;\n uniform mat4 u_worldMatrix;\n #endif\n\n#endif\n\n\nvoid getMipMappedTexCoordsFromLod(vec2 coords, float lod, out vec2 floorCoords, out vec2 ceilCoords, out float weight) {\n floorCoords = coords;\n floorCoords.y *= 0.5;\n ceilCoords = floorCoords;\n float ceiledLod = ceil(lod);\n weight = fract(lod);\n float flooredLod = lod - weight;\n float expCeiledLod = exp2(ceiledLod + 1.0);\n float levelPow2Ceil = expCeiledLod * 0.5;\n float ceilOffset = (1.0/levelPow2Ceil * (expCeiledLod - 1.0) - 1.0);\n float expFlooredLod = exp2(flooredLod + 1.0);\n float levelPow2Floor = expFlooredLod * 0.5;\n float floorOffset = (1.0/levelPow2Floor * (expFlooredLod - 1.0) - 1.0);\n\n float texelSize = 2.0 / 1024.0;\n\n float ceilScale = 1.0 / exp2(ceiledLod);\n ceilCoords *= ceilScale;\n ceilCoords.y *= 1.0 - texelSize / ceilScale;\n ceilCoords.y += ceilOffset + texelSize * 0.25;\n\n\n float floorScale = 1.0 / exp2(flooredLod);\n floorCoords *= floorScale;\n floorCoords.y *= 1.0 - texelSize / floorScale;\n floorCoords.y += floorOffset + texelSize * 0.25;\n}\n\nvec2 worldToLatLong(vec3 r) {\n float l = length(r);\n // y is up (exchanged z and y)\n#if defined(FLIPPED_LATLONG_Y)\n float theta = acos(-r.y / l);\n#else\n float theta = acos(r.y / l);\n#endif\n // flipped x and z and added PI to longitude to more origin to the center of the equirectangular texture to account for texture clamping\n float phi = atan(vec2(r.x), vec2(-r.z)).x;\n return vec2((PI + phi) * INV_TWOPI, theta * INV_PI);\n}\n\nvec2 worldToParaboloid(vec3 r) {\n float scalingFactor = 2.4;\n vec2 coords;\n r.y = -r.y;\n if(r.z < 0.0) {\n coords = r.xy / (scalingFactor * (1.0 - r.z)) + 0.5;\n } else {\n coords = r.xy / (scalingFactor * (1.0 + r.z)) + 0.5;\n coords.x += 1.0;\n }\n coords.x *= 0.5;\n return coords;\n}\n\n#if defined(USE_LATLONG_FORMAT)\n\n#if defined(USE_FOVEATED_ENV)\n uniform vec2 u_foveaRotation;\n#endif\n\nvec4 textureEnvLod(sampler2D sampler, vec3 direction, float lod) {\n #if defined(USE_ENV_ROTATION)\n direction = mat3(u_localizedEnvironmentInverseMatrix) * direction;\n #endif\n\n vec2 coords = worldToLatLong(direction);\n #if defined(FLIP_Y)\n coords.y = 1.0 - coords.y;\n #endif\n vec2 floorCoords;\n vec2 ceilCoords;\n float weight;\n getMipMappedTexCoordsFromLod(coords, lod, floorCoords, ceilCoords, weight);\n\n vec4 floorColor = texture2D(sampler, floorCoords);\n vec4 ceilColor = texture2D(sampler, ceilCoords);\n return mix(floorColor, ceilColor, weight);\n}\n\nvec2 transformCoordsToFovea (float tx, float ty, vec2 offset, vec2 coords) {\n coords = fract(coords + offset);\n if (coords.x > 0.5) {\n coords.x = (pow(-2. * coords.x + 2., 1. / tx) - 2.) / -2.;\n } else {\n coords.x = pow((2. * coords.x) / pow(2., tx), 1. / tx);\n }\n if (coords.y > 0.5) {\n coords.y = (pow(-2. * coords.y + 2., 1. / ty) - 2.) / -2.;\n } else {\n coords.y = pow((2. * coords.y) / pow(2., ty), 1. / ty);\n }\n return coords;\n}\n\nvec4 textureEnv(sampler2D sampler, vec3 direction) {\n #if defined(ENV_HAS_MIPMAPS)\n return textureEnvLod(sampler, direction, 0.0);\n #else\n vec2 coords = vec2(0.0);\n float edge = 1.0;\n #if defined(USE_MONO_180)\n coords = worldToLatLong(vec3(direction.z, direction.y, direction.x * -1.0000001));\n edge = 1.0 - step(0.5, coords.x);\n coords.x *= 2.0;\n #else\n coords = worldToLatLong(direction);\n #endif\n\n #if defined(FLIP_Y)\n coords.y = 1.0 - coords.y;\n #endif\n #if defined(USE_FOVEATED_ENV)\n coords = transformCoordsToFovea(FOVEA_DISTORTION_EXPONENT_X, FOVEA_DISTORTION_EXPONENT_Y, vec2(INV_TWOPI * u_foveaRotation.x, INV_PI * u_foveaRotation.y), coords);\n #endif\n return texture2D(sampler, coords) * edge;\n #endif\n}\n\n#elif defined(USE_PARABOLOID_FORMAT)\n\nvec4 textureEnv(sampler2D sampler, vec3 direction) {\n #if defined(ENV_HAS_MIPMAPS)\n return textureEnvLod(sampler, direction, 0.0);\n #else\n vec2 coords = worldToParaboloid(direction);\n #if defined(FLIP_Y)\n coords.y = 1.0 - coords.y;\n #endif\n return texture2D(sampler, coords);\n #endif\n}\n\nvec4 textureEnvLod(sampler2D sampler, vec3 direction, float lod) {\n vec2 coords = worldToParaboloid(direction);\n #if defined(FLIP_Y)\n coords.y = 1.0 - coords.y;\n #endif\n\n vec2 floorCoords;\n vec2 ceilCoords;\n float weight;\n getMipMappedTexCoordsFromLod(coords, lod, floorCoords, ceilCoords, weight);\n\n vec4 floorColor = texture2D(sampler, floorCoords);\n vec4 ceilColor = texture2D(sampler, ceilCoords);\n\n return mix(floorColor, ceilColor, weight);\n}\n#elif defined(USE_CUBEMAP_FORMAT)\n\n// Ignacio Castano via http://the-witness.net/news/2012/02/seamless-cube-map-filtering/\nvec3 fixCubeLookupForLod(vec3 vector, float cubeSize, float lod) {\n float M = max(max(abs(vector.x), abs(vector.y)), abs(vector.z));\n float scale = 1.0 - exp2(lod) / cubeSize;\n if (abs(vector.x) != M) vector.x *= scale;\n if (abs(vector.y) != M) vector.y *= scale;\n if (abs(vector.z) != M) vector.z *= scale;\n return vector;\n}\n\nvec4 textureEnv(samplerCube sampler, vec3 direction) {\n\n #if defined(ENV_HAS_MIPMAPS)\n return textureCubeLodEXT(sampler, direction, 0.0);\n #else\n return textureCube(sampler, direction);\n #endif\n}\n\nvec4 textureEnvLod(samplerCube sampler, vec3 direction, float lod) {\n #if defined(USE_ENV_ROTATION)\n direction = mat3(u_localizedEnvironmentInverseMatrix) * direction;\n #endif\n\n #if defined(ENV_HAS_MIPMAPS)\n return textureCubeLodEXT(sampler, direction, lod);\n #else\n return textureCube(sampler, direction);\n #endif\n}\n\n#endif\n\nfloat getNumberOfMips(float size) {\n return floor(log2(size));\n}\n\nfloat roughnessToSpecularPower(float roughness) {\n return (2.0/(roughness*roughness)) - 1.0;\n}\n\nfloat getSpecularPowerToMip(float specularPower, float nMips, float mipOffset, float userScale) {\n return (nMips - 1.0 - mipOffset) - log2(specularPower)*userScale;\n}\n\nfloat getSpecularPowerToMip2(float specularPower, float nMips, float maxT) {\n // Default curve - Inverse of TB2 curve with adjusted constants\n float fSmulMaxT = (exp2(-10.0 / sqrt(specularPower)) - 0.00098) / 0.9921;\n return (nMips - 1.0) * (1.0 - clamp( fSmulMaxT/maxT, 0.0, 1.0));\n}\n\nvec2 packFloat2( float f ) {\n f *= 256.0;\n float x = floor( f );\n f = ( f - x ) * 256.0;\n\n float y = floor( f );\n x *= 0.00390625;\n y *= 0.00390625;\n\n return vec2( x, y );\n}\n\nfloat unpackFloat2(vec2 vector) {\n return vector.x + (vector.y * 0.00390625);\n}\n\nvec4 packFloat4(float f) {\n vec4 encoded = vec4(1.0, 255.0, 65025.0, 160581375.0) * f;\n encoded = fract(encoded);\n encoded -= encoded.yzww * vec4(1.0/255.0, 1.0/255.0, 1.0/255.0, 0.0);\n return encoded;\n}\n\nfloat unpackFloat4(vec4 rgba) {\n return dot(rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0/160581375.0 ));\n}\n\nfloat unpackFloat3(vec3 rgb) {\n return dot(rgb, vec3(1.0, 1.0/255.0, 1.0/65025.0));\n}\n\nvec2 packNormal(vec3 n) {\n vec2 res = normalize(n.xy) * (sqrt(n.z*0.5+0.5));\n return res;\n}\n\nvec3 unpackNormal(vec2 vector) {\n vec3 n;\n n.z = dot(vector, vector)*2.0 - 1.0;\n n.xy = normalize(vector)*sqrt(1.0-n.z*n.z);\n return n;\n}\n\nfloat getHBasisOcclusion(vec3 n, vec4 hbasis) {\n\tfloat result = 0.0;\n\tfloat sqrt3Over2PI = sqrt(1.5 / PI);\n\n // Band 0\n result += hbasis.x * (1.0 / sqrt(2.0 * PI));\n\n // Band 1\n result += hbasis.y * -sqrt3Over2PI * n.y;\n result += hbasis.z * sqrt3Over2PI * (2.0 * n.z - 1.0);\n result += hbasis.w * -sqrt3Over2PI * n.x;\n\n\treturn result;\n}\n\n#if !defined(USE_VERTEX_TANGENT_SPACE) && (defined(USE_NORMAL_MAP) || defined(USE_STATIC_AMBIENT_DIRECTIONAL_OCCLUSION) || defined(USE_ANISOTROPIC_BRDF) || defined(USE_BENT_NORMAL_MAP))\nmat3 cotangentFrame(vec3 N, vec3 p, vec2 uv) {\n // get edge vectors of the pixel triangle\n vec3 dp1 = dFdx(p);\n vec3 dp2 = dFdy(p);\n vec2 duv1 = dFdx(uv);\n vec2 duv2 = dFdy(uv);\n\n // solve the linear system\n vec3 dp2perp = cross(dp2, N);\n vec3 dp1perp = cross(N, dp1);\n vec3 T = dp2perp * duv1.x + dp1perp * duv2.x;\n vec3 B = dp2perp * duv1.y + dp1perp * duv2.y;\n\n // construct a scale-invariant frame\n float invmax = inversesqrt(max(dot(T,T), dot(B,B)));\n return mat3(T * invmax, B * invmax, N);\n}\n#endif\n\n#if defined(USE_LOGLUV_INPUT)\n// M matrix, for encoding\nconst mat3 M = mat3(\n 0.2209, 0.3390, 0.4184,\n 0.1138, 0.6780, 0.7319,\n 0.0102, 0.1130, 0.2969);\n\n/*const mat3 M = mat3(0.2209 , 0.1138 , 0.0102,\n 0.339 , 0.678 , 0.113,\n 0.4184 , 0.7319 , 0.2969);\n*/\nvec4 logLuvEncode(vec3 vRGB) {\n vec4 vResult;\n vec3 Xp_Y_XYZp = M * vRGB;\n Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\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}\n\n// Inverse M matrix, for decoding\nconst mat3 InverseM = mat3(\n 6.0013, -2.700, -1.7995,\n -1.332, 3.1029, -5.7720,\n .3007, -1.088, 5.6268);\n\n/*const mat3 InverseM = mat3(\n 6.0013 , -1.332 , 0.3007,\n -2.7 , 3.1029 , -1.088,\n -1.7995 , -5.772 , 5.6268);\n*/\n\nvec3 logLuvDecode(vec4 vLogLuv) {\n //vLogLuv = toLinear(vLogLuv);\n float Le = vLogLuv.z * 255.0 + vLogLuv.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 / vLogLuv.y;\n Xp_Y_XYZp.x = vLogLuv.x * Xp_Y_XYZp.z;\n vec3 vRGB = InverseM * Xp_Y_XYZp;\n vRGB.rg = vRGB.gr;\n return max(vRGB, 0.0);\n //if(vRGB.y > 0.0)\n //return vec3(1.0,0.0,0.0);\n //else\n //return vec3(0.0, 1.0,0.0);\n //return vec3(vRGB.b);\n}\n#endif\n\nvec4 RGBMEncode(vec3 color) {\n vec4 rgbm;\n color *= 1.0 / 6.0;\n rgbm.a = clamp(max(max(color.r, color.g), max(color.b, 1e-6)), 0.0, 1.0);\n rgbm.a = ceil(rgbm.a * 255.0) / 255.0;\n rgbm.rgb = color / rgbm.a;\n return rgbm;\n}\n\nvec3 RGBMDecode(vec4 rgbm, float range) {\n return range * rgbm.a * rgbm.rgb;\n}\n\nvec3 RGBMDecodeWithMask(vec4 rgbm, float range, out float mask) {\n mask = ceil(rgbm.a - 0.5);\n float alpha = (rgbm.a - 0.5 * mask);\n return range * alpha * rgbm.rgb;\n}\n\n\n#if defined(USE_RGBM_INPUT)\nuniform float u_rgbmMaxRange;\n#endif\n\n#if defined(USE_RGBM_IRRADIANCE_PROBE_INPUT)\nuniform float u_rgbmIrradianceProbeMaxRange;\n#endif\n\n#if defined(USE_RGBM_RADIANCE_PROBE_INPUT)\nuniform float u_rgbmRadianceProbeMaxRange;\n#endif\n\n#if defined(USE_RGBM_IRRADIANCE_INPUT)\nuniform float u_rgbmIrradianceMaxRange;\n#endif\n\n#if defined(USE_RGBM_DIFFUSE_INPUT)\nuniform float u_rgbmDiffuseMaxRange;\n#endif\n\n#if defined(USE_RGBM_NORMAL_INPUT)\nuniform float u_rgbmNormalMaxRange;\n#endif\n\n#if !defined(USE_HDR)\n\n #if defined(USE_COLOR_GRADIENT)\n uniform vec4 u_gradientColorA;\n uniform vec4 u_gradientColorB;\n uniform vec2 u_gradientDirection;\nvec3 linearGradient(vec3 color) {\n vec4 g = mix(u_gradientColorA, u_gradientColorB, dot(gl_FragCoord.xy / u_size, u_gradientDirection));\n return (1.0 - g.a) * color + g.a * g.rgb;\n}\n #endif\n\nvec3 toneMapFilmicALU(vec3 color) {\n color = max(vec3(0), color - vec3(0.004));\n color = (color * (6.2*color + vec3(0.5))) / (color * (6.2 * color + vec3(1.7)) + vec3(0.06));\n color = min(vec3(1.0,1.0,1.0), color);\n return color;\n}\n\nvec3 toneMapSimple(vec3 color) {\n return pow(color, vec3(1.0 / 2.2));\n}\n\nvec3 toneMap(vec3 color) {\n #if defined(USE_TONEMAP_FILMIC)\n color = toneMapFilmicALU(color);\n #else\n color = toneMapSimple(color);\n #endif\n return color;\n}\n\n#define PI_FOURTH 0.78539816339\n\nuniform float u_fStop;\nuniform float u_shutterSpeed;\nuniform float u_lensTransmittance;\nuniform float u_filmSpeed;\n\n#if defined(USE_VIGNETTING)\nuniform float u_focalLength;\nuniform float u_opticalVignettingStrength;\nuniform float u_distanceToFilm;\nuniform vec2 u_filmSize;\n#endif\n\nfloat getNaturalVignetting(vec2 dir) {\n float result = 1.0;\n#if defined(USE_VIGNETTING)\n float dist = length(u_filmSize * dir);\n\n float cosAlpha = cos(atan(dist / u_distanceToFilm));\n result = cosAlpha*cosAlpha*cosAlpha*cosAlpha;\n#endif\n\n return result;\n}\n\nfloat getOpticalVignetting(float distSqr) {\n float result = 1.0;\n#if defined(USE_VIGNETTING)\n float vignettingDistanceSqr = u_fStop * u_focalLength / (100.0 * u_opticalVignettingStrength);\n float factor = smoothstep(0.0, vignettingDistanceSqr, distSqr);\n result = 1.0 - factor;\n#endif\n\n return result;\n}\n\nfloat getCalibratedLuminanceFactor(vec2 dir) {\n float nv = getNaturalVignetting(dir);\n\t return PI_FOURTH * u_filmSpeed * u_lensTransmittance * nv * u_shutterSpeed / (u_fStop * u_fStop);\n}\n\n#endif\n\nvec3 rgbToYcocg(const in vec3 rgbColor) {\n const mat3 transform = mat3(0.25, 0.5, -0.25, 0.5, 0.0, 0.5, 0.25, -0.5, -0.25);\n return transform * rgbColor;\n}\n\nvec3 ycocgToRgb(const in vec3 ycocgColor) {\n vec3 rgbColor;\n rgbColor.r = ycocgColor[0] + ycocgColor[1] - ycocgColor[2];\n rgbColor.g = ycocgColor[0] + ycocgColor[2];\n rgbColor.b = ycocgColor[0] - ycocgColor[1] - ycocgColor[2];\n return rgbColor;\n}\n\nvec3 projectOnPlane(vec3 point, vec3 planeCenter, vec3 planeNorm) {\n return point - dot(point - planeCenter, planeNorm) * planeNorm;\n}\nint sideOfPlane(in vec3 p, in vec3 pc, in vec3 pn) {\n if(dot(p-pc,pn) >= 0.0) return 1; else return 0;\n}\nvec3 linePlaneIntersect(in vec3 lp, in vec3 lv, in vec3 pc, in vec3 pn) {\n return lp + lv * (dot(pn, pc - lp) / dot(pn, lv));\n}\n\nbool intersectDisk(vec3 n, vec3 p0, vec3 l0, vec3 l, out float t, out float d) {\n // assuming vectors are all normalized\n float denom = dot(n, l);\n if (denom > 0.000001) {\n vec3 p0l0 = p0 - l0;\n t = dot(p0l0, n) / denom;\n vec3 p = l0 + l * t;\n vec3 vector = p - p0;\n d = dot(vector, vector);\n return t >= 0.0;\n }\n return false;\n}\n\nvec2 boxRayIntersect(vec3 origin, vec3 direction, vec3 minimum, vec3 maximum) {\n vec3 inverseRayDirection = 1.0 / (direction);\n vec3 fpi = (minimum - origin) * inverseRayDirection;\n vec3 spi = (maximum - origin) * inverseRayDirection;\n vec3 cpi = min(fpi, spi);\n vec3 fpi1 = max(fpi, spi);\n return vec2(max(cpi.x, max(cpi.y, cpi.z)), min(fpi1.x, min(fpi1.y, fpi1.z)));\n\n}\n\nvec3 square(vec3 vector) {\n return vector*vector;\n}\n\n// FRESNEL\nvec3 fresnelReference(vec3 specular, vec3 vector, vec3 h) {\n float VdotH = clamp(dot(vector, h), 0.0, 1.0);\n\tvec3 VdotHv = vec3(VdotH);\n vec3 one = vec3(1.0);\n vec3 specularSqrt = sqrt(clamp(vec3(0.0), vec3(0.99, 0.99, 0.99), specular));\n\tvec3 n = (one + specularSqrt) / (one - specularSqrt);\n\tvec3 g = sqrt(n*n + vec3(VdotH*VdotH - 1.0));\n\treturn 0.5 * square((g - VdotHv) / (g + VdotHv)) * (one + square(((g+VdotHv)*VdotH - one) / ((g-VdotHv)*VdotH + one)));\n}\n\nfloat fresnelSchlickSimple(float f0, float VdotH) {\n float fc = pow(1.0 - VdotH, 5.0);\n return fc + (1.0 - fc) * f0;\n}\n\nvec3 fresnelSchlick(vec3 f0, float f90, float VdotH) {\n\treturn f0 + (vec3(f90) - f0) * pow(1.0 - VdotH, 5.0);\n}\n\nfloat fresnelSchlickSingle(float f0, float f90, float VdotH) {\n return f0 + (f90 - f0) * pow(1.0 - VdotH, 5.0);\n}\n\nfloat fresnel90(vec3 f0) {\n return clamp(50.0 * dot(f0, vec3(0.33)), 0.0, 1.0);\n}\n\nfloat fresnel90Single(float f0) {\n return clamp(50.0 * f0, 0.0, 1.0);\n}\n\nvec3 shColorSample(vec3 shCoeffs[9], vec3 direction) {\n float x2 = direction.x*direction.x, y2 = direction.y*direction.y, z2 = direction.z*direction.z;\n float xy = direction.x*direction.y, yz = direction.y*direction.z, xz = direction.x*direction.z;\n\n vec3 l00 = shCoeffs[0];\n\n vec3 l1_1 = shCoeffs[1];\n vec3 l10 = shCoeffs[2];\n vec3 l11 = shCoeffs[3];\n\n vec3 l2_2 = shCoeffs[4];\n vec3 l2_1 = shCoeffs[5];\n vec3 l20 = shCoeffs[6];\n vec3 l21 = shCoeffs[7];\n vec3 l22 = shCoeffs[8];\n\n //const float g_shConstants[5] = float[](0.429043, 0.511664, 0.743125, 0.886227, 0.247708);\n\n vec3 result = 0.429043 * l22 * (x2 - y2) + 0.743125 * l20 * z2 + 0.886227 * l00 - 0.247708 * l20 + 2.0 * 0.429043 * (l2_2 * xy + l21 * xz + l2_1 * yz) + 2.0 * 0.511664 * (l11 * direction.x + l1_1 * direction.y + l10 * direction.z);\n\n return max(result, vec3(0.0));\n}\n\n// ----------------------------------------------------------\n#if defined(PARTICLE)\n\nuniform sampler2D u_baseTexture;\nvarying vec2 v_texCoord0;\nvarying vec4 v_color;\n\nvoid main() {\n#if defined(USE_GAMMA_SPACE)\n vec4 result = toLinear(texture2D(u_baseTexture, v_texCoord0));\n#else\n vec4 result = texture2D(u_baseTexture, v_texCoord0);\n#endif\n\n#if defined(DISCARD_ALPHA)\n if(result.a < ALPHA_THRESHOLD) {\n discard;\n }\n#endif\n\n result *= v_color;\n\n#if !defined(USE_HDR)\n vec2 dir = (gl_FragCoord.xy / u_size) - vec2(0.5, 0.5);\n float dist = dot(dir, dir);\n #if defined(USE_COLOR_GRADIENT)\n result.rgb = linearGradient(result.rgb);\n #endif\n result.rgb *= getCalibratedLuminanceFactor(dir) * getOpticalVignetting(dist);\n result.rgb = toneMap(result.rgb);\n#endif\n\n gl_FragColor = result;\n}\n\n// ----------------------------------------------------------\n#elif (defined(LIT) || defined(LIT_POINT_SPRITE) || defined(LIT_PARTICLE))\n\n#if (defined(USE_CUBE_IBR) || defined(USE_LATLONG_IBR))\n varying vec3 v_direction;\n #if defined(USE_DEFERRED_TEXTURING)\n #define SAMPLER_LOOKUP texture2D\n #define SAMPLER_TEXCOORD texCoord0\n #define SAMPLER_BAKED_TEXCOORD bakedTc\n #define SAMPLER_TYPE sampler2D\n #define SAMPLER_COORD_TYPE vec2\n\n #if defined(USE_LATLONG_IBR)\n uniform sampler2D u_materialIdTexture;\n uniform sampler2D u_uvTexture;\n #elif defined(USE_CUBE_IBR)\n uniform samplerCube u_materialIdTexture;\n uniform samplerCube u_uvTexture;\n #endif\n #elif defined(USE_LATLONG_IBR)\n #define SAMPLER_LOOKUP texture2D\n #define SAMPLER_TEXCOORD worldToLatLong(texCoord0)\n #define SAMPLER_BAKED_TEXCOORD worldToLatLong(bakedTc)\n #define SAMPLER_TYPE sampler2D\n #define SAMPLER_COORD_TYPE vec3\n #elif defined(USE_CUBE_IBR)\n #define SAMPLER_LOOKUP textureCube\n #define SAMPLER_TEXCOORD texCoord0\n #define SAMPLER_BAKED_TEXCOORD bakedTc\n #define SAMPLER_TYPE samplerCube\n #define SAMPLER_COORD_TYPE vec3\n #endif\n#else\n #define SAMPLER_LOOKUP texture2D\n #define SAMPLER_TEXCOORD texCoord0\n #define SAMPLER_BAKED_TEXCOORD bakedTc\n #define SAMPLER_TYPE sampler2D\n #define SAMPLER_COORD_TYPE vec2\n#endif\n\n#define ENV_CORRECTION_ITERATION_COUNT 3\n\nfloat lookupDepth(samplerCube texture, vec3 coord, vec2 nearfar) {\n #if defined(USE_DEPTH_PACKING)\n return nearfar.x + unpackFloat4(textureCube(texture, coord)) * (nearfar.y - nearfar.x);\n #elif defined(USE_DEPTH_24_PACKING)\n return nearfar.x + unpackFloat3(textureCube(texture, coord).rgb) * (nearfar.y - nearfar.x);\n #else\n return nearfar.x + textureCube(texture, coord).x * (nearfar.y - nearfar.x);\n #endif\n}\n\nfloat lookupDepth(sampler2D texture, vec3 coord, vec2 nearfar) {\n #if defined(USE_DEPTH_PACKING)\n return nearfar.x + unpackFloat4(texture2D(texture, worldToLatLong(coord))) * (nearfar.y - nearfar.x);\n #elif defined(USE_DEPTH_24_PACKING)\n return nearfar.x + unpackFloat3(texture2D(texture, worldToLatLong(coord)).rgb) * (nearfar.y - nearfar.x);\n #else\n return nearfar.x + texture2D(texture, worldToLatLong(coord)).x * (nearfar.y - nearfar.x);\n #endif\n}\n\nvec3 getCorrectedEnvHit(vec3 point, vec3 R, sampler2D depthTexture, vec2 nearfar, inout float accumError) {\n float rl = lookupDepth(depthTexture, R, nearfar); // |r|\n\n float dp = rl - dot(point, R);\n vec3 p = point + R * dp;\n float ppp = length(p) / lookupDepth(depthTexture, p, nearfar);\n float dun = 0.0, dov = 0.0, pun = ppp, pov = ppp;\n if (ppp < 1.0) dun = dp; else dov = dp;\n float dl = max(dp + rl * (1.0 - ppp), 0.0);\n vec3 l = point + R * dl;\n\n // iteration\n for(int i = 0; i < ENV_CORRECTION_ITERATION_COUNT; i++) {\n float ddl;\n float llp = length(l) / lookupDepth(depthTexture, l, nearfar);\n if (llp < 1.0) { // undershooting\n dun = dl; pun = llp;\n ddl = (dov == 0.0) ? rl * (1.0 - llp) :\n (dl - dov) * (1.0 - llp) / (llp - pov);\n } else { // overshooting\n dov = dl; pov = llp;\n ddl = (dun == 0.0) ? rl * (1.0 - llp) :\n (dl - dun) * (1.0 - llp) / (llp - pun);\n }\n float oldDl = dl;\n dl = max(dl + ddl, 0.0); // avoid flip\n\n l = point + R * dl;\n // accumError += pow(dl - oldDl, 2.0);\n }\n\n //accumError = sqrt(accumError) / ((-u_projectionMatrix[3][2] / (u_projectionMatrix[2][2] - 1.0)) / 1.7320508075688772);\n return l;\n}\n\n#if defined(USE_REFRACTION)\n uniform mat4 u_projectionMatrix;\n#endif\n\nvec3 getCorrectedEnvHit(vec3 point, vec3 R, samplerCube depthTexture, vec2 nearfar, inout float accumError) {\n float rl = lookupDepth(depthTexture, R, nearfar); // |r|\n\n float dp = rl - dot(point, R);\n vec3 p = point + R * dp;\n float ppp = length(p) / lookupDepth(depthTexture, p, nearfar);\n float dun = 0.0, dov = 0.0, pun = ppp, pov = ppp;\n if (ppp < 1.0) dun = dp; else dov = dp;\n float dl = max(dp + rl * (1.0 - ppp), 0.0);\n vec3 l = point + R * dl;\n\n // iteration\n for(int i = 0; i < ENV_CORRECTION_ITERATION_COUNT; i++) {\n float ddl;\n float llp = length(l) / lookupDepth(depthTexture, l, nearfar);\n if (llp < 1.0) { // undershooting\n dun = dl; pun = llp;\n ddl = (dov == 0.0) ? rl * (1.0 - llp) :\n (dl - dov) * (1.0 - llp) / (llp - pov);\n } else { // overshooting\n dov = dl; pov = llp;\n ddl = (dun == 0.0) ? rl * (1.0 - llp) :\n (dl - dun) * (1.0 - llp) / (llp - pun);\n }\n float oldDl = dl;\n dl = max(dl + ddl, 0.0); // avoid flip\n\n l = point + R * dl;\n // accumError += pow(dl - oldDl, 2.0);\n }\n\n //accumError = sqrt(accumError) / ((-u_projectionMatrix[3][2] / (u_projectionMatrix[2][2] - 1.0)) / 1.7320508075688772);\n return l;\n}\n\n#if (SHADOWED_DIR_LIGHT_COUNT > 0)\n #define HAS_SHADOWED_LIGHTS\n#endif\n\n#if (defined(USE_METALLIC_TEXTURE) || defined(USE_METALLIC_VALUE))\n #define USE_METALLIC_WORKFLOW\n#endif\n\n#if (defined(LIT) || defined(LIT_PARTICLE))\n varying vec3 v_position;\n varying vec2 v_texCoord0;\n #if defined(USE_2ND_UV_FOR_BAKED_MAPS)\n varying vec2 v_texCoord1;\n #endif\n #if defined(USE_UV_BASED_RADIAL_OPACITY)\n varying vec2 v_originalTexCoord0;\n #endif\n #if defined(USE_DIFFUSE_SPRITE_ANIMATION)\n varying vec2 v_texCoord2;\n uniform sampler2D u_diffuseSpriteAnimationTexture;\n uniform float u_diffuseSpriteAnimationAlpha;\n #endif\n#endif\n\n#if defined(LIT_POINT_SPRITE)\n varying float v_radius;\n varying vec3 v_position;\n#endif\n\n#if defined(LIT_POINT_SPRITE)\nuniform mat4 u_inverseViewMatrix;\n#endif\nuniform vec3 u_cameraLocation;\n\n#if (defined(HAS_SHADOWED_LIGHTS) || defined(USE_Z_DEPTH_FOG))\nvarying vec3 v_positionCS;\n#endif\n\n#if (defined(USE_DIFFUSE_TEXTURE) || defined(USE_DIFFUSE_TEXTURE_WITH_ALPHA))\nuniform SAMPLER_TYPE u_diffuseTexture;\n#endif\n#if defined(USE_DIFFUSE_COLOR)\nuniform vec3 u_diffuseColor;\n#endif\n\n#if defined(USE_STATIC_AMBIENT_OCCLUSION)\n #if defined(USE_VERTEX_AO)\n varying vec3 v_ao;\n #else\n // NOTE: static ao is precomputed globally in modelling program, or as dxp (as in destiny)\n uniform SAMPLER_TYPE u_aoTextureStatic;\n #endif\n#endif\n\n#if defined(USE_DYNAMIC_AMBIENT_OCCLUSION)\n// NOTE: dynamic ssao needs z-prepass to have a depth tex, that is processed in ssao program\nuniform sampler2D u_aoTextureDynamic;\n#endif\n\n#if defined(USE_VERTEX_NORMAL)\nvarying vec3 v_normal;\n#endif\n\n#if defined(USE_NORMAL_MAP)\nuniform SAMPLER_TYPE u_normalTexture;\nuniform float u_normalMapStrength;\n#endif\n\n#if (defined(USE_VERTEX_TANGENT_SPACE))\nvarying vec3 v_tangent;\nvarying vec3 v_bitangent;\n#endif\n\n#if defined(USE_SPECULAR_TEXTURE)\nuniform SAMPLER_TYPE u_specularTexture;\n#elif defined(USE_SPECULAR_COLOR)\nuniform vec3 u_specularColor;\n#elif defined(USE_METALLIC_TEXTURE)\nuniform SAMPLER_TYPE u_metallicTexture;\n#endif\n#if defined(USE_METALLIC_VALUE)\nuniform float u_metallicValue;\n#endif\n\n#if defined(USE_ROUGHNESS_TEXTURE)\nuniform SAMPLER_TYPE u_roughnessTexture;\n#endif\n#if defined(USE_ROUGHNESS_VALUE)\nuniform float u_roughness;\n#endif\n\n#if defined(USE_WETNESS_TEXTURE)\nuniform SAMPLER_TYPE u_wetnessTexture;\n#endif\n#if defined(USE_WETNESS_VALUE)\nuniform float u_wetness;\n#endif\n\n#if defined(USE_ANISOTROPY_TEXTURE)\nuniform SAMPLER_TYPE u_anisotropyTexture;\n#endif\n#if defined(USE_ANISOTROPY_VALUE)\nuniform float u_anisotropy;\n#endif\n\n#if defined(USE_EMISSIVE_TEXTURE)\nuniform SAMPLER_TYPE u_emissiveTexture;\n #if defined(USE_RGBM_EMISSIVE_INPUT)\n uniform float u_rgbmEmissiveMaxRange;\n #endif\n#endif\n#if defined(USE_EMISSIVE_COLOR)\nuniform vec3 u_emissiveColor;\n#endif\n\n#if defined(USE_EMISSIVE_TEXTURE) || defined(USE_EMISSIVE_COLOR)\nuniform float u_emissiveStrength;\n#endif\n\n#if defined(USE_CLEARCOAT)\nuniform float u_clearcoatRoughness;\n#endif\n\n#if defined(USE_CLEARCOAT_VALUE)\nuniform float u_clearcoatValue;\n#endif\n#if defined(USE_CLEARCOAT_TEXTURE)\nuniform SAMPLER_TYPE u_clearcoatTexture;\n#endif\n\n#if defined(USE_HIGHLIGHT_COLOR)\nuniform vec4 u_highlightColor;\nuniform vec3 u_highlightPosT;\n#endif\n\n#if (defined(USE_OIT_TRANSPARENCY) || defined(USE_TRANSPARENCY))\n #if defined(USE_OPACITY_TEXTURE)\n uniform SAMPLER_TYPE u_opacityTexture;\n #endif\n #if defined(USE_OPACITY_VALUE)\n uniform float u_opacity;\n #endif\n#endif\n\n\n#if (defined(HAS_SHADOWED_LIGHTS) || defined(USE_REFRACTION))\n uniform mat4 u_viewMatrix;\n#endif\n\n#if defined(USE_REFRACTION)\n uniform sampler2D u_refractionTexture;\n#endif\n\n#if defined(USE_AMBIENT_COLOR)\nuniform vec3 u_ambientColor;\n#endif\n\n#if defined(USE_HDR)\n #if defined(USE_HIGH_LUMINANCE_DIFFUSE_BOOST)\n uniform vec2 u_highLuminanceDiffuseBoostParams;\n #endif\n#endif\n\n#if defined(USE_AMBIENT_DIFFUSE_TEXTURE)\n// NOTE: this is precomputed in modeling tool or as dxp, the geometry has to be reparametrized\nuniform SAMPLER_TYPE u_irradianceTexture;\nuniform float u_irradianceTextureBoost;\n #if defined(USE_IRRADIANCE_BLEND)\n uniform SAMPLER_TYPE u_irradianceTextureBlendDst;\n uniform float u_irradianceTextureBlendFactor;\n #if defined(USE_RGBM_IRRADIANCE_INPUT)\n uniform float u_rgbmIrradianceMaxRangeBlendDst;\n #endif\n #endif\n#endif\n\n#if DIR_LIGHT_COUNT > 0\nuniform vec3 u_directionalLightColor[DIR_LIGHT_COUNT];\nuniform vec3 u_directionalLightDirection[DIR_LIGHT_COUNT];\nuniform float u_directionalLightRadius[DIR_LIGHT_COUNT];\n#endif\n\n#if POINT_LIGHT_COUNT > 0\nuniform vec3 u_pointLightPosition[POINT_LIGHT_COUNT];\nuniform vec3 u_pointLightColor[POINT_LIGHT_COUNT];\nuniform float u_pointLightFalloff[POINT_LIGHT_COUNT];\n#endif\n\n#if SPOT_LIGHT_COUNT > 0\nuniform vec3 u_spotLightPosition[SPOT_LIGHT_COUNT];\nuniform vec3 u_spotLightDirection[SPOT_LIGHT_COUNT];\nuniform float u_spotLightFalloff[SPOT_LIGHT_COUNT];\nuniform float u_spotLightAngle[SPOT_LIGHT_COUNT];\nuniform float u_spotLightExponent[SPOT_LIGHT_COUNT];\nuniform vec3 u_spotLightColor[SPOT_LIGHT_COUNT];\nuniform sampler2D u_spotLightGoboTexture[SPOT_LIGHT_COUNT];\nuniform bool u_spotLightHasGobo[SPOT_LIGHT_COUNT];\n\nvarying vec4 v_spotLightProjPosition[SPOT_LIGHT_COUNT];\n#endif\n\n#if SHADOWED_DIR_LIGHT_COUNT > 0\nuniform vec3 u_shadowedDirectionalLightColor[SHADOWED_DIR_LIGHT_COUNT];\nuniform vec3 u_shadowedDirectionalLightDirection[SHADOWED_DIR_LIGHT_COUNT];\nuniform float u_shadowedDirectionalLightRadius[SHADOWED_DIR_LIGHT_COUNT];\nuniform sampler2D u_shadowedDirectionalLightShadowMap[SHADOWED_DIR_LIGHT_COUNT];\nuniform vec2 u_shadowedDirectionalLightShadowMapSize[SHADOWED_DIR_LIGHT_COUNT];\nuniform mat4 u_shadowedDirectionalLightShadowMapViewProjectionMatrix[SHADOWED_DIR_LIGHT_COUNT];\n#endif\n\n#if SPHERE_LIGHT_COUNT > 0\nuniform vec3 u_sphereLightColor[SPHERE_LIGHT_COUNT];\nuniform vec3 u_sphereLightPos[SPHERE_LIGHT_COUNT];\nuniform float u_sphereLightFalloff[SPHERE_LIGHT_COUNT];\nuniform float u_sphereLightRadius[SPHERE_LIGHT_COUNT];\n#endif\n\n#if AREA_LIGHT_COUNT > 0\nuniform vec3 u_areaLightPosition[AREA_LIGHT_COUNT];\nuniform vec3 u_areaLightNormal[AREA_LIGHT_COUNT];\nuniform vec3 u_areaLightUp[AREA_LIGHT_COUNT];\nuniform vec3 u_areaLightRight[AREA_LIGHT_COUNT];\nuniform vec2 u_areaLightSize[AREA_LIGHT_COUNT];\nuniform vec3 u_areaLightColor[AREA_LIGHT_COUNT];\n#endif\n\n// HELPER\nfloat Beckmann_G1(float m, float NdotX) {\n float NdotX2 = NdotX * NdotX;\n float tanTheta = sqrt((1.0 - NdotX2) / NdotX2);\n float a = 1.0 / (m * tanTheta);\n float a2 = a * a;\n float g = 1.0;\n if(a < 1.6)\n g *= (3.535 * a + 2.181 * a2) / (1.0 + 2.276 * a + 2.577 * a2);\n\n return g;\n}\n\n// VISIBILITY FUNCTIONS\nfloat vKelemen(float VdotH) {\n\treturn 1.0 / (4.0 * VdotH * VdotH);\n}\n\nfloat vSmith(float m, float NdotV, float NdotL) {\n float m2 = m*m;\n\n float v1i = NdotV + sqrt(NdotV * (NdotV - NdotV * m2) + m2);\n float v1o = NdotL + sqrt(NdotL * (NdotL - NdotL * m2) + m2);\n return 1.0 / (v1i * v1o);\n}\n\nfloat vSmithJoint(float m, float NdotV, float NdotL) {\n float v1i = NdotL * (NdotV * ( 1.0 - m ) + m);\n float v1o = NdotV * (NdotL * ( 1.0 - m ) + m);\n return 0.5 / (v1i + v1o);\n}\n\nfloat vSchlick(float m, float NdotV, float NdotL) {\n float k = m * 0.5;\n\n float v1i = NdotV * (1.0 - k) + k;\n float v1o = NdotL * (1.0 - k) + k;\n return 0.25 / (v1i * v1o);\n}\n\nfloat vVelvet(float m, float NdotV, float NdotL) {\n float g1i = Beckmann_G1(m, NdotL);\n float g1o = Beckmann_G1(m, NdotV);\n return g1i * g1o;\n}\n\n// DISTRIBUTION FUNCTIONS\nfloat dGGX(float m, float NdotH) {\n float m2 = m * m;\n float denom = (NdotH * m2 - NdotH) * NdotH + 1.0;\n return m2 / (PI * denom * denom);\n}\n\nfloat dBeckmann(float m, float NdotH) {\n\tfloat m2 = m * m;\n\tfloat NdotH2 = NdotH * NdotH;\n\treturn exp((NdotH2 - 1.0) / (m2 * NdotH2) ) / ( PI * m2 * NdotH2 * NdotH2);\n}\n\nfloat dGGXAnisotropic(float mx, float my, float NdotH, vec3 H, vec3 X, vec3 Y) {\n float XdotH = dot(X, H);\n float YdotH = dot(Y, H);\n float d = XdotH*XdotH / (mx*mx) + YdotH*YdotH / (my*my) + NdotH*NdotH;\n return 1.0 / (PI * mx*my * d*d);\n}\n\nfloat dVelvet(float m, float NdotH) {\n float NdotH2 = NdotH * NdotH;\n float NdotH4 = NdotH2 * NdotH2;\n float m2 = m * m;\n // Calculate the distribution term\n float tanTheta2 = (1.0 - NdotH2) / NdotH2;\n float expTerm = exp(-tanTheta2 / m2);\n return expTerm / (PI * m2 * NdotH4);\n}\n\n// DIFFUSE\nvec3 diffuseLambert(vec3 diffuse) {\n return diffuse * INV_PI;\n}\n\nvec3 diffuseBurley(vec3 diffuse, float roughness, float NdotV, float NdotL, float VdotH) {\n \tfloat InvNdotV = 1.0 - NdotV;\n float NdotVPow5 = InvNdotV * InvNdotV;\n NdotVPow5 = NdotVPow5 * NdotVPow5 * InvNdotV;\n\n float InvNdotL = 1.0 - NdotL;\n float NdotLPow5 = InvNdotL * InvNdotL;\n NdotLPow5 = NdotLPow5 * NdotLPow5 * InvNdotL;\n\n float FD90 = ( 0.5 + 2.0 * VdotH * VdotH ) * roughness;\n float FdV = 1.0 + (FD90 - 1.0) * NdotVPow5;\n float FdL = 1.0 + (FD90 - 1.0) * NdotLPow5;\n return diffuse * INV_PI * FdV * FdL * (1.0 - 0.3333 * roughness);\n}\n\nvec3 diffuseOrenNayar(vec3 diffuse, float m, float NdotV, float NdotL, float VdotH) {\n float VdotL = 2.0 * VdotH - 1.0;\n float m2 = m * m;\n float C1 = 1.0 - 0.5 * m2 / (m2 + 0.33);\n float Cosri = VdotL - NdotV * NdotL;\n float C2 = 0.45 * m2 / (m2 + 0.09) * Cosri * (Cosri >= 0.0 ? min(1.0, NdotL / NdotV) : NdotL);\n return diffuse * INV_PI * (NdotL * C1 + C2);\n}\n\n\n// BRDFs\n// l = diffuseDirection\n// s = specularDirection\nvec3 brdf(vec3 vector, vec3 l, vec3 s, vec3 n, float roughness, float anisotropy, vec3 specular, vec3 diffuse, vec3 tangent, vec3 binormal, float NdotV, float f90, float clearcoat, float clearcoatRoughness) {\n\n vec3 h = normalize(vector + l);\n vec3 hs = normalize(vector + s);\n\n float m = roughness * roughness;\n\n float NdotL = clamp(dot(n, l), 0.0, 1.0);\n float NdotLS = clamp(dot(n, s), 0.0, 1.0);\n\n // float NdotH = clamp(dot(n, h), 0.0, 1.0);\n float NdotHS = clamp(dot(n, hs), 0.0, 1.0);\n\n float VdotH = clamp(dot(vector, h), 0.0, 1.0);\n float VdotHS = clamp(dot(vector, hs), 0.0, 1.0);\n\n\n#if defined(USE_SCHLICK_FRESNEL)\n vec3 f = fresnelSchlick(specular, f90, VdotHS);\n#elif defined(USE_REFERENCE_FRESNEL)\n vec3 f = fresnelReference(specular, VdotHS);\n#else\n vec3 f = specular;\n#endif\n\n float d = 1.0;\n\n#if defined(USE_STANDARD_BRDF)\n #if defined(USE_GGX_DISTRIBUTION)\n d = dGGX(m, NdotHS);\n #elif defined(USE_BECKMANN_DISTRIBUTION)\n d = dBeckmann(m, NdotHS);\n #endif\n#elif defined(USE_ANISOTROPIC_BRDF)\n d = dGGXAnisotropic(m, mix(0.0, m, 1.0 - anisotropy), NdotHS, n, tangent, binormal);\n#elif defined(USE_CLOTH_BRDF)\n d = dVelvet(m, NdotHS);\n#endif\n\n float vis = 0.25;\n#if (defined(USE_STANDARD_BRDF) || defined(USE_ANISOTROPIC_BRDF))\n #if defined(USE_SCHLICK_VISIBILITY)\n vis = vSchlick(m, NdotV, NdotLS);\n #elif defined(USE_SMITH_VISIBILITY)\n vis = vSmith(m, NdotV, NdotLS);\n #elif defined(USE_SMITHJOINT_VISIBILITY)\n vis = vSmithJoint(m, NdotV, NdotLS);\n #endif\n#elif defined(USE_CLOTH_BRDF)\n vis = vVelvet(m, NdotV, NdotLS);\n#endif\n\n vec3 diff = vec3(0.0);\n#if defined(USE_LAMBERT_DIFFUSE)\n diff = diffuseLambert(diffuse);\n#elif defined(USE_BURLEY_DIFFUSE)\n diff = diffuseBurley(diffuse, roughness, NdotV, NdotL, VdotH);\n#elif defined(USE_ORENNAYAR_DIFFUSE)\n diff = diffuseOrenNayar(diffuse, roughness, NdotV, NdotL, VdotH);\n#endif\n\n#if defined(USE_CLEARCOAT)\n float d2 = dGGX(clearcoatRoughness*clearcoatRoughness, NdotHS);\n float f2 = fresnelSchlickSimple(0.04, VdotHS);\n f2 *= clearcoat;\n float layerAttenuation = (1.0 - f2);\n\n float vis2 = vKelemen(VdotHS);\n return (diff + d * vis * f) * layerAttenuation + d2 * vis2 * f2;\n#else\n return diff + d * vis * f;\n#endif\n\n}\n\nfloat linstep(float minimum, float maximum, float vector) {\n return clamp((vector - minimum) / (maximum - minimum), 0.0, 1.0);\n}\n\nfloat reduceLightBleeding(float p_max, float amount) {\n // Remove the [0, Amount] tail and linearly rescale (Amount, 1].\n return linstep(amount, 1.0, p_max);\n}\n\nfloat calcShadowTerm(sampler2D shadowMap, float depthLS, float depthCS, vec2 shadowTexCoord, vec2 shadowMapSize) {\n #if defined(USE_HDR)\n vec2 moments = texture2D(shadowMap, shadowTexCoord).xy; //depthCS * float(SHADOW_MAX_MIPMAP_LEVEL)).xy;\n #else\n vec4 texel = texture2D(shadowMap, shadowTexCoord);\n vec2 moments = vec2(unpackFloat2(texel.xy), unpackFloat2(texel.zw)); //depthCS * float(SHADOW_MAX_MIPMAP_LEVEL)).xy;\n #endif\n float p = float((depthLS <= moments.x));\n float variance = moments.y - (moments.x*moments.x);\n variance = max(variance, 0.0001);\n float d = depthLS - moments.x;\n float p_max = variance / (variance + d*d);\n return max(p, reduceLightBleeding(p_max, 0.5));\n}\n\nfloat calcShadowOcclusion(sampler2D shadowMap, vec2 shadowMapSize, mat4 lightViewProjectionMatrix, vec3 position, float depthCS) {\n\n vec4 homogenousPosition = vec4(position, 1.0);\n\n // Determine the depth of the pixel with respect to the light\n mat4 viewToLightViewProjectionMatrix = lightViewProjectionMatrix;\n vec4 lightPositionCS = viewToLightViewProjectionMatrix * homogenousPosition;\n\n // Transform from light space to shadow map texture space.\n lightPositionCS.xyz /= lightPositionCS.w;\n float depthLS = lightPositionCS.z;\n vec2 shadowTexCoord = lightPositionCS.xy * 0.5 + 0.5;\n\n // Offset the coordinate by half a texel so we sample it correctly\n shadowTexCoord += (0.5 / shadowMapSize);\n\n // Get the shadow occlusion factor and output it\n float shadowTerm = calcShadowTerm(shadowMap, depthLS, depthCS, shadowTexCoord, shadowMapSize);\n\n return shadowTerm;\n}\n\nvec3 getDirLightContribution(vec3 lightDirection, vec3 lightColor, float lightRadius, vec3 surfaceDiffuse, vec3 surfaceSpecular, float surfaceRoughness, float surfaceAnisotropy, vec3 surfaceNormal, vec3 view, vec3 reflection, float shadowOcclusion, vec3 tangent, vec3 binormal, float NdotV, float f90, float surfaceClearcoat, float surfaceClearcoatRoughness) {\n // What is faster? No branching? Only max instead of clamp? Branching and no clamp?\n float NdotL = clamp(dot(surfaceNormal, lightDirection), 0.0, 1.0);\n if(NdotL > 0.0) {\n float r = sin(lightRadius);\n float d = cos(lightRadius);\n float DdotR = dot(lightDirection, reflection);\n vec3 S = reflection - DdotR * lightDirection;\n vec3 lightDirectionSpecular = DdotR < d ? normalize(d * lightDirection + normalize(S) * r) : reflection;\n\n vec3 f = brdf(view, lightDirection, lightDirectionSpecular, surfaceNormal, surfaceRoughness, surfaceAnisotropy, surfaceSpecular, surfaceDiffuse, tangent, binormal, NdotV, f90, surfaceClearcoat, surfaceClearcoatRoughness);\n float specularEnergyCorrectionTerm = pow(max(1.0 - lightRadius, 0.0), 2.0);\n\n return specularEnergyCorrectionTerm * shadowOcclusion * NdotL * f * lightColor;\n }\n\n return vec3(0.0);\n}\n\nvec3 getPointLightContribution(vec3 lightPosition, float lightFalloff, vec3 lightColor, vec3 surfacePoint, vec3 surfaceNormal, vec3 surfaceDiffuse, vec3 surfaceSpecular, float surfaceRoughness, float surfaceAnisotropy, vec3 view, vec3 tangent, vec3 binormal, float NdotV, float f90, float surfaceClearcoat, float surfaceClearcoatRoughness) {\n vec3 l = lightPosition - surfacePoint;\n float dist = length(l);\n l /= dist;\n\n // What is faster? No branching? Only max instead of clamp? Branching and no clamp?\n float NdotL = clamp(dot(surfaceNormal, l), 0.0, 1.0);\n if(NdotL > 0.0) {\n float falloff = pow(clamp(1.0 - pow(dist / lightFalloff, 4.0), 0.0, 1.0), 2.0) / (dist*dist + 1.0);\n\n // TODO: shadows\n vec3 f = brdf(view, l, l, surfaceNormal, surfaceRoughness, surfaceAnisotropy, surfaceSpecular, surfaceDiffuse, tangent, binormal, NdotV, f90, surfaceClearcoat, surfaceClearcoatRoughness);\n return falloff * NdotL * f * lightColor;\n }\n\n return vec3(0.0);\n}\n\nvec3 getSpotLightContribution(vec3 lightPosition, vec3 lightDirection, float lightAngle, float lightFalloff,\nfloat lightExponent, vec3 lightColor, vec4 lightProjPos, sampler2D goboTexture, bool hasGobo, vec3 surfacePoint, vec3 surfaceNormal, vec3 surfaceDiffuse, vec3 surfaceSpecular, float surfaceRoughness, float surfaceAnisotropy, vec3 view, vec3 tangent, vec3 binormal, float NdotV, float f90, float surfaceClearcoat, float surfaceClearcoatRoughness) {\n vec3 l = lightPosition - surfacePoint;\n float dist = length(l);\n l /= dist;\n float effect = dot(lightDirection, l);\n\n if(effect > lightAngle) {\n // What is faster? No branching? Only max instead of clamp? Branching and no clamp?\n float NdotL = clamp(dot(surfaceNormal, lightDirection), 0.0, 1.0);\n if(NdotL > 0.0) {\n float falloff = pow(clamp(1.0 - pow(dist / lightFalloff, 4.0), 0.0, 1.0), 2.0) / (dist*dist + 1.0);\n\n effect = pow(effect, lightExponent);\n vec3 f = brdf(view, l, l, surfaceNormal, surfaceRoughness, surfaceAnisotropy, surfaceSpecular, surfaceDiffuse, tangent, binormal, NdotV, f90, surfaceClearcoat, surfaceClearcoatRoughness);\n if(hasGobo) {\n float goboAtten = smoothstep(0.4, 0.6, texture2D(goboTexture, (lightProjPos.xy / lightProjPos.w)*0.5 + 0.5).x);\n return goboAtten * effect * NdotL * f * lightColor;\n }\n else {\n return falloff * effect * NdotL * f * lightColor;\n }\n }\n }\n\n return vec3(0.0);\n}\n\nvec3 getSphereLightContribution(vec3 lightPosition, float lightRadius, float lightFalloff, vec3 lightColor,\nvec3 surfacePoint, vec3 surfaceNormal, vec3 surfaceDiffuse, vec3 surfaceSpecular, float surfaceRoughness, float surfaceAnisotropy, vec3 view, vec3 tangent, vec3 binormal, float NdotV, float f90, float surfaceClearcoat, float surfaceClearcoatRoughness) {\n vec3 L = lightPosition - surfacePoint;\n float dist = length(L);\n\n vec3 r = 2.0 * dot(view, surfaceNormal) * surfaceNormal - view;\n vec3 centerToRay = dot(L, r) * r - L;\n vec3 closestPoint = L + centerToRay * clamp(lightRadius / length(centerToRay), 0.0, 1.0);\n\n vec3 l = normalize(closestPoint);\n\n // What is faster? No branching? Only max instead of clamp? Branching and no clamp?\n float NdotL = clamp(dot(surfaceNormal, l), 0.0, 1.0);\n if(NdotL > 0.0) {\n float falloff = pow(clamp(1.0 - pow(dist / lightFalloff, 4.0), 0.0, 1.0), 2.0) / (dist*dist + 1.0);\n\n // TODO: shadows\n vec3 f = brdf(view, l, l, surfaceNormal, surfaceRoughness, surfaceAnisotropy, surfaceSpecular, surfaceDiffuse, tangent, binormal, NdotV, f90, surfaceClearcoat, surfaceClearcoatRoughness);\n\n float alpha = surfaceRoughness * surfaceRoughness;\n float alphaPrime = clamp(alpha + lightRadius / (3.0 * dist), 0.0, 1.0);\n float normalization = alpha / alphaPrime;\n normalization *= normalization;\n\n return normalization * falloff * NdotL * f * lightColor;\n }\n\n return vec3(0.0);\n}\n\nfloat computeDistanceBasedRoughness(float distInteresectionToShadedPoint, float distInteresectionToProbeCenter, float linearRoughness) {\n float newLinearRoughness = clamp(distInteresectionToShadedPoint / distInteresectionToProbeCenter * linearRoughness, 0.0, linearRoughness);\n return mix(newLinearRoughness, linearRoughness, linearRoughness);\n}\n\nfloat getRefractiveIndexFromReflectanceAtNormalIncidence(float f) {\n float fs = sqrt(f);\n return (fs + 1.0) / (1.0 - fs);\n}\n\n#if defined(USE_AMBIENT_IBL)\n\n#if defined(USE_CUBEMAP_FORMAT)\nvec3 envLookupHDR(samplerCube radianceTexture, vec3 reflection, float bias) {\n#if defined(USE_LOGLUV_INPUT)\n return logLuvDecode(textureEnvLod(radianceTexture, reflection, bias));\n#elif defined(USE_RGBM_RADIANCE_PROBE_INPUT)\n return toLinearColor(RGBMDecode(textureEnvLod(radianceTexture, reflection, bias), u_rgbmRadianceProbeMaxRange));\n#else\n return textureEnvLod(radianceTexture, reflection, bias).rgb;\n#endif\n}\n#else\nvec3 envLookupHDR(sampler2D radianceTexture, vec3 reflection, float bias) {\n#if defined(USE_LOGLUV_INPUT)\n return logLuvDecode(textureEnvLod(radianceTexture, reflection, bias));\n#elif defined(USE_RGBM_RADIANCE_PROBE_INPUT)\n return toLinearColor(RGBMDecode(textureEnvLod(radianceTexture, reflection, bias), u_rgbmRadianceProbeMaxRange));\n#else\n return textureEnvLod(radianceTexture, reflection, bias).rgb;\n#endif\n}\n#endif\n\n\nfloat getEnvLookupBias(float surfaceRoughness) {\n // aka: LYS preconvolved maps\n#if defined(USE_SPECULAR_POWER_IBL_LOOKUP)\n float specularPower = roughnessToSpecularPower(surfaceRoughness);\n // NOTE: check if this is valid\n //specularPower /= (4.0 * max(dot(surfaceNormal, reflection), 0.00001));\n return max(0.0, getSpecularPowerToMip(specularPower, u_iblConvData.x, u_iblConvData.y, u_iblConvData.z));\n#else\n return sqrt(surfaceRoughness) * u_radianceMipLevels;\n#endif\n}\n\n#if defined(USE_ENVIRONMENT_REFRACTION)\n\n #if defined(USE_ENVIRONMENT_REFRACTION_DISPERSION)\n // NOTE: only diamond for now; need material lut for sellmeier coefficients or cauchy coefficients...\n // NOTE2: can precompute for certain wavelengths\n float diamondRefractiveIndexSellmeier(float wavelength) {\n float w2 = wavelength * wavelength;\n return sqrt(0.3306 * w2 / (w2 - 175.0 * 175.0) + 4.3356 * w2 / (w2 - 106.0 * 106.0));\n }\n #endif\n\n vec3 getRefractiveContribution(vec3 position, vec3 normal, vec3 view, vec3 specular, float roughness, samplerCube environmentRefractionNormalTexture, samplerCube environmentRefractionDepthTexture, mat4 environmentRefractionMatrix, vec2 nearfar, float wavelength) {\n float error = 0.0;\n #if defined(USE_ENVIRONMENT_REFRACTION_DISPERSION)\n float n = diamondRefractiveIndexSellmeier(wavelength);\n #else\n // TODO: what component of specular? use luminance?\n float n = getRefractiveIndexFromReflectanceAtNormalIncidence(specular.x);\n #endif\n vec3 r = refract(-view, normal, 1.0 / n);\n float energy = 1.0 - fresnelSchlickSimple(specular.x, dot(view, normal));\n vec3 lookup = getCorrectedEnvHit(position, r, environmentRefractionDepthTexture, nearfar, error);\n\n vec3 color = vec3(0.0);\n float roughnessAccum = roughness;\n\n for(int i = 0; i < 10; ++i) {\n vec3 refractNormal = textureCube(environmentRefractionNormalTexture, lookup).xyz * 2.0 - 1.0;\n vec3 r2 = refract(r, refractNormal, n);\n float rdotrn = dot(-r, refractNormal);\n float atten = energy;\n if(rdotrn > 0.01) {\n atten = max(0.0, 1.0 - atten * fresnelSchlickSimple(specular.x, rdotrn));\n }\n vec3 lookup2 = getCorrectedEnvHit(lookup, r2, environmentRefractionDepthTexture, nearfar, error);\n color += atten * envLookupHDR(u_radianceTexture, lookup2, getEnvLookupBias(roughnessAccum));\n roughnessAccum += roughness;\n\n energy -= atten;\n if(energy <= 0.001) {\n break;\n }\n position = position + r * lookupDepth(environmentRefractionDepthTexture, lookup, nearfar);\n r = reflect(r, refractNormal);\n lookup = getCorrectedEnvHit(position, r, environmentRefractionDepthTexture, nearfar, error);\n }\n return color;\n }\n #endif\n\nvec3 getAmbientContribution(vec3 irradiance, vec3 surfacePoint, vec3 surfaceNormal, vec3 surfaceSpecular, vec3 surfaceDiffuse, float surfaceRoughness, float surfaceAnisotropy, vec3 view, vec3 origReflection, float occlusionFactor, float specularOcclusionFactor, vec4 hbasis, mat3 worldToLocal, vec3 tangent, vec3 bitangent, float NdotV, float f90, vec3 refractionColor, float surfaceClearcoat, float surfaceClearcoatRoughness) {\n\n#if defined(USE_ANISOTROPIC_BRDF)\n vec3 aTangent = cross(view, bitangent);\n vec3 aNormal = cross(aTangent, bitangent);\n vec3 reflectionNormal = normalize(mix(surfaceNormal, aNormal, surfaceAnisotropy));\n origReflection = -reflect(view, reflectionNormal);\n#endif\n\n float roughnessSquared = surfaceRoughness * surfaceRoughness;\n\n#if defined(USE_PARALLAX_CORRECTION)\n vec3 reflectionD = mix(surfaceNormal, origReflection, (1.0 - roughnessSquared) * (sqrt(1.0 - roughnessSquared) + roughnessSquared));\n vec3 localPos = (u_localizedEnvironmentInverseMatrix * vec4(surfacePoint, 1.0)).xyz;\n vec3 localDir = mat3(u_localizedEnvironmentInverseMatrix) * reflectionD;\n vec2 intersections = boxRayIntersect(localPos, localDir, u_localizedEnvironmentMin, u_localizedEnvironmentMax);\n if(intersections.y > intersections.x) {\n vec3 localR = localPos + intersections.y * localDir;\n localR = localR - u_localizedEnvironmentOffset;\n origReflection = mix(localR, localDir, surfaceRoughness);\n surfaceRoughness = computeDistanceBasedRoughness(intersections.y, length(localR), surfaceRoughness);\n }\n vec3 reflection = origReflection;\n#else\n // Point lobe in off-specular peak direction\n vec3 reflection = mix(surfaceNormal, origReflection, (1.0 - roughnessSquared) * (sqrt(1.0 - roughnessSquared) + roughnessSquared));\n#endif\n\n //float bias = 0.0;\n // aka: LYS preconvolved maps\n float bias = getEnvLookupBias(surfaceRoughness);\n #if defined(USE_CLEARCOAT)\n float bias2 = getEnvLookupBias(surfaceClearcoatRoughness);\n #endif\n\n vec3 envLookup = vec3(0.0);\n envLookup = envLookupHDR(u_radianceTexture, reflection, bias);\n#if defined(USE_CLEARCOAT)\n vec3 envLookup2 = vec3(0.0);\n\n #if (defined(USE_NORMAL_MAP) && defined(USE_VERTEX_NORMAL))\n vec3 normalClearcoat = normalize(v_normal);\n vec3 reflectionClearcoat = -reflect(view, normalClearcoat);\n envLookup2 = envLookupHDR(u_radianceTexture, reflectionClearcoat, bias2);\n #else\n envLookup2 = envLookupHDR(u_radianceTexture, origReflection, bias2);\n #endif\n#endif\n\n#if defined(USE_HIGHP_FLOAT)\n\n #if defined(USE_BURLEY_DIFFUSE)\n vec3 adjustedNormal = mix(surfaceNormal, view, clamp((NdotV * (1.02341 * rSquared - 1.51174) + -0.511705 * rSquared + 0.755868 ) * rSquared, 0.0, 1.0));\n #else\n vec3 adjustedNormal = surfaceNormal;\n #endif\n\n vec3 prefilteredDiffuse = vec3(0.0);\n\n #if defined(USE_AMBIENT_DIFFUSE_SH)\n // TODO: check if INV_PI is correct\n prefilteredDiffuse = occlusionFactor * INV_PI * surfaceDiffuse * shColorSample(u_irradianceShCoefficients,\n adjustedNormal);\n #elif defined(USE_AMBIENT_DIFFUSE_PROBE_TEXTURE)\n #if defined(USE_LOGLUV_INPUT)\n prefilteredDiffuse = occlusionFactor * surfaceDiffuse * logLuvDecode(textureEnvLod(u_irradianceProbeTexture, adjustedNormal, 0.0));\n #elif defined(USE_RGBM_IRRADIANCE_PROBE_INPUT)\n prefilteredDiffuse = occlusionFactor * surfaceDiffuse * toLinearColor(RGBMDecode(textureEnvLod(u_irradianceProbeTexture, adjustedNormal, 0.0), u_rgbmIrradianceProbeMaxRange));\n #else\n prefilteredDiffuse = occlusionFactor * surfaceDiffuse * textureEnvLod(u_irradianceProbeTexture, adjustedNormal, 0.0).rgb;\n #endif\n #elif defined(USE_AMBIENT_DIFFUSE_TEXTURE)\n prefilteredDiffuse = irradiance;\n #if !defined(USE_IRRADIANCE_INCLUDING_DIFFUSE)\n prefilteredDiffuse *= surfaceDiffuse;\n #endif\n #if defined(APPLY_AO_ON_IRRADIANCE)\n prefilteredDiffuse *= occlusionFactor;\n #endif\n #else\n #if defined(USE_LOGLUV_INPUT)\n prefilteredDiffuse = occlusionFactor * surfaceDiffuse * logLuvDecode(textureEnvLod(u_radianceTexture, adjustedNormal, u_radianceMipLevels));\n #elif defined(USE_RGBM_RADIANCE_PROBE_INPUT)\n prefilteredDiffuse = occlusionFactor * surfaceDiffuse * toLinearColor(RGBMDecode(textureEnvLod(u_radianceTexture,\n adjustedNormal, u_radianceMipLevels), u_rgbmRadianceProbeMaxRange));\n #else\n prefilteredDiffuse = occlusionFactor * surfaceDiffuse * textureEnvLod(u_radianceTexture, adjustedNormal, u_radianceMipLevels).rgb;\n #endif\n #endif\n#endif\n\n vec3 envBrdf = vec3(0.0);\n float diffuseWeight = 1.0;\n#if defined(USE_ENV_BRDF_LUT)\n vec4 packedEnvBRDF = texture2D(u_brdfTexture, vec2(NdotV, surfaceRoughness));\n float brdfScale = packedEnvBRDF.x;\n float brdfBias = packedEnvBRDF.y;\n\n #if defined(USE_BURLEY_DIFFUSE)\n diffuseWeight = packedEnvBRDF.z;\n #endif\n\n //vec3 RetroReflectionDir = lerp( N, V, saturate( ( NoV * (1.02341 * a - 1.51174) + -0.511705 * a + 0.755868 ) * a ) );\n #if defined(USE_CLEARCOAT)\n envBrdf = surfaceSpecular * brdfScale + vec3(f90 * brdfBias * (1.0 - surfaceClearcoat));\n #else\n envBrdf = surfaceSpecular * brdfScale + vec3(f90 * brdfBias);\n #endif\n#else\n #if defined(USE_CLEARCOAT)\n envBrdf = envGGXBrdfApproximation(surfaceSpecular, surfaceRoughness, NdotV, surfaceClearcoat);\n #else\n envBrdf = envGGXBrdfApproximation(surfaceSpecular, surfaceRoughness, NdotV, 0.0);\n #endif\n#endif\n\n// TODO: lookup different roughness levels\n#if defined(USE_AMBIENT_SSR)\n vec4 ssr = texture2D(u_ssrTraceTexture, gl_FragCoord.xy / u_size);\n envLookup = (1.0 - ssr.w) * envLookup + ssr.w * ssr.rgb;\n#endif\n\n vec3 specularContribution = envBrdf * envLookup;\n\n#if defined(USE_STATIC_AMBIENT_DIRECTIONAL_OCCLUSION)\n specularContribution *= getHBasisOcclusion(worldToLocal * reflection, hbasis);\n#else\n specularContribution *= specularOcclusionFactor;\n#endif\n\n#if defined(USE_HIGHP_FLOAT)\n vec3 diffuseContribution = diffuseWeight * prefilteredDiffuse;\n#else\n // NOTE: due to precision problem when adding prefilteredDiffuse and envLookup we disable it for now\n vec3 diffuseContribution = surfaceDiffuse;\n#endif\n\n#if defined(USE_CLEARCOAT)\n // F_Schlick\n #if (defined(USE_NORMAL_MAP) && defined(USE_VERTEX_NORMAL))\n float NdotVClearcoat = clamp(dot(normalClearcoat, view), 0.0, 1.0);\n float F = fresnelSchlickSimple(0.04, NdotVClearcoat);\n #else\n float F = fresnelSchlickSimple(0.04, NdotV);\n #endif\n\n F *= surfaceClearcoat;\n\n float layerAttenuation = (1.0 - F);\n\n diffuseContribution *= layerAttenuation;\n specularContribution *= layerAttenuation;\n specularContribution += envLookup2 * F;\n#endif\n\n vec3 refractionContribution = vec3(0.0);\n\n#if defined(USE_ENVIRONMENT_REFRACTION)\n #if defined(USE_ENVIRONMENT_REFRACTION_DISPERSION)\n refractionContribution.r += refractionColor.r * getRefractiveContribution(surfacePoint, adjustedNormal, view, surfaceSpecular, surfaceRoughness, u_environmentRefractionNormalTexture, u_environmentRefractionDepthTexture, u_environmentRefractionMatrix, u_environmentRefractionNearFar, 650.0).r;\n refractionContribution.g += refractionColor.g * getRefractiveContribution(surfacePoint, adjustedNormal, view, surfaceSpecular, surfaceRoughness, u_environmentRefractionNormalTexture, u_environmentRefractionDepthTexture, u_environmentRefractionMatrix, u_environmentRefractionNearFar, 510.0).g;\n refractionContribution.b += refractionColor.b * getRefractiveContribution(surfacePoint, adjustedNormal, view, surfaceSpecular, surfaceRoughness, u_environmentRefractionNormalTexture, u_environmentRefractionDepthTexture, u_environmentRefractionMatrix, u_environmentRefractionNearFar, 441.0).b;\n #else\n refractionContribution += refractionColor * getRefractiveContribution(surfacePoint, adjustedNormal, view, surfaceSpecular, surfaceRoughness, u_environmentRefractionNormalTexture, u_environmentRefractionDepthTexture, u_environmentRefractionMatrix, u_environmentRefractionNearFar, 0.0);\n #endif\n#endif\n\n return diffuseContribution + specularContribution + refractionContribution;\n}\n\n\n#else\nvec3 getAmbientContribution(vec3 irradiance, vec3 surfaceDiffuse) {\n vec3 prefilteredDiffuse = irradiance;\n #if !defined(USE_IRRADIANCE_INCLUDING_DIFFUSE)\n prefilteredDiffuse *= surfaceDiffuse;\n #endif\n\n return prefilteredDiffuse;\n}\n#endif\n\n\nfloat transparencyWeight(float z, float a) {\n return pow(a + 0.01, 4.0) + max(1e-2, min(3.0 * 1e3, 100.0 / (1e-5 + pow(abs(z) / 10.0, 3.0) + pow(abs(z) / 200.0, 6.0))));\n}\n\nvoid main() {\n vec3 color = vec3(0.0);\n\n#if (defined(USE_CUBE_IBR) || defined(USE_LATLONG_IBR))\n #if defined(USE_DEFERRED_TEXTURING)\n #if defined(USE_CUBE_IBR)\n float idx = textureCube(u_materialIdTexture, v_direction).r;\n vec4 uvPacked = textureCube(u_uvTexture, v_direction);\n #elif\n float idx = texture2D(u_materialIdTexture, worldToLatLong(v_direction)).r;\n vec4 uvPacked = texture2D(u_uvTexture, worldToLatLong(v_direction));\n #endif\n vec2 uv = vec2(unpackFloat2(uvPacked.xy), unpackFloat2(uvPacked.zw));\n float spriteT = floor(256.0 * min(idx, 0.9999));\n vec2 idx = vec2(floor(mod(spriteT, 16.0)), floor(spriteT / 16.0));\n vec2 texCoord0 = uv / vec2(16.0);\n texCoord0 += vec2(idx.x / 16.0, (16.0 - 1.0 - idx.y) / 16.0);\n #else\n vec3 texCoord0 = v_direction;\n #endif\n#elif (defined(LIT) || defined(LIT_PARTICLE))\n vec2 texCoord0 = v_texCoord0;\n#elif defined(LIT_POINT_SPRITE)\n vec2 texCoord0 = gl_PointCoord;\n#endif\n\n#if defined(USE_2ND_UV_FOR_BAKED_MAPS)\n vec2 bakedTc = v_texCoord1;\n#else\n SAMPLER_COORD_TYPE bakedTc = texCoord0;\n#endif\n\n#if (defined(USE_OIT_TRANSPARENCY) || defined(USE_TRANSPARENCY) || defined(USE_REFRACTION))\n float opacity = float(OPACITY_DEFAULT);\n#endif\n vec3 diffuse = vec3(DIFFUSE_DEFAULT);\n#if defined(USE_DIFFUSE_TEXTURE_WITH_ALPHA)\n vec4 diffuseAlpha = vec4(0.0);\n #if defined(USE_GAMMA_SPACE)\n diffuseAlpha = toLinear(SAMPLER_LOOKUP(u_diffuseTexture, SAMPLER_TEXCOORD));\n #else\n diffuseAlpha = SAMPLER_LOOKUP(u_diffuseTexture, SAMPLER_TEXCOORD);\n #endif\n diffuse = diffuseAlpha.rgb;\n opacity = diffuseAlpha.a;\n#elif defined(USE_DIFFUSE_TEXTURE)\n #if defined(USE_RGBM_DIFFUSE_INPUT)\n diffuse = toLinearColor(RGBMDecode(SAMPLER_LOOKUP(u_diffuseTexture, SAMPLER_TEXCOORD), u_rgbmDiffuseMaxRange));\n #else\n #if defined(USE_GAMMA_SPACE)\n diffuse = toLinear(SAMPLER_LOOKUP(u_diffuseTexture, SAMPLER_TEXCOORD)).rgb;\n #else\n diffuse = SAMPLER_LOOKUP(u_diffuseTexture, SAMPLER_TEXCOORD).rgb;\n #endif\n #endif\n#endif\n#if defined(USE_DIFFUSE_COLOR)\n #if defined(USE_GAMMA_SPACE)\n diffuse *= toLinearColor(u_diffuseColor);\n #else\n diffuse *= u_diffuseColor;\n #endif\n#endif\n\n#if defined(USE_DIFFUSE_SPRITE_ANIMATION)\n vec4 diffuseSpriteAnim = texture2D(u_diffuseSpriteAnimationTexture, v_texCoord2);\n #if defined(USE_GAMMA_SPACE)\n diffuseSpriteAnim = toLinear(diffuseSpriteAnim);\n #endif\n diffuse = mix(diffuse, diffuseSpriteAnim.rgb, diffuseSpriteAnim.a * u_diffuseSpriteAnimationAlpha);\n#endif\n\n#if defined(USE_HDR)\n #if defined(USE_HIGH_LUMINANCE_DIFFUSE_BOOST)\n color += diffuse * step(u_highLuminanceDiffuseBoostParams.x, calcLuminance(diffuse)) * u_highLuminanceDiffuseBoostParams.y;\n #endif\n#endif\n\n#if (defined(USE_OIT_TRANSPARENCY) || defined(USE_TRANSPARENCY))\n #if defined(USE_OPACITY_TEXTURE)\n opacity = SAMPLER_LOOKUP(u_opacityTexture, SAMPLER_TEXCOORD).r;\n #endif\n #if defined(USE_OPACITY_VALUE)\n opacity *= u_opacity;\n #endif\n#endif\n\n vec3 normal = vec3(1.0);\n#if defined(USE_VERTEX_NORMAL)\n normal = normalize(v_normal);\n#else\n #if defined(LIT_POINT_SPRITE)\n normal.xy = (texCoord0 * vec2(2.0, -2.0) + vec2(-1.0, 1.0)) * 0.2;\n float mag = dot(normal.xy, normal.xy);\n if(mag > 0.04) discard; // kill pixels outside circle\n #if defined(USE_TRANSPARENCY)\n opacity = 1.0 - mag;\n #endif\n normal.z = sqrt(1.0 - mag);\n #else\n // calculate normal by computing the x and y derivatives in the plane of the triangle\n // meaning their cross product is the normal of the triangle plane\n #if defined(USE_RIGHT_HANDED_COORDINATE_SYSTEM)\n normal = normalize(cross(dFdx(v_position), dFdy(v_position)));\n #else\n normal = normalize(cross(dFdy(v_position), dFdx(v_position)));\n #endif\n #endif\n#endif\n\n#if defined(LIT_POINT_SPRITE)\n #if (defined(HAS_SHADOWED_LIGHTS))\n vec4 normalCS = u_projectionMatrix * vec4(normal, 1.0);\n vec3 fragmentPositionCS = normalCS.xyz / normalCS.w + v_positionCS;\n #endif\n normal = normalize(vec3(u_inverseViewMatrix * vec4(normal, 1.0)).xyz);\n vec3 fragmentPosition = v_radius * normal + v_position;\n#else\n vec3 fragmentPosition = v_position;\n #if (defined(HAS_SHADOWED_LIGHTS))\n vec3 fragmentPositionCS = v_positionCS;\n #endif\n#endif\n vec3 view = normalize(u_cameraLocation - fragmentPosition);\n\n float roughness = float(ROUGHNESS_DEFAULT);\n#if defined(USE_ROUGHNESS_TEXTURE)\n roughness = SAMPLER_LOOKUP(u_roughnessTexture, SAMPLER_TEXCOORD).r;\n#endif\n#if defined(USE_ROUGHNESS_VALUE)\n roughness *= u_roughness;\n#endif\n\nfloat wetness = 1.0;\n#if defined(USE_WETNESS_TEXTURE)\n wetness = SAMPLER_LOOKUP(u_wetnessTexture, SAMPLER_BAKED_TEXCOORD).r;\n#endif\n#if defined(USE_WETNESS_VALUE)\n wetness *= u_wetness;\n#endif\n\nvec3 refractionColor = vec3(0.0);\n#if (defined(USE_ENVIRONMENT_REFRACTION) || defined(USE_REFRACTION))\n refractionColor = diffuse;\n diffuse *= roughness;\n#endif\n\n // TODO: parallax occlusion mapping\n mat3 worldToLocal = mat3(0.0);\n vec3 tangent = vec3(0.0);\n vec3 bitangent = vec3(0.0);\n\n#if (defined(USE_NORMAL_MAP) || defined(USE_STATIC_AMBIENT_DIRECTIONAL_OCCLUSION) || defined(USE_ANISOTROPIC_BRDF) || defined(USE_BENT_NORMAL_MAP))\n // Build tangent space\n #if defined(USE_VERTEX_TANGENT_SPACE)\n tangent = normalize(v_tangent);\n bitangent = normalize(v_bitangent);\n // Extract normal and project it in world space\n mat3 localToWorld = mat3(tangent, bitangent, normal);\n #else\n mat3 localToWorld = cotangentFrame(normal, fragmentPosition, texCoord0);\n tangent = localToWorld[0];\n bitangent = localToWorld[1];\n #endif\n worldToLocal = transpose(localToWorld);\n#endif\n\n#if (defined(USE_NORMAL_MAP) || defined(USE_STATIC_AMBIENT_DIRECTIONAL_OCCLUSION))\n #if defined(USE_NORMAL_MAP)\n vec3 normalFromTex = vec3(1.0);\n #if defined(USE_NORMAL_MAP_WITH_ROUGHNESS)\n vec4 normalRoughnessFromTex = SAMPLER_LOOKUP(u_normalTexture, SAMPLER_TEXCOORD);\n #if defined(USE_NORMAL_MAP_RABG)\n normalFromTex.xy = normalRoughnessFromTex.ag * 2.0 - 1.0;\n normalFromTex.z = sqrt(1.0 - dot(normalFromTex.xy, normalFromTex.xy));\n roughness = normalRoughnessFromTex.r;\n //normalFromTex = vec3(0.0, 0.0, 1.0);\n #else\n normalFromTex = normalRoughnessFromTex.xyz * 2.0 - 1.0;\n roughness = normalRoughnessFromTex.w;\n #endif\n\n #else\n #if defined(USE_RGBM_NORMAL_INPUT)\n normalFromTex = toLinearColor(RGBMDecode(SAMPLER_LOOKUP(u_normalTexture, SAMPLER_TEXCOORD), u_rgbmNormalMaxRange)) * 2.0 - 1.0;\n #else\n normalFromTex = SAMPLER_LOOKUP(u_normalTexture, SAMPLER_TEXCOORD).xyz * 2.0 - 1.0;\n #endif\n #endif\n normal = localToWorld * mix(vec3(0.0, 0.0, 1.0), normalFromTex, u_normalMapStrength);\n #endif\n\n#endif\n\n#if defined(USE_TWO_SIDED_MATERIAL)\n normal *= sign(dot(normal, view));\n#endif\n\nvec3 specular = vec3(SPECULAR_DEFAULT);\nfloat anisotropy = 1.0;\n#if defined(USE_SPECULAR_TEXTURE)\n #if defined(USE_REFLECTANCE_WITH_ANISOTROPY)\n vec4 specularAnisotropy = SAMPLER_LOOKUP(u_specularTexture, SAMPLER_TEXCOORD);\n anisotropy = specularAnisotropy.a;\n specular = specularAnisotropy.rgb;\n #elif defined(USE_REFLECTANCE_WITH_ROUGHNESS)\n vec4 specularRoughness = SAMPLER_LOOKUP(u_specularTexture, SAMPLER_TEXCOORD);\n roughness = specularRoughness.a;\n specular = specularRoughness.rgb;\n #else\n specular = SAMPLER_LOOKUP(u_specularTexture, SAMPLER_TEXCOORD).rgb;\n #endif\n\n #if defined(USE_GAMMA_SPACE_SPECULAR)\n specular = toLinearColor(specular);\n #endif\n#endif\n#if defined(USE_SPECULAR_COLOR)\n #if defined(USE_GAMMA_SPACE_SPECULAR)\n specular *= toLinearColor(u_specularColor);\n #else\n specular *= u_specularColor;\n #endif\n#endif\n\n#if defined(USE_METALLIC_WORKFLOW)\n float metallic = 1.0;\n#endif\n\n#if defined(USE_METALLIC_TEXTURE)\n #if defined(USE_REFLECTANCE_WITH_ANISOTROPY)\n metallicAnisotropy = SAMPLER_LOOKUP(u_metallicTexture, SAMPLER_TEXCOORD).xy;\n metallic = metallicAnisotropy.x;\n anisotropy = metallicAnisotropy.y;\n #elif defined(USE_REFLECTANCE_WITH_ROUGHNESS)\n vec4 metallicRoughness = SAMPLER_LOOKUP(u_metallicTexture, SAMPLER_TEXCOORD).yz;\n roughness = metallicRoughness.x;\n metallic = metallicRoughness.y;\n #else\n metallic = SAMPLER_LOOKUP(u_metallicTexture, SAMPLER_TEXCOORD).x;\n #endif\n#endif\n\n#if defined(USE_METALLIC_VALUE)\n metallic *= u_metallicValue;\n#endif\n\n#if defined(USE_GAMMA_SPACE_ROUGHNESS)\n roughness = pow(roughness, 2.2);\n#endif\n\n#if defined(USE_GLOSSINESS_WORKFLOW)\n roughness = 1.0 - roughness;\n#elif defined(USE_SPECULAR_POWER_WORKFLOW)\n roughness = sqrt(2.0 / (roughness + 1.0));\n#endif\n\n float NdotV = clamp(dot(normal, view), 0.0, 1.0);\n\n#if defined(USE_ANISOTROPY_TEXTURE)\n anisotropy = SAMPLER_LOOKUP(u_anisotropyTexture, SAMPLER_TEXCOORD).r;\n#endif\n#if defined(USE_ANISOTROPY_VALUE)\n anisotropy *= u_anisotropy;\n#endif\n\n float clearcoat = 1.0;\n#if defined(USE_CLEARCOAT_TEXTURE)\n clearcoat = SAMPLER_LOOKUP(u_clearcoatTexture, SAMPLER_TEXCOORD).x;\n#endif\n#if defined(USE_CLEARCOAT_VALUE)\n clearcoat *= u_clearcoatValue;\n#endif\n\n float clearcoatRoughness = 0.0;\n#if defined(USE_CLEARCOAT)\n clearcoatRoughness = u_clearcoatRoughness;\n#endif\n\n vec3 irradiance = vec3(0.0);\n#if defined(USE_AMBIENT_DIFFUSE_TEXTURE)\n #if defined(USE_RGBM_IRRADIANCE_INPUT)\n #if defined(USE_IRRADIANCE_BLEND)\n irradiance = toLinearColor(RGBMDecode(SAMPLER_LOOKUP(u_irradianceTexture, SAMPLER_BAKED_TEXCOORD), u_rgbmIrradianceMaxRange)) * (1.0 - u_irradianceTextureBlendFactor) +\n toLinearColor(RGBMDecode(SAMPLER_LOOKUP(u_irradianceTextureBlendDst, SAMPLER_BAKED_TEXCOORD), u_rgbmIrradianceMaxRangeBlendDst)) * u_irradianceTextureBlendFactor;\n #else\n irradiance = toLinearColor(RGBMDecode(SAMPLER_LOOKUP(u_irradianceTexture, SAMPLER_BAKED_TEXCOORD), u_rgbmIrradianceMaxRange));\n #endif\n #else\n #if defined(USE_GAMMA_SPACE_IRRADIANCE)\n #if defined(USE_IRRADIANCE_BLEND)\n irradiance = toLinearColor(SAMPLER_LOOKUP(u_irradianceTexture, SAMPLER_BAKED_TEXCOORD).rgb) * (1.0 - u_irradianceTextureBlendFactor) + toLinearColor(SAMPLER_LOOKUP(u_irradianceTextureBlendDst, SAMPLER_BAKED_TEXCOORD).rgb) * u_irradianceTextureBlendFactor;\n #else\n irradiance = toLinearColor(SAMPLER_LOOKUP(u_irradianceTexture, SAMPLER_BAKED_TEXCOORD).rgb);\n #endif\n #else\n #if defined(USE_IRRADIANCE_BLEND)\n irradiance = SAMPLER_LOOKUP(u_irradianceTexture, SAMPLER_BAKED_TEXCOORD).rgb * (1.0 - u_irradianceTextureBlendFactor) + SAMPLER_LOOKUP(u_irradianceTextureBlendDst, SAMPLER_BAKED_TEXCOORD).rgb * u_irradianceTextureBlendFactor;\n #else\n irradiance = SAMPLER_LOOKUP(u_irradianceTexture, SAMPLER_BAKED_TEXCOORD).rgb;\n #endif\n #endif\n #endif\n irradiance *= u_irradianceTextureBoost;\n#endif\n\n#if defined(USE_METALLIC_WORKFLOW)\n specular = mix(vec3(DIELECTRIC_REFLECTANCE), diffuse, metallic);\n diffuse *= (1.0 - metallic);\n#endif\n\n#if (defined(USE_WETNESS_TEXTURE) || defined(USE_WETNESS_VALUE))\n diffuse *= mix(1.0, 0.3, wetness);\n roughness *= mix(1.0, 0.0, wetness);\n specular = mix(specular, vec3(0.02), wetness*wetness);\n #if defined(USE_NORMAL_MAP)\n normal = mix(normal, v_normal, wetness*wetness);\n #endif\n#endif\n\n float f90 = fresnel90(specular);\n\n#if (defined(USE_OIT_TRANSPARENCY) || defined(USE_TRANSPARENCY) || defined(USE_REFRACTION))\n #if defined(USE_FRESNEL_OPACITY)\n opacity = min(1.0, opacity + fresnelSchlickSingle(specular.g, f90, NdotV));\n #endif\n #if defined(USE_UV_BASED_RADIAL_OPACITY)\n opacity *= clamp(5.0 - distance(vec2(0.5), v_originalTexCoord0), 0.0, 1.0);\n #endif\n float transmittance = 1.0 - opacity;\n #if defined(DISCARD_TRANSPARENT)\n if(transmittance > 0.0) {\n discard;\n }\n #elif defined(DISCARD_OPAQUE)\n if(transmittance == 0.0) {\n discard;\n }\n #endif\n#endif\n\n // TODO: anisotropic brdf, bssdf, btf\n // TODO: layered material (4 layers with one blend texture)\n\n // TODO: shadows for point and spot lights\n // TODO: rectangular lights, tube lights, sphere lights\n\n // TODO: roughness pre-filtering\n // TODO: volumetric light scattering\n\nvec3 emissive = vec3(1.0);\n#if defined(USE_EMISSIVE_TEXTURE)\n #if defined(USE_RGBM_EMISSIVE_INPUT)\n emissive = toLinearColor(RGBMDecode(SAMPLER_LOOKUP(u_emissiveTexture, SAMPLER_TEXCOORD)), u_rgbmEmissiveMaxRange);\n #else\n vec4 emissiveData = SAMPLER_LOOKUP(u_emissiveTexture, SAMPLER_TEXCOORD);\n #if defined(USE_GAMMA_SPACE_EMISSIVE)\n emissive = toLinearColor(emissiveData.rgb) * emissiveData.a;\n #else\n emissive = emissiveData.rgb * emissiveData.a;\n #endif\n #endif\n#endif\n#if defined(USE_EMISSIVE_COLOR)\n #if defined(USE_GAMMA_SPACE_EMISSIVE)\n emissive *= toLinearColor(u_emissiveColor) * u_emissiveStrength;\n #else\n emissive *= u_emissiveColor;\n #endif\n#endif\n\n#if (defined(USE_EMISSIVE_TEXTURE) || defined(USE_EMISSIVE_COLOR))\n emissive *= u_emissiveStrength;\n color += emissive;\n#endif\n\n#if defined(USE_HIGHLIGHT_COLOR)\n vec2 h2p = u_highlightPosT.xy - v_texCoord0.xy;\n float dist2hp = dot(h2p, h2p);\n //float wave = 2.0 - smoothstep(u_highlightPosT.z - 0.2, u_highlightPosT.z, dist2hp) + smoothstep(u_highlightPosT.z - 0.1, u_highlightPosT.z + 0.1, dist2hp);\n float wave = smoothstep(min(u_highlightPosT.z - 0.4, 0.0), u_highlightPosT.z, dist2hp) * smoothstep(u_highlightPosT.z + 0.4, u_highlightPosT.z, dist2hp) * (1.0 - (1.0 - u_highlightPosT.z) * (1.0 - u_highlightPosT.z));\n //float wave = 1.0 - smoothstep(u_highlightPosT.z, u_highlightPosT.z - 0.5, dist2hp);\n //color += u_highlightColor * diffuse.rgb * wave;\n color = mix(color, u_highlightColor.xyz, wave * u_highlightColor.w);\n#endif\n\nvec3 reflection = -reflect(view, normal);\n\n#if DIR_LIGHT_COUNT > 0\n for(int i = 0; i < DIR_LIGHT_COUNT; ++i) {\n color += getDirLightContribution(normalize(-u_directionalLightDirection[i]), u_directionalLightColor[i], u_directionalLightRadius[i],\n diffuse, specular, roughness, anisotropy, normal, view, reflection, 1.0, tangent, bitangent, NdotV, f90, clearcoat, clearcoatRoughness);\n }\n#endif\n\n#if SHADOWED_DIR_LIGHT_COUNT > 0\n float vis = 1.0;\n for(int i = 0; i < SHADOWED_DIR_LIGHT_COUNT; ++i) {\n vis = calcShadowOcclusion(u_shadowedDirectionalLightShadowMap[i], u_shadowedDirectionalLightShadowMapSize[i],\n u_shadowedDirectionalLightShadowMapViewProjectionMatrix[i], fragmentPosition, fragmentPositionCS.z);\n\n color += getDirLightContribution(normalize(-u_shadowedDirectionalLightDirection[i]), u_shadowedDirectionalLightColor[i], u_shadowedDirectionalLightRadius[i],\n diffuse, specular, roughness, anisotropy, normal, view, reflection, vis, tangent, bitangent, NdotV, f90, clearcoat, clearcoatRoughness);\n }\n#endif\n\n#if POINT_LIGHT_COUNT > 0\n for(int i = 0; i < POINT_LIGHT_COUNT; ++i) {\n color += getPointLightContribution(u_pointLightPosition[i], u_pointLightFalloff[i], u_pointLightColor[i], fragmentPosition, normal, diffuse, specular, roughness, anisotropy, view, tangent, bitangent, NdotV, f90, clearcoat, clearcoatRoughness);\n }\n#endif\n\n#if SPOT_LIGHT_COUNT > 0\n for(int i = 0; i < SPOT_LIGHT_COUNT; ++i) {\n color += getSpotLightContribution(u_spotLightPosition[i], -u_spotLightDirection[i], u_spotLightAngle[i], u_spotLightFalloff[i], u_spotLightExponent[i], u_spotLightColor[i], v_spotLightProjPosition[i], u_spotLightGoboTexture[i], u_spotLightHasGobo[i], fragmentPosition, normal, diffuse, specular, roughness, anisotropy, view, tangent, bitangent, NdotV, f90, clearcoat, clearcoatRoughness);\n }\n\n#endif\n\n#if SPHERE_LIGHT_COUNT > 0\n for(int i = 0; i < SPHERE_LIGHT_COUNT; ++i) {\n color += getSphereLightContribution(u_spherelightPosition[i], u_sphereLightRadius[i], u_sphereLightFalloff[i], u_sphereLightColor[i], fragmentPosition, normal, diffuse, specular, roughness, anisotropy, view, tangent, bitangent, NdotV, f90, clearcoat, clearcoatRoughness);\n }\n#endif\n\n#if AREA_LIGHT_COUNT > 0\n for(int i = 0; i < AREA_LIGHT_COUNT; ++i) {\n color += getAreaLightContribution(u_areaLightPosition[i], u_areaLightNormal[i], u_areaLightUp[i], u_areaLightRight[i], u_areaLightSize[i].x, u_areaLightSize[i].y, u_areaLightColor[i], fragmentPosition, normal, diffuse, specular, roughness, anisotropy, view, tangent, bitangent, NdotV, f90, clearcoat, clearcoatRoughness);\n }\n#endif\n\n float occlusionFactor = 1.0;\n float specularOcclusionFactor = 1.0;\n#if defined(USE_AMBIENT_IBL)\n // Ambient Occlusion only applied to indirect light\n\n vec4 hbasis = vec4(0.0);\n #if defined(USE_STATIC_AMBIENT_OCCLUSION)\n #if defined(USE_BENT_NORMAL_MAP)\n normal = localToWorld * (SAMPLER_LOOKUP(u_bentNormalTexture, SAMPLER_BAKED_TEXCOORD).xyz * 2.0 - 1.0);\n NdotV = clamp(dot(normal, view), 0.0, 1.0);\n #endif\n\n #if defined(USE_STATIC_AMBIENT_DIRECTIONAL_OCCLUSION)\n hbasis = SAMPLER_LOOKUP(u_aoTextureStatic, SAMPLER_BAKED_TEXCOORD);\n occlusionFactor = getHBasisOcclusion(worldToLocal * normal, hbasis);\n //occlusionFactor = hbasis.r;\n #else\n #if defined(USE_VERTEX_AO)\n occlusionFactor = v_ao.g;\n #else\n occlusionFactor = SAMPLER_LOOKUP(u_aoTextureStatic, SAMPLER_BAKED_TEXCOORD).r;\n #endif\n // NOTE: HACK\n #if defined(AO_BLEND_SOFT)\n occlusionFactor = occlusionFactor * 0.7 + 0.1;\n #elif defined(AO_BLEND_STRONG)\n occlusionFactor *= occlusionFactor;\n #endif\n #endif\n #elif defined(USE_DYNAMIC_AMBIENT_OCCLUSION)\n // TODO: use SSDO for better results (dependent on bent normal and light direction)\n vec2 pix = gl_FragCoord.xy / u_size;\n occlusionFactor = texture2D(u_aoTextureDynamic, pix).x;\n #endif\n\n specularOcclusionFactor = clamp(pow(NdotV + occlusionFactor, exp2(-16.0 * roughness - 1.0)) - 1.0 + occlusionFactor, 0.0, 1.0);\n#endif\n\n#if defined(USE_AMBIENT_COLOR)\n color += occlusionFactor * u_ambientColor * diffuse;\n#endif\n\n// TODO: add proper separate directional shadow for ibl\n#if SHADOWED_DIR_LIGHT_COUNT == 0\n float vis = 1.0;\n#elif defined(USE_IBL_DIRECTIONAL_SHADOWING)\n vis += 0.5;\n vis = min(vis, 1.0);\n#else\n vis = 1.0;\n#endif\n\n#if defined(USE_AMBIENT_IBL)\n color += vis * getAmbientContribution(irradiance, fragmentPosition, normal, specular, diffuse, roughness, anisotropy, view, reflection, occlusionFactor, specularOcclusionFactor, hbasis, worldToLocal, tangent, bitangent, NdotV, f90, refractionColor, clearcoat, clearcoatRoughness);\n#else\n color += vis * getAmbientContribution(irradiance, diffuse);\n#endif\n\n#if defined(USE_Z_DEPTH_FOG)\n float depthFactor = -v_positionCS.z / 2.0;\n //depthFactor *= depthFactor;\n color = mix(color, vec3(0.0), clamp(depthFactor, 0.0, 1.0));\n //color = vec3(depthFactor);\n#endif\n\n// TODO: hack, needs different define.\n#if defined(USE_SURFACE_VIGNETTING)\n vec2 off = abs((v_texCoord0 - vec2(0.5)) * 2.0);\n color *= 1.0 - dot(off, off);\n#endif\n\n\n#if !defined(USE_HDR)\n vec2 dir = (gl_FragCoord.xy / u_size) - vec2(0.5, 0.5);\n float dist = dot(dir, dir);\n #if defined(USE_COLOR_GRADIENT)\n color = linearGradient(color);\n #endif\n color *= getCalibratedLuminanceFactor(dir) * getOpticalVignetting(dist);\n color = toneMap(color);\n#endif\n\n#if defined(USE_OIT_TRANSPARENCY)\n color *= transmittance;\n float weight = transparencyWeight(fragmentPosition.z, transmittance);\n gl_FragColor[0] = vec4(color * weight, transmittance);\n gl_FragColor[1].r = transmittance * weight;\n#elif defined(USE_TRANSPARENCY)\n #if defined(USE_REFRACTION)\n vec3 refractDir = refract(-view, normal, 1.0 / getRefractiveIndexFromReflectanceAtNormalIncidence(specular.x));\n vec3 refractHitPos = fragmentPosition + refractDir * 0.01;\n vec4 refractHitPosPS = (u_projectionMatrix * u_viewMatrix * vec4(refractHitPos, 1.0));\n refractHitPosPS.xy /= refractHitPosPS.w;\n refractHitPosPS.xy += 1.0;\n refractHitPosPS.xy *= 0.5;\n\n /*vec2 offset = vec2(0.0);\n #if defined(USE_NORMAL_MAP)\n offset = 15.0 * normalFromTex.xy;\n #endif\n */\n refractHitPosPS.x = (refractHitPosPS.x + max(u_rightEye, 0.0)) * (0.5 + 0.5 * (1.0 - clamp(u_rightEye + 1.0, 0.0, 1.0)));\n\n #if defined(USE_HDR)\n color += refractionColor * texture2D(u_refractionTexture, refractHitPosPS.xy).rgb * transmittance;\n #else\n color = toneMap(toLinearColor(color) + refractionColor * toLinearColor(texture2D(u_refractionTexture, refractHitPosPS.xy).rgb) * transmittance);\n #endif\n gl_FragColor = vec4(color, 1.0); // vec4(1.0, 0.0, 1.0, 1.0);\n #else\n //opacity *= 1.0 - step(0.01, error);\n gl_FragColor = vec4(color, opacity); // vec4(1.0, 0.0, 1.0, 1.0);\n #endif\n#elif defined(WRITE_DEPTH)\n gl_FragColor = vec4(color, fragmentPosition.z);\n#else\n gl_FragColor = vec4(color, 1.0);\n#endif\n\n\n}\n\n// ----------------------------------------------------------\n#elif defined(UNLIT)\n\n#if defined(USE_UNLIT_TEXTURE)\nuniform sampler2D u_baseTexture;\n#endif\n\n#if defined(USE_FRESNEL_OUTLINE)\nvarying vec3 v_normal;\nvarying vec3 v_position;\nuniform vec3 u_cameraLocation;\nuniform float u_fresnelOutlineStrength;\n#endif\n\n#if (defined(USE_UNLIT_TEXTURE) || defined(USE_UNLIT_GRADIENT))\nvarying vec2 v_texCoord0;\n#endif\n\n#if defined(USE_SKYBOX)\nvarying vec3 v_direction;\n\n #if defined(USE_CUBEMAP_FORMAT)\n uniform samplerCube u_skyTexture;\n #elif defined(USE_STEREOSCOPIC_FORMAT)\n // NOTE: STEREOSCOPIC_CUBEMAP and STEREOSCOPIC_LATLONG mean two images wrapped\n // in VrParameter\n #if defined(USE_STEREOSCOPIC_CUBEMAP)\n uniform samplerCube u_skyTexture;\n #elif defined(USE_STEREOSCOPIC_FISHEYE_LR)\n // fov, magnification, aspect\n uniform vec3 u_fisheyeParams;\n uniform sampler2D u_skyTexture;\n #else\n uniform sampler2D u_skyTexture;\n #endif\n #else\n uniform sampler2D u_skyTexture;\n #endif\n\n#elif defined(USE_SKYBOX_SH)\nvarying vec3 v_direction;\nuniform vec3 u_shCoeffs[9];\n#endif\n\n\n#if defined(USE_UNLIT_GRADIENT)\nuniform vec4 u_unlitGradientColorA;\nuniform vec4 u_unlitGradientColorB;\nuniform vec2 u_unlitGradientDirection;\n\nvec4 mixGradient(vec4 a, vec4 b, vec2 direction, vec2 texCoord) {\n return mix(a, b, dot(texCoord, direction));\n}\n#endif\n\n\n#if defined(USE_UNLIT_COLOR)\nuniform vec4 u_color;\n#endif\n\n#if defined(USE_UNLIT_GAIN)\nuniform vec3 u_gain;\n#endif\n\nvoid main() {\n vec4 result = vec4(1.0);\n\n#if defined(USE_UNLIT_GRADIENT)\n result = mixGradient(u_unlitGradientColorA, u_unlitGradientColorB, u_unlitGradientDirection, v_texCoord0);\n#endif\n\n#if defined(USE_UNLIT_TEXTURE)\n #if defined(FLIP_Y)\n vec2 texCoord0 = vec2(v_texCoord0.x, 1.0 - v_texCoord0.y);\n #else\n vec2 texCoord0 = v_texCoord0;\n #endif\n #if defined(USE_STEREOSCOPIC_FORMAT)\n float rightEye = max(u_rightEye, 0.0);\n vec2 coords = texCoord0;\n #if defined(USE_STEREOSCOPIC_FLAT_LR)\n coords.x *= 0.5;\n coords.x += 0.5 * rightEye;\n #elif defined(USE_STEREOSCOPIC_FLAT_TB)\n coords.y *= 0.5;\n coords.y += 0.5 * rightEye;\n #endif\n #if defined(CONVERT_TO_BGRA)\n result *= texture2D(u_baseTexture, coords).bgra;\n #else\n result *= texture2D(u_baseTexture, coords);\n #endif\n #else\n #if defined(CONVERT_TO_BGRA)\n result *= texture2D(u_baseTexture, texCoord0).bgra;\n #else\n // set mipmap bias from define\n\n float bias = float(MIPMAP_BIAS);\n #if defined(USE_RGSS)\n // per pixel partial derivatives\n vec2 dx = dFdx(texCoord0);\n vec2 dy = dFdy(texCoord0);\n // rotated grid uv offsets\n vec2 uvOffsets = vec2(0.125, 0.375);\n vec2 offsetUV = vec2(0.0, 0.0);\n // supersampled using 2x2 rotated grid\n vec4 col = vec4(0.0);\n offsetUV = texCoord0 + uvOffsets.x * dx + uvOffsets.y * dy;\n col += texture2D(u_baseTexture, offsetUV, bias);\n offsetUV = texCoord0 - uvOffsets.x * dx - uvOffsets.y * dy;\n col += texture2D(u_baseTexture, offsetUV, bias);\n offsetUV = texCoord0 + uvOffsets.y * dx - uvOffsets.x * dy;\n col += texture2D(u_baseTexture, offsetUV, bias);\n offsetUV = texCoord0 - uvOffsets.y * dx + uvOffsets.x * dy;\n col += texture2D(u_baseTexture, offsetUV, bias);\n col *= 0.25;\n result *= col;\n #else\n result *= texture2D(u_baseTexture, texCoord0, bias);\n #endif\n\n #endif\n #endif\n #if defined(USE_GAMMA_SPACE)\n result = toLinear(result);\n #endif\n //result.xyz += vec3(1.0,0.0,0.0);\n#endif\n\n#if defined(USE_SKYBOX)\n #if defined(USE_STEREOSCOPIC_FORMAT)\n float rightEye = max(u_rightEye, 0.0);\n #if defined(USE_STEREOSCOPIC_180_LR_SPHERICAL)\n vec3 direction = vec3(v_direction.x, -v_direction.y, -v_direction.z);\n #if defined(FLIPPED_LATLONG_Y)\n direction.y = -direction.y;\n #endif\n vec2 sphereDirection = direction.xy / (2. * sqrt( pow( direction.x, 2. ) + pow( direction.y, 2. ) + pow( direction.z + 1., 2. ))) + .5;\n #if !defined(USE_STEREOSCOPIC_PRE_SEPARATED)\n sphereDirection.x *= 0.5;\n sphereDirection.x += 0.5 * rightEye;\n #endif\n #if defined(FLIP_Y)\n sphereDirection.y = 1.0 - sphereDirection.y;\n #endif\n #if defined(CONVERT_TO_BGRA)\n result = texture2D(u_skyTexture, sphereDirection).bgra;\n #else\n result = texture2D(u_skyTexture, sphereDirection);\n #endif\n #elif defined(USE_STEREOSCOPIC_360_LR)\n vec2 coords = worldToLatLong(v_direction);\n #if !defined(USE_STEREOSCOPIC_PRE_SEPARATED)\n coords.x *= 0.5;\n coords.x += 0.5 * rightEye;\n #endif\n #if defined(FLIP_Y)\n coords.y = 1.0 - coords.y;\n #endif\n #if defined(CONVERT_TO_BGRA)\n result = texture2D(u_skyTexture, coords).bgra;\n #else\n result = texture2D(u_skyTexture, coords);\n #endif\n #elif defined(USE_STEREOSCOPIC_FISHEYE_LR)\n vec3 direction = v_direction;\n #if defined(FLIP_Y)\n direction.y = -direction.y;\n #endif\n float theta = atan(-direction.y, direction.x);\n float phi = atan(sqrt(direction.x * direction.x + direction.y * direction.y), -direction.z);\n // 150, 1.8, 16/9\n float radius = u_fisheyeParams.y * phi / u_fisheyeParams.x;\n vec2 coords = vec2(0.5 + radius / u_fisheyeParams.z * cos(theta), 0.5 + radius * sin(theta));\n float attenuation = step(0.0, coords.x) * step(0.0, coords.y) * (1.0 - step(1.0, coords.x)) * (1.0 - step(1.0, coords.y));\n coords.x *= 0.5;\n coords.x += 0.5 * rightEye;\n #if defined(CONVERT_TO_BGRA)\n result = attenuation * texture2D(u_skyTexture, coords).bgra;\n #else\n result = attenuation * texture2D(u_skyTexture, coords);\n #endif\n #elif defined(USE_STEREOSCOPIC_180_TB_SPHERICAL)\n vec3 direction = vec3(v_direction.x, -v_direction.y, -v_direction.z);\n #if defined(FLIPPED_LATLONG_Y)\n direction.y = -direction.y;\n #endif\n vec2 sphereDirection = direction.xy / (2. * sqrt( pow( direction.x, 2. ) + pow( direction.y, 2. ) + pow( direction.z + 1., 2. ))) + .5;\n #if !defined(USE_STEREOSCOPIC_PRE_SEPARATED)\n sphereDirection.y *= 0.5;\n sphereDirection.y += 0.5 * rightEye;\n #endif\n #if defined(FLIP_Y)\n sphereDirection.y = 1.0 - sphereDirection.y;\n #endif\n #if defined(CONVERT_TO_BGRA)\n result = texture2D(u_skyTexture, sphereDirection).bgra;\n #else\n result = texture2D(u_skyTexture, sphereDirection);\n #endif\n #elif defined(USE_STEREOSCOPIC_360_TB)\n vec2 coords = worldToLatLong(v_direction);\n #if !defined(USE_STEREOSCOPIC_PRE_SEPARATED)\n coords.y *= 0.5;\n coords.y += 0.5 * rightEye;\n #endif\n #if defined(FLIP_Y)\n coords.y = 1.0 - coords.y;\n #endif\n #if defined(CONVERT_TO_BGRA)\n result = texture2D(u_skyTexture, coords).bgra;\n #else\n result = texture2D(u_skyTexture, coords);\n #endif\n #elif defined(USE_STEREOSCOPIC_180_LR)\n vec3 direction = vec3(v_direction.z, v_direction.y, v_direction.x * -1.0000001);\n vec2 coords = worldToLatLong(direction);\n float edge = 1.0 - step(0.5, coords.x);\n #if defined(USE_STEREOSCOPIC_PRE_SEPARATED)\n coords.x *= 2.0;\n #else\n coords.x += 0.5 * rightEye;\n #endif\n #if defined(FLIP_Y)\n coords.y = 1.0 - coords.y;\n #endif\n #if defined(CONVERT_TO_BGRA)\n result = texture2D(u_skyTexture, coords).bgra * edge;\n #else\n result = texture2D(u_skyTexture, coords) * edge;\n #endif\n #elif defined(USE_STEREOSCOPIC_180_TB)\n vec3 direction = vec3(v_direction.z, v_direction.y, v_direction.x * -1.0000001);\n vec2 coords = worldToLatLong(direction);\n float edge = 1.0 - step(0.5, coords.x);\n #if !defined(USE_STEREOSCOPIC_PRE_SEPARATED)\n coords.y *= 0.5;\n coords.y += 0.5 * rightEye;\n #endif\n coords.x *= 2.0;\n #if defined(FLIP_Y)\n coords.y = 1.0 - coords.y;\n #endif\n #if defined(CONVERT_TO_BGRA)\n result = texture2D(u_skyTexture, coords).bgra * edge;\n #else\n result = texture2D(u_skyTexture, coords) * edge;\n #endif\n #elif defined(USE_STEREOSCOPIC_CUBEMAP)\n #if defined(CONVERT_TO_BGRA)\n result = textureCube(u_skyTexture, v_direction).bgra;\n #else\n result = textureCube(u_skyTexture, v_direction);\n #endif\n #endif\n #else\n #if defined(CONVERT_TO_BGRA)\n result = textureEnv(u_skyTexture, v_direction).bgra;\n #else\n result = textureEnv(u_skyTexture, v_direction);\n #endif\n #endif\n\n #if defined(USE_LOGLUV_INPUT)\n result = vec4(logLuvDecode(toLinear(result)), 1.0);\n #elif defined(USE_RGBM_INPUT)\n result = vec4(toLinearColor(RGBMDecode(result, u_rgbmMaxRange)), 1.0);\n #elif defined(USE_GAMMA_SPACE)\n result = toLinear(result);\n #endif\n\n\n#elif defined(USE_SKYBOX_SH)\n result.rgb = shColorSample(u_shCoeffs, v_direction);\n#endif\n\n#if defined(USE_UNLIT_GAIN)\n result.rgb += u_gain;\n#endif\n\n#if defined(USE_UNLIT_COLOR)\n #if defined(USE_GAMMA_SPACE)\n result *= toLinear(u_color);\n #else\n result *= u_color;\n #endif\n#endif\n\n#if defined(USE_FRESNEL_OUTLINE)\n vec3 view = normalize(u_cameraLocation - v_position);\n vec3 normal = normalize(v_normal);\n float NdotV = clamp(dot(normal, view), 0.0, 1.0);\n result.a *= fresnelSchlickSimple(u_fresnelOutlineStrength, NdotV);\n#endif\n\n#if (defined(USE_SMOOTH_BORDER) && (defined(USE_UNLIT_TEXTURE) || defined(USE_UNLIT_GRADIENT)))\n vec2 borderSize = vec2(float(SMOOTH_STRENGTH)) / u_size;\n vec2 smoothFactor = smoothstep(vec2(0.0), borderSize, texCoord0) * (1.0 - smoothstep(vec2(1.0) - borderSize, vec2(1.0), texCoord0));\n result.a *= smoothFactor.x * smoothFactor.y;\n#endif\n\n#if defined(DISCARD_TRANSPARENT)\n // TODO: map to uniform\n if(result.a <= 0.1) {\n discard;\n }\n#endif\n#if !defined(USE_HDR)\n vec2 dir = (gl_FragCoord.xy / u_size) - vec2(0.5, 0.5);\n float dist = dot(dir, dir);\n #if defined(USE_COLOR_GRADIENT)\n result.rgb = linearGradient(result.rgb);\n #endif\n result.rgb *= getCalibratedLuminanceFactor(dir) * getOpticalVignetting(dist);\n result.rgb = toneMap(result.rgb);\n#endif\n gl_FragColor = result;\n}\n\n// ---------------------------------------------------\n#elif (defined(DEPTH_TEXTURE) || defined(SHADOW_MAP) || defined(VARIANCE_SHADOW_MAP) || defined(PARTICLE_DEPTH))\n\nvarying vec2 v_depth;\n\n#if defined(DISCARD_ALPHA)\nvarying vec2 v_texCoord0;\nuniform sampler2D u_diffuseTexture;\n#endif\n\nvoid main() {\n#if defined(DISCARD_ALPHA)\n float alpha = texture2D(u_diffuseTexture, v_texCoord0).a;\n if(alpha < ALPHA_THRESHOLD) {\n discard;\n }\n#endif\n\n float depth = v_depth.x / v_depth.y;\n\n#if (defined(DEPTH_TEXTURE) || defined(SHADOW_MAP) || defined(PARTICLE_DEPTH))\n #if defined(USE_HDR)\n gl_FragColor = vec4(depth, 1.0, 1.0, 1.0);\n #else\n gl_FragColor = packFloat4(depth);\n #endif\n#elif defined(VARIANCE_SHADOW_MAP)\n float dx = dFdx(depth);\n float dy = dFdy(depth);\n #if defined(USE_HDR)\n gl_FragColor = vec4(depth, depth*depth + 0.25*(dx*dx + dy*dy), 0.0, 1.0);\n #else\n gl_FragColor = vec4(packFloat2(depth), packFloat2(depth*depth + 0.25*(dx*dx + dy*dy)));\n #endif\n#endif\n\n}\n\n// ---------------------------------------------------\n#elif defined(NOP)\n\nvoid main() {\n gl_FragColor = vec4(0.0,0.0,0.0,1.0);\n}\n\n// ---------------------------------------------------\n#elif defined(SSR_PRE)\nvarying vec2 v_depth;\nvarying vec3 v_normal;\nuniform vec4 u_projection;\nvoid main() {\n // NOTE: if we need alpha in ssr trace we should pack\n // gl_FragColor = vec4(packNormal(normalize(v_normal)), vec2(u_projection.y / ((v_depth.x / v_depth.y) - u_projection.x), 1.0));\n gl_FragColor = vec4(normalize(v_normal), u_projection.y / ((v_depth.x / v_depth.y) - u_projection.x));\n}\n\n// ---------------------------------------------------\n#elif defined(USE_LENS_FLARE)\n\nuniform sampler2D u_baseTexture;\nuniform sampler2D u_occlusionTexture;\nvarying vec2 v_texCoord0;\nvarying float v_distToCenter;\nuniform vec3 u_intensity;\n\nvoid main() {\n#if defined(USE_GAMMA_SPACE)\n\tvec4 color = toLinear(texture2D(u_baseTexture, v_texCoord0));\n#else\n\tvec4 color = texture2D(u_baseTexture, v_texCoord0);\n#endif\n\n#if defined(USE_FLARE_TEXTURE_OCCLUDE)\n vec4 occlusion = texture2D(u_occlusionTexture, v_texCoord0);\n color.rgb *= u_intensity;\n color.a *= v_distToCenter * occlusion.r;\n#else\n color.rgb *= u_intensity;\n color.a *= v_distToCenter;\n#endif\n\n\n#if !defined(USE_HDR)\n vec2 dir = (gl_FragCoord.xy / u_size) - vec2(0.5, 0.5);\n float dist = dot(dir, dir);\n color.rgb *= getCalibratedLuminanceFactor(dir) * getOpticalVignetting(dist);\n\n color.rgb = toneMap(color.rgb);\n#endif\n gl_FragColor = color;\n}\n\n\n#endif\n"; },function(e,t){e.exports="#define TWOPI 3.141592654*2.0\n#define SQRT_3 1.7320508075688772\n\nvec3 RGBMDecode(vec4 rgbm, float range) {\n return range * rgbm.a * rgbm.rgb;\n}\n\nvec3 mod289(vec3 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n\nvec4 mod289(vec4 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n\nvec4 permute(vec4 x) {\n return mod289(((x*34.0)+1.0)*x);\n}\n\nvec4 taylorInvSqrt(vec4 r) {\n return 1.79284291400159 - 0.85373472095314 * r;\n}\n\nfloat snoise(vec3 v) {\n const vec2 CC = vec2(1.0/6.0, 1.0/3.0) ;\n const vec4 DD = vec4(0.0, 0.5, 1.0, 2.0);\n\n // First corner\n vec3 i = floor(v + dot(v, CC.yyy) );\n vec3 x0 = v - i + dot(i, CC.xxx) ;\n\n // Other corners\n vec3 g = step(x0.yzx, x0.xyz);\n vec3 l = 1.0 - g;\n vec3 i1 = min( g.xyz, l.zxy );\n vec3 i2 = max( g.xyz, l.zxy );\n\n // x0 = x0 - 0.0 + 0.0 * CC.xxx;\n // x1 = x0 - i1 + 1.0 * CC.xxx;\n // x2 = x0 - i2 + 2.0 * CC.xxx;\n // x3 = x0 - 1.0 + 3.0 * CC.xxx;\n vec3 x1 = x0 - i1 + CC.xxx;\n vec3 x2 = x0 - i2 + CC.yyy; // 2.0*CC.x = 1/3 = CC.y\n vec3 x3 = x0 - DD.yyy; // -1.0+3.0*CC.x = -0.5 = -DD.y\n\n // Permutations\n i = mod289(i);\n vec4 pp = permute( permute( permute( i.z + vec4(0.0, i1.z, i2.z, 1.0 )) + i.y + vec4(0.0, i1.y, i2.y, 1.0 )) + i.x + vec4(0.0, i1.x, i2.x, 1.0 ));\n\n // Gradients: 7x7 points over a square, mapped onto an octahedron.\n // The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)\n float n_ = 0.142857142857; // 1.0/7.0\n vec3 ns = n_ * DD.wyz - DD.xzx;\n\n vec4 jj = pp - 49.0 * floor(pp * ns.z * ns.z); // mod(p,7*7)\n\n vec4 x_ = floor(jj * ns.z);\n vec4 y_ = floor(jj - 7.0 * x_ ); // mod(j,N)\n\n vec4 xx = x_ *ns.x + ns.yyyy;\n vec4 yy = y_ *ns.x + ns.yyyy;\n vec4 hh = 1.0 - abs(xx) - abs(yy);\n\n vec4 b0 = vec4( xx.xy, yy.xy );\n vec4 b1 = vec4( xx.zw, yy.zw );\n\n //vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0;\n //vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0;\n vec4 s0 = floor(b0)*2.0 + 1.0;\n vec4 s1 = floor(b1)*2.0 + 1.0;\n vec4 sh = -step(hh, vec4(0.0));\n\n vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ;\n vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ;\n\n vec3 p0 = vec3(a0.xy,hh.x);\n vec3 p1 = vec3(a0.zw,hh.y);\n vec3 p2 = vec3(a1.xy,hh.z);\n vec3 p3 = vec3(a1.zw,hh.w);\n\n //Normalise gradients\n vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n\n // Mix final noise value\n vec4 mm = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);\n mm = mm * mm;\n return 42.0 * dot( mm*mm, vec4( dot(p0,x0), dot(p1,x1), dot(p2,x2), dot(p3,x3) ) );\n}\n\n#if (SHADOWED_DIR_LIGHT_COUNT > 0)\n#define HAS_SHADOWED_LIGHTS\n#endif\n\nuniform mat4 u_worldMatrix;\nuniform mat4 u_viewMatrix;\nuniform mat4 u_inverseViewMatrix;\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_inverseProjectionMatrix;\n\nattribute vec3 position;\n\n#if defined(USE_PRIMITIVE_INFORMATION)\nattribute float vertexIndex;\n\n// ivecs(primitiveSize, vertexCount)\nuniform vec2 u_vertexInfo;\n#endif\n\n#if defined(USE_VERTEX_DISPLACEMENT)\nfloat lookupDisplacement(sampler2D texture, vec2 texCoord, float displacementStrength) {\n return displacementStrength * texture2D(texture, texCoord).x;\n}\n#endif\n\n\n// ---------------------------------------------------\n#if (defined(PARTICLE) || defined(LIT_PARTICLE))\nattribute vec2 texCoord0;\nattribute vec4 color0;\nattribute float ttl;\nattribute vec2 size;\nattribute float rotation;\n\nvarying vec2 v_texCoord0;\nvarying vec4 v_color;\n\n\n#if defined(LIT_PARTICLE)\nvarying vec3 v_position;\nuniform sampler2D u_distanceField;\n#endif\n\n#if defined(USE_TEXCOORD_OFFSET)\nuniform vec2 u_texCoordOffset;\n#endif\n\n#if defined(USE_TEXCOORD_SCALE)\nuniform vec2 u_texCoordScale;\n#endif\n\n#if defined(USE_TEXCOORD_ROTATION)\nuniform vec3 u_texCoordRotation;\n#endif\n\n#if defined(USE_TEXCOORD_TRIM)\nuniform vec4 u_texCoordTrim;\n#endif\n\nuniform float u_aspect;\n\nvoid main()\n{\n if(ttl <= 0.0) {\n gl_Position = vec4(0,0,-20000,1);\n return;\n }\n\n vec2 tc = texCoord0;\n #if defined(USE_TEXCOORD_ROTATION)\n float sinR = sin(u_texCoordRotation.z);\n float cosR = cos(u_texCoordRotation.z);\n vec2 oTc = tc - u_texCoordRotation.xy;\n tc.x = oTc.x * cosR - oTc.y * sinR + u_texCoordRotation.x;\n tc.y = oTc.x * sinR + oTc.y * cosR + u_texCoordRotation.y;\n #endif\n #if defined(USE_TEXCOORD_SCALE)\n tc *= u_texCoordScale;\n #endif\n #if defined(USE_TEXCOORD_OFFSET)\n tc += u_texCoordOffset;\n #endif\n #if defined(USE_TEXCOORD_TRIM)\n tc = clamp(tc - u_texCoordTrim.xy, u_texCoordOffset, u_texCoordOffset + u_texCoordTrim.zw);\n #endif\n\n v_texCoord0 = tc;\n v_color = color0;\n\n#if defined(LIT_PARTICLE)\n vec4 cs = u_projectionMatrix * u_viewMatrix * u_worldMatrix * vec4(position, 1.0);\n float rotationMult = texture2D(u_distanceField, (cs.xy / cs.w + vec2(1.0)) * 0.5).x;\n vec3 corner = vec3(size.x, size.y, 0.0);\n #if defined (PARTICLE_ROTATION)\n float sinA1 = sin(rotation * rotationMult);\n float cosA1 = cos(rotation * rotationMult);\n corner.xz = vec2(corner.x * cosA1, corner.x * sinA1);\n #endif\n vec4 homogenousPosition = u_worldMatrix * vec4(position.x + corner.x, position.y + corner.y, position.z + corner.z, 1.0);\n v_position = homogenousPosition.xyz;\n gl_Position = u_projectionMatrix * u_viewMatrix * homogenousPosition;\n#else\n mat4 wvpMatrix = u_projectionMatrix * u_viewMatrix * u_worldMatrix;\n vec4 posCS = wvpMatrix * vec4(position, 1.0);\n #if defined (PARTICLE_ROTATION)\n float sinA1 = sin(rotation);\n float cosA1 = cos(rotation);\n vec2 corner = vec2(size.x * cosA1 - size.y * sinA1, size.x * sinA1 + size.y * cosA1);\n #else\n vec2 corner = vec2(size.x, size.y);\n #endif\n vec4 cornerCS = wvpMatrix * vec4(corner, 1.0, 1.0);\n posCS.xy += cornerCS.xy;\n gl_Position = posCS;\n#endif\n}\n\n#elif defined(LIT_POINT_SPRITE)\n\n#if (defined(HAS_SHADOWED_LIGHTS))\nvarying vec3 v_positionCS;\n#endif\nvarying vec3 v_position;\nvarying float v_radius;\nattribute float radius;\nuniform float u_radiusScale;\nuniform float u_screenWidth;\n\nvoid main() {\n vec4 homogenousPosition = u_worldMatrix * vec4(position, 1.0);\n v_position = homogenousPosition.xyz;\n vec4 eyePos = u_viewMatrix * homogenousPosition;\n float r = u_radiusScale*radius;\n v_radius = r;\n vec4 projCorner = u_projectionMatrix * vec4(r, r, eyePos.z, eyePos.w);\n#if (defined(HAS_SHADOWED_LIGHTS))\n homogenousPosition = u_projectionMatrix * eyePos;\n v_positionCS = homogenousPosition.xyz / homogenousPosition.w;\n#endif\n gl_PointSize = u_screenWidth * projCorner.x / projCorner.w;\n gl_Position = u_projectionMatrix * eyePos;\n}\n\n// ----------------------------------------------------------\n#elif defined(LIT)\n\nattribute vec2 texCoord0;\nvarying vec2 v_texCoord0;\n\n#if defined(USE_UV_BASED_RADIAL_OPACITY)\nvarying vec2 v_originalTexCoord0;\n#endif\n\n#if defined(USE_2ND_UV_FOR_BAKED_MAPS)\nattribute vec2 texCoord1;\nvarying vec2 v_texCoord1;\n#endif\n\n#if defined(USE_DIFFUSE_SPRITE_ANIMATION)\nuniform vec3 u_spriteAnimData;\nuniform vec2 u_texCoordScaleSpriteAnim;\nuniform vec2 u_texCoordOffsetSpriteAnim;\nvarying vec2 v_texCoord2;\n#endif\n\n#if defined(USE_TEXCOORD_OFFSET)\nuniform vec2 u_texCoordOffset;\n#endif\n\n#if defined(USE_TEXCOORD_SCALE)\nuniform vec2 u_texCoordScale;\n#endif\n\n#if defined(USE_TEXCOORD_ROTATION)\nuniform vec3 u_texCoordRotation;\n#endif\n\n#if defined(USE_TEXCOORD_TRIM)\nuniform vec4 u_texCoordTrim;\n#endif\n\nvarying vec3 v_position;\n\n#if defined(HAS_SHADOWED_LIGHTS)\nvarying vec3 v_positionCS;\n#endif\n\n#if (defined(USE_VERTEX_NORMAL) || defined(USE_VERTEX_DISPLACEMENT) || defined(USE_RANDOM_VERTEX_OFFSET) || defined(USE_CONSTANT_RANDOM_VERTEX_OFFSET))\nattribute vec3 normal;\n#endif\n#if defined(USE_VERTEX_NORMAL)\nvarying vec3 v_normal;\n#endif\n#if defined(USE_RANDOM_VERTEX_OFFSET)\n uniform vec3 u_vertexOffsetParams;\n uniform vec4 u_impactParams;\n float snoiseSinc(vec3 v, float snoiseStrength, float d, float t, float sincStrength) {\n float dpt = max(d+t, 0.1)*50.0;\n return snoise(v) * snoiseStrength + sin(dpt)/(dpt) * sincStrength * (1.0 - t) * (1.0 - smoothstep(0.0, t, d));\n }\n#endif\n#if defined(USE_CONSTANT_RANDOM_VERTEX_OFFSET)\n uniform vec3 u_constantVertexOffsetParams;\n uniform vec3 u_constantVertexOffsetDirection;\n uniform vec2 u_constantVertexOffsetPosition;\n#endif\n#if defined(USE_VERTEX_DISPLACEMENT)\n uniform sampler2D u_displacementTexture;\n uniform float u_displacementStrength;\n#endif\n\n#if (defined(USE_LATLONG_IBR) || defined(USE_CUBE_IBR))\n #define PI 3.141592654\n #define INV_PI 0.3183098861\n #define INV_TWOPI 0.1591549431\n vec2 worldToLatLong(vec3 r) {\n float l = length(r);\n float theta = acos(r.y / l);\n float phi = atan(vec2(r.x), vec2(-r.z)).x;\n return vec2((PI + phi) * INV_TWOPI, theta * INV_PI);\n }\n\n uniform vec2 u_nearFar;\n\n #if defined(USE_LATLONG_IBR)\n #define SAMPLER_LOOKUP texture2D\n #define SAMPLER_TEXCOORD worldToLatLong(texCoord0)\n #define SAMPLER_TYPE sampler2D\n #define SAMPLER_COORD_TYPE vec3\n varying vec3 v_direction;\n #elif defined(USE_CUBE_IBR)\n #define SAMPLER_LOOKUP textureCube\n #define SAMPLER_TEXCOORD texCoord0\n #define SAMPLER_TYPE samplerCube\n #define SAMPLER_COORD_TYPE vec3\n varying vec3 v_direction;\n #else\n #define SAMPLER_LOOKUP texture2D\n #define SAMPLER_TEXCOORD texCoord0\n #define SAMPLER_TYPE sampler2D\n #define SAMPLER_COORD_TYPE vec2\n #endif\n\n uniform SAMPLER_TYPE u_depthTexture;\n\n float unpackFloat4(vec4 rgba) {\n return dot(rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0/160581375.0 ));\n }\n\n float unpackFloat3(vec3 rgb) {\n return dot(rgb, vec3(1.0, 1.0/255.0, 1.0/65025.0));\n }\n\n float lookupDepth(SAMPLER_TYPE texture, SAMPLER_COORD_TYPE texCoord0) {\n #if defined(USE_DEPTH_PACKING)\n return u_nearFar.x + unpackFloat4(SAMPLER_LOOKUP(texture, SAMPLER_TEXCOORD)) * (u_nearFar.y - u_nearFar.x);\n #elif defined(USE_DEPTH_24_PACKING)\n return u_nearFar.x + unpackFloat3(SAMPLER_LOOKUP(texture, SAMPLER_TEXCOORD).rgb) * (u_nearFar.y - u_nearFar.x);\n #else\n return u_nearFar.x + SAMPLER_LOOKUP(texture, SAMPLER_TEXCOORD).x * (u_nearFar.y - u_nearFar.x);\n #endif\n }\n#endif\n\n#if defined(USE_VERTEX_AO)\nattribute vec4 color0;\nvarying vec3 v_ao;\n#endif\n\n#if (defined(USE_VERTEX_TANGENT_SPACE))\nattribute vec4 tangent;\nvarying vec3 v_tangent;\nvarying vec3 v_bitangent;\n#endif\n\n#if SPOT_LIGHT_COUNT > 0\nuniform mat4 u_spotLightViewProjectionMatrix[SPOT_LIGHT_COUNT];\nvarying vec4 v_spotLightProjPosition[SPOT_LIGHT_COUNT];\n#endif\n\n// NOTE: for paraboloid projection we just need another u_projectionMatrix = T * P * S\n// P = |1 0 0 0| S = | -1 0 0 0 | T = |.5 0 0 .5|\n// |0 1 0 0| | 0 -1 0 0 | | 0 .5 0 .5|\n// |0 0 1 0| | 0 0 1 -1 | | 0 0 1 0|\n// |0 0 1 0| | 0 0 0 1 | | 0 0 0 1|\n\nvoid main() {\n\n#if defined(USE_UV_BASED_RADIAL_OPACITY)\n v_originalTexCoord0 = texCoord0;\n#endif\n\n vec2 tc = texCoord0;\n#if defined(USE_2ND_UV_FOR_BAKED_MAPS)\n v_texCoord1 = texCoord1;\n#endif\n\n#if defined(USE_TEXCOORD_ROTATION)\n float sinR = sin(u_texCoordRotation.z);\n float cosR = cos(u_texCoordRotation.z);\n vec2 oTc = tc - u_texCoordRotation.xy;\n tc.x = oTc.x * cosR - oTc.y * sinR + u_texCoordRotation.x;\n tc.y = oTc.x * sinR + oTc.y * cosR + u_texCoordRotation.y;\n#endif\n#if defined(USE_TEXCOORD_SCALE)\n tc *= u_texCoordScale;\n#endif\n#if defined(USE_TEXCOORD_OFFSET)\n tc += u_texCoordOffset;\n#endif\n#if defined(USE_TEXCOORD_TRIM)\n tc = clamp(tc - u_texCoordTrim.xy, u_texCoordOffset, u_texCoordOffset + u_texCoordTrim.zw);\n#endif\n\n#if defined(USE_DIFFUSE_SPRITE_ANIMATION)\n vec2 tcAnim = clamp((texCoord0 - u_texCoordOffsetSpriteAnim) * u_texCoordScaleSpriteAnim , 0.0, 1.0);\n\n float frames = u_spriteAnimData.x * u_spriteAnimData.y;\n float spriteT = floor(frames * min(u_spriteAnimData.z, 0.9999));\n vec2 idx = vec2(floor(mod(spriteT, u_spriteAnimData.x)), floor(spriteT / u_spriteAnimData.x));\n tcAnim /= u_spriteAnimData.xy;\n v_texCoord2 = tcAnim + idx / u_spriteAnimData.xy;\n#endif\n\n v_texCoord0 = tc;\n\n#if defined(USE_VERTEX_AO)\n v_ao = color0.rgb;\n#endif\n\n vec4 homogenousPosition = vec4(position, 1.0);\n\n #if defined(USE_RANDOM_VERTEX_OFFSET)\n homogenousPosition.xyz += snoiseSinc(vec3(v_texCoord0.x, v_texCoord0.y + sin(u_vertexOffsetParams.y * TWOPI), v_texCoord0.y + cos(u_vertexOffsetParams.y * TWOPI)) * u_vertexOffsetParams.z, u_vertexOffsetParams.x, distance(u_impactParams.xy, v_texCoord0), u_impactParams.z, u_impactParams.w) * normal;\n #endif\n #if defined(USE_VERTEX_DISPLACEMENT)\n homogenousPosition.xyz += lookupDisplacement(u_displacementTexture, v_texCoord0, u_displacementStrength) * normal;\n #endif\n #if defined(USE_CONSTANT_RANDOM_VERTEX_OFFSET)\n homogenousPosition.xyz += snoiseSinc(vec3(u_constantVertexOffsetPosition.x, u_constantVertexOffsetPosition.y + sin(u_constantVertexOffsetParams.y * TWOPI), u_constantVertexOffsetPosition.y + cos(u_constantVertexOffsetParams.y * TWOPI)) * u_constantVertexOffsetParams.z, u_constantVertexOffsetParams.x, distance(u_impactParams.xy, v_texCoord0), u_impactParams.z) * u_constantVertexOffsetDirection;\n #endif\n #if (defined(USE_LATLONG_IBR) || defined(USE_CUBE_IBR))\n // NOTE: needs unit sphere to work\n homogenousPosition.xyz += (lookupDepth(u_depthTexture, position) - 1.0) * position;\n v_direction = position;\n #endif\n\n homogenousPosition = u_worldMatrix * homogenousPosition;\n\n#if SPOT_LIGHT_COUNT > 0\n for(int i = 0; i < SPOT_LIGHT_COUNT; ++i) {\n v_spotLightProjPosition[i] = u_spotLightViewProjectionMatrix[i] * homogenousPosition;\n }\n#endif\n v_position = homogenousPosition.xyz;\n mat3 wMatrix = mat3(u_worldMatrix);\n#if defined(USE_VERTEX_NORMAL)\n v_normal = wMatrix * normal;\n#endif\n\n#if defined(USE_VERTEX_TANGENT_SPACE)\n v_tangent = wMatrix * tangent.xyz;\n v_bitangent = cross(normal, tangent.xyz) * tangent.w;\n#endif\n\n#if defined(USE_PARABOLOID_PROJECTION)\n homogenousPosition = u_viewMatrix * homogenousPosition;\n float len = length(homogenousPosition.xyz);\n homogenousPosition.xyz /= len;\n homogenousPosition.z += 1.0;\n homogenousPosition.xy / homogenousPosition.z;\n homogenousPosition.z = (len - 0.1) / (100.0 - 0.1);\n#else\n homogenousPosition = u_projectionMatrix * u_viewMatrix * homogenousPosition;\n#endif\n\n#if (defined(HAS_SHADOWED_LIGHTS) || defined(USE_Z_DEPTH_FOG))\n v_positionCS = homogenousPosition.xyz / homogenousPosition.w;\n#endif\n gl_Position = homogenousPosition;\n}\n\n// ---------------------------------------------------\n#elif defined(UNLIT)\n\n#if (defined(USE_UNLIT_TEXTURE) || defined(USE_UNLIT_GRADIENT) || defined(USE_VERTEX_DISPLACEMENT))\nattribute vec2 texCoord0;\nvarying vec2 v_texCoord0;\n\n #if defined(USE_TEXCOORD_OFFSET)\n uniform vec2 u_texCoordOffset;\n #endif\n\n #if defined(USE_TEXCOORD_SCALE)\n uniform vec2 u_texCoordScale;\n #endif\n\n #if defined(USE_TEXCOORD_ROTATION)\n uniform vec3 u_texCoordRotation;\n #endif\n\n #if defined(USE_TEXCOORD_TRIM)\n uniform vec4 u_texCoordTrim;\n #endif\n\n #if defined(USE_SPRITE_ANIMATION)\n uniform vec3 u_spriteAnimData;\n #endif\n#endif\n\n#if defined(USE_VERTEX_NORMAL)\nattribute vec3 normal;\n #if defined(USE_VERTEX_DISPLACEMENT)\n uniform sampler2D u_displacementTexture;\n uniform float u_displacementStrength;\n #endif\n#endif\n#if defined(USE_FRESNEL_OUTLINE)\n varying vec3 v_normal;\n varying vec3 v_position;\n#endif\n\n#if defined(USE_BILLBOARD_OFFSET)\nuniform vec2 u_billboardOffset;\n#endif\n\n#if (defined(USE_SKYBOX) || defined(USE_SKYBOX_SH))\nvarying vec3 v_direction;\n#endif\n\n#if defined(USE_NDC_SCALING)\nuniform vec4 u_ndcPositionScale;\n#endif\n\n#if defined(USE_NDC_ROTATION)\nuniform float u_ndcRotationAngle;\n#endif\n\nvoid main() {\n\n#if (defined(USE_UNLIT_TEXTURE) || defined(USE_UNLIT_GRADIENT) || defined(USE_VERTEX_DISPLACEMENT))\n vec2 tc = texCoord0;\n\n #if defined(USE_SPRITE_ANIMATION)\n float frames = u_spriteAnimData.x * u_spriteAnimData.y;\n float spriteT = floor(frames * min(u_spriteAnimData.z, 0.9999));\n vec2 idx = vec2(floor(mod(spriteT, u_spriteAnimData.x)), floor(spriteT / u_spriteAnimData.x));\n tc = tc / u_spriteAnimData.xy;\n #if defined(USE_SPRITE_ANIMATION_ORIGIN_TOP_LEFT)\n tc += vec2(idx.x / u_spriteAnimData.x, (u_spriteAnimData.y - 1.0 - idx.y) / u_spriteAnimData.y);\n #else\n tc += idx / u_spriteAnimData.xy;\n #endif\n #endif\n\n #if defined(USE_TEXCOORD_ROTATION)\n float sinR = sin(u_texCoordRotation.z);\n float cosR = cos(u_texCoordRotation.z);\n vec2 oTc = tc - u_texCoordRotation.xy;\n tc.x = oTc.x * cosR - oTc.y * sinR + u_texCoordRotation.x;\n tc.y = oTc.x * sinR + oTc.y * cosR + u_texCoordRotation.y;\n #endif\n #if defined(USE_TEXCOORD_SCALE)\n tc *= u_texCoordScale;\n #endif\n #if defined(USE_TEXCOORD_OFFSET)\n tc += u_texCoordOffset;\n #endif\n #if defined(USE_TEXCOORD_TRIM)\n tc = clamp(tc - u_texCoordTrim.xy, u_texCoordOffset, u_texCoordOffset + u_texCoordTrim.zw);\n #endif\n\n v_texCoord0 = tc;\n#endif\n\n mat4 newView = u_viewMatrix;\n#if defined(LOCK_TO_CAMERA_POSITION)\n newView[3].xyz = vec3(0.0);\n#endif\n\n#if defined(USE_FULLSCREEN_QUAD)\n //vec4 projViewSpace = (u_inverseProjectionMatrix * homogenousPosition);\n gl_Position = vec4(position, 1.0);\n#elif defined(USE_NDC_SCALING)\n vec4 homogenousPosition = vec4(position, 1.0);\n #if defined(USE_NDC_ROTATION)\n float cosAngle = cos(u_ndcRotationAngle);\n float sinAngle = sin(u_ndcRotationAngle);\n homogenousPosition.xy = vec2(homogenousPosition.x * cosAngle - homogenousPosition.y * sinAngle, homogenousPosition.y * cosAngle + homogenousPosition.x * sinAngle);\n #endif\n homogenousPosition.xy *= u_ndcPositionScale.zw;\n homogenousPosition.xy += u_ndcPositionScale.xy;\n gl_Position = homogenousPosition;\n#elif defined(USE_BILLBOARDING)\n mat4 wvMatrix = newView * u_worldMatrix;\n #if defined(USE_BILLBOARD_OFFSET)\n vec4 offsetPos = (vec4(position, 1.0) + vec4(wvMatrix[3].xyz, 0.0));\n offsetPos.xy += u_billboardOffset;\n gl_Position = u_projectionMatrix * offsetPos;\n #else\n vec4 scaledPos = vec4(position.x * u_worldMatrix[0][0], position.y * u_worldMatrix[1][1], position.z, 1.0);\n gl_Position = u_projectionMatrix * (scaledPos + vec4(wvMatrix[3].xyz, 0.0));\n #endif\n#elif (defined(USE_SKYBOX) || defined(USE_SKYBOX_SH))\n v_direction = position;\n float scale = (-u_projectionMatrix[3][2] / (u_projectionMatrix[2][2] - 1.0)) / SQRT_3;\n mat4 scaleMatrix = mat4(1.0);\n scaleMatrix[0][0] = scale;\n scaleMatrix[1][1] = scale;\n scaleMatrix[2][2] = scale;\n mat4 wvpMatrix = u_projectionMatrix * newView * scaleMatrix * u_worldMatrix;\n\n gl_Position = wvpMatrix * vec4(position, 1.0);\n#else\n #if defined(USE_PARABOLOID_PROJECTION)\n vec4 homogenousPosition = newView * u_worldMatrix * vec4(position, 1.0);\n float len = length(homogenousPosition.xyz);\n homogenousPosition.xyz /= len;\n homogenousPosition.z += 1.0;\n homogenousPosition.xy / homogenousPosition.z;\n homogenousPosition.z = (len - 0.1) / (100.0 - 0.1);\n gl_Position = homogenousPosition;\n #else\n vec3 pos = position;\n #if (defined(USE_VERTEX_DISPLACEMENT) && defined(USE_VERTEX_NORMAL))\n pos += lookupDisplacement(u_displacementTexture, v_texCoord0, u_displacementStrength) * normal;\n #endif\n #if (defined(USE_FRESNEL_OUTLINE) && defined(USE_VERTEX_NORMAL))\n v_normal = mat3(u_worldMatrix) * normal;\n vec4 homogenousPosition = vec4(pos, 1.0);\n v_position = (u_worldMatrix * homogenousPosition).xyz;\n #endif\n mat4 wvpMatrix = u_projectionMatrix * newView * u_worldMatrix;\n gl_Position = wvpMatrix * vec4(pos, 1.0);\n #endif\n#endif\n}\n\n// ---------------------------------------------------\n#elif (defined(DEPTH_TEXTURE) || defined(SHADOW_MAP) || defined(VARIANCE_SHADOW_MAP))\n\n#if defined(DISCARD_ALPHA)\nattribute vec2 texCoord0;\nvarying vec2 v_texCoord0;\n#endif\n\nvarying vec2 v_depth;\n\nvoid main() {\n#if defined(DISCARD_ALPHA)\n v_texCoord0 = texCoord0;\n#endif\n\n mat4 wvpMatrix = u_projectionMatrix * u_viewMatrix * u_worldMatrix;\n vec4 homogenousPosition = wvpMatrix * vec4(position, 1.0);\n\n v_depth = homogenousPosition.zw;\n\n gl_Position = homogenousPosition;\n}\n\n// ---------------------------------------------------\n#elif defined(NOP)\nvoid main() {\n mat4 wvpMatrix = u_projectionMatrix * u_viewMatrix * u_worldMatrix;\n\tgl_Position = wvpMatrix * vec4(position, 1.0);\n}\n// ---------------------------------------------------\n#elif defined(SSR_PRE)\nattribute vec3 normal;\n\nvarying vec3 v_normal;\nvarying vec2 v_depth;\n\nvoid main() {\n mat4 wvMatrix = u_viewMatrix * u_worldMatrix;\n vec4 homogenousPosition = u_projectionMatrix * wvMatrix * vec4(position, 1.0);\n v_normal = mat3(wvMatrix) * normal;\n v_depth = homogenousPosition.zw;\n gl_Position = homogenousPosition;\n}\n// ---------------------------------------------------\n#elif defined(USE_LENS_FLARE)\n\nuniform vec4 u_offsetScaleAspect;\n\n#if !defined(USE_FLARE_TEXTURE_OCCLUDE)\nuniform sampler2D u_occlusionTexture;\n#endif\n\n#if defined(USE_CUSTOM_ROTATION)\nuniform float u_rotation;\n#endif\n\nattribute vec2 texCoord0;\n\nvarying vec2 v_texCoord0;\nvarying float v_distToCenter;\n\nvoid main() {\n v_texCoord0 = texCoord0;\n vec4 homogenousPosition = u_projectionMatrix * u_viewMatrix * (u_worldMatrix * vec4(0, 0, 0, 1));\n vec3 lightPosVS = homogenousPosition.xyz / homogenousPosition.w;\n v_distToCenter = 1.4/max(1.4, length(vec2(lightPosVS.x*u_offsetScaleAspect.w, lightPosVS.y)));\n v_distToCenter *= v_distToCenter;\n\n#if !defined(USE_FLARE_TEXTURE_OCCLUDE)\n float occlusion = 0.0;\n for(int j = 0; j < 8; ++j) {\n for(int i = 0; i < 8; ++i) {\n occlusion += texture2D(u_occlusionTexture, vec2(1.0/float(i),1.0/float(j))).r;\n }\n }\n occlusion /= 64.0;\n v_distToCenter *= occlusion * occlusion;\n#endif\n\n if(abs(lightPosVS.x) <= 2.3 && abs(lightPosVS.y) <= 2.3) {\n vec2 offset = u_offsetScaleAspect.xy * lightPosVS.xy - lightPosVS.xy;\n vec2 corner = vec2(position.x, position.y) * u_offsetScaleAspect.z;\n#if defined(USE_OFFSET_SCALING)\n corner *= dot(offset, offset) * 0.19 + 0.27;\n#endif\n\n#if defined(USE_CUSTOM_ROTATION)\n float sinA1 = sin(u_rotation);\n float cosA1 = cos(u_rotation);\n corner = vec2(corner.x * cosA1 - corner.y * sinA1, corner.x * sinA1 + corner.y * cosA1);\n#endif\n\n#if defined(USE_AUTO_ROTATE)\n float a = atan(vec2(lightPosVS.y + offset.y), vec2((lightPosVS.x + offset.x) * u_offsetScaleAspect.w)).x;\n float sinA2 = sin(a);\n float cosA2 = cos(a);\n corner = vec2(corner.x * cosA2 - corner.y * sinA2, corner.x * sinA2 + corner.y * cosA2);\n#endif\n corner.y *= u_offsetScaleAspect.w;\n lightPosVS.xy += corner + offset;\n gl_Position = vec4(lightPosVS.xyz * homogenousPosition.w, homogenousPosition.w);\n }\n else {\n gl_Position = vec4(-10.0, -10.0, -10.0, 1.0);\n }\n}\n\n#endif\n"},,function(e,t,n){var r=n(702);"string"==typeof r&&(r=[[e.id,r,""]]);n(21)(r,{});r.locals&&(e.exports=r.locals)},,,,,,,,,,,,,,,,,,,,,,function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAAAAABWESUoAAAA+UlEQVQ4y52TzQ3DIAyF2zHYwXtkAsQhM+VUZQkWyA4ZIxugCEUIWdRg2vw1ctt3Ccr7sA3Yt7ug22atoNFtqxtQHwEwdnIBMbjJGjgBSo8+YVXyo1Z7AHqXMMYYSPTB5HrYAjBEzO5SlBmMA6wADIjF9kUFQWQiA+pBG9ieSYzQr15VwDj257eYcIYBGFP1XVUl0ggFMD4H2PhMUAhvMqBsOvovIllFAEwcwO3EISYgoKES6QAnwC9UZkOADnjKUHNg0AS0eA1g+w0gphCLFI8pXpR41fJjic8tN4zYckTYcGzaYGHX9t2x7Tv4bXByEL2OnoZ/hvdCTzwweaWOAR0hAAAAAElFTkSuQmCC"},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAAAAABWESUoAAABaklEQVQ4y5WTwa2EIBCGPXmjAhrg7J2TDXCnBWuwg1fBdrEN2IM3G+BOiCFAiG9mQOPqmpc3h83G//Ofkflpmn9Uy6XSWknOvsqsGybjUnJmGro7wsSwhFwrmvGKcDXHnFNKMcIP/Fs0b0/NxY+FhzEEDxVCBMS9uoNgckoog7hCIQNImiTb9XkDvajOFQaIbZbFo9t1d1QlJkEGI7b3+LKzVAfhNVoINAj4vj0KiQAWbw6ANDe9EGBhOgCUywkb2I8qFrYHQMccrwbVIjuFAI140WuPQMBGI1h76wGnrp+BlaYkID23IAe1pschPc7Q2z8+s3s6qFAPik9bWcVF97gtPGo2ZLI4eeDO8RviQInozLYTx7rX07obpi0Rfi3MEZilBqbhAxKxICRTKuf+SDbXBiNNqSyhTTm85Sn5TL5dTX3NvRlF+3nr9AR99jIvebtbrVCvxfqcVjOPPW+/3V0merq8gv3nyv8CUnuAZiDYKWAAAAAASUVORK5CYII="},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAAAAABWESUoAAABP0lEQVQ4jb2TwY2DMBBFc6cACqAGF+ACOPqcKwVQCW1QAxVQAR34aKEIWfbI3vGMYdckCOWyH4kc/vPHsf88Ht+oaqRSsqku7Fr2s7FWz72oPy1uRw2BBHqQZ6RRkwkA4FH4E05I3Y5rAO+cJTlPiNj3UonBRAB0N1ZiMEb3vN2qXQCXk/0iJQZTop1kIoSOkfzkrShirEUiLgIBRX5avR46CIXAMwb8/ka2IWXCQYhPAlJAWm8OMYERGeAAYwoiRTAQgAJMIYqAwIB/C8gR/v+Au03e/s37g+Kj5rOmpzxqdVxmeVluv6zzdXMjyA903bkw7m9hqHZxHbl1WDnNlbN75dAO26ya34kYU6c9l9al0rqlKwYIe61z7fENdunFeb5qOWhHcxO3uXuzCRHdpHH0RnU5nTi8bSvqK/uzfgAwUIPuR1zxYgAAAABJRU5ErkJggg=="},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAALVBMVEX5+fn8/PwAAADx8fH19fXz8/P///8dHR1NTU1fX1+wsLCurq47OzuioqIjIyNL00kNAAAA0ElEQVQoU52RvQ3CMBCFXyQGyDUZIBU0NBGNEVIKZwLiAdLcDCmoaNyzgkfIEAzABkzC2c6/O15j3Wef7XsP5U4Y18d7C/rhategH5hHglh3REUkCDURQBQIwn4OURbOINZaFAnOHyapjRFCfPviyF2uGyNqdVbwEyemgzaVyOia+CUgPzRVUFtnHkjHPYKL9HiAZgItApg6fM+/ILl0/2zysf3XZThshkvGL3u3GKRssNBNFio7muyiycrOMTgfg5pj8IRZrYLyRG2iTMNe9AOU+HIpihqqVQAAAABJRU5ErkJggg=="},859,function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAAQCAIAAAB2sTYeAAAARUlEQVRo3u3TsQ0AIBADsbzEAtl/WWagBGylTHuTpCeb1N//mf9KA98SAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgALjZBj/5EjuSGJaJAAAAAElFTkSuQmCC"},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAAAAADmVT4XAAAGAklEQVR42u2bLXAiSxSF140ci12NREYjkbhIJC4Og8LgUJi4NetQKNyqVWuiEDFrnlixKoJK1c67f919e2YYGKYnl331bqUqEHO+Puf2DT/dnz79rZVB5VL4+EOl83wwGHyOCv6AIB8hjtLD4XAE9TB6wMKHI/gTYvQKgeooPkLdMdaEajyBhwRCEH0xoDqJs/B0On30BU8QBDAIAhj6UP88HOHCJ6Q8m83mquApcUzQihH7kHrxqA4LR+35/OnpaYG1hKIH8AfEAAhwghjSIYg8rp3FSXe1WqtarYiEIciHZAhOntYOK1+Q9Gaz2WI9Q9ED+ANhgBVz8iEVQublRZ20QfYL1FcpfIwkSOEYHELWcflKntW3qA2iO6r9Hn+wiIMgiCEgdDEBlx/kwfgtiaPu/iD1TX7vEYQgthBGQOhiAi+f5VeijuIoC/VdFT4nCoBghhUjsAmdlh/kWZ2lf2C9SNETxhAGj3C7CaDPy0fzWZ7USRxVj1ExB0EgAyNAEGzCDQT5YDji5S9XIg/GizgIvr6+/lQFT5kCISAMQVgt2YTRcJC3jh/sx+WD+ywPi0d11EbJf0rFGAgBDGgDIlAOs0eKIW+tP33k5Xt5UhftX1C/feEzoWAGh8AmYAytCII+Ln+3c/K4dtJG0bffb77gCWMgA/ggCLsdmtCegPVnc7B/+0zLZ3lWJ3GpExX8ZgyCIAZGQBOetxADNEILAtSfkD7ZT63n5J04Cb+f3qlOjoMhHAK1I8eABJNrCUQf2g/t5+XH8qiN9ceX46ggoAkQA7bitQTiP8XP9pP7JB/U/9SUZkAEzEFiwEa4MoVsEOnL8uvlC1/nEcCEiODSRBL9+YL0nf3UeiX5olQlBGpHFwMRSCdeIID5i/sP83f6fvlN8vUIYEIggE6E3QhTubkBYP5G+q9Kv1G+hBBiiAhgKje1QYYbAOaP01f20/Kb5TUCmeBj0ATQiNnFBoT9T/1H+sH+i/IeQccABNSJMA8uNSIGQBugRv+a5ZdNqBDwVjgbggRADbA/cP4l/eKqqhJAHxz2F0OQAKQBqP9L8RdFS4KTEMBekDaQEC4FQA14s34tATZiYwjYgRwANQBvAK1ftCpN4LYCtIELoaYPnQEUgGuAm/WrBNgGGMI5C5wB1QBu0w8E5RDOWCAG0A6gHdhVv0zAe9H1YcWC2AAVwO36EQGH0GBBbAAH0FW/TEB9eM6CqgESQBd9IeAQqhbEQ9BvgdiAbvqaQFkgGyGLEngYVwzoGkAUQtmC8YPOgFuQDTgEA7rrewJvwYEtKLWhb0EcgmxAkgDiENgCGoflNsxVC8oMcAYURQICZwHOAtWGeZRAuQUTGRAsKLWhziALCXALpjRAW+Da0GWQqRZQCSgDiiIVgbMgZKCagKfQcu0TSGqAssBnsF7qWQQtoMcwJZDSAGUBZKDGsWsCboGFbwFK4D01wDtl4JtgoZqgtgVS6osFZ5sgDy1wCC3QA4A0wSE0QR56UE8BAEirzwS6C9009gA0hmQOp08gZCDT2I8i3gTxGHItUBRpCUpdSKOItoHbBPyv+Ng3wJH/JattQAA1m6AfALUNNEC0C3ETpNZHAtkG0T7M9BjANyQv/QO84BsUPQgAgF8MhDGQPgGXgRsE/JLAAVTmUP8AMon+B7gXAPMmNN6G5oPoLkax7T8j63/H5i9I7F+Smb8oNX9Zbv7GxPytmfmbU/u35+YfUJh/RGP+IZX9x3TmH1Saf1Rr/2G1+cf19l9YmH9lY/6llf3XduZfXNp/dWv+5bX91/f2BxjMj3DYH2KJQrA4xlNzkOnY/SDTscVBJvujXPaH2cyP89kfaLQ/0tniUOupn0Ot+ljvpvFY78kd6z29NR3r3bQ91nvlwWZ1rjn1weZrj3b/6u1ot/3hdvvj/fYXHOyveNhfcqle89lce81nk+iaz+WLTnuq/i461V71WuurXvzz1V/1Wie+6sUbsstlt//Adb87uPB4B1c+L116nfZ/6VUQzlz7HcfXfvOerx6XLz6PPuzic/3V7+GHXv2+i8vvaetfRCHcOyKgKw4AAAAASUVORK5CYII="},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX///+nxBvIAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=="},function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLz4="},,,,,,,,,,,,,,,,,,,,,,,function(e,t){e.exports="data:application/x-font-ttf;base64,AAEAAAALAIAAAwAwT1MvMg8SBbIAAAC8AAAAYGNtYXAXVtKPAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZhJXkh4AAAF4AAAILGhlYWQNO5bsAAAJpAAAADZoaGVhB20DzgAACdwAAAAkaG10eCcEB4cAAAoAAAAANGxvY2ELDAz4AAAKNAAAABxtYXhwABwAjAAAClAAAAAgbmFtZbwOLfMAAApwAAABVnBvc3QAAwAAAAALyAAAACAAAwOAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpCAPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qj//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAAHAI0A4wMOAzwADQAfADEAXABgAGUAaQAAATI2PQE0JiMiBh0BFBYBJyYGBwYWHwEWMjMyNjc2JiclBw4BFx4BMzoBPwE+AScuAQclNCYnMScmIg8CMCIVBzAUIxQGMTAUMRwBHQEUFh8BFDIzOgE/AT4BPQEDJzUXNyc3FwcXBzU3AdIFBQUFBQYGAT5eBAkCAgIDXgICAgIGAQIBBP3kXwMCAgIFAwEDAV4EAgMCCAQBoAIDtgIGArkBAQEBAQMCuQMBAQIBuAMCyqOjC6GhoaGupKQCuQYFbgQGBgRuBQb+UDkDAwMECAI6AQMCAwgDOTkDCAQCAwE6AggEBAMD+QMEAmICAmMBAQEBAQEBAQIB7AMFAl4BAV4CBQPv/sRU1VQTUldXUpRU1VQAAAAABwDRAPAC2AKQAA8AFAAyAD4AagB5AIkAACUhIiY1ETQ2MyEyFhURFAYlIREhESUjIiYnJjY/AT4BMzIWHwE3PgEzMhYfAR4BBw4BIyczJwcOASMiJi8BBzc1MxUHHgEXHgEVFAYHDgEjIiYnNx4BMzI2Nz4BNTQmJy4BIyIGBzU3MCIxNx4BFRQGBw4BKwE1MzIWBz4BNTQmJy4BKwEVMzI2NwLO/g0FBQUFAfMFBQX+EwHd/iMBbfwDBQIBAQE/AgQDAgQCJTYCBAMCBAJSAQEBAgUD59I8NwIEAgMEAiQqA0gYBwsEBAMGBgYQCwoTCQoJDgYEBwICAwMDAwgGAwgFFyO/CAgICAgZEigqEBkLBAUFBAUPCg4QCQ4F8AYEAYwEBgYE/nQDBxUBdv6KJwMDAgYEUQICAQMsSAEDAgJtAwYCBAMVUEYBAwICLDbvFhIbAgUFBQsGCQ8FBgUHBxUGBgICAgYEBAUDAgICARIbBggVDg0WCAgIdghNBA0JCQ0EBQVIBQUAAAAABAEqAIUCYwK8ADMANwBAAFIAAAEhOAExKgEVMCIxMCIVIhQxOAExDgEHOAEVFAYVERQWHwEUMjMyNjc+AT0BMzI2NRE0JiMDJxEXEyMRNCYvATMRJxcyFjMyNjc2Ji8BJgYHBhYXAlj+3AECAQEBAQEBAQQD9QMBAQMBAgMlBQUHBDrg4C8aAwPK6oIvAQIBAwUBAgMELwQIAgEDBAK8AQEBAQEBAQEBAf5PAwQCcgEBAQIEAmcGBAGyBQX95GkBmGn+0wE1AwUBXv5kfBYBBAMECAEWAgMEBAgCAAQA0QDwAs0CnQAPABgAKwA+AAAlISImNRE0NjMhMhYVERQGJSERITAcAjElIiY1ESEiJjU0NjMhMhYVERQGNyImNREhIiY1NDYzITIWFREUBgJU/ocFBQUFAXkFBgb+jQFk/pwBpAUG/pIFBgYFAXkFBQUzBAb+kQUFBQUBeQUGBvAGBAErBQYGBf7VAwcVARZXaFcfBgUBIAYFBAYGBP7VBAc5BgQBIQUFBQYGBf7VAwcAAAcA+wDnAqQCmAANABwAKwA5AEcAVQBjAAABIgYVERQWMzI2NRE0JhciBhURFBYzMjY1ETQmIyMiBhURFBYzMjY1ETQmIxciBh0BFBYzMjY9ATQmISIGHQEUFjMyNj0BNCYFIgYdARQWMzI2PQE0JiEiBh0BFBYzMjY9ATQmAdAFBgYFBQUFPgUGBgUFBQUFhgUGBgUFBQYEygUGBgUFBQb+7gUGBgUEBgYBTQUGBgUFBQX+ZwUGBgUEBgYCmAYE/mMEBgYEAZ0EBiUFBP6sBAUFBAFUBAUFBP6sBAUFBAFUBAUrBQT+BAUFBP4EBQUE/gQFBQT+BAUoBQStBAUFBK0EBQUErQQFBQStBAUAAAAABADRAPAC2AKQAA8AFAAzAD8AACUhIiY1ETQ2MyEyFhURFAYlIREhESUhIiYnJjY/AT4BMzIWHwE3PgEzMTIWHwEeAQcOASMlIScHDgEjIiYvAQcCzv4NBQUFBQHzBQUF/hMB3f4jAbH+fAQEAgEBAWIBBQICBQE9WAIEAwIEAn4BAQECBAT+kgFZaFgCBAMCBQE9S/AGBAGMBAYGBP50AwcVAXb+ij4DAwMGA3wCAgEDSHICAgEDpgMGAgQDFYtyAgICAkliAAACAUQA7wKxApAAGAAcAAAlKgEnLgE1ETQ2NzYyFwUeARUUBgcFBiIjExEtAQFOAQICAgMDAgIGAwFXAwMDA/6pAgICCwE4/sjvAQIEAwGOAwQCAgLHAgQEAwQCxgEBhv6XtbQADgDJANcCvgLIACAAJAAoACwAMQA1ADkAPgBCAEcASwBQAFUAWQAAASElMjY3NDY1Jy4BBwUOAQcGFBUXERQWMyEyNjURNCYjBTMXIzMnMxczJzMXMyczFyMzJzMXMyczFSUPAT8BNw8BNzcPAT8BNw8BNxcHPwEXBQ8BJzcDNSEVArT+gAFtAwMBARkBBwX+TQIDAQEYBgUBxwUGBgT+QiMjRl8jNSQYJDYjGSM1JDZOJDYjGCJA/sMQMxAzShEyEH0RMhEyShAzEXc+EB0R/pMRHxJCLQGzAfJ3AwIBBQJMAwQBjQEDAgEFAkn+/QUFBQUBBwQGFzg4ODg4ODg4ODg4tUIRQhEXQhFCKUIRQhEYQhFCFhRCCjg4Qgs4Ff6ro6MAAAEAVQAVA6sDawAUAAABIg4CFRQeAjMyPgI1NC4CIwIAWJx0Q0N0nFhYnHRDQ3ScWANrQ3ScWFicdENDdJxYWJx0QwAAAQAAAAEAAMbpUTlfDzz1AAsEAAAAAADVOSlCAAAAANU5KUIAAAAAA6sDawAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADqwABAAAAAAAAAAAAAAAAAAAADQQAAAAAAAAAAAAAAAIAAAADoACNA6EA0QOgASoDoQDRA6AA+wOhANEDoQFEA6AAyQQAAFUAAAAAAAoAFAAeALYBfAHqAkQCzAMwA2ID9AQWAAEAAAANAIoADgAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQADAAAAAQAAAAAAAgAHADwAAQAAAAAAAwADACoAAQAAAAAABAADAFEAAQAAAAAABQALAAkAAQAAAAAABgADADMAAQAAAAAACgAaAFoAAwABBAkAAQAGAAMAAwABBAkAAgAOAEMAAwABBAkAAwAGAC0AAwABBAkABAAGAFQAAwABBAkABQAWABQAAwABBAkABgAGADYAAwABBAkACgA0AHRkbDgAZABsADhWZXJzaW9uIDEuMABWAGUAcgBzAGkAbwBuACAAMQAuADBkbDgAZABsADhkbDgAZABsADhSZWd1bGFyAFIAZQBnAHUAbABhAHJkbDgAZABsADhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; },function(e,t){e.exports="data:application/font-woff;base64,d09GRgABAAAAAAw0AAsAAAAAC+gAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIFsmNtYXAAAAFoAAAAVAAAAFQXVtKPZ2FzcAAAAbwAAAAIAAAACAAAABBnbHlmAAABxAAACCwAAAgsEleSHmhlYWQAAAnwAAAANgAAADYNO5bsaGhlYQAACigAAAAkAAAAJAdtA85obXR4AAAKTAAAADQAAAA0JwQHh2xvY2EAAAqAAAAAHAAAABwLDAz4bWF4cAAACpwAAAAgAAAAIAAcAIxuYW1lAAAKvAAAAVYAAAFWvA4t83Bvc3QAAAwUAAAAIAAAACAAAwAAAAMDgAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA6QgDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADgAAAAKAAgAAgACAAEAIOkI//3//wAAAAAAIOkA//3//wAB/+MXBAADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAABwCNAOMDDgM8AA0AHwAxAFwAYABlAGkAAAEyNj0BNCYjIgYdARQWAScmBgcGFh8BFjIzMjY3NiYnJQcOARceATM6AT8BPgEnLgEHJTQmJzEnJiIPAjAiFQcwFCMUBjEwFDEcAR0BFBYfARQyMzoBPwE+AT0BAyc1FzcnNxcHFwc1NwHSBQUFBQUGBgE+XgQJAgICA14CAgICBgECAQT95F8DAgICBQMBAwFeBAIDAggEAaACA7YCBgK5AQEBAQEDArkDAQECAbgDAsqjowuhoaGhrqSkArkGBW4EBgYEbgUG/lA5AwMDBAgCOgEDAgMIAzk5AwgEAgMBOgIIBAQDA/kDBAJiAgJjAQEBAQEBAQECAewDBQJeAQFeAgUD7/7EVNVUE1JXV1KUVNVUAAAAAAcA0QDwAtgCkAAPABQAMgA+AGoAeQCJAAAlISImNRE0NjMhMhYVERQGJSERIRElIyImJyY2PwE+ATMyFh8BNz4BMzIWHwEeAQcOASMnMycHDgEjIiYvAQc3NTMVBx4BFx4BFRQGBw4BIyImJzceATMyNjc+ATU0JicuASMiBgc1NzAiMTceARUUBgcOASsBNTMyFgc+ATU0JicuASsBFTMyNjcCzv4NBQUFBQHzBQUF/hMB3f4jAW38AwUCAQEBPwIEAwIEAiU2AgQDAgQCUgEBAQIFA+fSPDcCBAIDBAIkKgNIGAcLBAQDBgYGEAsKEwkKCQ4GBAcCAgMDAwMIBgMIBRcjvwgICAgIGRIoKhAZCwQFBQQFDwoOEAkOBfAGBAGMBAYGBP50AwcVAXb+iicDAwIGBFECAgEDLEgBAwICbQMGAgQDFVBGAQMCAiw27xYSGwIFBQULBgkPBQYFBwcVBgYCAgIGBAQFAwICAgESGwYIFQ4NFggICHYITQQNCQkNBAUFSAUFAAAAAAQBKgCFAmMCvAAzADcAQABSAAABITgBMSoBFTAiMTAiFSIUMTgBMQ4BBzgBFRQGFREUFh8BFDIzMjY3PgE9ATMyNjURNCYjAycRFxMjETQmLwEzEScXMhYzMjY3NiYvASYGBwYWFwJY/twBAgEBAQEBAQEEA/UDAQEDAQIDJQUFBwQ64OAvGgMDyuqCLwECAQMFAQIDBC8ECAIBAwQCvAEBAQEBAQEBAQH+TwMEAnIBAQECBAJnBgQBsgUF/eRpAZhp/tMBNQMFAV7+ZHwWAQQDBAgBFgIDBAQIAgAEANEA8ALNAp0ADwAYACsAPgAAJSEiJjURNDYzITIWFREUBiUhESEwHAIxJSImNREhIiY1NDYzITIWFREUBjciJjURISImNTQ2MyEyFhURFAYCVP6HBQUFBQF5BQYG/o0BZP6cAaQFBv6SBQYGBQF5BQUFMwQG/pEFBQUFAXkFBgbwBgQBKwUGBgX+1QMHFQEWV2hXHwYFASAGBQQGBgT+1QQHOQYEASEFBQUGBgX+1QMHAAAHAPsA5wKkApgADQAcACsAOQBHAFUAYwAAASIGFREUFjMyNjURNCYXIgYVERQWMzI2NRE0JiMjIgYVERQWMzI2NRE0JiMXIgYdARQWMzI2PQE0JiEiBh0BFBYzMjY9ATQmBSIGHQEUFjMyNj0BNCYhIgYdARQWMzI2PQE0JgHQBQYGBQUFBT4FBgYFBQUFBYYFBgYFBQUGBMoFBgYFBQUG/u4FBgYFBAYGAU0FBgYFBQUF/mcFBgYFBAYGApgGBP5jBAYGBAGdBAYlBQT+rAQFBQQBVAQFBQT+rAQFBQQBVAQFKwUE/gQFBQT+BAUFBP4EBQUE/gQFKAUErQQFBQStBAUFBK0EBQUErQQFAAAAAAQA0QDwAtgCkAAPABQAMwA/AAAlISImNRE0NjMhMhYVERQGJSERIRElISImJyY2PwE+ATMyFh8BNz4BMzEyFh8BHgEHDgEjJSEnBw4BIyImLwEHAs7+DQUFBQUB8wUFBf4TAd3+IwGx/nwEBAIBAQFiAQUCAgUBPVgCBAMCBAJ+AQEBAgQE/pIBWWhYAgQDAgUBPUvwBgQBjAQGBgT+dAMHFQF2/oo+AwMDBgN8AgIBA0hyAgIBA6YDBgIEAxWLcgICAgJJYgAAAgFEAO8CsQKQABgAHAAAJSoBJy4BNRE0Njc2MhcFHgEVFAYHBQYiIxMRLQEBTgECAgIDAwICBgMBVwMDAwP+qQICAgsBOP7I7wECBAMBjgMEAgICxwIEBAMEAsYBAYb+l7W0AA4AyQDXAr4CyAAgACQAKAAsADEANQA5AD4AQgBHAEsAUABVAFkAAAEhJTI2NzQ2NScuAQcFDgEHBhQVFxEUFjMhMjY1ETQmIwUzFyMzJzMXMyczFzMnMxcjMyczFzMnMxUlDwE/ATcPATc3DwE/ATcPATcXBz8BFwUPASc3AzUhFQK0/oABbQMDAQEZAQcF/k0CAwEBGAYFAccFBgYE/kIjI0ZfIzUkGCQ2IxkjNSQ2TiQ2IxgiQP7DEDMQM0oRMhB9ETIRMkoQMxF3PhAdEf6TER8SQi0BswHydwMCAQUCTAMEAY0BAwIBBQJJ/v0FBQUFAQcEBhc4ODg4ODg4ODg4OLVCEUIRF0IRQilCEUIRGEIRQhYUQgo4OEILOBX+q6OjAAABAFUAFQOrA2sAFAAAASIOAhUUHgIzMj4CNTQuAiMCAFicdENDdJxYWJx0Q0N0nFgDa0N0nFhYnHRDQ3ScWFicdEMAAAEAAAABAADG6VE5Xw889QALBAAAAAAA1TkpQgAAAADVOSlCAAAAAAOrA2sAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAAAAA6sAAQAAAAAAAAAAAAAAAAAAAA0EAAAAAAAAAAAAAAACAAAAA6AAjQOhANEDoAEqA6EA0QOgAPsDoQDRA6EBRAOgAMkEAABVAAAAAAAKABQAHgC2AXwB6gJEAswDMANiA/QEFgABAAAADQCKAA4AAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEAAwAAAAEAAAAAAAIABwA8AAEAAAAAAAMAAwAqAAEAAAAAAAQAAwBRAAEAAAAAAAUACwAJAAEAAAAAAAYAAwAzAAEAAAAAAAoAGgBaAAMAAQQJAAEABgADAAMAAQQJAAIADgBDAAMAAQQJAAMABgAtAAMAAQQJAAQABgBUAAMAAQQJAAUAFgAUAAMAAQQJAAYABgA2AAMAAQQJAAoANAB0ZGw4AGQAbAA4VmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwZGw4AGQAbAA4ZGw4AGQAbAA4UmVndWxhcgBSAGUAZwB1AGwAYQByZGw4AGQAbAA4Rm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="},,,function(e,t){(function(t){e.exports=t}).call(t,{})},function(e,t){}]));
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Generation time: 0.05 |
proxy
|
phpinfo
|
Settings