shopar-plugin 1.2.0-alpha.0 → 1.2.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- const e=["AR","3D"];class t extends Error{constructor(e){super(e),this.name="PluginError"}}class n extends t{constructor(e){super(e),this.name="ValidationError"}}class i extends t{constructor(e,t){super(e),this.name="ApiError",this.status=t}}class r extends t{constructor(e){super(e),this.name="SanitizationError"}}class a extends t{constructor(e){super((null==e?void 0:e.trim())||"3D failed to launch."),this.name="Launch3DError"}}class o extends t{constructor(e){super((null==e?void 0:e.trim())||"AR failed to launch."),this.name="LaunchARError"}}class s extends o{constructor(e){super((null==e?void 0:e.trim())||"Camera permission denied."),this.name="CameraPermissionDeniedError"}}class l extends o{constructor(e){super((null==e?void 0:e.trim())||"QR failed."),this.name="QRError"}}function c(e,t,n,i){return new(n||(n=Promise))(function(r,a){function o(e){try{l(i.next(e))}catch(e){a(e)}}function s(e){try{l(i.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((i=i.apply(e,t||[])).next())})}function h(e){return null!=e&&"object"==typeof e&&"name"in e&&"string"==typeof e.name?e.name:"Unknown"}function A(e){return null!=e&&"object"==typeof e&&"message"in e&&"string"==typeof e.message?e.message:"Unknown error."}"function"==typeof SuppressedError&&SuppressedError;function u(e){if(null!=e&&"object"==typeof e&&"stack"in e&&"string"==typeof e.stack)return e.stack.length>1e3?e.stack.slice(0,1e3):e.stack}function d(e,n){return()=>c(this,void 0,void 0,function*(){try{return yield n()}catch(n){if(n instanceof t)throw n;throw new t(`${e} failed: ${A(n)}`)}})}const p=[Uint8Array,Uint32Array].length-2,f=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame"],g=[2,12,7,1],m=window[f[g[g[p]]]][f[g[g[g.length-1]]]];function v(){const e=(new TextEncoder).encode(m),t=f.map(e=>e.length);for(let n=0;n<e.length;n++)e[n]^=t[n%t.length];return window[f[t[2]]](String.fromCodePoint(...e))}m.charCodeAt(p);function E(e){return e*(180/Math.PI)}function b(e){return Math.round(100*e)/100}const C=["Glasses","Shoes","Watches","Bracelets","Scarves","Hats","Necklaces"],_=["Shoes"];const I="1.2.0-alpha.0";let x=`https://cdn.jsdelivr.net/npm/shopar-plugin@${I}/dist`;const y=e=>{null!=e&&(x=e.endsWith("/")?e.substring(0,e.length-1):e)},M=()=>x;function w(e,t){return c(this,void 0,void 0,function*(){if("function"!=typeof importScripts){if("function"==typeof window.define&&window.define.amd&&"function"==typeof window.require)return new Promise(n=>{window.require([e],e=>{window[t]=e,n()},()=>{n()})});{const t=document.createElement("script");return t.setAttribute("src",e),t.setAttribute("crossorigin","anonymous"),new Promise(e=>{t.addEventListener("load",()=>e(),!1),t.addEventListener("error",()=>e(),!1),document.body.appendChild(t)})}}importScripts(e.toString())})}let S;function B(e,t){let n=!0;return{qrPaused:()=>n,qrDraw:(i,r)=>c(this,void 0,void 0,function*(){!function(){c(this,void 0,void 0,function*(){null==S&&(S=w(`${M()}/shopar-qr.js`,"ShopAR__QR"))})}(),yield S;const a=`https://ar.shopar.ai/${I.includes("alpha")?"qr-alpha":"qr"}/?${new URLSearchParams({a:i,s:r,h:location.href})}`,o=yield window.ShopAR__QR.toDataURL(a),s=new Promise((e,n)=>{t.onload=e,t.onerror=n});t.src=o,yield s,n=!1,e.style.display=""}),qrPause:()=>c(this,void 0,void 0,function*(){n=!0,e.style.display="none"})}}const T={"loading.ar":"Loading Try On...","prompt.ar.shoes":void 0,"prompt.ar.glasses":void 0,"prompt.ar.watches":void 0,"prompt.ar.bracelets":void 0,"prompt.ar.scarves":void 0,"prompt.ar.hats":void 0,"prompt.ar.necklaces":void 0},R=Object.keys(T);const D="--shopar";function Q(e){return`var(${e.var}, ${e.default})`}const L={padding:{var:`${D}-btn-padding`,default:"0.5rem 0.75rem"},gap:{var:`${D}-btn-gap`,default:"0.25rem"},border:{var:`${D}-btn-border`,default:"1px solid #dddddd"},borderRadius:{var:`${D}-btn-border-radius`,default:"calc(infinity * 1px)"},bg:{var:`${D}-btn-bg`,default:"#ffffff"},hoverBg:{var:`${D}-btn-hover-bg`,default:"#f5f5f5"}};function U(e,t,n){const i=document.createElement("button");i.type="button",i.appendChild(n);{const t=document.createElement("span");t.textContent=e,i.appendChild(t)}i.ariaLabel=t;const r=i.style;r.display="none",r.pointerEvents="auto",r.padding=Q(L.padding),r.justifyContent="center",r.alignItems="center",r.gap=Q(L.gap),r.backgroundColor=Q(L.bg),r.border=Q(L.border),r.borderRadius=Q(L.borderRadius),r.cursor="pointer";const a=Q(L.bg),o=Q(L.hoverBg);return i.addEventListener("mouseenter",()=>{r.backgroundColor=o}),i.addEventListener("mouseleave",()=>{r.backgroundColor=a}),i}const P={paddingBottom:{var:`${D}-btn-container-padding-bottom`,default:"2rem"},gap:{var:`${D}-btn-container-gap`,default:"0.5rem"}};const N={bg:{var:`${D}-ar-prompt-bg`,default:"#1e293bb2"},gap:{var:`${D}-ar-prompt-gap`,default:"1rem"},textColor:{var:`${D}-ar-prompt-text-color`,default:"white"},imgMaxWidth:{var:`${D}-ar-prompt-img-max-width`,default:"80%"},imgMaxHeight:{var:`${D}-ar-prompt-img-max-height`,default:"50%"}};const F={containerDisplay:{var:`${D}-ar-loading-container-display`,default:"flex"},containerBg:{var:`${D}-ar-loading-container-bg`,default:"#ffffff"},containerGap:{var:`${D}-ar-loading-container-gap`,default:"1rem"},barWidth:{var:`${D}-ar-loading-bar-width`,default:"80%"},barHeight:{var:`${D}-ar-loading-bar-height`,default:"0.5rem"},barRadius:{var:`${D}-ar-loading-bar-radius`,default:"calc(infinity * 1px)"},barFg:{var:`${D}-ar-loading-bar-fg`,default:"linear-gradient(90deg, #773cd8, #5fb9ec)"},barBg:{var:`${D}-ar-loading-bar-bg`,default:"#e5e7eb"}};const O={bg:{var:`${D}-qr-bg`,default:"#ffffff"}};function k(e,t,n,i){return new(n||(n=Promise))(function(r,a){function o(e){try{l(i.next(e))}catch(e){a(e)}}function s(e){try{l(i.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((i=i.apply(e,t||[])).next())})}function G(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)}function H(e,t,n,i,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t.set(e,n),n}"function"==typeof SuppressedError&&SuppressedError;const z=.1,V="function"==typeof Float32Array;function W(e,t){return 1-3*t+3*e}function q(e,t){return 3*t-6*e}function j(e){return 3*e}function Y(e,t,n){return((W(t,n)*e+q(t,n))*e+j(t))*e}function X(e,t,n){return 3*W(t,n)*e*e+2*q(t,n)*e+j(t)}function K(e){return e}function J(e){if("hold"===e.type)return()=>0;if("bezier"===e.type){const t=function(e,t,n,i){if(!(0<=e&&e<=1&&0<=n&&n<=1))throw new Error("bezier x values must be in [0, 1] range");if(e===t&&n===i)return K;const r=V?new Float32Array(11):new Array(11);for(let t=0;t<11;++t)r[t]=Y(t*z,e,n);function a(t){let i=0,a=1;for(;10!==a&&r[a]<=t;++a)i+=z;--a;const o=i+(t-r[a])/(r[a+1]-r[a])*z,s=X(o,e,n);return s>=.001?function(e,t,n,i){for(let r=0;r<4;++r){const r=X(t,n,i);if(0===r)return t;t-=(Y(t,n,i)-e)/r}return t}(t,o,e,n):0===s?o:function(e,t,n,i,r){let a,o,s=0;do{o=t+(n-t)/2,a=Y(o,i,r)-e,a>0?n=o:t=o}while(Math.abs(a)>1e-7&&++s<10);return o}(t,i,i+z,e,n)}return function(e){return 0===e||1===e?e:Y(a(e),t,i)}}(e.x1,e.y1,e.x2,e.y2);return e=>t(e)}throw new Error(`Unknown interpolation: ${e}`)}function Z(e){if(e.length<2)throw new Error("Expected at least two key frames.");const t=e[e.length-1].time,n=[...e].sort((e,t)=>e.time-t.time).map(({time:e,value:t,interpolation:n})=>({time:e,value:t,interpolate:J(n)}));let i=0,r=n[0].value;const a=()=>{for(i<0&&(i=0);i>=t;)i-=t;for(let e=0;e<n.length-1;e++){const t=n[e],a=n[e+1];if(i>=t.time&&i<a.time){const e=t.interpolate((i-t.time)/(a.time-t.time));r=t.value+e*(a.value-t.value)}}};return{reset:()=>{i=0,a()},update:e=>{i+=e,a()},seek:e=>{i=e,a()},get:()=>r}}const $="time",ee="interpolation",te="pitch",ne=[$,"yaw",te,"fov",ee],ie=Math.PI/180,re="ease-in-out",ae="cubic-bezier(";function oe(e){if("string"==typeof e)return function(e){const[t,...n]=function(e){return e.split(/\r?\n/).map(e=>function(e){const t=e.indexOf("#");return(-1!==t?e.substring(0,t):e).trim()}(e)).filter(e=>""!==e)}(e);if(null==t)throw new Error("Header missing.");const i=function(e){const t=[];for(let n=0;n<e.length;n++){const i=e[n];if(!ne.includes(i))throw new Error(`Invalid token in header: '${i}'.`);if(t.includes(i))throw new Error(`Duplicate token in header: '${i}'.`);t.push(i)}if(!t.includes($))throw new Error(`Missing required token: '${$}'.`);return t}(t.split(/\s+/)),r={};if(n.length<2)throw new Error("Expected at least two key frames.");for(const e of n){const{theta:t,phi:n,fov:a}=se(i,e);null!=t&&(null==r.theta&&(r.theta=[]),r.theta.push(t)),null!=n&&(null==r.phi&&(r.phi=[]),r.phi.push(n)),null!=a&&(null==r.fov&&(r.fov=[]),r.fov.push(a))}if(0===Object.values(r).length)throw new Error("At least one parameter should be animated.");return r}(e);if(Array.isArray(e))return function(e){var t;const n={};if(e.length<2)throw new Error("Expected at least two key frames.");for(const i of e){const{time:e,pitch:r,yaw:a,fov:o}=i;if(null==e)throw new Error("Time missing.");const s=ce(null!==(t=i.interpolation)&&void 0!==t?t:re);null!=a&&(null==n.theta&&(n.theta=[]),n.theta.push({time:e,value:a*ie,interpolation:s})),null!=r&&(null==n.phi&&(n.phi=[]),n.phi.push({time:e,value:r*ie,interpolation:s})),null!=o&&(null==n.fov&&(n.fov=[]),n.fov.push({time:e,value:o*ie,interpolation:s}))}if(0===Object.values(n).length)throw new Error("At least one parameter should be animated.");if(Object.values(n).every(t=>t.length!==e.length))throw new Error("All parameters should have the same key frame count.");return n}(e);throw new Error("Expected string or key frame config array.")}function se(e,t){const n=t.match(/[^()\s]+(\(.*?\))?/g);if(null==n||n.length<e.length)throw new Error(`Missing data for fields: '${e.filter(e=>!(null==n?void 0:n.includes(e))).join(", ")}'.`);if(n.length>e.length)throw new Error(`Excess data: '${n.filter(t=>!e.includes(t)).join(", ")}'.`);const i=e.indexOf($),r=function(e){return e.endsWith("ms")?Ae(e.substring(0,e.length-2)):e.endsWith("s")?1e3*Ae(e.substring(0,e.length-1)):Ae(e)}(n[i]),a=e.indexOf(ee),o=ce(-1===a?re:n[a]),s={};for(let t=0;t<n.length;t++){if(t===i||t===a)continue;const l=e[t],c=n[t];switch(l){case"yaw":s.theta={time:r,value:le(c),interpolation:o};break;case te:s.phi={time:r,value:le(c),interpolation:o};break;case"fov":s.fov={time:r,value:le(c),interpolation:o};break;default:throw new Error(`Unhandled value for header '${l}'.`)}}return s}function le(e){return e.endsWith("deg")?Ae(e.substring(0,e.length-3))*ie:e.endsWith("rad")?Ae(e.substring(0,e.length-3)):Ae(e)*ie}function ce(e){if("hold"===e)return{type:"hold"};if("linear"===e)return he(0,0,1,1);if("sine"===e)return he(.37,0,.63,1);if("sine-in"===e)return he(.12,0,.39,0);if("sine-out"===e)return he(.61,1,.88,1);if("ease"===e)return he(.25,.1,.25,1);if("ease-in"===e)return he(.42,0,1,1);if("ease-out"===e)return he(0,0,.58,1);if("ease-in-out"===e)return he(.42,0,.58,1);if(e.startsWith(ae)&&e.endsWith(")")){const t=e.substring(13,e.length-1).split(/\s*,\s*/);if(4!==t.length)throw new Error(`Expected 4 parameters for the Bezier curve, but got '${t}'.`);return{type:"bezier",x1:Ae(t[0]),y1:Ae(t[1]),x2:Ae(t[2]),y2:Ae(t[3])}}throw new Error(`Expected an interpolation token, but found: ${e}`)}function he(e,t,n,i){return{type:"bezier",x1:e,y1:t,x2:n,y2:i}}function Ae(e){const t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Expected a numeric value, but got: ${e}`);return t}
1
+ const e=["AR","3D"];class t extends Error{constructor(e){super(e),this.name="PluginError"}}class n extends t{constructor(e){super(e),this.name="ValidationError"}}class i extends t{constructor(e,t){super(e),this.name="ApiError",this.status=t}}class r extends t{constructor(e){super(e),this.name="SanitizationError"}}class a extends t{constructor(e){super((null==e?void 0:e.trim())||"3D failed to launch."),this.name="Launch3DError"}}class o extends t{constructor(e){super((null==e?void 0:e.trim())||"AR failed to launch."),this.name="LaunchARError"}}class s extends o{constructor(e){super((null==e?void 0:e.trim())||"Camera permission denied."),this.name="CameraPermissionDeniedError"}}class l extends o{constructor(e){super((null==e?void 0:e.trim())||"QR failed."),this.name="QRError"}}function c(e,t,n,i){return new(n||(n=Promise))(function(r,a){function o(e){try{l(i.next(e))}catch(e){a(e)}}function s(e){try{l(i.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((i=i.apply(e,t||[])).next())})}function h(e){return null!=e&&"object"==typeof e&&"name"in e&&"string"==typeof e.name?e.name:"Unknown"}function A(e){return null!=e&&"object"==typeof e&&"message"in e&&"string"==typeof e.message?e.message:"Unknown error."}"function"==typeof SuppressedError&&SuppressedError;function u(e){if(null!=e&&"object"==typeof e&&"stack"in e&&"string"==typeof e.stack)return e.stack.length>1e3?e.stack.slice(0,1e3):e.stack}function d(e,n){return()=>c(this,void 0,void 0,function*(){try{return yield n()}catch(n){if(n instanceof t)throw n;throw new t(`${e} failed: ${A(n)}`)}})}const p=[Uint8Array,Uint32Array].length-2,f=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame"],g=[2,12,7,1],m=window[f[g[g[p]]]][f[g[g[g.length-1]]]];function v(){const e=(new TextEncoder).encode(m),t=f.map(e=>e.length);for(let n=0;n<e.length;n++)e[n]^=t[n%t.length];return window[f[t[2]]](String.fromCodePoint(...e))}m.charCodeAt(p);function E(e){return e*(180/Math.PI)}function b(e){return Math.round(100*e)/100}const C=["Glasses","Shoes","Watches","Bracelets","Scarves","Hats","Necklaces"],_=["Shoes"];const I="1.2.0-alpha.1";let x=`https://cdn.jsdelivr.net/npm/shopar-plugin@${I}/dist`;const y=e=>{null!=e&&(x=e.endsWith("/")?e.substring(0,e.length-1):e)},M=()=>x;function w(e,t){return c(this,void 0,void 0,function*(){if("function"!=typeof importScripts){if("function"==typeof window.define&&window.define.amd&&"function"==typeof window.require)return new Promise(n=>{window.require([e],e=>{window[t]=e,n()},()=>{n()})});{const t=document.createElement("script");return t.setAttribute("src",e),t.setAttribute("crossorigin","anonymous"),new Promise(e=>{t.addEventListener("load",()=>e(),!1),t.addEventListener("error",()=>e(),!1),document.body.appendChild(t)})}}importScripts(e.toString())})}let S;function B(e,t){let n=!0;return{qrPaused:()=>n,qrDraw:(i,r)=>c(this,void 0,void 0,function*(){!function(){c(this,void 0,void 0,function*(){null==S&&(S=w(`${M()}/shopar-qr.js`,"ShopAR__QR"))})}(),yield S;const a=`https://ar.shopar.ai/${I.includes("alpha")?"qr-alpha":"qr"}/?${new URLSearchParams({a:i,s:r,h:location.href})}`,o=yield window.ShopAR__QR.toDataURL(a),s=new Promise((e,n)=>{t.onload=e,t.onerror=n});t.src=o,yield s,n=!1,e.style.display=""}),qrPause:()=>c(this,void 0,void 0,function*(){n=!0,e.style.display="none"})}}const T={"loading.ar":"Loading Try On...","prompt.ar.shoes":void 0,"prompt.ar.glasses":void 0,"prompt.ar.watches":void 0,"prompt.ar.bracelets":void 0,"prompt.ar.scarves":void 0,"prompt.ar.hats":void 0,"prompt.ar.necklaces":void 0},R=Object.keys(T);const D="--shopar";function Q(e){return`var(${e.var}, ${e.default})`}const L={padding:{var:`${D}-btn-padding`,default:"0.5rem 0.75rem"},gap:{var:`${D}-btn-gap`,default:"0.25rem"},border:{var:`${D}-btn-border`,default:"1px solid #dddddd"},borderRadius:{var:`${D}-btn-border-radius`,default:"calc(infinity * 1px)"},bg:{var:`${D}-btn-bg`,default:"#ffffff"},hoverBg:{var:`${D}-btn-hover-bg`,default:"#f5f5f5"}};function U(e,t,n){const i=document.createElement("button");i.type="button",i.appendChild(n);{const t=document.createElement("span");t.textContent=e,i.appendChild(t)}i.ariaLabel=t;const r=i.style;r.display="none",r.pointerEvents="auto",r.padding=Q(L.padding),r.justifyContent="center",r.alignItems="center",r.gap=Q(L.gap),r.backgroundColor=Q(L.bg),r.border=Q(L.border),r.borderRadius=Q(L.borderRadius),r.cursor="pointer";const a=Q(L.bg),o=Q(L.hoverBg);return i.addEventListener("mouseenter",()=>{r.backgroundColor=o}),i.addEventListener("mouseleave",()=>{r.backgroundColor=a}),i}const P={paddingBottom:{var:`${D}-btn-container-padding-bottom`,default:"2rem"},gap:{var:`${D}-btn-container-gap`,default:"0.5rem"}};const N={bg:{var:`${D}-ar-prompt-bg`,default:"#1e293bb2"},gap:{var:`${D}-ar-prompt-gap`,default:"1rem"},textColor:{var:`${D}-ar-prompt-text-color`,default:"white"},imgMaxWidth:{var:`${D}-ar-prompt-img-max-width`,default:"80%"},imgMaxHeight:{var:`${D}-ar-prompt-img-max-height`,default:"50%"}};const F={containerDisplay:{var:`${D}-ar-loading-container-display`,default:"flex"},containerBg:{var:`${D}-ar-loading-container-bg`,default:"#ffffff"},containerGap:{var:`${D}-ar-loading-container-gap`,default:"1rem"},barWidth:{var:`${D}-ar-loading-bar-width`,default:"80%"},barHeight:{var:`${D}-ar-loading-bar-height`,default:"0.5rem"},barRadius:{var:`${D}-ar-loading-bar-radius`,default:"calc(infinity * 1px)"},barFg:{var:`${D}-ar-loading-bar-fg`,default:"linear-gradient(90deg, #773cd8, #5fb9ec)"},barBg:{var:`${D}-ar-loading-bar-bg`,default:"#e5e7eb"}};const O={bg:{var:`${D}-qr-bg`,default:"#ffffff"}};function k(e,t,n,i){return new(n||(n=Promise))(function(r,a){function o(e){try{l(i.next(e))}catch(e){a(e)}}function s(e){try{l(i.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((i=i.apply(e,t||[])).next())})}function G(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)}function H(e,t,n,i,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t.set(e,n),n}"function"==typeof SuppressedError&&SuppressedError;const z=.1,V="function"==typeof Float32Array;function W(e,t){return 1-3*t+3*e}function q(e,t){return 3*t-6*e}function j(e){return 3*e}function Y(e,t,n){return((W(t,n)*e+q(t,n))*e+j(t))*e}function X(e,t,n){return 3*W(t,n)*e*e+2*q(t,n)*e+j(t)}function K(e){return e}function J(e){if("hold"===e.type)return()=>0;if("bezier"===e.type){const t=function(e,t,n,i){if(!(0<=e&&e<=1&&0<=n&&n<=1))throw new Error("bezier x values must be in [0, 1] range");if(e===t&&n===i)return K;const r=V?new Float32Array(11):new Array(11);for(let t=0;t<11;++t)r[t]=Y(t*z,e,n);function a(t){let i=0,a=1;for(;10!==a&&r[a]<=t;++a)i+=z;--a;const o=i+(t-r[a])/(r[a+1]-r[a])*z,s=X(o,e,n);return s>=.001?function(e,t,n,i){for(let r=0;r<4;++r){const r=X(t,n,i);if(0===r)return t;t-=(Y(t,n,i)-e)/r}return t}(t,o,e,n):0===s?o:function(e,t,n,i,r){let a,o,s=0;do{o=t+(n-t)/2,a=Y(o,i,r)-e,a>0?n=o:t=o}while(Math.abs(a)>1e-7&&++s<10);return o}(t,i,i+z,e,n)}return function(e){return 0===e||1===e?e:Y(a(e),t,i)}}(e.x1,e.y1,e.x2,e.y2);return e=>t(e)}throw new Error(`Unknown interpolation: ${e}`)}function Z(e){if(e.length<2)throw new Error("Expected at least two key frames.");const t=e[e.length-1].time,n=[...e].sort((e,t)=>e.time-t.time).map(({time:e,value:t,interpolation:n})=>({time:e,value:t,interpolate:J(n)}));let i=0,r=n[0].value;const a=()=>{for(i<0&&(i=0);i>=t;)i-=t;for(let e=0;e<n.length-1;e++){const t=n[e],a=n[e+1];if(i>=t.time&&i<a.time){const e=t.interpolate((i-t.time)/(a.time-t.time));r=t.value+e*(a.value-t.value)}}};return{reset:()=>{i=0,a()},update:e=>{i+=e,a()},seek:e=>{i=e,a()},get:()=>r}}const $="time",ee="interpolation",te="pitch",ne=[$,"yaw",te,"fov",ee],ie=Math.PI/180,re="ease-in-out",ae="cubic-bezier(";function oe(e){if("string"==typeof e)return function(e){const[t,...n]=function(e){return e.split(/\r?\n/).map(e=>function(e){const t=e.indexOf("#");return(-1!==t?e.substring(0,t):e).trim()}(e)).filter(e=>""!==e)}(e);if(null==t)throw new Error("Header missing.");const i=function(e){const t=[];for(let n=0;n<e.length;n++){const i=e[n];if(!ne.includes(i))throw new Error(`Invalid token in header: '${i}'.`);if(t.includes(i))throw new Error(`Duplicate token in header: '${i}'.`);t.push(i)}if(!t.includes($))throw new Error(`Missing required token: '${$}'.`);return t}(t.split(/\s+/)),r={};if(n.length<2)throw new Error("Expected at least two key frames.");for(const e of n){const{theta:t,phi:n,fov:a}=se(i,e);null!=t&&(null==r.theta&&(r.theta=[]),r.theta.push(t)),null!=n&&(null==r.phi&&(r.phi=[]),r.phi.push(n)),null!=a&&(null==r.fov&&(r.fov=[]),r.fov.push(a))}if(0===Object.values(r).length)throw new Error("At least one parameter should be animated.");return r}(e);if(Array.isArray(e))return function(e){var t;const n={};if(e.length<2)throw new Error("Expected at least two key frames.");for(const i of e){const{time:e,pitch:r,yaw:a,fov:o}=i;if(null==e)throw new Error("Time missing.");const s=ce(null!==(t=i.interpolation)&&void 0!==t?t:re);null!=a&&(null==n.theta&&(n.theta=[]),n.theta.push({time:e,value:a*ie,interpolation:s})),null!=r&&(null==n.phi&&(n.phi=[]),n.phi.push({time:e,value:r*ie,interpolation:s})),null!=o&&(null==n.fov&&(n.fov=[]),n.fov.push({time:e,value:o*ie,interpolation:s}))}if(0===Object.values(n).length)throw new Error("At least one parameter should be animated.");if(Object.values(n).every(t=>t.length!==e.length))throw new Error("All parameters should have the same key frame count.");return n}(e);throw new Error("Expected string or key frame config array.")}function se(e,t){const n=t.match(/[^()\s]+(\(.*?\))?/g);if(null==n||n.length<e.length)throw new Error(`Missing data for fields: '${e.filter(e=>!(null==n?void 0:n.includes(e))).join(", ")}'.`);if(n.length>e.length)throw new Error(`Excess data: '${n.filter(t=>!e.includes(t)).join(", ")}'.`);const i=e.indexOf($),r=function(e){return e.endsWith("ms")?Ae(e.substring(0,e.length-2)):e.endsWith("s")?1e3*Ae(e.substring(0,e.length-1)):Ae(e)}(n[i]),a=e.indexOf(ee),o=ce(-1===a?re:n[a]),s={};for(let t=0;t<n.length;t++){if(t===i||t===a)continue;const l=e[t],c=n[t];switch(l){case"yaw":s.theta={time:r,value:le(c),interpolation:o};break;case te:s.phi={time:r,value:le(c),interpolation:o};break;case"fov":s.fov={time:r,value:le(c),interpolation:o};break;default:throw new Error(`Unhandled value for header '${l}'.`)}}return s}function le(e){return e.endsWith("deg")?Ae(e.substring(0,e.length-3))*ie:e.endsWith("rad")?Ae(e.substring(0,e.length-3)):Ae(e)*ie}function ce(e){if("hold"===e)return{type:"hold"};if("linear"===e)return he(0,0,1,1);if("sine"===e)return he(.37,0,.63,1);if("sine-in"===e)return he(.12,0,.39,0);if("sine-out"===e)return he(.61,1,.88,1);if("ease"===e)return he(.25,.1,.25,1);if("ease-in"===e)return he(.42,0,1,1);if("ease-out"===e)return he(0,0,.58,1);if("ease-in-out"===e)return he(.42,0,.58,1);if(e.startsWith(ae)&&e.endsWith(")")){const t=e.substring(13,e.length-1).split(/\s*,\s*/);if(4!==t.length)throw new Error(`Expected 4 parameters for the Bezier curve, but got '${t}'.`);return{type:"bezier",x1:Ae(t[0]),y1:Ae(t[1]),x2:Ae(t[2]),y2:Ae(t[3])}}throw new Error(`Expected an interpolation token, but found: ${e}`)}function he(e,t,n,i){return{type:"bezier",x1:e,y1:t,x2:n,y2:i}}function Ae(e){const t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Expected a numeric value, but got: ${e}`);return t}
2
2
  /**
3
3
  * @license
4
4
  * Copyright 2010-2024 Three.js Authors
@@ -9,4 +9,4 @@ fflate - fast JavaScript compression/decompression
9
9
  <https://101arrowz.github.io/fflate>
10
10
  Licensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE
11
11
  version 0.8.2
12
- */var Sh=Uint8Array,Bh=Uint16Array,Th=Int32Array,Rh=new Sh([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Dh=new Sh([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Qh=new Sh([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Lh=function(e,t){for(var n=new Bh(31),i=0;i<31;++i)n[i]=t+=1<<e[i-1];var r=new Th(n[30]);for(i=1;i<30;++i)for(var a=n[i];a<n[i+1];++a)r[a]=a-n[i]<<5|i;return{b:n,r:r}},Uh=Lh(Rh,2),Ph=Uh.b,Nh=Uh.r;Ph[28]=258,Nh[258]=28;for(var Fh=Lh(Dh,0).b,Oh=new Bh(32768),kh=0;kh<32768;++kh){var Gh=(43690&kh)>>1|(21845&kh)<<1;Gh=(61680&(Gh=(52428&Gh)>>2|(13107&Gh)<<2))>>4|(3855&Gh)<<4,Oh[kh]=((65280&Gh)>>8|(255&Gh)<<8)>>1}var Hh=function(e,t,n){for(var i=e.length,r=0,a=new Bh(t);r<i;++r)e[r]&&++a[e[r]-1];var o,s=new Bh(t);for(r=1;r<t;++r)s[r]=s[r-1]+a[r-1]<<1;o=new Bh(1<<t);var l=15-t;for(r=0;r<i;++r)if(e[r])for(var c=r<<4|e[r],h=t-e[r],A=s[e[r]-1]++<<h,u=A|(1<<h)-1;A<=u;++A)o[Oh[A]>>l]=c;return o},zh=new Sh(288);for(kh=0;kh<144;++kh)zh[kh]=8;for(kh=144;kh<256;++kh)zh[kh]=9;for(kh=256;kh<280;++kh)zh[kh]=7;for(kh=280;kh<288;++kh)zh[kh]=8;var Vh=new Sh(32);for(kh=0;kh<32;++kh)Vh[kh]=5;var Wh=Hh(zh,9),qh=Hh(Vh,5),jh=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Yh=function(e,t,n){var i=t/8|0;return(e[i]|e[i+1]<<8)>>(7&t)&n},Xh=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},Kh=function(e){return(e+7)/8|0},Jh=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Zh=function(e,t,n){var i=new Error(t||Jh[e]);if(i.code=e,Error.captureStackTrace&&Error.captureStackTrace(i,Zh),!n)throw i;return i},$h=new Sh(0);function eA(e,t){return function(e,t,n,i){var r=e.length;if(!r||t.f&&!t.l)return n||new Sh(0);var a=!n,o=a||2!=t.i,s=t.i;a&&(n=new Sh(3*r));var l=function(e){var t=n.length;if(e>t){var i=new Sh(Math.max(2*t,e));i.set(n),n=i}},c=t.f||0,h=t.p||0,A=t.b||0,u=t.l,d=t.d,p=t.m,f=t.n,g=8*r;do{if(!u){c=Yh(e,h,1);var m=Yh(e,h+1,3);if(h+=3,!m){var v=e[(B=Kh(h)+4)-4]|e[B-3]<<8,E=B+v;if(E>r){s&&Zh(0);break}o&&l(A+v),n.set(e.subarray(B,E),A),t.b=A+=v,t.p=h=8*E,t.f=c;continue}if(1==m)u=Wh,d=qh,p=9,f=5;else if(2==m){var b=Yh(e,h,31)+257,C=Yh(e,h+10,15)+4,_=b+Yh(e,h+5,31)+1;h+=14;for(var I=new Sh(_),x=new Sh(19),y=0;y<C;++y)x[Qh[y]]=Yh(e,h+3*y,7);h+=3*C;var M=jh(x),w=(1<<M)-1,S=Hh(x,M);for(y=0;y<_;){var B,T=S[Yh(e,h,w)];if(h+=15&T,(B=T>>4)<16)I[y++]=B;else{var R=0,D=0;for(16==B?(D=3+Yh(e,h,3),h+=2,R=I[y-1]):17==B?(D=3+Yh(e,h,7),h+=3):18==B&&(D=11+Yh(e,h,127),h+=7);D--;)I[y++]=R}}var Q=I.subarray(0,b),L=I.subarray(b);p=jh(Q),f=jh(L),u=Hh(Q,p),d=Hh(L,f)}else Zh(1);if(h>g){s&&Zh(0);break}}o&&l(A+131072);for(var U=(1<<p)-1,P=(1<<f)-1,N=h;;N=h){var F=(R=u[Xh(e,h)&U])>>4;if((h+=15&R)>g){s&&Zh(0);break}if(R||Zh(2),F<256)n[A++]=F;else{if(256==F){N=h,u=null;break}var O=F-254;if(F>264){var k=Rh[y=F-257];O=Yh(e,h,(1<<k)-1)+Ph[y],h+=k}var G=d[Xh(e,h)&P],H=G>>4;if(G||Zh(3),h+=15&G,L=Fh[H],H>3&&(k=Dh[H],L+=Xh(e,h)&(1<<k)-1,h+=k),h>g){s&&Zh(0);break}o&&l(A+131072);var z=A+O;if(A<L){var V=0-L,W=Math.min(L,z);for(V+A<0&&Zh(3);A<W;++A)n[A]=i[V+A]}for(;A<z;++A)n[A]=n[A-L]}}t.l=u,t.p=N,t.b=A,t.f=c,u&&(c=1,t.m=p,t.d=d,t.n=f)}while(!c);return A!=n.length&&a?function(e,t,n){return(null==n||n>e.length)&&(n=e.length),new Sh(e.subarray(0,n))}(n,0,A):n.subarray(0,A)}(e.subarray((i=t,(8!=(15&(n=e)[0])||n[0]>>4>7||(n[0]<<8|n[1])%31)&&Zh(6,"invalid zlib data"),(n[1]>>5&1)==+!i&&Zh(6,"invalid zlib data: "+(32&n[1]?"need":"unexpected")+" dictionary"),2+(n[1]>>3&4)),-4),{i:2},t,t);var n,i}var tA="undefined"!=typeof TextDecoder&&new TextDecoder;try{tA.decode($h,{stream:!0})}catch(Zd){}class nA extends mc{constructor(e){super(e),this.type=Ze}parse(e){const t=65536,n=14,i=65537,r=Math.pow(2.7182818,2.2),a={l:0,c:0,lc:0};function o(e,t,n,i,r){for(;n<e;)t=t<<8|k(i,r),n+=8;n-=e,a.l=t>>n&(1<<e)-1,a.c=t,a.lc=n}const s=new Array(59);function l(e,t,n,r,l,c){const h=t;let A=0,u=0;for(;r<=l;r++){if(h.value-t.value>n)return!1;o(6,A,u,e,h);const i=a.l;if(A=a.c,u=a.lc,c[r]=i,63==i){if(h.value-t.value>n)throw new Error("Something wrong with hufUnpackEncTable");o(8,A,u,e,h);let i=a.l+6;if(A=a.c,u=a.lc,r+i>l+1)throw new Error("Something wrong with hufUnpackEncTable");for(;i--;)c[r++]=0;r--}else if(i>=59){let e=i-59+2;if(r+e>l+1)throw new Error("Something wrong with hufUnpackEncTable");for(;e--;)c[r++]=0;r--}}!function(e){for(let e=0;e<=58;++e)s[e]=0;for(let t=0;t<i;++t)s[e[t]]+=1;let t=0;for(let e=58;e>0;--e){const n=t+s[e]>>1;s[e]=t,t=n}for(let t=0;t<i;++t){const n=e[t];n>0&&(e[t]=n|s[n]++<<6)}}(c)}function c(e){return 63&e}function h(e){return e>>6}const A={c:0,lc:0};function u(e,t,n,i){e=e<<8|k(n,i),t+=8,A.c=e,A.lc=t}const d={c:0,lc:0};function p(e,t,n,i,r,a,o,s,l){if(e==t){i<8&&(u(n,i,r,a),n=A.c,i=A.lc);let e=n>>(i-=8);if(e=new Uint8Array([e])[0],s.value+e>l)return!1;const t=o[s.value-1];for(;e-- >0;)o[s.value++]=t}else{if(!(s.value<l))return!1;o[s.value++]=e}d.c=n,d.lc=i}function f(e){return 65535&e}function g(e){const t=f(e);return t>32767?t-65536:t}const m={a:0,b:0};function v(e,t){const n=g(e),i=g(t),r=n+(1&i)+(i>>1),a=r,o=r-i;m.a=a,m.b=o}function E(e,t){const n=f(e),i=f(t),r=n-(i>>1)&65535,a=i+r-32768&65535;m.a=a,m.b=r}function b(e,t,n,i,r,a,o){const s=o<16384,l=n>r?r:n;let c,h,A=1;for(;A<=l;)A<<=1;for(A>>=1,c=A,A>>=1;A>=1;){h=0;const o=h+a*(r-c),l=a*A,u=a*c,d=i*A,p=i*c;let f,g,b,C;for(;h<=o;h+=u){let r=h;const a=h+i*(n-c);for(;r<=a;r+=p){const n=r+d,i=r+l,a=i+d;s?(v(e[r+t],e[i+t]),f=m.a,b=m.b,v(e[n+t],e[a+t]),g=m.a,C=m.b,v(f,g),e[r+t]=m.a,e[n+t]=m.b,v(b,C),e[i+t]=m.a,e[a+t]=m.b):(E(e[r+t],e[i+t]),f=m.a,b=m.b,E(e[n+t],e[a+t]),g=m.a,C=m.b,E(f,g),e[r+t]=m.a,e[n+t]=m.b,E(b,C),e[i+t]=m.a,e[a+t]=m.b)}if(n&A){const n=r+l;s?v(e[r+t],e[n+t]):E(e[r+t],e[n+t]),f=m.a,e[n+t]=m.b,e[r+t]=f}}if(r&A){let r=h;const a=h+i*(n-c);for(;r<=a;r+=p){const n=r+d;s?v(e[r+t],e[n+t]):E(e[r+t],e[n+t]),f=m.a,e[n+t]=m.b,e[r+t]=f}}c=A,A>>=1}return h}function C(e,t,r,a,o,s){const f=r.value,g=O(t,r),m=O(t,r);r.value+=4;const v=O(t,r);if(r.value+=4,g<0||g>=i||m<0||m>=i)throw new Error("Something wrong with HUF_ENCSIZE");const E=new Array(i),b=new Array(16384);if(function(e){for(let t=0;t<16384;t++)e[t]={},e[t].len=0,e[t].lit=0,e[t].p=null}(b),l(e,r,a-(r.value-f),g,m,E),v>8*(a-(r.value-f)))throw new Error("Something wrong with hufUncompress");!function(e,t,i,r){for(;t<=i;t++){const i=h(e[t]),a=c(e[t]);if(i>>a)throw new Error("Invalid table entry");if(a>n){const e=r[i>>a-n];if(e.len)throw new Error("Invalid table entry");if(e.lit++,e.p){const t=e.p;e.p=new Array(e.lit);for(let n=0;n<e.lit-1;++n)e.p[n]=t[n]}else e.p=new Array(1);e.p[e.lit-1]=t}else if(a){let e=0;for(let o=1<<n-a;o>0;o--){const o=r[(i<<n-a)+e];if(o.len||o.p)throw new Error("Invalid table entry");o.len=a,o.lit=t,e++}}}}(E,g,m,b),function(e,t,i,r,a,o,s,l,f){let g=0,m=0;const v=s,E=Math.trunc(r.value+(a+7)/8);for(;r.value<E;)for(u(g,m,i,r),g=A.c,m=A.lc;m>=n;){const a=t[g>>m-n&16383];if(a.len)m-=a.len,p(a.lit,o,g,m,i,r,l,f,v),g=d.c,m=d.lc;else{if(!a.p)throw new Error("hufDecode issues");let t;for(t=0;t<a.lit;t++){const n=c(e[a.p[t]]);for(;m<n&&r.value<E;)u(g,m,i,r),g=A.c,m=A.lc;if(m>=n&&h(e[a.p[t]])==(g>>m-n&(1<<n)-1)){m-=n,p(a.p[t],o,g,m,i,r,l,f,v),g=d.c,m=d.lc;break}}if(t==a.lit)throw new Error("hufDecode issues")}}const b=8-a&7;for(g>>=b,m-=b;m>0;){const e=t[g<<n-m&16383];if(!e.len)throw new Error("hufDecode issues");m-=e.len,p(e.lit,o,g,m,i,r,l,f,v),g=d.c,m=d.lc}}(E,b,e,r,v,m,s,o,{value:0})}function _(e){for(let t=1;t<e.length;t++){const n=e[t-1]+e[t]-128;e[t]=n}}function I(e,t){let n=0,i=Math.floor((e.length+1)/2),r=0;const a=e.length-1;for(;!(r>a||(t[r++]=e[n++],r>a));)t[r++]=e[i++]}function x(e){let t=e.byteLength;const n=new Array;let i=0;const r=new DataView(e);for(;t>0;){const e=r.getInt8(i++);if(e<0){const a=-e;t-=a+1;for(let e=0;e<a;e++)n.push(r.getUint8(i++))}else{const a=e;t-=2;const o=r.getUint8(i++);for(let e=0;e<a+1;e++)n.push(o)}}return n}function y(e,t,n){let i,r=1;for(;r<64;)i=t[e.value],65280==i?r=64:i>>8==255?r+=255&i:(n[r]=i,r++),e.value++}function M(e,t){t[0]=W(e[0]),t[1]=W(e[1]),t[2]=W(e[5]),t[3]=W(e[6]),t[4]=W(e[14]),t[5]=W(e[15]),t[6]=W(e[27]),t[7]=W(e[28]),t[8]=W(e[2]),t[9]=W(e[4]),t[10]=W(e[7]),t[11]=W(e[13]),t[12]=W(e[16]),t[13]=W(e[26]),t[14]=W(e[29]),t[15]=W(e[42]),t[16]=W(e[3]),t[17]=W(e[8]),t[18]=W(e[12]),t[19]=W(e[17]),t[20]=W(e[25]),t[21]=W(e[30]),t[22]=W(e[41]),t[23]=W(e[43]),t[24]=W(e[9]),t[25]=W(e[11]),t[26]=W(e[18]),t[27]=W(e[24]),t[28]=W(e[31]),t[29]=W(e[40]),t[30]=W(e[44]),t[31]=W(e[53]),t[32]=W(e[10]),t[33]=W(e[19]),t[34]=W(e[23]),t[35]=W(e[32]),t[36]=W(e[39]),t[37]=W(e[45]),t[38]=W(e[52]),t[39]=W(e[54]),t[40]=W(e[20]),t[41]=W(e[22]),t[42]=W(e[33]),t[43]=W(e[38]),t[44]=W(e[46]),t[45]=W(e[51]),t[46]=W(e[55]),t[47]=W(e[60]),t[48]=W(e[21]),t[49]=W(e[34]),t[50]=W(e[37]),t[51]=W(e[47]),t[52]=W(e[50]),t[53]=W(e[56]),t[54]=W(e[59]),t[55]=W(e[61]),t[56]=W(e[35]),t[57]=W(e[36]),t[58]=W(e[48]),t[59]=W(e[49]),t[60]=W(e[57]),t[61]=W(e[58]),t[62]=W(e[62]),t[63]=W(e[63])}function w(e){const t=.5*Math.cos(.7853975),n=.5*Math.cos(3.14159/16),i=.5*Math.cos(3.14159/8),r=.5*Math.cos(3*3.14159/16),a=.5*Math.cos(.981746875),o=.5*Math.cos(3*3.14159/8),s=.5*Math.cos(1.374445625),l=new Array(4),c=new Array(4),h=new Array(4),A=new Array(4);for(let u=0;u<8;++u){const d=8*u;l[0]=i*e[d+2],l[1]=o*e[d+2],l[2]=i*e[d+6],l[3]=o*e[d+6],c[0]=n*e[d+1]+r*e[d+3]+a*e[d+5]+s*e[d+7],c[1]=r*e[d+1]-s*e[d+3]-n*e[d+5]-a*e[d+7],c[2]=a*e[d+1]-n*e[d+3]+s*e[d+5]+r*e[d+7],c[3]=s*e[d+1]-a*e[d+3]+r*e[d+5]-n*e[d+7],h[0]=t*(e[d+0]+e[d+4]),h[3]=t*(e[d+0]-e[d+4]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],A[0]=h[0]+h[1],A[1]=h[3]+h[2],A[2]=h[3]-h[2],A[3]=h[0]-h[1],e[d+0]=A[0]+c[0],e[d+1]=A[1]+c[1],e[d+2]=A[2]+c[2],e[d+3]=A[3]+c[3],e[d+4]=A[3]-c[3],e[d+5]=A[2]-c[2],e[d+6]=A[1]-c[1],e[d+7]=A[0]-c[0]}for(let u=0;u<8;++u)l[0]=i*e[16+u],l[1]=o*e[16+u],l[2]=i*e[48+u],l[3]=o*e[48+u],c[0]=n*e[8+u]+r*e[24+u]+a*e[40+u]+s*e[56+u],c[1]=r*e[8+u]-s*e[24+u]-n*e[40+u]-a*e[56+u],c[2]=a*e[8+u]-n*e[24+u]+s*e[40+u]+r*e[56+u],c[3]=s*e[8+u]-a*e[24+u]+r*e[40+u]-n*e[56+u],h[0]=t*(e[u]+e[32+u]),h[3]=t*(e[u]-e[32+u]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],A[0]=h[0]+h[1],A[1]=h[3]+h[2],A[2]=h[3]-h[2],A[3]=h[0]-h[1],e[0+u]=A[0]+c[0],e[8+u]=A[1]+c[1],e[16+u]=A[2]+c[2],e[24+u]=A[3]+c[3],e[32+u]=A[3]-c[3],e[40+u]=A[2]-c[2],e[48+u]=A[1]-c[1],e[56+u]=A[0]-c[0]}function S(e){for(let t=0;t<64;++t){const n=e[0][t],i=e[1][t],r=e[2][t];e[0][t]=n+1.5747*r,e[1][t]=n-.1873*i-.4682*r,e[2][t]=n+1.8556*i}}function B(e,t,n){for(let i=0;i<64;++i)t[n+i]=tr(T(e[i]))}function T(e){return e<=1?Math.sign(e)*Math.pow(Math.abs(e),2.2):Math.sign(e)*Math.pow(r,Math.abs(e)-1)}function R(e){return new DataView(e.array.buffer,e.offset.value,e.size)}function D(e){const t=e.viewer.buffer.slice(e.offset.value,e.offset.value+e.size),n=new Uint8Array(x(t)),i=new Uint8Array(n.length);return _(n),I(n,i),new DataView(i.buffer)}function Q(e){const t=eA(e.array.slice(e.offset.value,e.offset.value+e.size)),n=new Uint8Array(t.length);return _(t),I(t,n),new DataView(n.buffer)}function L(e){const n=e.viewer,i={value:e.offset.value},r=new Uint16Array(e.columns*e.lines*(e.inputChannels.length*e.type)),a=new Uint8Array(8192);let o=0;const s=new Array(e.inputChannels.length);for(let t=0,n=e.inputChannels.length;t<n;t++)s[t]={},s[t].start=o,s[t].end=s[t].start,s[t].nx=e.columns,s[t].ny=e.lines,s[t].size=e.type,o+=s[t].nx*s[t].ny*s[t].size;const l=q(n,i),c=q(n,i);if(c>=8192)throw new Error("Something is wrong with PIZ_COMPRESSION BITMAP_SIZE");if(l<=c)for(let e=0;e<c-l+1;e++)a[e+l]=G(n,i);const h=new Uint16Array(t),A=function(e,n){let i=0;for(let r=0;r<t;++r)(0==r||e[r>>3]&1<<(7&r))&&(n[i++]=r);const r=i-1;for(;i<t;)n[i++]=0;return r}(a,h),u=O(n,i);C(e.array,n,i,u,r,o);for(let t=0;t<e.inputChannels.length;++t){const e=s[t];for(let n=0;n<s[t].size;++n)b(r,e.start+n,e.nx,e.size,e.ny,e.nx*e.size,A)}!function(e,t,n){for(let i=0;i<n;++i)t[i]=e[t[i]]}(h,r,o);let d=0;const p=new Uint8Array(r.buffer.byteLength);for(let t=0;t<e.lines;t++)for(let t=0;t<e.inputChannels.length;t++){const e=s[t],n=e.nx*e.size,i=new Uint8Array(r.buffer,2*e.end,2*n);p.set(i,d),d+=2*n,e.end+=n}return new DataView(p.buffer)}function U(e){const t=eA(e.array.slice(e.offset.value,e.offset.value+e.size)),n=e.inputChannels.length*e.lines*e.columns*e.totalBytes,i=new ArrayBuffer(n),r=new DataView(i);let a=0,o=0;const s=new Array(4);for(let n=0;n<e.lines;n++)for(let n=0;n<e.inputChannels.length;n++){let i=0;switch(e.inputChannels[n].pixelType){case 1:s[0]=a,s[1]=s[0]+e.columns,a=s[1]+e.columns;for(let n=0;n<e.columns;++n)i+=t[s[0]++]<<8|t[s[1]++],r.setUint16(o,i,!0),o+=2;break;case 2:s[0]=a,s[1]=s[0]+e.columns,s[2]=s[1]+e.columns,a=s[2]+e.columns;for(let n=0;n<e.columns;++n)i+=t[s[0]++]<<24|t[s[1]++]<<16|t[s[2]++]<<8,r.setUint32(o,i,!0),o+=4}}return r}function P(e){const t=e.viewer,n={value:e.offset.value},i=new Uint8Array(e.columns*e.lines*(e.inputChannels.length*e.type*2)),r={version:H(t,n),unknownUncompressedSize:H(t,n),unknownCompressedSize:H(t,n),acCompressedSize:H(t,n),dcCompressedSize:H(t,n),rleCompressedSize:H(t,n),rleUncompressedSize:H(t,n),rleRawSize:H(t,n),totalAcUncompressedCount:H(t,n),totalDcUncompressedCount:H(t,n),acCompression:H(t,n)};if(r.version<2)throw new Error("EXRLoader.parse: "+te.compression+" version "+r.version+" is unsupported");const a=new Array;let o=q(t,n)-2;for(;o>0;){const e=N(t.buffer,n),i=G(t,n),r=i>>2&3,s=new Int8Array([(i>>4)-1])[0],l=G(t,n);a.push({name:e,index:s,type:l,compression:r}),o-=e.length+3}const s=te.channels,l=new Array(e.inputChannels.length);for(let t=0;t<e.inputChannels.length;++t){const n=l[t]={},i=s[t];n.name=i.name,n.compression=0,n.decoded=!1,n.type=i.pixelType,n.pLinear=i.pLinear,n.width=e.columns,n.height=e.lines}const c={idx:new Array(3)};for(let t=0;t<e.inputChannels.length;++t){const e=l[t];for(let n=0;n<a.length;++n){const i=a[n];e.name==i.name&&(e.compression=i.compression,i.index>=0&&(c.idx[i.index]=t),e.offset=t)}}let h,A,u;if(r.acCompressedSize>0)switch(r.acCompression){case 0:h=new Uint16Array(r.totalAcUncompressedCount),C(e.array,t,n,r.acCompressedSize,h,r.totalAcUncompressedCount);break;case 1:const i=eA(e.array.slice(n.value,n.value+r.totalAcUncompressedCount));h=new Uint16Array(i.buffer),n.value+=r.totalAcUncompressedCount}if(r.dcCompressedSize>0){const t={array:e.array,offset:n,size:r.dcCompressedSize};A=new Uint16Array(Q(t).buffer),n.value+=r.dcCompressedSize}r.rleRawSize>0&&(u=x(eA(e.array.slice(n.value,n.value+r.rleCompressedSize)).buffer),n.value+=r.rleCompressedSize);let d=0;const p=new Array(l.length);for(let e=0;e<p.length;++e)p[e]=new Array;for(let t=0;t<e.lines;++t)for(let t=0;t<l.length;++t)p[t].push(d),d+=l[t].width*e.type*2;!function(e,t,n,i,r,a){let o=new DataView(a.buffer);const s=n[e.idx[0]].width,l=n[e.idx[0]].height,c=Math.floor(s/8),h=Math.ceil(s/8),A=Math.ceil(l/8),u=s-8*(h-1),d=l-8*(A-1),p={value:0},f=new Array(3),g=new Array(3),m=new Array(3),v=new Array(3),E=new Array(3);for(let n=0;n<3;++n)E[n]=t[e.idx[n]],f[n]=n<1?0:f[n-1]+h*A,g[n]=new Float32Array(64),m[n]=new Uint16Array(64),v[n]=new Uint16Array(64*h);for(let t=0;t<A;++t){let a=8;t==A-1&&(a=d);let s=8;for(let e=0;e<h;++e){e==h-1&&(s=u);for(let e=0;e<3;++e)m[e].fill(0),m[e][0]=r[f[e]++],y(p,i,m[e]),M(m[e],g[e]),w(g[e]);S(g);for(let t=0;t<3;++t)B(g[t],v[t],64*e)}let l=0;for(let i=0;i<3;++i){const r=n[e.idx[i]].type;for(let e=8*t;e<8*t+a;++e){l=E[i][e];for(let t=0;t<c;++t){const n=64*t+8*(7&e);o.setUint16(l+0*r,v[i][n+0],!0),o.setUint16(l+2*r,v[i][n+1],!0),o.setUint16(l+4*r,v[i][n+2],!0),o.setUint16(l+6*r,v[i][n+3],!0),o.setUint16(l+8*r,v[i][n+4],!0),o.setUint16(l+10*r,v[i][n+5],!0),o.setUint16(l+12*r,v[i][n+6],!0),o.setUint16(l+14*r,v[i][n+7],!0),l+=16*r}}if(c!=h)for(let e=8*t;e<8*t+a;++e){const t=E[i][e]+8*c*2*r,n=64*c+8*(7&e);for(let e=0;e<s;++e)o.setUint16(t+2*e*r,v[i][n+e],!0)}}}const b=new Uint16Array(s);o=new DataView(a.buffer);for(let t=0;t<3;++t){n[e.idx[t]].decoded=!0;const i=n[e.idx[t]].type;if(2==n[t].type)for(let e=0;e<l;++e){const n=E[t][e];for(let e=0;e<s;++e)b[e]=o.getUint16(n+2*e*i,!0);for(let e=0;e<s;++e)o.setFloat32(n+2*e*i,W(b[e]),!0)}}}(c,p,l,h,A,i);for(let t=0;t<l.length;++t){const n=l[t];if(!n.decoded){if(2!==n.compression)throw new Error("EXRLoader.parse: unsupported channel compression");{let r=0,a=0;for(let o=0;o<e.lines;++o){let e=p[t][r];for(let t=0;t<n.width;++t){for(let t=0;t<2*n.type;++t)i[e++]=u[a+t*n.width*n.height];a++}r++}}}}return new DataView(i.buffer)}function N(e,t){const n=new Uint8Array(e);let i=0;for(;0!=n[t.value+i];)i+=1;const r=(new TextDecoder).decode(n.slice(t.value,t.value+i));return t.value=t.value+i+1,r}function F(e,t){const n=e.getInt32(t.value,!0);return t.value=t.value+4,n}function O(e,t){const n=e.getUint32(t.value,!0);return t.value=t.value+4,n}function k(e,t){const n=e[t.value];return t.value=t.value+1,n}function G(e,t){const n=e.getUint8(t.value);return t.value=t.value+1,n}const H=function(e,t){let n;return n="getBigInt64"in DataView.prototype?Number(e.getBigInt64(t.value,!0)):e.getUint32(t.value+4,!0)+Number(e.getUint32(t.value,!0)<<32),t.value+=8,n};function z(e,t){const n=e.getFloat32(t.value,!0);return t.value+=4,n}function V(e,t){return tr(z(e,t))}function W(e){const t=(31744&e)>>10,n=1023&e;return(e>>15?-1:1)*(t?31===t?n?NaN:1/0:Math.pow(2,t-15)*(1+n/1024):n/1024*6103515625e-14)}function q(e,t){const n=e.getUint16(t.value,!0);return t.value+=2,n}function j(e,t){return W(q(e,t))}function Y(e,t,n,i,r){return"string"===i||"stringvector"===i||"iccProfile"===i?function(e,t,n){const i=(new TextDecoder).decode(new Uint8Array(e).slice(t.value,t.value+n));return t.value=t.value+n,i}(t,n,r):"chlist"===i?function(e,t,n,i){const r=n.value,a=[];for(;n.value<r+i-1;){const i=N(t,n),r=F(e,n),o=G(e,n);n.value+=3;const s=F(e,n),l=F(e,n);a.push({name:i,pixelType:r,pLinear:o,xSampling:s,ySampling:l})}return n.value+=1,a}(e,t,n,r):"chromaticities"===i?function(e,t){return{redX:z(e,t),redY:z(e,t),greenX:z(e,t),greenY:z(e,t),blueX:z(e,t),blueY:z(e,t),whiteX:z(e,t),whiteY:z(e,t)}}(e,n):"compression"===i?function(e,t){return["NO_COMPRESSION","RLE_COMPRESSION","ZIPS_COMPRESSION","ZIP_COMPRESSION","PIZ_COMPRESSION","PXR24_COMPRESSION","B44_COMPRESSION","B44A_COMPRESSION","DWAA_COMPRESSION","DWAB_COMPRESSION"][G(e,t)]}(e,n):"box2i"===i?function(e,t){return{xMin:F(e,t),yMin:F(e,t),xMax:F(e,t),yMax:F(e,t)}}(e,n):"envmap"===i?function(e,t){return["ENVMAP_LATLONG","ENVMAP_CUBE"][G(e,t)]}(e,n):"tiledesc"===i?function(e,t){const n=O(e,t),i=O(e,t),r=G(e,t);return{xSize:n,ySize:i,levelMode:["ONE_LEVEL","MIPMAP_LEVELS","RIPMAP_LEVELS"][15&r],roundingMode:["ROUND_DOWN","ROUND_UP"][r>>4]}}(e,n):"lineOrder"===i?function(e,t){return["INCREASING_Y","DECREASING_Y","RANDOM_Y"][G(e,t)]}(e,n):"float"===i?z(e,n):"v2f"===i?function(e,t){return[z(e,t),z(e,t)]}(e,n):"v3f"===i?function(e,t){return[z(e,t),z(e,t),z(e,t)]}(e,n):"int"===i?F(e,n):"rational"===i?function(e,t){return[F(e,t),O(e,t)]}(e,n):"timecode"===i?function(e,t){return[O(e,t),O(e,t)]}(e,n):"preview"===i?(n.value+=r,"skipped"):void(n.value+=r)}function X(e,t,n,i){const r=new Array(e);for(let a=0;a<e;a++){const e=1<<a;let o=t/e|0;"ROUND_UP"==i&&o*e<t&&(o+=1);const s=Math.max(o,1);r[a]=(s+n-1)/n|0}return r}function K(){const e=this,t=e.offset,n={value:0};for(let i=0;i<e.tileCount;i++){const i=F(e.viewer,t),r=F(e.viewer,t);t.value+=8,e.size=O(e.viewer,t);const a=i*e.blockWidth,o=r*e.blockHeight;e.columns=a+e.blockWidth>e.width?e.width-a:e.blockWidth,e.lines=o+e.blockHeight>e.height?e.height-o:e.blockHeight;const s=e.columns*e.totalBytes,l=e.size<e.lines*s?e.uncompress(e):R(e);t.value+=e.size;for(let t=0;t<e.lines;t++){const i=t*e.columns*e.totalBytes;for(let r=0;r<e.inputChannels.length;r++){const s=te.channels[r].name,c=e.channelByteOffsets[s]*e.columns,h=e.decodeChannels[s];if(void 0===h)continue;n.value=i+c;const A=(e.height-(1+o+t))*e.outLineWidth;for(let t=0;t<e.columns;t++){const i=A+(t+a)*e.outputChannels+h;e.byteArray[i]=e.getter(l,n)}}}}}function J(){const e=this,t=e.offset,n={value:0};for(let i=0;i<e.height/e.blockHeight;i++){const r=F(e.viewer,t)-te.dataWindow.yMin;e.size=O(e.viewer,t),e.lines=r+e.blockHeight>e.height?e.height-r:e.blockHeight;const a=e.columns*e.totalBytes,o=e.size<e.lines*a?e.uncompress(e):R(e);t.value+=e.size;for(let t=0;t<e.blockHeight;t++){const r=i*e.blockHeight,s=t+e.scanOrder(r);if(s>=e.height)continue;const l=t*a,c=(e.height-1-s)*e.outLineWidth;for(let t=0;t<e.inputChannels.length;t++){const i=te.channels[t].name,r=e.channelByteOffsets[i]*e.columns,a=e.decodeChannels[i];if(void 0!==a){n.value=l+r;for(let t=0;t<e.columns;t++){const i=c+t*e.outputChannels+a;e.byteArray[i]=e.getter(o,n)}}}}}}const Z={value:0},$=new DataView(e),ee=new Uint8Array(e),te=function(e,t,n){const i={};if(20000630!=e.getUint32(0,!0))throw new Error("THREE.EXRLoader: Provided file doesn't appear to be in OpenEXR format.");i.version=e.getUint8(4);const r=e.getUint8(5);i.spec={singleTile:!!(2&r),longName:!!(4&r),deepFormat:!!(8&r),multiPart:!!(16&r)},n.value=8;let a=!0;for(;a;){const r=N(t,n);if(0==r)a=!1;else{const a=N(t,n),o=Y(e,t,n,a,O(e,n));void 0===o?console.warn(`THREE.EXRLoader: Skipped unknown header attribute type '${a}'.`):i[r]=o}}if(-7&r)throw console.error("THREE.EXRHeader:",i),new Error("THREE.EXRLoader: Provided file is currently unsupported.");return i}($,e,Z),ne=function(e,t,n,i,r){const a={size:0,viewer:t,array:n,offset:i,width:e.dataWindow.xMax-e.dataWindow.xMin+1,height:e.dataWindow.yMax-e.dataWindow.yMin+1,inputChannels:e.channels,channelByteOffsets:{},scanOrder:null,totalBytes:null,columns:null,lines:null,type:null,uncompress:null,getter:null,format:null,colorSpace:_t};switch(e.compression){case"NO_COMPRESSION":a.blockHeight=1,a.uncompress=R;break;case"RLE_COMPRESSION":a.blockHeight=1,a.uncompress=D;break;case"ZIPS_COMPRESSION":a.blockHeight=1,a.uncompress=Q;break;case"ZIP_COMPRESSION":a.blockHeight=16,a.uncompress=Q;break;case"PIZ_COMPRESSION":a.blockHeight=32,a.uncompress=L;break;case"PXR24_COMPRESSION":a.blockHeight=16,a.uncompress=U;break;case"DWAA_COMPRESSION":a.blockHeight=32,a.uncompress=P;break;case"DWAB_COMPRESSION":a.blockHeight=256,a.uncompress=P;break;default:throw new Error("EXRLoader.parse: "+e.compression+" is unsupported")}const o={};for(const t of e.channels)switch(t.name){case"Y":case"R":case"G":case"B":case"A":o[t.name]=!0,a.type=t.pixelType}let s=!1;if(o.R&&o.G&&o.B)s=!o.A,a.outputChannels=4,a.decodeChannels={R:0,G:1,B:2,A:3};else{if(!o.Y)throw new Error("EXRLoader.parse: file contains unsupported data channels.");a.outputChannels=1,a.decodeChannels={Y:0}}if(1==a.type)switch(r){case Je:a.getter=j;break;case Ze:a.getter=q}else{if(2!=a.type)throw new Error("EXRLoader.parse: unsupported pixelType "+a.type+" for "+e.compression+".");switch(r){case Je:a.getter=z;break;case Ze:a.getter=V}}a.columns=a.width;const l=a.width*a.height*a.outputChannels;switch(r){case Je:a.byteArray=new Float32Array(l),s&&a.byteArray.fill(1,0,l);break;case Ze:a.byteArray=new Uint16Array(l),s&&a.byteArray.fill(15360,0,l);break;default:console.error("THREE.EXRLoader: unsupported type: ",r)}let c=0;for(const t of e.channels)void 0!==a.decodeChannels[t.name]&&(a.channelByteOffsets[t.name]=c),c+=2*t.pixelType;if(a.totalBytes=c,a.outLineWidth=a.width*a.outputChannels,"INCREASING_Y"===e.lineOrder?a.scanOrder=e=>e:a.scanOrder=e=>a.height-1-e,4==a.outputChannels?(a.format=et,a.colorSpace=_t):(a.format=it,a.colorSpace=bt),e.spec.singleTile){a.blockHeight=e.tiles.ySize,a.blockWidth=e.tiles.xSize;const n=function(e,t,n){let i=0;switch(e.levelMode){case"ONE_LEVEL":i=1;break;case"MIPMAP_LEVELS":i=function(e,t){const n=Math.log2(e);return"ROUND_DOWN"==t?Math.floor(n):Math.ceil(n)}(Math.max(t,n),e.roundingMode)+1;break;case"RIPMAP_LEVELS":throw new Error("THREE.EXRLoader: RIPMAP_LEVELS tiles currently unsupported.")}return i}(e.tiles,a.width,a.height),r=X(n,a.width,e.tiles.xSize,e.tiles.roundingMode),o=X(n,a.height,e.tiles.ySize,e.tiles.roundingMode);a.tileCount=r[0]*o[0];for(let e=0;e<n;e++)for(let n=0;n<o[e];n++)for(let n=0;n<r[e];n++)H(t,i);a.decode=K.bind(a)}else{a.blockWidth=a.width;const e=Math.ceil(a.height/a.blockHeight);for(let n=0;n<e;n++)H(t,i);a.decode=J.bind(a)}return a}(te,$,ee,Z,this.type);return ne.decode(),{header:te,width:ne.width,height:ne.height,data:ne.byteArray,format:ne.format,colorSpace:ne.colorSpace,type:this.type}}setDataType(e){return this.type=e,this}load(e,t,n,i){return super.load(e,function(e,n){e.colorSpace=n.colorSpace,e.minFilter=We,e.magFilter=We,e.generateMipmaps=!1,e.flipY=!1,t&&t(e,n)},n,i)}}let iA,rA=!1;function aA(e){rA||(iA=new wh,new nA,rA=!0);const t=function(e){const t=new Al(e.data,e.width,e.height,void 0,e.type,void 0,ke,ke,We,We,1,_t);return t.flipY=!0,t.generateMipmaps=!1,t.needsUpdate=!0,t}(iA.parse(e));return t.mapping=Ne,t.colorSpace=_t,t}var oA=function(){var e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if("object"!=typeof WebAssembly)return{supported:!1};var n,i=WebAssembly.validate(e)?"b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb":"b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",r=WebAssembly.instantiate(a(i),{}).then(function(e){(n=e.instance).exports.__wasm_call_ctors()});function a(e){for(var n=new Uint8Array(e.length),i=0;i<e.length;++i){var r=e.charCodeAt(i);n[i]=r>96?r-97:r>64?r-39:r+4}var a=0;for(i=0;i<e.length;++i)n[a++]=n[i]<60?t[n[i]]:64*(n[i]-60)+n[++i];return n.buffer.slice(0,a)}function o(e,t,i,r,a,o){var s=n.exports.sbrk,l=i+3&-4,c=s(l*r),h=s(a.length),A=new Uint8Array(n.exports.memory.buffer);A.set(a,h);var u=e(c,i,r,h,a.length);if(0==u&&o&&o(c,l,r),t.set(A.subarray(c,c+i*r)),s(c-s(0)),0!=u)throw new Error("Malformed buffer data: "+u)}var s={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},l={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},c=[],h=0;function A(e){var t={object:new Worker(e),pending:0,requests:{}};return t.object.onmessage=function(e){var n=e.data;t.pending-=n.count,t.requests[n.id][n.action](n.value),delete t.requests[n.id]},t}function u(e){r.then(function(){var t=e.data;try{var i=new Uint8Array(t.count*t.size);o(n.exports[t.mode],i,t.count,t.size,t.source,n.exports[t.filter]),self.postMessage({id:t.id,count:t.count,action:"resolve",value:i},[i.buffer])}catch(e){self.postMessage({id:t.id,count:t.count,action:"reject",value:e})}})}return{ready:r,supported:!0,useWorkers:function(e){!function(e){for(var t="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(a(i))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+o.toString()+u.toString(),n=new Blob([t],{type:"text/javascript"}),r=URL.createObjectURL(n),s=0;s<e;++s)c[s]=A(r);URL.revokeObjectURL(r)}(e)},decodeVertexBuffer:function(e,t,i,r,a){o(n.exports.meshopt_decodeVertexBuffer,e,t,i,r,n.exports[s[a]])},decodeIndexBuffer:function(e,t,i,r){o(n.exports.meshopt_decodeIndexBuffer,e,t,i,r)},decodeIndexSequence:function(e,t,i,r){o(n.exports.meshopt_decodeIndexSequence,e,t,i,r)},decodeGltfBuffer:function(e,t,i,r,a,c){o(n.exports[l[a]],e,t,i,r,n.exports[s[c]])},decodeGltfBufferAsync:function(e,t,i,a,A){return c.length>0?function(e,t,n,i,r){for(var a=c[0],o=1;o<c.length;++o)c[o].pending<a.pending&&(a=c[o]);return new Promise(function(o,s){var l=new Uint8Array(n),c=h++;a.pending+=e,a.requests[c]={resolve:o,reject:s},a.object.postMessage({id:c,count:e,size:t,source:l,mode:i,filter:r},[l.buffer])})}(e,t,i,l[a],s[A]):r.then(function(){var r=new Uint8Array(e*t);return o(n.exports[l[a]],r,e,t,i,n.exports[s[A]]),r})}}}();const sA=new WeakMap;class lA extends uc{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,n,i){const r=new fc(this.manager);r.setPath(this.path),r.setResponseType("arraybuffer"),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(e,e=>{this.parse(e,t,i)},n,i)}parse(e,t,n=()=>{}){this.decodeDracoFile(e,t,null,null,Ct,n).catch(n)}decodeDracoFile(e,t,n,i,r=_t,a=()=>{}){const o={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!n,vertexColorSpace:r};return this.decodeGeometry(e,o).then(t).catch(a)}decodeGeometry(e,t){const n=JSON.stringify(t);if(sA.has(e)){const t=sA.get(e);if(t.key===n)return t.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let i;const r=this.workerNextTaskID++,a=e.byteLength,o=this._getWorker(r,a).then(n=>(i=n,new Promise((n,a)=>{i._callbacks[r]={resolve:n,reject:a},i.postMessage({type:"decode",id:r,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return o.catch(()=>!0).then(()=>{i&&r&&this._releaseTask(i,r)}),sA.set(e,{key:n,promise:o}),o}_createGeometry(e){const t=new fr;e.index&&t.setIndex(new rr(e.index.array,1));for(let n=0;n<e.attributes.length;n++){const i=e.attributes[n],r=i.name,a=i.array,o=i.itemSize,s=new rr(a,o);"color"===r&&(this._assignVertexColorSpace(s,i.vertexColorSpace),s.normalized=a instanceof Float32Array==0),t.setAttribute(r,s)}return t}_assignVertexColorSpace(e,t){if(t!==Ct)return;const n=new Xi;for(let t=0,i=e.count;t<i;t++)n.fromBufferAttribute(e,t).convertSRGBToLinear(),e.setXYZ(t,n.r,n.g,n.b)}_loadLibrary(e,t){const n=new fc(this.manager);return n.setPath(this.decoderPath),n.setResponseType(t),n.setWithCredentials(this.withCredentials),new Promise((t,i)=>{n.load(e,t,void 0,i)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(t=>{const n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const i=cA.toString(),r=["/* draco decoder */",n,"","/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([r]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const e=new Worker(this.workerSourceURL);e._callbacks={},e._taskCosts={},e._taskLoad=0,e.postMessage({type:"init",decoderConfig:this.decoderConfig}),e.onmessage=function(t){const n=t.data;switch(n.type){case"decode":e._callbacks[n.id].resolve(n);break;case"error":e._callbacks[n.id].reject(n);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+n.type+'"')}},this.workerPool.push(e)}else this.workerPool.sort(function(e,t){return e._taskLoad>t._taskLoad?-1:1});const n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,""!==this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),this}}function cA(){let e,t;function n(e,t,n,i,r,a){const o=a.num_components(),s=n.num_points()*o,l=s*r.BYTES_PER_ELEMENT,c=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}(e,r),h=e._malloc(l);t.GetAttributeDataArrayForAllPoints(n,a,c,l,h);const A=new r(e.HEAPF32.buffer,h,s).slice();return e._free(h),{name:i,array:A,itemSize:o}}onmessage=function(i){const r=i.data;switch(r.type){case"init":e=r.decoderConfig,t=new Promise(function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)});break;case"decode":const i=r.buffer,a=r.taskConfig;t.then(e=>{const t=e.draco,o=new t.Decoder;try{const e=function(e,t,i,r){const a=r.attributeIDs,o=r.attributeTypes;let s,l;const c=t.GetEncodedGeometryType(i);if(c===e.TRIANGULAR_MESH)s=new e.Mesh,l=t.DecodeArrayToMesh(i,i.byteLength,s);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");s=new e.PointCloud,l=t.DecodeArrayToPointCloud(i,i.byteLength,s)}if(!l.ok()||0===s.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const h={index:null,attributes:[]};for(const i in a){const l=self[o[i]];let c,A;if(r.useUniqueIDs)A=a[i],c=t.GetAttributeByUniqueId(s,A);else{if(A=t.GetAttributeId(s,e[a[i]]),-1===A)continue;c=t.GetAttribute(s,A)}const u=n(e,t,s,i,l,c);"color"===i&&(u.vertexColorSpace=r.vertexColorSpace),h.attributes.push(u)}return c===e.TRIANGULAR_MESH&&(h.index=function(e,t,n){const i=3*n.num_faces(),r=4*i,a=e._malloc(r);t.GetTrianglesUInt32Array(n,r,a);const o=new Uint32Array(e.HEAPF32.buffer,a,i).slice();return e._free(a),{array:o,itemSize:1}}(e,t,s)),e.destroy(s),h}(t,o,new Int8Array(i),a),s=e.attributes.map(e=>e.array.buffer);e.index&&s.push(e.index.array.buffer),self.postMessage({type:"decode",id:r.id,geometry:e},s)}catch(e){console.error(e),self.postMessage({type:"error",id:r.id,error:e.message})}finally{t.destroy(o)}})}}}function hA(e,t){if(0===t)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(2===t||1===t){let n=e.getIndex();if(null===n){const t=[],i=e.getAttribute("position");if(void 0===i)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e<i.count;e++)t.push(e);e.setIndex(t),n=e.getIndex()}const i=n.count-2,r=[];if(2===t)for(let e=1;e<=i;e++)r.push(n.getX(0)),r.push(n.getX(e)),r.push(n.getX(e+1));else for(let e=0;e<i;e++)e%2==0?(r.push(n.getX(e)),r.push(n.getX(e+1)),r.push(n.getX(e+2))):(r.push(n.getX(e+2)),r.push(n.getX(e+1)),r.push(n.getX(e)));r.length/3!==i&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const a=e.clone();return a.setIndex(r),a.clearGroups(),a}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e}class AA extends uc{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new bA(e)}),this.register(function(e){return new mA(e)}),this.register(function(e){return new vA(e)}),this.register(function(e){return new SA(e)}),this.register(function(e){return new BA(e)}),this.register(function(e){return new TA(e)}),this.register(function(e){return new CA(e)}),this.register(function(e){return new _A(e)}),this.register(function(e){return new IA(e)}),this.register(function(e){return new xA(e)}),this.register(function(e){return new gA(e)}),this.register(function(e){return new yA(e)}),this.register(function(e){return new EA(e)}),this.register(function(e){return new wA(e)}),this.register(function(e){return new MA(e)}),this.register(function(e){return new pA(e)}),this.register(function(e){return new RA(e)}),this.register(function(e){return new DA(e)})}load(e,t,n,i){const r=this;let a;if(""!==this.resourcePath)a=this.resourcePath;else if(""!==this.path){const t=Qc.extractUrlBase(e);a=Qc.resolveURL(t,this.path)}else a=Qc.extractUrlBase(e);this.manager.itemStart(e);const o=function(t){i?i(t):console.error(t),r.manager.itemError(e),r.manager.itemEnd(e)},s=new fc(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(n){try{r.parse(n,a,function(n){t(n),r.manager.itemEnd(e)},o)}catch(e){o(e)}},n,o)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,n,i){let r;const a={},o={},s=new TextDecoder;if("string"==typeof e)r=JSON.parse(e);else if(e instanceof ArrayBuffer)if(s.decode(new Uint8Array(e,0,4))===QA){try{a[dA.KHR_BINARY_GLTF]=new LA(e)}catch(e){return void(i&&i(e))}r=JSON.parse(a[dA.KHR_BINARY_GLTF].content)}else r=JSON.parse(s.decode(e));else r=e;if(void 0===r.asset||r.asset.version[0]<2)return void(i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const l=new iu(r,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e<this.pluginCallbacks.length;e++){const t=this.pluginCallbacks[e](l);t.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),o[t.name]=t,a[t.name]=!0}if(r.extensionsUsed)for(let e=0;e<r.extensionsUsed.length;++e){const t=r.extensionsUsed[e],n=r.extensionsRequired||[];switch(t){case dA.KHR_MATERIALS_UNLIT:a[t]=new fA;break;case dA.KHR_DRACO_MESH_COMPRESSION:a[t]=new UA(r,this.dracoLoader);break;case dA.KHR_TEXTURE_TRANSFORM:a[t]=new PA;break;case dA.KHR_MESH_QUANTIZATION:a[t]=new NA;break;default:n.indexOf(t)>=0&&void 0===o[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}l.setExtensions(a),l.setPlugins(o),l.parse(n,i)}parseAsync(e,t){const n=this;return new Promise(function(i,r){n.parse(e,t,i,r)})}}function uA(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const dA={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing",DEEPAR_MATERIALS_DIAMOND:"DEEPAR_materials_diamond"};class pA{constructor(e){this.parser=e,this.name=dA.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let n=0,i=t.length;n<i;n++){const i=t[n];i.extensions&&i.extensions[this.name]&&void 0!==i.extensions[this.name].light&&e._addNodeRef(this.cache,i.extensions[this.name].light)}}_loadLight(e){const t=this.parser,n="light:"+e;let i=t.cache.get(n);if(i)return i;const r=t.json,a=((r.extensions&&r.extensions[this.name]||{}).lights||[])[e];let o;const s=new Xi(16777215);void 0!==a.color&&s.setRGB(a.color[0],a.color[1],a.color[2],_t);const l=void 0!==a.range?a.range:0;switch(a.type){case"directional":o=new Dc(s),o.target.position.set(0,0,-1),o.add(o.target);break;case"point":o=new Tc(s),o.distance=l;break;case"spot":o=new yc(s),o.distance=l,a.spot=a.spot||{},a.spot.innerConeAngle=void 0!==a.spot.innerConeAngle?a.spot.innerConeAngle:0,a.spot.outerConeAngle=void 0!==a.spot.outerConeAngle?a.spot.outerConeAngle:Math.PI/4,o.angle=a.spot.outerConeAngle,o.penumbra=1-a.spot.innerConeAngle/a.spot.outerConeAngle,o.target.position.set(0,0,-1),o.add(o.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+a.type)}return o.position.set(0,0,0),o.decay=2,JA(o,a),void 0!==a.intensity&&(o.intensity=a.intensity),o.name=t.createUniqueName(a.name||"light_"+e),i=Promise.resolve(o),t.cache.add(n,i),i}getDependency(e,t){if("light"===e)return this._loadLight(t)}createNodeAttachment(e){const t=this,n=this.parser,i=n.json.nodes[e],r=(i.extensions&&i.extensions[this.name]||{}).light;return void 0===r?null:this._loadLight(r).then(function(e){return n._getNodeRef(t.cache,r,e)})}}class fA{constructor(){this.name=dA.KHR_MATERIALS_UNLIT}getMaterialType(){return $i}extendParams(e,t,n){const i=[];e.color=new Xi(1,1,1),e.opacity=1;const r=t.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){const t=r.baseColorFactor;e.color.setRGB(t[0],t[1],t[2],_t),e.opacity=t[3]}void 0!==r.baseColorTexture&&i.push(n.assignTexture(e,"map",r.baseColorTexture,Ct))}return Promise.all(i)}}class gA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name].emissiveStrength;return void 0!==i&&(t.emissiveIntensity=i),Promise.resolve()}}class mA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];if(void 0!==a.clearcoatFactor&&(t.clearcoat=a.clearcoatFactor),void 0!==a.clearcoatTexture&&r.push(n.assignTexture(t,"clearcoatMap",a.clearcoatTexture)),void 0!==a.clearcoatRoughnessFactor&&(t.clearcoatRoughness=a.clearcoatRoughnessFactor),void 0!==a.clearcoatRoughnessTexture&&r.push(n.assignTexture(t,"clearcoatRoughnessMap",a.clearcoatRoughnessTexture)),void 0!==a.clearcoatNormalTexture&&(r.push(n.assignTexture(t,"clearcoatNormalMap",a.clearcoatNormalTexture)),void 0!==a.clearcoatNormalTexture.scale)){const e=a.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new tn(e,e)}return Promise.all(r)}}class vA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_DISPERSION}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return t.dispersion=void 0!==i.dispersion?i.dispersion:0,Promise.resolve()}}class EA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.iridescenceFactor&&(t.iridescence=a.iridescenceFactor),void 0!==a.iridescenceTexture&&r.push(n.assignTexture(t,"iridescenceMap",a.iridescenceTexture)),void 0!==a.iridescenceIor&&(t.iridescenceIOR=a.iridescenceIor),void 0===t.iridescenceThicknessRange&&(t.iridescenceThicknessRange=[100,400]),void 0!==a.iridescenceThicknessMinimum&&(t.iridescenceThicknessRange[0]=a.iridescenceThicknessMinimum),void 0!==a.iridescenceThicknessMaximum&&(t.iridescenceThicknessRange[1]=a.iridescenceThicknessMaximum),void 0!==a.iridescenceThicknessTexture&&r.push(n.assignTexture(t,"iridescenceThicknessMap",a.iridescenceThicknessTexture)),Promise.all(r)}}class bA{constructor(e){this.parser=e,this.name=dA.DEEPAR_MATERIALS_DIAMOND}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?js:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();t.envMapIntensity=1,t.envMapRotation=0,t.rIndexDelta=.012,t.squashFactor=.98,t.geometryFactor=.5,t.gammaFactor=1,t.absorptionFactor=1,t.reflectivity=.5,t.diamondOrientedEnvMap=0,t.boostFactors=new Tn(1,1,1),t.fixedEnvMapDirection=!1,t.rayBounces=5,t.defines={RAY_BOUNCES:5};const i=n.extensions[this.name];if(void 0!==i.envMapIntensity&&(t.envMapIntensity=i.envMapIntensity),void 0!==i.envMapRotationOffset&&(t.envMapRotation=i.envMapRotationOffset),void 0!==i.dispersion&&(t.rIndexDelta=i.dispersion),void 0!==i.squashFactor&&(t.squashFactor=i.squashFactor),void 0!==i.geometryFactor&&(t.geometryFactor=i.geometryFactor),void 0!==i.gammaFactor&&(t.gammaFactor=i.gammaFactor),void 0!==i.absorptionFactor&&(t.absorptionFactor=i.absorptionFactor),void 0!==i.reflectivity&&(t.reflectivity=i.reflectivity),void 0!==i.diamondOrientedEnvMap&&(t.diamondOrientedEnvMap=i.diamondOrientedEnvMap),void 0!==i.boostFactors){const e=i.boostFactors;t.boostFactors.set(e[0],e[1],e[2])}return void 0!==i.fixedEnvMapDirection&&(t.fixedEnvMapDirection=i.fixedEnvMapDirection),void 0!==i.rayBounces&&(t.rayBounces=i.rayBounces,t.defines={RAY_BOUNCES:i.rayBounces}),Promise.resolve()}}class CA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_SHEEN}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[];t.sheenColor=new Xi(0,0,0),t.sheenRoughness=0,t.sheen=1;const a=i.extensions[this.name];if(void 0!==a.sheenColorFactor){const e=a.sheenColorFactor;t.sheenColor.setRGB(e[0],e[1],e[2],_t)}return void 0!==a.sheenRoughnessFactor&&(t.sheenRoughness=a.sheenRoughnessFactor),void 0!==a.sheenColorTexture&&r.push(n.assignTexture(t,"sheenColorMap",a.sheenColorTexture,Ct)),void 0!==a.sheenRoughnessTexture&&r.push(n.assignTexture(t,"sheenRoughnessMap",a.sheenRoughnessTexture)),Promise.all(r)}}class _A{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.transmissionFactor&&(t.transmission=a.transmissionFactor),void 0!==a.transmissionTexture&&r.push(n.assignTexture(t,"transmissionMap",a.transmissionTexture)),Promise.all(r)}}class IA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_VOLUME}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];t.thickness=void 0!==a.thicknessFactor?a.thicknessFactor:0,void 0!==a.thicknessTexture&&r.push(n.assignTexture(t,"thicknessMap",a.thicknessTexture)),t.attenuationDistance=a.attenuationDistance||1/0;const o=a.attenuationColor||[1,1,1];return t.attenuationColor=(new Xi).setRGB(o[0],o[1],o[2],_t),Promise.all(r)}}class xA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_IOR}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return t.ior=void 0!==i.ior?i.ior:1.5,Promise.resolve()}}class yA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_SPECULAR}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];t.specularIntensity=void 0!==a.specularFactor?a.specularFactor:1,void 0!==a.specularTexture&&r.push(n.assignTexture(t,"specularIntensityMap",a.specularTexture));const o=a.specularColorFactor||[1,1,1];return t.specularColor=(new Xi).setRGB(o[0],o[1],o[2],_t),void 0!==a.specularColorTexture&&r.push(n.assignTexture(t,"specularColorMap",a.specularColorTexture,Ct)),Promise.all(r)}}class MA{constructor(e){this.parser=e,this.name=dA.EXT_MATERIALS_BUMP}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return t.bumpScale=void 0!==a.bumpFactor?a.bumpFactor:1,void 0!==a.bumpTexture&&r.push(n.assignTexture(t,"bumpMap",a.bumpTexture)),Promise.all(r)}}class wA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.anisotropyStrength&&(t.anisotropy=a.anisotropyStrength),void 0!==a.anisotropyRotation&&(t.anisotropyRotation=a.anisotropyRotation),void 0!==a.anisotropyTexture&&r.push(n.assignTexture(t,"anisotropyMap",a.anisotropyTexture)),Promise.all(r)}}class SA{constructor(e){this.parser=e,this.name=dA.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,n=t.json,i=n.textures[e];if(!i.extensions||!i.extensions[this.name])return null;const r=i.extensions[this.name],a=t.options.ktx2Loader;if(!a){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,r.source,a)}}class BA{constructor(e){this.parser=e,this.name=dA.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,i=n.json,r=i.textures[e];if(!r.extensions||!r.extensions[t])return null;const a=r.extensions[t],o=i.images[a.source];let s=n.textureLoader;if(o.uri){const e=n.options.manager.getHandler(o.uri);null!==e&&(s=e)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(e,a.source,s);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return n.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class TA{constructor(e){this.parser=e,this.name=dA.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,i=n.json,r=i.textures[e];if(!r.extensions||!r.extensions[t])return null;const a=r.extensions[t],o=i.images[a.source];let s=n.textureLoader;if(o.uri){const e=n.options.manager.getHandler(o.uri);null!==e&&(s=e)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(e,a.source,s);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return n.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class RA{constructor(e){this.name=dA.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){const e=n.extensions[this.name],i=this.parser.getDependency("buffer",e.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then(function(t){const n=e.byteOffset||0,i=e.byteLength||0,a=e.count,o=e.byteStride,s=new Uint8Array(t,n,i);return r.decodeGltfBufferAsync?r.decodeGltfBufferAsync(a,o,s,e.mode,e.filter).then(function(e){return e.buffer}):r.ready.then(function(){const t=new ArrayBuffer(a*o);return r.decodeGltfBuffer(new Uint8Array(t),a,o,s,e.mode,e.filter),t})})}return null}}class DA{constructor(e){this.name=dA.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||void 0===n.mesh)return null;const i=t.meshes[n.mesh];for(const e of i.primitives)if(e.mode!==GA.TRIANGLES&&e.mode!==GA.TRIANGLE_STRIP&&e.mode!==GA.TRIANGLE_FAN&&void 0!==e.mode)return null;const r=n.extensions[this.name].attributes,a=[],o={};for(const e in r)a.push(this.parser.getDependency("accessor",r[e]).then(t=>(o[e]=t,o[e])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(e=>{const t=e.pop(),n=t.isGroup?t.children:[t],i=e[0].count,r=[];for(const e of n){const t=new oi,n=new Tn,a=new Bn,s=new Tn(1,1,1),l=new Il(e.geometry,e.material,i);for(let e=0;e<i;e++)o.TRANSLATION&&n.fromBufferAttribute(o.TRANSLATION,e),o.ROTATION&&a.fromBufferAttribute(o.ROTATION,e),o.SCALE&&s.fromBufferAttribute(o.SCALE,e),l.setMatrixAt(e,t.compose(n,a,s));for(const t in o)if("_COLOR_0"===t){const e=o[t];l.instanceColor=new fl(e.array,e.itemSize,e.normalized)}else"TRANSLATION"!==t&&"ROTATION"!==t&&"SCALE"!==t&&e.geometry.setAttribute(t,o[t]);Qi.prototype.copy.call(l,e),this.parser.assignFinalMaterial(l),r.push(l)}return t.isGroup?(t.clear(),t.add(...r),t):r[0]}))}}const QA="glTF";class LA{constructor(e){this.name=dA.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12),n=new TextDecoder;if(this.header={magic:n.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==QA)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const i=this.header.length-12,r=new DataView(e,12);let a=0;for(;a<i;){const t=r.getUint32(a,!0);a+=4;const i=r.getUint32(a,!0);if(a+=4,1313821514===i){const i=new Uint8Array(e,12+a,t);this.content=n.decode(i)}else if(5130562===i){const n=12+a;this.body=e.slice(n,n+t)}a+=t}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class UA{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=dA.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){const n=this.json,i=this.dracoLoader,r=e.extensions[this.name].bufferView,a=e.extensions[this.name].attributes,o={},s={},l={};for(const e in a){const t=qA[e]||e.toLowerCase();o[t]=a[e]}for(const t in e.attributes){const i=qA[t]||t.toLowerCase();if(void 0!==a[t]){const r=n.accessors[e.attributes[t]],a=HA[r.componentType];l[i]=a.name,s[i]=!0===r.normalized}}return t.getDependency("bufferView",r).then(function(e){return new Promise(function(t,n){i.decodeDracoFile(e,function(e){for(const t in e.attributes){const n=e.attributes[t],i=s[t];void 0!==i&&(n.normalized=i)}t(e)},o,l,_t,n)})})}}class PA{constructor(){this.name=dA.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return void 0!==t.texCoord&&t.texCoord!==e.channel||void 0!==t.offset||void 0!==t.rotation||void 0!==t.scale?(e=e.clone(),void 0!==t.texCoord&&(e.channel=t.texCoord),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0,e):e}}class NA{constructor(){this.name=dA.KHR_MESH_QUANTIZATION}}class FA extends Kl{constructor(e,t,n,i){super(e,t,n,i)}copySampleValue_(e){const t=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=e*i*3+i;for(let e=0;e!==i;e++)t[e]=n[r+e];return t}interpolate_(e,t,n,i){const r=this.resultBuffer,a=this.sampleValues,o=this.valueSize,s=2*o,l=3*o,c=i-t,h=(n-t)/c,A=h*h,u=A*h,d=e*l,p=d-l,f=-2*u+3*A,g=u-A,m=1-f,v=g-A+h;for(let e=0;e!==o;e++){const t=a[p+e+o],n=a[p+e+s]*c,i=a[d+e+o],l=a[d+e]*c;r[e]=m*t+v*n+f*i+g*l}return r}}const OA=new Bn;class kA extends FA{interpolate_(e,t,n,i){const r=super.interpolate_(e,t,n,i);return OA.fromArray(r).normalize().toArray(r),r}}const GA={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},HA={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},zA={9728:He,9729:We,9984:1004,9985:qe,9986:Ve,9987:je},VA={33071:ke,33648:Ge,10497:Oe},WA={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},qA={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},jA={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},YA={CUBICSPLINE:void 0,LINEAR:vt,STEP:mt};function XA(e){return void 0===e.DefaultMaterial&&(e.DefaultMaterial=new Vs({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),e.DefaultMaterial}function KA(e,t,n){for(const i in n.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=n.extensions[i])}function JA(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function ZA(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let n=0,i=t.weights.length;n<i;n++)e.morphTargetInfluences[n]=t.weights[n];if(t.extras&&Array.isArray(t.extras.targetNames)){const n=t.extras.targetNames;if(e.morphTargetInfluences.length===n.length){e.morphTargetDictionary={};for(let t=0,i=n.length;t<i;t++)e.morphTargetDictionary[n[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function $A(e){let t;const n=e.extensions&&e.extensions[dA.KHR_DRACO_MESH_COMPRESSION];if(t=n?"draco:"+n.bufferView+":"+n.indices+":"+eu(n.attributes):e.indices+":"+eu(e.attributes)+":"+e.mode,void 0!==e.targets)for(let n=0,i=e.targets.length;n<i;n++)t+=":"+eu(e.targets[n]);return t}function eu(e){let t="";const n=Object.keys(e).sort();for(let i=0,r=n.length;i<r;i++)t+=n[i]+":"+e[n[i]]+";";return t}function tu(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const nu=new oi;class iu{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new uA,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,i=!1,r=-1;"undefined"!=typeof navigator&&(n=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),i=navigator.userAgent.indexOf("Firefox")>-1,r=i?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||n||i&&r<98?this.textureLoader=new vc(this.options.manager):this.textureLoader=new Lc(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new fc(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const n=this,i=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([n.getDependencies("scene"),n.getDependencies("animation"),n.getDependencies("camera")])}).then(function(t){const a={scene:t[0][i.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:i.asset,parser:n,userData:{}};return KA(r,a,i),JA(a,i),Promise.all(n._invokeAll(function(e){return e.afterRoot&&e.afterRoot(a)})).then(function(){for(const e of a.scenes)e.updateMatrixWorld();e(a)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let n=0,i=t.length;n<i;n++){const i=t[n].joints;for(let t=0,n=i.length;t<n;t++)e[i[t]].isBone=!0}for(let t=0,i=e.length;t<i;t++){const i=e[t];void 0!==i.mesh&&(this._addNodeRef(this.meshCache,i.mesh),void 0!==i.skin&&(n[i.mesh].isSkinnedMesh=!0)),void 0!==i.camera&&this._addNodeRef(this.cameraCache,i.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,n){if(e.refs[t]<=1)return n;const i=n.clone(),r=(e,t)=>{const n=this.associations.get(e);null!=n&&this.associations.set(t,n);for(const[n,i]of e.children.entries())r(i,t.children[n])};return r(n,i),i.name+="_instance_"+e.uses[t]++,i}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let n=0;n<t.length;n++){const i=e(t[n]);if(i)return i}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const n=[];for(let i=0;i<t.length;i++){const r=e(t[i]);r&&n.push(r)}return n}getDependency(e,t){const n=e+":"+t;let i=this.cache.get(n);if(!i){switch(e){case"scene":i=this.loadScene(t);break;case"node":i=this._invokeOne(function(e){return e.loadNode&&e.loadNode(t)});break;case"mesh":i=this._invokeOne(function(e){return e.loadMesh&&e.loadMesh(t)});break;case"accessor":i=this.loadAccessor(t);break;case"bufferView":i=this._invokeOne(function(e){return e.loadBufferView&&e.loadBufferView(t)});break;case"buffer":i=this.loadBuffer(t);break;case"material":i=this._invokeOne(function(e){return e.loadMaterial&&e.loadMaterial(t)});break;case"texture":i=this._invokeOne(function(e){return e.loadTexture&&e.loadTexture(t)});break;case"skin":i=this.loadSkin(t);break;case"animation":i=this._invokeOne(function(e){return e.loadAnimation&&e.loadAnimation(t)});break;case"camera":i=this.loadCamera(t);break;default:if(i=this._invokeOne(function(n){return n!=this&&n.getDependency&&n.getDependency(e,t)}),!i)throw new Error("Unknown type: "+e)}this.cache.add(n,i)}return i}getDependencies(e){let t=this.cache.get(e);if(!t){const n=this,i=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(i.map(function(t,i){return n.getDependency(e,i)})),this.cache.add(e,t)}return t}loadBuffer(e){const t=this.json.buffers[e],n=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[dA.KHR_BINARY_GLTF].body);const i=this.options;return new Promise(function(e,r){n.load(Qc.resolveURL(t.uri,i.path),e,void 0,function(){r(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(e){const n=t.byteLength||0,i=t.byteOffset||0;return e.slice(i,i+n)})}loadAccessor(e){const t=this,n=this.json,i=this.json.accessors[e];if(void 0===i.bufferView&&void 0===i.sparse){const e=WA[i.type],t=HA[i.componentType],n=!0===i.normalized,r=new t(i.count*e);return Promise.resolve(new rr(r,e,n))}const r=[];return void 0!==i.bufferView?r.push(this.getDependency("bufferView",i.bufferView)):r.push(null),void 0!==i.sparse&&(r.push(this.getDependency("bufferView",i.sparse.indices.bufferView)),r.push(this.getDependency("bufferView",i.sparse.values.bufferView))),Promise.all(r).then(function(e){const r=e[0],a=WA[i.type],o=HA[i.componentType],s=o.BYTES_PER_ELEMENT,l=s*a,c=i.byteOffset||0,h=void 0!==i.bufferView?n.bufferViews[i.bufferView].byteStride:void 0,A=!0===i.normalized;let u,d;if(h&&h!==l){const e=Math.floor(c/h),n="InterleavedBuffer:"+i.bufferView+":"+i.componentType+":"+e+":"+i.count;let l=t.cache.get(n);l||(u=new o(r,e*h,i.count*h/s),l=new Js(u,h/s),t.cache.add(n,l)),d=new $s(l,a,c%h/s,A)}else u=null===r?new o(i.count*a):new o(r,c,i.count*a),d=new rr(u,a,A);if(void 0!==i.sparse){const t=WA.SCALAR,n=HA[i.sparse.indices.componentType],s=i.sparse.indices.byteOffset||0,l=i.sparse.values.byteOffset||0,c=new n(e[1],s,i.sparse.count*t),h=new o(e[2],l,i.sparse.count*a);null!==r&&(d=new rr(d.array.slice(),d.itemSize,d.normalized));for(let e=0,t=c.length;e<t;e++){const t=c[e];if(d.setX(t,h[e*a]),a>=2&&d.setY(t,h[e*a+1]),a>=3&&d.setZ(t,h[e*a+2]),a>=4&&d.setW(t,h[e*a+3]),a>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return d})}loadTexture(e){const t=this.json,n=this.options,i=t.textures[e].source,r=t.images[i];let a=this.textureLoader;if(r.uri){const e=n.manager.getHandler(r.uri);null!==e&&(a=e)}return this.loadTextureImage(e,i,a)}loadTextureImage(e,t,n){const i=this,r=this.json,a=r.textures[e],o=r.images[t],s=(o.uri||o.bufferView)+":"+a.sampler;if(this.textureCache[s])return this.textureCache[s];const l=this.loadImageSource(t,n).then(function(t){t.flipY=!1,t.name=a.name||o.name||"",""===t.name&&"string"==typeof o.uri&&!1===o.uri.startsWith("data:image/")&&(t.name=o.uri);const n=(r.samplers||{})[a.sampler]||{};return t.magFilter=zA[n.magFilter]||We,t.minFilter=zA[n.minFilter]||je,t.wrapS=VA[n.wrapS]||Oe,t.wrapT=VA[n.wrapT]||Oe,i.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[s]=l,l}loadImageSource(e,t){const n=this.json,i=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(e=>e.clone());const r=n.images[e],a=self.URL||self.webkitURL;let o=r.uri||"",s=!1;if(void 0!==r.bufferView)o=this.getDependency("bufferView",r.bufferView).then(function(e){s=!0;const t=new Blob([e],{type:r.mimeType});return o=a.createObjectURL(t),o});else if(void 0===r.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const l=Promise.resolve(o).then(function(e){return new Promise(function(n,r){let a=n;!0===t.isImageBitmapLoader&&(a=function(e){const t=new In(e);t.needsUpdate=!0,n(t)}),t.load(Qc.resolveURL(e,i.path),a,void 0,r)})}).then(function(e){var t;return!0===s&&a.revokeObjectURL(o),JA(e,r),e.userData.mimeType=r.mimeType||((t=r.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),e});return this.sourceCache[e]=l,l}assignTexture(e,t,n,i){const r=this;return this.getDependency("texture",n.index).then(function(a){if(!a)return null;if(void 0!==n.texCoord&&n.texCoord>0&&((a=a.clone()).channel=n.texCoord),r.extensions[dA.KHR_TEXTURE_TRANSFORM]){const e=void 0!==n.extensions?n.extensions[dA.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=r.associations.get(a);a=r.extensions[dA.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),r.associations.set(a,t)}}return void 0!==i&&(a.colorSpace=i),e[t]=a,a})}assignFinalMaterial(e){const t=e.geometry;let n=e.material;const i=void 0===t.attributes.tangent,r=void 0!==t.attributes.color,a=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new zs,Zi.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){const e="LineBasicMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new qs,Zi.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(i||r||a){let e="ClonedMaterial:"+n.uuid+":";i&&(e+="derivative-tangents:"),r&&(e+="vertex-colors:"),a&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=n.clone(),r&&(t.vertexColors=!0),a&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return Vs}loadMaterial(e){const t=this,n=this.json,i=this.extensions,r=n.materials[e];let a;const o={},s=[];if((r.extensions||{})[dA.KHR_MATERIALS_UNLIT]){const e=i[dA.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),s.push(e.extendParams(o,r,t))}else{const n=r.pbrMetallicRoughness||{};if(o.color=new Xi(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){const e=n.baseColorFactor;o.color.setRGB(e[0],e[1],e[2],_t),o.opacity=e[3]}void 0!==n.baseColorTexture&&s.push(t.assignTexture(o,"map",n.baseColorTexture,Ct)),o.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,o.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(s.push(t.assignTexture(o,"metalnessMap",n.metallicRoughnessTexture)),s.push(t.assignTexture(o,"roughnessMap",n.metallicRoughnessTexture))),a=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),s.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)})))}!0===r.doubleSided&&(o.side=2);const l=r.alphaMode||"OPAQUE";if("BLEND"===l?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,"MASK"===l&&(o.alphaTest=void 0!==r.alphaCutoff?r.alphaCutoff:.5)),void 0!==r.normalTexture&&a!==$i&&(s.push(t.assignTexture(o,"normalMap",r.normalTexture)),o.normalScale=new tn(1,1),void 0!==r.normalTexture.scale)){const e=r.normalTexture.scale;o.normalScale.set(e,e)}if(void 0!==r.occlusionTexture&&a!==$i&&(s.push(t.assignTexture(o,"aoMap",r.occlusionTexture)),void 0!==r.occlusionTexture.strength&&(o.aoMapIntensity=r.occlusionTexture.strength)),void 0!==r.emissiveFactor&&a!==$i){const e=r.emissiveFactor;o.emissive=(new Xi).setRGB(e[0],e[1],e[2],_t)}return void 0!==r.emissiveTexture&&a!==$i&&s.push(t.assignTexture(o,"emissiveMap",r.emissiveTexture,Ct)),Promise.all(s).then(function(){const n=new a(o);return r.name&&(n.name=r.name),JA(n,r),t.associations.set(n,{materials:e}),r.extensions&&KA(i,n,r),n})}createUniqueName(e){const t=zc.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,n=this.extensions,i=this.primitiveCache;function r(e){return n[dA.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(n){return ru(n,e,t)})}const a=[];for(let n=0,o=e.length;n<o;n++){const o=e[n],s=$A(o),l=i[s];if(l)a.push(l.promise);else{let e;e=o.extensions&&o.extensions[dA.KHR_DRACO_MESH_COMPRESSION]?r(o):ru(new fr,o,t),i[s]={primitive:o,promise:e},a.push(e)}}return Promise.all(a)}loadMesh(e){const t=this,n=this.json,i=this.extensions,r=n.meshes[e],a=r.primitives,o=[];for(let e=0,t=a.length;e<t;e++){const t=void 0===a[e].material?XA(this.cache):this.getDependency("material",a[e].material);o.push(t)}return o.push(t.loadGeometries(a)),Promise.all(o).then(function(n){const o=n.slice(0,n.length-1),s=n[n.length-1],l=[];for(let n=0,c=s.length;n<c;n++){const c=s[n],h=a[n];let A;const u=o[n];if(h.mode===GA.TRIANGLES||h.mode===GA.TRIANGLE_STRIP||h.mode===GA.TRIANGLE_FAN||void 0===h.mode)A=!0===r.isSkinnedMesh?new cl(c,u):new Qr(c,u),!0===A.isSkinnedMesh&&A.normalizeSkinWeights(),h.mode===GA.TRIANGLE_STRIP?A.geometry=hA(A.geometry,1):h.mode===GA.TRIANGLE_FAN&&(A.geometry=hA(A.geometry,2));else if(h.mode===GA.LINES)A=new Ul(c,u);else if(h.mode===GA.LINE_STRIP)A=new Rl(c,u);else if(h.mode===GA.LINE_LOOP)A=new Pl(c,u);else{if(h.mode!==GA.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+h.mode);A=new Gl(c,u)}Object.keys(A.geometry.morphAttributes).length>0&&ZA(A,r),A.name=t.createUniqueName(r.name||"mesh_"+e),JA(A,r),h.extensions&&KA(i,A,h),t.assignFinalMaterial(A),A.computeOffsets(),l.push(A)}for(let n=0,i=l.length;n<i;n++)t.associations.set(l[n],{meshes:e,primitives:n});if(1===l.length)return r.extensions&&KA(i,l[0],r),l[0];const c=new Qs;r.extensions&&KA(i,c,r),t.associations.set(c,{meshes:e});for(let e=0,t=l.length;e<t;e++)c.add(l[e]);return c})}loadCamera(e){let t;const n=this.json.cameras[e],i=n[n.type];if(i)return"perspective"===n.type?t=new Wr(en(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):"orthographic"===n.type&&(t=new va(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),n.name&&(t.name=this.createUniqueName(n.name)),JA(t,n),Promise.resolve(t);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){const t=this.json.skins[e],n=[];for(let e=0,i=t.joints.length;e<i;e++)n.push(this._loadNodeShallow(t.joints[e]));return void 0!==t.inverseBindMatrices?n.push(this.getDependency("accessor",t.inverseBindMatrices)):n.push(null),Promise.all(n).then(function(e){const n=e.pop(),i=e,r=[],a=[];for(let e=0,o=i.length;e<o;e++){const o=i[e];if(o){r.push(o);const t=new oi;null!==n&&t.fromArray(n.array,16*e),a.push(t)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[e])}return new pl(r,a)})}loadAnimation(e){const t=this.json,n=this,i=t.animations[e],r=i.name?i.name:"animation_"+e,a=[],o=[],s=[],l=[],c=[];for(let e=0,t=i.channels.length;e<t;e++){const t=i.channels[e],n=i.samplers[t.sampler],r=t.target,h=r.node,A=void 0!==i.parameters?i.parameters[n.input]:n.input,u=void 0!==i.parameters?i.parameters[n.output]:n.output;void 0!==r.node&&(a.push(this.getDependency("node",h)),o.push(this.getDependency("accessor",A)),s.push(this.getDependency("accessor",u)),l.push(n),c.push(r))}return Promise.all([Promise.all(a),Promise.all(o),Promise.all(s),Promise.all(l),Promise.all(c)]).then(function(e){const t=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=[];for(let e=0,r=t.length;e<r;e++){const r=t[e],c=i[e],h=a[e],A=o[e],u=s[e];if(void 0===r)continue;r.updateMatrix&&r.updateMatrix();const d=n._createAnimationTracks(r,c,h,A,u);if(d)for(let e=0;e<d.length;e++)l.push(d[e])}return new lc(r,void 0,l)})}createNodeMesh(e){const t=this.json,n=this,i=t.nodes[e];return void 0===i.mesh?null:n.getDependency("mesh",i.mesh).then(function(e){const t=n._getNodeRef(n.meshCache,i.mesh,e);return void 0!==i.weights&&t.traverse(function(e){if(e.isMesh)for(let t=0,n=i.weights.length;t<n;t++)e.morphTargetInfluences[t]=i.weights[t]}),t})}loadNode(e){const t=this,n=this.json.nodes[e],i=t._loadNodeShallow(e),r=[],a=n.children||[];for(let e=0,n=a.length;e<n;e++)r.push(t.getDependency("node",a[e]));const o=void 0===n.skin?Promise.resolve(null):t.getDependency("skin",n.skin);return Promise.all([i,Promise.all(r),o]).then(function(e){const t=e[0],n=e[1],i=e[2];null!==i&&t.traverse(function(e){e.isSkinnedMesh&&e.bind(i,nu)});for(let e=0,i=n.length;e<i;e++)t.add(n[e]);return t})}_loadNodeShallow(e){const t=this.json,n=this.extensions,i=this;if(void 0!==this.nodeCache[e])return this.nodeCache[e];const r=t.nodes[e],a=r.name?i.createUniqueName(r.name):"",o=[],s=i._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(e)});return s&&o.push(s),void 0!==r.camera&&o.push(i.getDependency("camera",r.camera).then(function(e){return i._getNodeRef(i.cameraCache,r.camera,e)})),i._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)}).forEach(function(e){o.push(e)}),this.nodeCache[e]=Promise.all(o).then(function(t){let o;if(o=!0===r.isBone?new hl:t.length>1?new Qs:1===t.length?t[0]:new Qi,o!==t[0])for(let e=0,n=t.length;e<n;e++)o.add(t[e]);if(r.name&&(o.userData.name=r.name,o.name=a),JA(o,r),r.extensions&&KA(n,o,r),void 0!==r.matrix){const e=new oi;e.fromArray(r.matrix),o.applyMatrix4(e)}else void 0!==r.translation&&o.position.fromArray(r.translation),void 0!==r.rotation&&o.quaternion.fromArray(r.rotation),void 0!==r.scale&&o.scale.fromArray(r.scale);return i.associations.has(o)||i.associations.set(o,{}),i.associations.get(o).nodes=e,o}),this.nodeCache[e]}loadScene(e){const t=this.extensions,n=this.json.scenes[e],i=this,r=new Qs;n.name&&(r.name=i.createUniqueName(n.name)),JA(r,n),n.extensions&&KA(t,r,n);const a=n.nodes||[],o=[];for(let e=0,t=a.length;e<t;e++)o.push(i.getDependency("node",a[e]));return Promise.all(o).then(function(e){for(let t=0,n=e.length;t<n;t++)r.add(e[t]);return i.associations=(e=>{const t=new Map;for(const[e,n]of i.associations)(e instanceof Zi||e instanceof In)&&t.set(e,n);return e.traverse(e=>{const n=i.associations.get(e);null!=n&&t.set(e,n)}),t})(r),r.userData.isDiamondScene=i._sceneContainsDiamondMaterial(r),r})}_sceneContainsDiamondMaterial(e){let t=!1;return e.traverse(e=>{e.material&&e.material.isMeshDiamondMaterial&&(t=!0)}),t}_createAnimationTracks(e,t,n,i,r){const a=[],o=e.name?e.name:e.uuid,s=[];let l;switch(jA[r.path]===jA.weights?e.traverse(function(e){e.morphTargetInfluences&&s.push(e.name?e.name:e.uuid)}):s.push(o),jA[r.path]){case jA.weights:l=ic;break;case jA.rotation:l=ac;break;case jA.position:case jA.scale:l=sc;break;default:l=1===n.itemSize?ic:sc}const c=void 0!==i.interpolation?YA[i.interpolation]:vt,h=this._getArrayFromAccessor(n);for(let e=0,n=s.length;e<n;e++){const n=new l(s[e]+"."+jA[r.path],t.array,h,c);"CUBICSPLINE"===i.interpolation&&this._createCubicSplineTrackInterpolant(n),a.push(n)}return a}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){const e=tu(t.constructor),n=new Float32Array(t.length);for(let i=0,r=t.length;i<r;i++)n[i]=t[i]*e;t=n}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(e){return new(this instanceof ac?kA:FA)(this.times,this.values,this.getValueSize()/3,e)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function ru(e,t,n){const i=t.attributes,r=[];function a(t,i){return n.getDependency("accessor",t).then(function(t){e.setAttribute(i,t)})}for(const t in i){const n=qA[t]||t.toLowerCase();n in e.attributes||r.push(a(i[t],n))}if(void 0!==t.indices&&!e.index){const i=n.getDependency("accessor",t.indices).then(function(t){e.setIndex(t)});r.push(i)}return pn.workingColorSpace!==_t&&"COLOR_0"in i&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${pn.workingColorSpace}" not supported.`),JA(e,t),function(e,t,n){const i=t.attributes,r=new Qn;if(void 0===i.POSITION)return;{const e=n.json.accessors[i.POSITION],t=e.min,a=e.max;if(void 0===t||void 0===a)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(r.set(new Tn(t[0],t[1],t[2]),new Tn(a[0],a[1],a[2])),e.normalized){const t=tu(HA[e.componentType]);r.min.multiplyScalar(t),r.max.multiplyScalar(t)}}const a=t.targets;if(void 0!==a){const e=new Tn,t=new Tn;for(let i=0,r=a.length;i<r;i++){const r=a[i];if(void 0!==r.POSITION){const i=n.json.accessors[r.POSITION],a=i.min,o=i.max;if(void 0!==a&&void 0!==o){if(t.setX(Math.max(Math.abs(a[0]),Math.abs(o[0]))),t.setY(Math.max(Math.abs(a[1]),Math.abs(o[1]))),t.setZ(Math.max(Math.abs(a[2]),Math.abs(o[2]))),i.normalized){const e=tu(HA[i.componentType]);t.multiplyScalar(e)}e.max(t)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}r.expandByVector(e)}e.boundingBox=r;const o=new Jn;r.getCenter(o.center),o.radius=r.min.distanceTo(r.max)/2,e.boundingSphere=o}(e,t,n),Promise.all(r).then(function(){return void 0!==t.targets?function(e,t,n){let i=!1,r=!1,a=!1;for(let e=0,n=t.length;e<n;e++){const n=t[e];if(void 0!==n.POSITION&&(i=!0),void 0!==n.NORMAL&&(r=!0),void 0!==n.COLOR_0&&(a=!0),i&&r&&a)break}if(!i&&!r&&!a)return Promise.resolve(e);const o=[],s=[],l=[];for(let c=0,h=t.length;c<h;c++){const h=t[c];if(i){const t=void 0!==h.POSITION?n.getDependency("accessor",h.POSITION):e.attributes.position;o.push(t)}if(r){const t=void 0!==h.NORMAL?n.getDependency("accessor",h.NORMAL):e.attributes.normal;s.push(t)}if(a){const t=void 0!==h.COLOR_0?n.getDependency("accessor",h.COLOR_0):e.attributes.color;l.push(t)}}return Promise.all([Promise.all(o),Promise.all(s),Promise.all(l)]).then(function(t){const n=t[0],o=t[1],s=t[2];return i&&(e.morphAttributes.position=n),r&&(e.morphAttributes.normal=o),a&&(e.morphAttributes.color=s),e.morphTargetsRelative=!0,e})}(e,t.targets,n):e})}class au{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e<this.pool;e++)if(!(this.workerStatus&1<<e))return e;return-1}_onMessage(e,t){const n=this.workersResolve[e];if(n&&n(t),this.queue.length){const{resolve:t,msg:n,transfer:i}=this.queue.shift();this.workersResolve[e]=t,this.workers[e].postMessage(n,i)}else this.workerStatus^=1<<e}setWorkerCreator(e){this.workerCreator=e}setWorkerLimit(e){this.pool=e}postMessage(e,t){return new Promise(n=>{const i=this._getIdleWorker();-1!==i?(this._initWorker(i),this.workerStatus|=1<<i,this.workersResolve[i]=n,this.workers[i].postMessage(e,t)):this.queue.push({resolve:n,msg:e,transfer:t})})}dispose(){this.workers.forEach(e=>e.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const ou=9,su=15,lu=16,cu=22,hu=37,Au=43,uu=76,du=83,pu=97,fu=100,gu=103,mu=109,vu=165,Eu=166;class bu{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class Cu{constructor(e,t,n,i){this._dataView=new DataView(e.buffer,e.byteOffset+t,n),this._littleEndian=i,this._offset=0}_nextUint8(){const e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){const e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){const e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){const e=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){const e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_skip(e){return this._offset+=e,this}_scan(e,t=0){const n=this._offset;let i=0;for(;this._dataView.getUint8(this._offset)!==t&&i<e;)i++,this._offset++;return i<e&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+n,i)}}const _u=[171,75,84,88,32,50,48,187,13,10,26,10];function Iu(e){return"undefined"!=typeof TextDecoder?(new TextDecoder).decode(e):Buffer.from(e).toString("utf8")}let xu,yu,Mu;const wu={env:{emscripten_notify_memory_growth:function(e){Mu=new Uint8Array(yu.exports.memory.buffer)}}};class Su{init(){return xu||(xu="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+Bu).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,wu)).then(this._init):WebAssembly.instantiate(Buffer.from(Bu,"base64"),wu).then(this._init),xu)}_init(e){yu=e.instance,wu.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!yu)throw new Error("ZSTDDecoder: Await .init() before decoding.");const n=e.byteLength,i=yu.exports.malloc(n);Mu.set(e,i),t=t||Number(yu.exports.ZSTD_findDecompressedSize(i,n));const r=yu.exports.malloc(t),a=yu.exports.ZSTD_decompress(r,t,i,n),o=Mu.slice(r,r+a);return yu.exports.free(i),yu.exports.free(r),o}}const Bu="AGFzbQEAAAABpQEVYAF/AX9gAn9/AGADf39/AX9gBX9/f39/AX9gAX8AYAJ/fwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX5gAn5+AX5gAABgBX9/f39/AGAGf39/f39/AGAIf39/f39/f38AYAl/f39/f39/f38AYAABf2AIf39/f39/f38Bf2ANf39/f39/f39/f39/fwF/YAF/AX4CJwEDZW52H2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgABANpaAEFAAAFAgEFCwACAQABAgIFBQcAAwABDgsBAQcAEhMHAAUBDAQEAAANBwQCAgYCBAgDAwMDBgEACQkHBgICAAYGAgQUBwYGAwIGAAMCAQgBBwUGCgoEEQAEBAEIAwgDBQgDEA8IAAcABAUBcAECAgUEAQCAAgYJAX8BQaCgwAILB2AHBm1lbW9yeQIABm1hbGxvYwAoBGZyZWUAJgxaU1REX2lzRXJyb3IAaBlaU1REX2ZpbmREZWNvbXByZXNzZWRTaXplAFQPWlNURF9kZWNvbXByZXNzAEoGX3N0YXJ0ACQJBwEAQQELASQKussBaA8AIAAgACgCBCABajYCBAsZACAAKAIAIAAoAgRBH3F0QQAgAWtBH3F2CwgAIABBiH9LC34BBH9BAyEBIAAoAgQiA0EgTQRAIAAoAggiASAAKAIQTwRAIAAQDQ8LIAAoAgwiAiABRgRAQQFBAiADQSBJGw8LIAAgASABIAJrIANBA3YiBCABIARrIAJJIgEbIgJrIgQ2AgggACADIAJBA3RrNgIEIAAgBCgAADYCAAsgAQsUAQF/IAAgARACIQIgACABEAEgAgv3AQECfyACRQRAIABCADcCACAAQQA2AhAgAEIANwIIQbh/DwsgACABNgIMIAAgAUEEajYCECACQQRPBEAgACABIAJqIgFBfGoiAzYCCCAAIAMoAAA2AgAgAUF/ai0AACIBBEAgAEEIIAEQFGs2AgQgAg8LIABBADYCBEF/DwsgACABNgIIIAAgAS0AACIDNgIAIAJBfmoiBEEBTQRAIARBAWtFBEAgACABLQACQRB0IANyIgM2AgALIAAgAS0AAUEIdCADajYCAAsgASACakF/ai0AACIBRQRAIABBADYCBEFsDwsgAEEoIAEQFCACQQN0ams2AgQgAgsWACAAIAEpAAA3AAAgACABKQAINwAICy8BAX8gAUECdEGgHWooAgAgACgCAEEgIAEgACgCBGprQR9xdnEhAiAAIAEQASACCyEAIAFCz9bTvtLHq9lCfiAAfEIfiUKHla+vmLbem55/fgsdAQF/IAAoAgggACgCDEYEfyAAKAIEQSBGBUEACwuCBAEDfyACQYDAAE8EQCAAIAEgAhBnIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsMACAAIAEpAAA3AAALQQECfyAAKAIIIgEgACgCEEkEQEEDDwsgACAAKAIEIgJBB3E2AgQgACABIAJBA3ZrIgE2AgggACABKAAANgIAQQALDAAgACABKAIANgAAC/cCAQJ/AkAgACABRg0AAkAgASACaiAASwRAIAAgAmoiBCABSw0BCyAAIAEgAhALDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",Tu=new WeakMap;let Ru,Du=0;class Qu extends uc{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new au,this.workerSourceURL="",this.workerConfig=null,"undefined"!=typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}async detectSupportAsync(e){return this.workerConfig={astcSupported:await e.hasFeatureAsync("texture-compression-astc"),etc1Supported:await e.hasFeatureAsync("texture-compression-etc1"),etc2Supported:await e.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await e.hasFeatureAsync("texture-compression-bc"),bptcSupported:await e.hasFeatureAsync("texture-compression-bptc"),pvrtcSupported:await e.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(e){return!0===e.isWebGPURenderer?this.workerConfig={astcSupported:e.hasFeature("texture-compression-astc"),etc1Supported:e.hasFeature("texture-compression-etc1"),etc2Supported:e.hasFeature("texture-compression-etc2"),dxtSupported:e.hasFeature("texture-compression-bc"),bptcSupported:e.hasFeature("texture-compression-bptc"),pvrtcSupported:e.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const e=new fc(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),n=new fc(this.manager);n.setPath(this.transcoderPath),n.setResponseType("arraybuffer"),n.setWithCredentials(this.withCredentials);const i=n.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([t,i]).then(([e,t])=>{const n=Qu.BasisWorker.toString(),i=["/* constants */","let _EngineFormat = "+JSON.stringify(Qu.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(Qu.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(Qu.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([i])),this.transcoderBinary=t,this.workerPool.setWorkerCreator(()=>{const e=new Worker(this.workerSourceURL),t=this.transcoderBinary.slice(0);return e.postMessage({type:"init",config:this.workerConfig,transcoderBinary:t},[t]),e})}),Du>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),Du++}return this.transcoderPending}load(e,t,n,i){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const r=new fc(this.manager);r.setResponseType("arraybuffer"),r.setWithCredentials(this.withCredentials),r.load(e,e=>{if(Tu.has(e))return Tu.get(e).promise.then(t).catch(i);this._createTexture(e).then(e=>t?t(e):null).catch(i)},n,i)}_createTextureFrom(e,t){const{faces:n,width:i,height:r,format:a,type:o,error:s,dfdFlags:l}=e;if("error"===o)return Promise.reject(s);let c;if(6===t.faceCount)c=new Wl(n,a,Ye);else{const e=n[0].mipmaps;c=t.layerCount>1?new Vl(e,i,r,t.layerCount,a,Ye):new zl(e,i,r,a,Ye)}return c.minFilter=1===n[0].mipmaps.length?We:je,c.magFilter=We,c.generateMipmaps=!1,c.needsUpdate=!0,c.colorSpace=Nu(t),c.premultiplyAlpha=!!(1&l),c}async _createTexture(e,t={}){const n=function(e){const t=new Uint8Array(e.buffer,e.byteOffset,_u.length);if(t[0]!==_u[0]||t[1]!==_u[1]||t[2]!==_u[2]||t[3]!==_u[3]||t[4]!==_u[4]||t[5]!==_u[5]||t[6]!==_u[6]||t[7]!==_u[7]||t[8]!==_u[8]||t[9]!==_u[9]||t[10]!==_u[10]||t[11]!==_u[11])throw new Error("Missing KTX 2.0 identifier.");const n=new bu,i=17*Uint32Array.BYTES_PER_ELEMENT,r=new Cu(e,_u.length,i,!0);n.vkFormat=r._nextUint32(),n.typeSize=r._nextUint32(),n.pixelWidth=r._nextUint32(),n.pixelHeight=r._nextUint32(),n.pixelDepth=r._nextUint32(),n.layerCount=r._nextUint32(),n.faceCount=r._nextUint32();const a=r._nextUint32();n.supercompressionScheme=r._nextUint32();const o=r._nextUint32(),s=r._nextUint32(),l=r._nextUint32(),c=r._nextUint32(),h=r._nextUint64(),A=r._nextUint64(),u=new Cu(e,_u.length+i,3*a*8,!0);for(let t=0;t<a;t++)n.levels.push({levelData:new Uint8Array(e.buffer,e.byteOffset+u._nextUint64(),u._nextUint64()),uncompressedByteLength:u._nextUint64()});const d=new Cu(e,o,s,!0),p={vendorId:d._skip(4)._nextUint16(),descriptorType:d._nextUint16(),versionNumber:d._nextUint16(),descriptorBlockSize:d._nextUint16(),colorModel:d._nextUint8(),colorPrimaries:d._nextUint8(),transferFunction:d._nextUint8(),flags:d._nextUint8(),texelBlockDimension:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],bytesPlane:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],samples:[]},f=(p.descriptorBlockSize/4-6)/4;for(let e=0;e<f;e++){const t={bitOffset:d._nextUint16(),bitLength:d._nextUint8(),channelType:d._nextUint8(),samplePosition:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&t.channelType?(t.sampleLower=d._nextInt32(),t.sampleUpper=d._nextInt32()):(t.sampleLower=d._nextUint32(),t.sampleUpper=d._nextUint32()),p.samples[e]=t}n.dataFormatDescriptor.length=0,n.dataFormatDescriptor.push(p);const g=new Cu(e,l,c,!0);for(;g._offset<c;){const e=g._nextUint32(),t=g._scan(e),i=Iu(t),r=g._scan(e-t.byteLength);n.keyValue[i]=i.match(/^ktx/i)?Iu(r):r,g._offset%4&&g._skip(4-g._offset%4)}if(A<=0)return n;const m=new Cu(e,h,A,!0),v=m._nextUint16(),E=m._nextUint16(),b=m._nextUint32(),C=m._nextUint32(),_=m._nextUint32(),I=m._nextUint32(),x=[];for(let e=0;e<a;e++)x.push({imageFlags:m._nextUint32(),rgbSliceByteOffset:m._nextUint32(),rgbSliceByteLength:m._nextUint32(),alphaSliceByteOffset:m._nextUint32(),alphaSliceByteLength:m._nextUint32()});const y=h+m._offset,M=y+b,w=M+C,S=w+_,B=new Uint8Array(e.buffer,e.byteOffset+y,b),T=new Uint8Array(e.buffer,e.byteOffset+M,C),R=new Uint8Array(e.buffer,e.byteOffset+w,_),D=new Uint8Array(e.buffer,e.byteOffset+S,I);return n.globalData={endpointCount:v,selectorCount:E,imageDescs:x,endpointsData:B,selectorsData:T,tablesData:R,extendedData:D},n}(new Uint8Array(e));if(0!==n.vkFormat)return async function(e){const{vkFormat:t}=e;if(void 0===Uu[t])throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");let n;2===e.supercompressionScheme&&(Ru||(Ru=new Promise(async e=>{const t=new Su;await t.init(),e(t)})),n=await Ru);const i=[];for(let r=0;r<e.levels.length;r++){const a=Math.max(1,e.pixelWidth>>r),o=Math.max(1,e.pixelHeight>>r),s=e.pixelDepth?Math.max(1,e.pixelDepth>>r):0,l=e.levels[r];let c,h;if(0===e.supercompressionScheme)c=l.levelData;else{if(2!==e.supercompressionScheme)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");c=n.decode(l.levelData,l.uncompressedByteLength)}h=Pu[t]===Je?new Float32Array(c.buffer,c.byteOffset,c.byteLength/Float32Array.BYTES_PER_ELEMENT):Pu[t]===Ze?new Uint16Array(c.buffer,c.byteOffset,c.byteLength/Uint16Array.BYTES_PER_ELEMENT):c,i.push({data:h,width:a,height:o,depth:s})}let r;if(Lu.has(Uu[t]))r=0===e.pixelDepth?new Al(i[0].data,e.pixelWidth,e.pixelHeight):new Sn(i[0].data,e.pixelWidth,e.pixelHeight,e.pixelDepth);else{if(e.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");r=new zl(i,e.pixelWidth,e.pixelHeight)}return r.mipmaps=i,r.type=Pu[t],r.format=Uu[t],r.colorSpace=Nu(e),r.needsUpdate=!0,Promise.resolve(r)}(n);const i=t,r=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:e,taskConfig:i},[e])).then(e=>this._createTextureFrom(e.data,n));return Tu.set(e,{promise:r}),r}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),Du--,this}}Qu.BasisFormat={ETC1S:0,UASTC_4x4:1},Qu.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},Qu.EngineFormat={RGBAFormat:et,RGBA_ASTC_4x4_Format:pt,RGBA_BPTC_Format:gt,RGBA_ETC2_EAC_Format:dt,RGBA_PVRTC_4BPPV1_Format:ht,RGBA_S3TC_DXT5_Format:lt,RGB_ETC1_Format:At,RGB_ETC2_Format:ut,RGB_PVRTC_4BPPV1_Format:ct,RGBA_S3TC_DXT1_Format:ot},Qu.BasisWorker=function(){let e,t,n;const i=_EngineFormat,r=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",function(o){const A=o.data;switch(A.type){case"init":e=A.config,u=A.transcoderBinary,t=new Promise(e=>{n={wasmBinary:u,onRuntimeInitialized:e},BASIS(n)}).then(()=>{n.initializeBasis(),void 0===n.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":t.then(()=>{try{const{faces:t,buffers:o,width:u,height:d,hasAlpha:p,format:f,dfdFlags:g}=function(t){const o=new n.KTX2File(new Uint8Array(t));function A(){o.close(),o.delete()}if(!o.isValid())throw A(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");const u=o.isUASTC()?a.UASTC_4x4:a.ETC1S,d=o.getWidth(),p=o.getHeight(),f=o.getLayers()||1,g=o.getLevels(),m=o.getFaces(),v=o.getHasAlpha(),E=o.getDFDFlags(),{transcoderFormat:b,engineFormat:C}=function(t,n,o,h){let A,u;const d=t===a.ETC1S?s:l;for(let i=0;i<d.length;i++){const r=d[i];if(e[r.if]&&r.basisFormat.includes(t)&&!(h&&r.transcoderFormat.length<2)&&(!r.needsPowerOfTwo||c(n)&&c(o)))return A=r.transcoderFormat[h?1:0],u=r.engineFormat[h?1:0],{transcoderFormat:A,engineFormat:u}}return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."),A=r.RGBA32,u=i.RGBAFormat,{transcoderFormat:A,engineFormat:u}}(u,d,p,v);if(!d||!p||!g)throw A(),new Error("THREE.KTX2Loader:\tInvalid texture");if(!o.startTranscoding())throw A(),new Error("THREE.KTX2Loader: .startTranscoding failed");const _=[],I=[];for(let e=0;e<m;e++){const t=[];for(let n=0;n<g;n++){const i=[];let r,a;for(let t=0;t<f;t++){const s=o.getImageLevelInfo(n,t,e);0!==e||0!==n||0!==t||s.origWidth%4==0&&s.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),g>1?(r=s.origWidth,a=s.origHeight):(r=s.width,a=s.height);const l=new Uint8Array(o.getImageTranscodedSizeInBytes(n,t,0,b));if(!o.transcodeImage(l,n,t,e,b,0,-1,-1))throw A(),new Error("THREE.KTX2Loader: .transcodeImage failed.");i.push(l)}const s=h(i);t.push({data:s,width:r,height:a}),I.push(s.buffer)}_.push({mipmaps:t,width:d,height:p,format:C})}return A(),{faces:_,buffers:I,width:d,height:p,hasAlpha:v,format:C,dfdFlags:E}}(A.buffer);self.postMessage({type:"transcode",id:A.id,faces:t,width:u,height:d,hasAlpha:p,format:f,dfdFlags:g},o)}catch(e){console.error(e),self.postMessage({type:"error",id:A.id,error:e.message})}})}var u});const o=[{if:"astcSupported",basisFormat:[a.UASTC_4x4],transcoderFormat:[r.ASTC_4x4,r.ASTC_4x4],engineFormat:[i.RGBA_ASTC_4x4_Format,i.RGBA_ASTC_4x4_Format],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.BC7_M5,r.BC7_M5],engineFormat:[i.RGBA_BPTC_Format,i.RGBA_BPTC_Format],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.BC1,r.BC3],engineFormat:[i.RGBA_S3TC_DXT1_Format,i.RGBA_S3TC_DXT5_Format],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.ETC1,r.ETC2],engineFormat:[i.RGB_ETC2_Format,i.RGBA_ETC2_EAC_Format],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.ETC1],engineFormat:[i.RGB_ETC1_Format],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.PVRTC1_4_RGB,r.PVRTC1_4_RGBA],engineFormat:[i.RGB_PVRTC_4BPPV1_Format,i.RGBA_PVRTC_4BPPV1_Format],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0}],s=o.sort(function(e,t){return e.priorityETC1S-t.priorityETC1S}),l=o.sort(function(e,t){return e.priorityUASTC-t.priorityUASTC});function c(e){return e<=2||!(e&e-1)&&0!==e}function h(e){if(1===e.length)return e[0];let t=0;for(let n=0;n<e.length;n++)t+=e[n].byteLength;const n=new Uint8Array(t);let i=0;for(let t=0;t<e.length;t++){const r=e[t];n.set(r,i),i+=r.byteLength}return n}};const Lu=new Set([et,rt,it]),Uu={[mu]:et,[pu]:et,[hu]:et,[Au]:et,[gu]:rt,[du]:rt,[lu]:rt,[cu]:rt,[fu]:it,[uu]:it,[su]:it,[ou]:it,[Eu]:ft,[vu]:ft},Pu={[mu]:Je,[pu]:Ze,[hu]:Ye,[Au]:Ye,[gu]:Je,[du]:Ze,[lu]:Ye,[cu]:Ye,[fu]:Je,[uu]:Ze,[su]:Ye,[ou]:Ye,[Eu]:Ye,[vu]:Ye};function Nu(e){const t=e.dataFormatDescriptor[0];return 1===t.colorPrimaries?2===t.transferFunction?Ct:_t:10===t.colorPrimaries?2===t.transferFunction?It:xt:(0===t.colorPrimaries||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${t.colorPrimaries}"`),bt)}let Fu=null;const Ou=e=>{Fu=null==e?null:e.endsWith("/")?e.substring(0,e.length-1):e},ku=()=>null!=Fu?`${Fu}/libs`:"https://cdn.jsdelivr.net/npm/three@0.165.0/examples/jsm/libs",Gu=(()=>{const e=(()=>{var e;if(null===(e=document.documentElement.getAttribute("itemtype"))||void 0===e?void 0:e.includes("schema.org/SearchResultsPage"))return!0;const t=null!=document.head?Array.from(document.head.querySelectorAll("meta")):[];for(const e of t)if("viewport"===e.name)return!0;return!1})();return e||console.error('No <meta name="viewport"> detected. This might cause ShopAR to crash on iOS.\nPlease add the following line to your HTML:\n<meta name="viewport" content="width=device-width, initial-scale=1.0">'),()=>e?Math.min(window.devicePixelRatio||1,2):1})(),Hu=new Xi(16777215);let zu,Vu,Wu=!1,qu=1,ju=1,Yu=1;function Xu(){return Ku(),zu}function Ku(){if(Wu)return;Yu=Gu(),Vu=document.createElement("canvas");const e=Vu.style;e.position="absolute",e.top="0",e.left="0",e.width="100%",e.height="100%",zu=new Ks({powerPreference:"high-performance",canvas:Vu,antialias:!0,alpha:!0}),zu.outputColorSpace=Ct,zu.toneMapping=4,zu.setClearColor(new Xi(16777215),0),Wu=!0}function Ju(e,t,n,i,r){const{width:a,height:o}=t,s=zu.toneMapping,l=zu.toneMappingExposure;if(zu.toneMapping=i,zu.toneMappingExposure=r,zu.setViewport(0,0,a,o),zu.setClearColor(Hu,n),e.setSize(a,o),e.render(),zu.toneMapping=s,zu.toneMappingExposure=l,t.isBlitted()){const{context2d:e}=t;if(null==e)return;e.clearRect(0,0,a,o),Vu.width>0&&Vu.height>0&&e.drawImage(Vu,0,ju-o,a,o,0,0,a,o)}}function Zu(e,t){const n=Gu();e=Math.ceil(e*n),t=Math.ceil(t*n),e===qu&&t===ju&&n===Yu||(qu=e,ju=t,Yu=n,Xu().setSize(qu,ju,!1))}function $u(e,t){Xu().renderCubeMapNormals(e),e.traverse(e=>{e instanceof Qr&&e.material&&e.material.isMeshDiamondMaterial&&(e.material.envMap=t)})}let ed,td=!1;function nd(e){return td||id(),ed.parseAsync(e.buffer,"")}function id(){if(td)return;const e=(new lA).setDecoderPath(`${ku()}/draco/gltf/`);e.preload();const t=(new Qu).setTranscoderPath(`${ku()}/basis/`).detectSupport(Xu());ed=(new AA).setDRACOLoader(e).setKTX2Loader(t).setMeshoptDecoder(oA),td=!0}function rd(e){null!=e&&(Object.values(e).forEach(e=>{(null==e?void 0:e.dispose)instanceof Function&&e.dispose()}),e.dispose())}function ad(e,t,n,i,r,a){if(null==e)return new Tn;const o=od(e,i,r,new Tn),s=sd(e);od(e,o.scale,o.quaternion,o.position);const l=s.getSize(new Tn),c=s.getCenter(new Tn);let h=0;return h=l.x/2+t/2,n&&(h=-h),new Tn(-c.x+h,-c.y+l.y/2,-c.z)}function od(e,t,n,i){let r,a,o;return null!=t&&(r=e.scale.x,e.scale.set(t,t,t)),null!=n&&(a=e.quaternion.clone(),e.quaternion.copy(n)),null!=i&&(o=e.position.clone(),e.position.copy(i)),{scale:r,quaternion:a,position:o}}function sd(e){return(new Qn).setFromObject(e,!0)}function ld(e){e.traverse(e=>{var t;e instanceof Qr&&(null===(t=e.geometry)||void 0===t||t.dispose(),Array.isArray(e.material)?e.material.forEach(rd):rd(e.material))}),e.clear()}const cd={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class hd{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const Ad=new va(-1,1,1,-1,0,1),ud=new class extends fr{constructor(){super(),this.setAttribute("position",new sr([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new sr([0,2,0,0,2,0],2))}};class dd{constructor(e){this._mesh=new Qr(ud,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,Ad)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}class pd extends hd{constructor(e,t){super(),this.textureID=void 0!==t?t:"tDiffuse",e instanceof kr?(this.uniforms=e.uniforms,this.material=e):e&&(this.uniforms=Or.clone(e.uniforms),this.material=new kr({name:void 0!==e.name?e.name:"unspecified",defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this.fsQuad=new dd(this.material)}render(e,t,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class fd extends hd{constructor(e,t){super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,n){const i=e.getContext(),r=e.state;let a,o;r.buffers.color.setMask(!1),r.buffers.depth.setMask(!1),r.buffers.color.setLocked(!0),r.buffers.depth.setLocked(!0),this.inverse?(a=0,o=1):(a=1,o=0),r.buffers.stencil.setTest(!0),r.buffers.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),r.buffers.stencil.setFunc(i.ALWAYS,a,4294967295),r.buffers.stencil.setClear(o),r.buffers.stencil.setLocked(!0),e.setRenderTarget(n),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),r.buffers.color.setLocked(!1),r.buffers.depth.setLocked(!1),r.buffers.color.setMask(!0),r.buffers.depth.setMask(!0),r.buffers.stencil.setLocked(!1),r.buffers.stencil.setFunc(i.EQUAL,1,4294967295),r.buffers.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),r.buffers.stencil.setLocked(!0)}}class gd extends hd{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}class md{constructor(e,t){if(this.renderer=e,this._pixelRatio=e.getPixelRatio(),void 0===t){const n=e.getSize(new tn);this._width=n.width,this._height=n.height,(t=new Mn(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:Ze})).texture.name="EffectComposer.rt1"}else this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new pd(cd),this.copyPass.material.blending=0,this.clock=new Uc}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t<this.passes.length;t++)if(this.passes[t].enabled)return!1;return!0}render(e){void 0===e&&(e=this.clock.getDelta());const t=this.renderer.getRenderTarget();let n=!1;for(let t=0,i=this.passes.length;t<i;t++){const i=this.passes[t];if(!1!==i.enabled){if(i.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(t),i.render(this.renderer,this.writeBuffer,this.readBuffer,e,n),i.needsSwap){if(n){const t=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(t.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,e),n.setFunc(t.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==fd&&(i instanceof fd?n=!0:i instanceof gd&&(n=!1))}}this.renderer.setRenderTarget(t)}reset(e){if(void 0===e){const t=this.renderer.getSize(new tn);this._pixelRatio=this.renderer.getPixelRatio(),this._width=t.width,this._height=t.height,(e=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=e,this.renderTarget2=e.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(e,t){this._width=e,this._height=t;const n=this._width*this._pixelRatio,i=this._height*this._pixelRatio;this.renderTarget1.setSize(n,i),this.renderTarget2.setSize(n,i);for(let e=0;e<this.passes.length;e++)this.passes[e].setSize(n,i)}setPixelRatio(e){this._pixelRatio=e,this.setSize(this._width,this._height)}dispose(){this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.copyPass.dispose()}}const vd={name:"OutputShader",uniforms:{tDiffuse:{value:null},toneMappingExposure:{value:1}},vertexShader:"\n\t\tprecision highp float;\n\n\t\tuniform mat4 modelViewMatrix;\n\t\tuniform mat4 projectionMatrix;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\t\n\t\tprecision highp float;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\t#include <tonemapping_pars_fragment>\n\t\t#include <colorspace_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tgl_FragColor = texture2D( tDiffuse, vUv );\n\n\t\t\t// tone mapping\n\n\t\t\t#ifdef LINEAR_TONE_MAPPING\n\n\t\t\t\tgl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( REINHARD_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( CINEON_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = OptimizedCineonToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( ACES_FILMIC_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( AGX_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( NEUTRAL_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb );\n\n\t\t\t#endif\n\n\t\t\t// color space\n\n\t\t\t#ifdef SRGB_TRANSFER\n\n\t\t\t\tgl_FragColor = sRGBTransferOETF( gl_FragColor );\n\n\t\t\t#endif\n\n\t\t}"};class Ed extends hd{constructor(){super();const e=vd;this.uniforms=Or.clone(e.uniforms),this.material=new Hs({name:e.name,uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader}),this.fsQuad=new dd(this.material),this._outputColorSpace=null,this._toneMapping=null}render(e,t,n){this.uniforms.tDiffuse.value=n.texture,this.uniforms.toneMappingExposure.value=e.toneMappingExposure,this._outputColorSpace===e.outputColorSpace&&this._toneMapping===e.toneMapping||(this._outputColorSpace=e.outputColorSpace,this._toneMapping=e.toneMapping,this.material.defines={},pn.getTransfer(this._outputColorSpace)===Mt&&(this.material.defines.SRGB_TRANSFER=""),1===this._toneMapping?this.material.defines.LINEAR_TONE_MAPPING="":2===this._toneMapping?this.material.defines.REINHARD_TONE_MAPPING="":3===this._toneMapping?this.material.defines.CINEON_TONE_MAPPING="":4===this._toneMapping?this.material.defines.ACES_FILMIC_TONE_MAPPING="":6===this._toneMapping?this.material.defines.AGX_TONE_MAPPING="":7===this._toneMapping&&(this.material.defines.NEUTRAL_TONE_MAPPING=""),this.material.needsUpdate=!0),!0===this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class bd extends hd{constructor(e,t,n=null,i=null,r=null){super(),this.scene=e,this.camera=t,this.overrideMaterial=n,this.clearColor=i,this.clearAlpha=r,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new Xi}render(e,t,n){const i=e.autoClear;let r,a;e.autoClear=!1,null!==this.overrideMaterial&&(a=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(e.getClearColor(this._oldClearColor),e.setClearColor(this.clearColor,e.getClearAlpha())),null!==this.clearAlpha&&(r=e.getClearAlpha(),e.setClearAlpha(this.clearAlpha)),1==this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:n),!0===this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),null!==this.clearColor&&e.setClearColor(this._oldClearColor),null!==this.clearAlpha&&e.setClearAlpha(r),null!==this.overrideMaterial&&(this.scene.overrideMaterial=a),e.autoClear=i}}const Cd={uniforms:{tDiffuse:{value:null},luminosityThreshold:{value:1},smoothWidth:{value:1},defaultColor:{value:new Xi(0)},defaultOpacity:{value:0}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform vec3 defaultColor;\n\t\tuniform float defaultOpacity;\n\t\tuniform float luminosityThreshold;\n\t\tuniform float smoothWidth;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\n\t\t\tvec3 luma = vec3( 0.299, 0.587, 0.114 );\n\n\t\t\tfloat v = dot( texel.xyz, luma );\n\n\t\t\tvec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );\n\n\t\t\tfloat alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );\n\n\t\t\tgl_FragColor = mix( outputColor, texel, alpha );\n\t\t\tgl_FragColor.rgb = max( gl_FragColor.rgb, vec3( 0.0 ) );\n\n\t\t}"};class _d extends hd{constructor(e,t,n,i){super(),this.strength=void 0!==t?t:1,this.radius=n,this.threshold=i,this.resolution=void 0!==e?new tn(e.x,e.y):new tn(256,256),this.clearColor=new Xi(0,0,0),this.renderTargetsHorizontal=[],this.renderTargetsVertical=[],this.nMips=5;let r=Math.round(this.resolution.x/2),a=Math.round(this.resolution.y/2);this.renderTargetBright=new Mn(r,a,{type:Ze}),this.renderTargetBright.texture.name="UnrealBloomPass.bright",this.renderTargetBright.texture.generateMipmaps=!1;for(let e=0;e<this.nMips;e++){const t=new Mn(r,a,{type:Ze});t.texture.name="UnrealBloomPass.h"+e,t.texture.generateMipmaps=!1,this.renderTargetsHorizontal.push(t);const n=new Mn(r,a,{type:Ze});n.texture.name="UnrealBloomPass.v"+e,n.texture.generateMipmaps=!1,this.renderTargetsVertical.push(n),r=Math.round(r/2),a=Math.round(a/2)}const o=Cd;this.highPassUniforms=Or.clone(o.uniforms),this.highPassUniforms.luminosityThreshold.value=i,this.highPassUniforms.smoothWidth.value=.01,this.materialHighPassFilter=new kr({uniforms:this.highPassUniforms,vertexShader:o.vertexShader,fragmentShader:o.fragmentShader}),this.separableBlurMaterials=[];const s=[3,5,7,9,11];r=Math.round(this.resolution.x/2),a=Math.round(this.resolution.y/2);for(let e=0;e<this.nMips;e++)this.separableBlurMaterials.push(this.getSeperableBlurMaterial(s[e])),this.separableBlurMaterials[e].uniforms.invSize.value=new tn(1/r,1/a),r=Math.round(r/2),a=Math.round(a/2);this.compositeMaterial=this.getCompositeMaterial(this.nMips),this.compositeMaterial.uniforms.blurTexture1.value=this.renderTargetsVertical[0].texture,this.compositeMaterial.uniforms.blurTexture2.value=this.renderTargetsVertical[1].texture,this.compositeMaterial.uniforms.blurTexture3.value=this.renderTargetsVertical[2].texture,this.compositeMaterial.uniforms.blurTexture4.value=this.renderTargetsVertical[3].texture,this.compositeMaterial.uniforms.blurTexture5.value=this.renderTargetsVertical[4].texture,this.compositeMaterial.uniforms.bloomStrength.value=t,this.compositeMaterial.uniforms.bloomRadius.value=.1,this.compositeMaterial.uniforms.bloomFactors.value=[1,.8,.6,.4,.2],this.bloomTintColors=[new Tn(1,1,1),new Tn(1,1,1),new Tn(1,1,1),new Tn(1,1,1),new Tn(1,1,1)],this.compositeMaterial.uniforms.bloomTintColors.value=this.bloomTintColors;const l=cd;this.copyUniforms=Or.clone(l.uniforms),this.blendMaterial=new kr({uniforms:this.copyUniforms,vertexShader:l.vertexShader,fragmentShader:l.fragmentShader,blending:2,depthTest:!1,depthWrite:!1,transparent:!0}),this.enabled=!0,this.needsSwap=!1,this._oldClearColor=new Xi,this.oldClearAlpha=1,this.basic=new $i,this.fsQuad=new dd(null)}dispose(){for(let e=0;e<this.renderTargetsHorizontal.length;e++)this.renderTargetsHorizontal[e].dispose();for(let e=0;e<this.renderTargetsVertical.length;e++)this.renderTargetsVertical[e].dispose();this.renderTargetBright.dispose();for(let e=0;e<this.separableBlurMaterials.length;e++)this.separableBlurMaterials[e].dispose();this.compositeMaterial.dispose(),this.blendMaterial.dispose(),this.basic.dispose(),this.fsQuad.dispose()}setSize(e,t){let n=Math.round(e/2),i=Math.round(t/2);this.renderTargetBright.setSize(n,i);for(let e=0;e<this.nMips;e++)this.renderTargetsHorizontal[e].setSize(n,i),this.renderTargetsVertical[e].setSize(n,i),this.separableBlurMaterials[e].uniforms.invSize.value=new tn(1/n,1/i),n=Math.round(n/2),i=Math.round(i/2)}render(e,t,n,i,r){e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();const a=e.autoClear;e.autoClear=!1,e.setClearColor(this.clearColor,0),r&&e.state.buffers.stencil.setTest(!1),this.renderToScreen&&(this.fsQuad.material=this.basic,this.basic.map=n.texture,e.setRenderTarget(null),e.clear(),this.fsQuad.render(e)),this.highPassUniforms.tDiffuse.value=n.texture,this.highPassUniforms.luminosityThreshold.value=this.threshold,this.fsQuad.material=this.materialHighPassFilter,e.setRenderTarget(this.renderTargetBright),e.clear(),this.fsQuad.render(e);let o=this.renderTargetBright;for(let t=0;t<this.nMips;t++)this.fsQuad.material=this.separableBlurMaterials[t],this.separableBlurMaterials[t].uniforms.colorTexture.value=o.texture,this.separableBlurMaterials[t].uniforms.direction.value=_d.BlurDirectionX,e.setRenderTarget(this.renderTargetsHorizontal[t]),e.clear(),this.fsQuad.render(e),this.separableBlurMaterials[t].uniforms.colorTexture.value=this.renderTargetsHorizontal[t].texture,this.separableBlurMaterials[t].uniforms.direction.value=_d.BlurDirectionY,e.setRenderTarget(this.renderTargetsVertical[t]),e.clear(),this.fsQuad.render(e),o=this.renderTargetsVertical[t];this.fsQuad.material=this.compositeMaterial,this.compositeMaterial.uniforms.bloomStrength.value=this.strength,this.compositeMaterial.uniforms.bloomRadius.value=this.radius,this.compositeMaterial.uniforms.bloomTintColors.value=this.bloomTintColors,e.setRenderTarget(this.renderTargetsHorizontal[0]),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.blendMaterial,this.copyUniforms.tDiffuse.value=this.renderTargetsHorizontal[0].texture,r&&e.state.buffers.stencil.setTest(!0),this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(n),this.fsQuad.render(e)),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=a}getSeperableBlurMaterial(e){const t=[];for(let n=0;n<e;n++)t.push(.39894*Math.exp(-.5*n*n/(e*e))/e);return new kr({defines:{KERNEL_RADIUS:e},uniforms:{colorTexture:{value:null},invSize:{value:new tn(.5,.5)},direction:{value:new tn(.5,.5)},gaussianCoefficients:{value:t}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include <common>\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 invSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float gaussianCoefficients[KERNEL_RADIUS];\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tfloat weightSum = gaussianCoefficients[0];\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv ).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianCoefficients[i];\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset ).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset ).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}"})}getCompositeMaterial(e){return new kr({defines:{NUM_MIPS:e},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}"})}}_d.BlurDirectionX=new tn(1,0),_d.BlurDirectionY=new tn(0,1);const Id="backgroundTexture",xd=`\n uniform sampler2D ${Id};\n uniform sampler2D bloomTexture;\n uniform sampler2D objectMaskTexture;\n\n varying vec2 vUv;\n\n void main() {\n gl_FragColor = texture2D( ${Id}, vUv );\n gl_FragColor.rgb += texture2D( bloomTexture, vUv ).rgb * texture2D( objectMaskTexture, vUv ).a;\n }\n`;class yd extends pd{constructor(e,t){super(new kr({uniforms:{[Id]:{value:null},bloomTexture:{value:e},objectMaskTexture:{value:t}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n",fragmentShader:xd}),Id)}}var Md,wd,Sd,Bd,Td,Rd,Dd,Qd,Ld,Ud,Pd,Nd,Fd,Od,kd,Gd,Hd,zd;const Vd="neverDarken",Wd="shadowObject";class qd{constructor(e,t){Md.set(this,void 0),wd.set(this,void 0),Sd.set(this,!1),Bd.set(this,.25),Td.set(this,0),Rd.set(this,2),Dd.set(this,null),Qd.set(this,null),Ld.set(this,null),Ud.set(this,null),Pd.set(this,null),Nd.set(this,null),Fd.set(this,null),Od.set(this,null),kd.set(this,null),Gd.set(this,{}),Hd.set(this,null),zd.set(this,new Xi),H(this,Md,e),H(this,wd,t)}set strength(e){H(this,Bd,e),null!=G(this,Ld,"f")&&(G(this,Ld,"f").strength=G(this,Bd,"f"))}set radius(e){H(this,Td,e),null!=G(this,Ld,"f")&&(G(this,Ld,"f").radius=G(this,Td,"f"))}set threshold(e){H(this,Rd,e),null!=G(this,Ld,"f")&&(G(this,Ld,"f").threshold=G(this,Rd,"f"))}init(){G(this,Sd,"f")||(H(this,Dd,new md(Xu())),H(this,Qd,new bd(G(this,Md,"f"),G(this,wd,"f"))),G(this,Qd,"f").clearColor=new Xi(0),G(this,Qd,"f").clearAlpha=0,G(this,Dd,"f").addPass(G(this,Qd,"f")),H(this,Ld,new _d(new tn(256,256),G(this,Bd,"f"),G(this,Td,"f"),G(this,Rd,"f"))),G(this,Dd,"f").addPass(G(this,Ld,"f")),H(this,Ud,new Ed),G(this,Ud,"f").needsSwap=!1,G(this,Dd,"f").addPass(G(this,Ud,"f")),G(this,Dd,"f").renderToScreen=!1,H(this,Od,new md(Xu())),H(this,kd,new bd(G(this,Md,"f"),G(this,wd,"f"))),G(this,Od,"f").addPass(G(this,kd,"f")),G(this,Od,"f").renderToScreen=!1,H(this,Pd,new md(Xu())),H(this,Nd,new bd(G(this,Md,"f"),G(this,wd,"f"))),G(this,Pd,"f").addPass(G(this,Nd,"f")),H(this,Fd,new yd(G(this,Dd,"f").renderTarget1.texture,G(this,Od,"f").renderTarget2.texture)),G(this,Pd,"f").addPass(G(this,Fd,"f")),H(this,Hd,new $i({color:0})),H(this,Sd,!0))}destroy(){G(this,Sd,"f")&&(G(this,Hd,"f").dispose(),H(this,Hd,null),G(this,Fd,"f").dispose(),H(this,Fd,null),G(this,Nd,"f").dispose(),H(this,Nd,null),G(this,Pd,"f").dispose(),H(this,Pd,null),G(this,kd,"f").dispose(),H(this,kd,null),G(this,Od,"f").dispose(),H(this,Od,null),G(this,Ud,"f").dispose(),H(this,Ud,null),G(this,Ld,"f").dispose(),H(this,Ld,null),G(this,Qd,"f").dispose(),H(this,Qd,null),G(this,Dd,"f").dispose(),H(this,Dd,null),H(this,Sd,!1))}setSize(e,t){null!=G(this,Dd,"f")&&null!=G(this,Od,"f")&&null!=G(this,Pd,"f")&&(G(this,Dd,"f").setSize(e,t),G(this,Od,"f").setSize(e,t),G(this,Pd,"f").setSize(e,t))}render(){null!=G(this,Dd,"f")&&null!=G(this,Od,"f")&&null!=G(this,kd,"f")&&null!=G(this,Pd,"f")&&null!=G(this,Nd,"f")&&(G(this,Dd,"f").render(),this.darkenMaterials(),this.hideShadow(),G(this,kd,"f").clearColor=Xu().getClearColor(G(this,zd,"f")),G(this,kd,"f").clearAlpha=Xu().getClearAlpha(),G(this,Od,"f").render(),this.showShadow(),G(this,Nd,"f").clearColor=Xu().getClearColor(G(this,zd,"f")),G(this,Nd,"f").clearAlpha=Xu().getClearAlpha(),G(this,Pd,"f").render(),this.restoreDarkenedMaterials())}hideShadow(){G(this,Md,"f").traverse(e=>{e instanceof Qr&&e.material.userData[Wd]&&(e.visible=!1)})}showShadow(){G(this,Md,"f").traverse(e=>{e instanceof Qr&&e.material.userData[Wd]&&(e.visible=!0)})}onSceneUpdate(){Xu().renderCubeMapNormals(G(this,Md,"f"))}darkenMaterials(){G(this,Md,"f").traverse(e=>{if(e instanceof Qr){if(e.material.userData[Vd])return;G(this,Gd,"f")[e.uuid]=e.material,e.material=G(this,Hd,"f")}})}restoreDarkenedMaterials(){G(this,Md,"f").traverse(e=>{if(e instanceof Qr){if(e.material!==G(this,Hd,"f"))return;e.material=G(this,Gd,"f")[e.uuid],delete G(this,Gd,"f")[e.uuid]}})}}var jd,Yd,Xd,Kd,Jd,Zd;Md=new WeakMap,wd=new WeakMap,Sd=new WeakMap,Bd=new WeakMap,Td=new WeakMap,Rd=new WeakMap,Dd=new WeakMap,Qd=new WeakMap,Ld=new WeakMap,Ud=new WeakMap,Pd=new WeakMap,Nd=new WeakMap,Fd=new WeakMap,Od=new WeakMap,kd=new WeakMap,Gd=new WeakMap,Hd=new WeakMap,zd=new WeakMap,(Zd=Jd||(Jd={}))[Zd.Direct=0]="Direct",Zd[Zd.Postprocessed=1]="Postprocessed";class $d{constructor(e,t){jd.set(this,void 0),Yd.set(this,void 0),Xd.set(this,Jd.Direct),Kd.set(this,void 0),H(this,jd,e),H(this,Yd,t),H(this,Kd,new qd(G(this,jd,"f"),G(this,Yd,"f")))}get bloomEnabled(){return G(this,Xd,"f")===Jd.Postprocessed}set bloomEnabled(e){e?(G(this,Kd,"f").init(),H(this,Xd,Jd.Postprocessed)):(G(this,Kd,"f").destroy(),H(this,Xd,Jd.Direct))}set bloomStrength(e){G(this,Kd,"f").strength=e}set bloomRadius(e){G(this,Kd,"f").radius=e}set bloomThreshold(e){G(this,Kd,"f").threshold=e}dispose(){G(this,Kd,"f").destroy(),H(this,Xd,Jd.Direct)}setSize(e,t){G(this,Kd,"f").setSize(e,t)}render(){G(this,Xd,"f")===Jd.Direct?Xu().render(G(this,jd,"f"),G(this,Yd,"f")):G(this,Xd,"f")===Jd.Postprocessed&&G(this,Kd,"f").render()}}jd=new WeakMap,Yd=new WeakMap,Xd=new WeakMap,Kd=new WeakMap;const ep={name:"HorizontalBlurShader",uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float h;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 sum = vec4( 0.0 );\n\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}"},tp={name:"VerticalBlurShader",uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float v;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 sum = vec4( 0.0 );\n\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}"};let np,ip,rp,ap=!1;const op=300,sp=2*Math.PI/32,lp=ce("hold"),cp=ce("sine"),hp=ce("sine-in"),Ap=ce("sine-out");function up(){let e=!0,t=!1,n=null,i=null,r=null;return{get custom(){return t},set:e=>{const{theta:a,phi:o,fov:s}=e;n=a,i=o,r=s,t=null!=a||null!=o||null!=s},reset:e=>{var a;t?(null==n||n.reset(),null==i||i.reset(),null==r||r.reset()):(n=Z([{time:0,value:a=e,interpolation:lp},{time:op,value:a,interpolation:Ap},{time:800,value:a+sp,interpolation:cp},{time:1800,value:a-sp,interpolation:hp},{time:2300,value:a,interpolation:lp},{time:4300,value:a,interpolation:lp}]),i=null,r=null)},get running(){return e},set running(t){e=t},update:t=>{e&&(null==n||n.update(t),null==i||i.update(t),null==r||r.update(t))},get theta(){return null==n?void 0:n.get()},get phi(){return null==i?void 0:i.get()},get fov(){return null==r?void 0:r.get()}}}var dp;!function(e){e[e.NONE=0]="NONE",e[e.USER_INTERACTION=1]="USER_INTERACTION",e[e.AUTOMATIC=2]="AUTOMATIC"}(dp||(dp={}));const pp="pan-y",fp=1e-6,gp=.03,mp=Math.PI/8,vp=new Tn;class Ep extends Ht{constructor(e,t){super(),this.touchAction_=pp,this.enablePan=!0,this.screenSpacePanning=!0,this.enableZoom_=!0,this.enableKeyControls=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.defaultFov=16,this.minFovFactor=.2,this.maxFovFactor=1.6,this.minFov=this.defaultFov*this.minFovFactor,this.maxFov=this.defaultFov*this.maxFovFactor,this.fovMultiplier_=1,this.enableDamping=!0,this.dampingFactor=.3,this.interactionEnabled=!1,this.userInteracted=!1,this.target=new Tn,this.panSphereCenter=new Tn,this.panSphereRadius=1/0,this.spherical=new Vc,this.goalSpherical=new Vc,this.fov=this.defaultFov,this.goalFov=this.defaultFov,this.panOffset=new Tn,this.lastPosition=new Tn,this.lastQuaternion=new Bn,this.lastTargetPosition=new Tn,this.lastFov=this.fov,this.changeSource=dp.NONE,this.panInProgress=!1,this.touchMode=null,this.pointers=[],this.startPointerPosition={clientX:0,clientY:0},this.lastSeparation=0,this.touchDecided=!1,this.passiveTouchHandler=()=>{},this.atMaxZoom_=!1,this.atMinZoom_=!1,this.onMaxZoomEnter=null,this.onMaxZoomLeave=null,this.onMinZoomEnter=null,this.onMinZoomLeave=null,this.atMinVerticalAngle_=!1,this.atMaxVerticalAngle_=!1,this.onMinVerticalAngleEnter=null,this.onMinVerticalAngleLeave=null,this.onMaxVerticalAngleEnter=null,this.onMaxVerticalAngleLeave=null,this.onPointerDown=e=>{if(this.pointers.length>2)return;const{element:t}=this;0===this.pointers.length&&(t.addEventListener("pointermove",this.onPointerMove),t.addEventListener("pointerup",this.onPointerUp),this.touchMode=null,this.touchDecided=!1,this.startPointerPosition.clientX=e.clientX,this.startPointerPosition.clientY=e.clientY);try{t.setPointerCapture(e.pointerId)}catch(e){}this.pointers.push({clientX:e.clientX,clientY:e.clientY,id:e.pointerId}),"touch"===e.pointerType?(this.changeSource=e.altKey?dp.AUTOMATIC:dp.USER_INTERACTION,this.onTouchChange()):(this.changeSource=dp.USER_INTERACTION,this.onMouseDown(e))},this.onPointerMove=e=>{const t=this.pointers.find(t=>t.id===e.pointerId);if(null==t)return;if("mouse"===e.pointerType&&0===e.buttons)return void this.onPointerUp(e);const n=this.pointers.length,i=(e.clientX-t.clientX)/n,r=(e.clientY-t.clientY)/n;0===i&&0===r||(t.clientX=e.clientX,t.clientY=e.clientY,"touch"===e.pointerType?(this.changeSource=e.altKey?dp.AUTOMATIC:dp.USER_INTERACTION,null!==this.touchMode&&this.touchMode(i,r)):(this.changeSource=dp.USER_INTERACTION,this.panInProgress?this.pan(i,r):this.handleSinglePointerMove(i,r)))},this.onPointerUp=e=>{const t=this.pointers.findIndex(t=>t.id===e.pointerId);-1!==t&&this.pointers.splice(t,1);const{element:n}=this;0===this.pointers.length?(n.removeEventListener("pointermove",this.onPointerMove),n.removeEventListener("pointerup",this.onPointerUp),n.removeEventListener("touchmove",this.disableScroll)):null!==this.touchMode&&this.onTouchChange(),n.style.cursor="grab",this.panInProgress=!1},this.onWheel=e=>{this.changeSource=dp.USER_INTERACTION;const t=e.deltaY*(1==e.deltaMode?18:1)*.2/30;this.userAdjustOrbit(0,0,t),e.preventDefault()},this.onKeyDown=e=>{const{changeSource:t}=this;this.changeSource=dp.USER_INTERACTION,(e.shiftKey&&this.enablePan?this.panKeyCodeHandler(e):this.orbitZoomKeyCodeHandler(e))?e.preventDefault():this.changeSource=t},this.disableScroll=e=>{e.preventDefault()},this.onContext=e=>{if(this.enablePan)e.preventDefault();else for(const e of this.pointers)this.onPointerUp(new PointerEvent("pointercancel",Object.assign(Object.assign({},this.startPointerPosition),{pointerId:e.id})))},this.onTouchChange=()=>{if(1===this.pointers.length)this.touchMode=this.touchModeRotate;else{if(!this.enableZoom_)return this.touchMode=null,void this.element.removeEventListener("touchmove",this.disableScroll);this.touchMode=this.touchDecided&&null===this.touchMode?null:this.touchModeZoom,this.touchDecided=!0,this.element.addEventListener("touchmove",this.disableScroll,{passive:!1}),this.lastSeparation=Cp(this.pointers[0],this.pointers[1]),this.enablePan&&null!=this.touchMode&&this.initializePan()}},this.onMouseDown=e=>{this.panInProgress=!1,this.enablePan&&(2===e.button||e.ctrlKey||e.metaKey||e.shiftKey)&&this.initializePan(),this.element.style.cursor="grabbing"},this.touchModeZoom=(e,t)=>{if(this.enableZoom_){const e=Cp(this.pointers[0],this.pointers[1]),t=.2*(this.lastSeparation-e)*35/this.element.clientHeight;this.lastSeparation=e,this.userAdjustOrbit(0,0,t)}this.panInProgress&&this.pan(e,t)},this.touchModeRotate=(e,t)=>{if(!this.touchDecided){this.touchDecided=!0;const n=Math.abs(e),i=Math.abs(t),r="pan-x"===this.touchAction_&&n>i,a="pan-y"===this.touchAction_&&i>n;if(this.changeSource===dp.USER_INTERACTION&&(r||a))return void(this.touchMode=null);this.element.addEventListener("touchmove",this.disableScroll,{passive:!1})}this.handleSinglePointerMove(e,t)},this.camera=e,this.element=t,this.quat=(new Bn).setFromUnitVectors(e.up,new Tn(0,1,0)),this.quatInverse=this.quat.clone().invert(),this.update(0)}set touchAction(e){this.touchAction_=null!=e?e:pp,this.updateTouchActionStyle()}set enableZoom(e){this.enableZoom_!=e&&(this.enableZoom_=e,e?this.element.addEventListener("wheel",this.onWheel):this.element.removeEventListener("wheel",this.onWheel),this.updateTouchActionStyle())}set minZoom(e){this.maxFovFactor=null!=e?1/e:1.6,this.maxFov=this.defaultFov*this.fovMultiplier_*this.maxFovFactor,this.fov=bp(this.fov,this.minFov,this.maxFov),this.goalFov=bp(this.goalFov,this.minFov,this.maxFov)}set maxZoom(e){this.minFovFactor=null!=e?1/e:.2,this.minFov=this.defaultFov*this.fovMultiplier_*this.minFovFactor,this.fov=bp(this.fov,this.minFov,this.maxFov),this.goalFov=bp(this.goalFov,this.minFov,this.maxFov)}set fovMultiplier(e){this.fovMultiplier_=e,this.fov=this.defaultFov*this.fovMultiplier_,this.goalFov=this.fov,this.minFov=this.fov*this.minFovFactor,this.maxFov=this.fov*this.maxFovFactor}reset(e,t,n,i,r){i||(this.fov=this.defaultFov*this.fovMultiplier_,this.goalFov=this.fov,this.minFov=this.fov*this.minFovFactor,this.maxFov=this.fov*this.maxFovFactor,this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Zt)/this.camera.aspect)*$t:this.fov,this.camera.updateProjectionMatrix()),r?vp.copy(this.target).sub(this.panSphereCenter).divideScalar(this.panSphereRadius):vp.set(0,0,0),this.panSphereCenter.set(e.x,e.y,e.z);const a=t/Math.tan(this.defaultFov/2*Zt);this.panSphereRadius=Math.min(t,a-t),vp.multiplyScalar(this.panSphereRadius);const o=e.clone().addScaledVector(n,a).add(vp);this.camera.position.set(o.x,o.y,o.z),this.target.set(e.x,e.y,e.z).add(vp),this.camera.lookAt(this.target),vp.copy(this.camera.position).sub(this.target),vp.applyQuaternion(this.quat),this.spherical.setFromVector3(vp),this.goalSpherical.copy(this.spherical),this.lastPosition.copy(this.camera.position),this.lastQuaternion.copy(this.camera.quaternion),this.lastTargetPosition.copy(this.target),this.lastFov=this.fov,this.userInteracted=!1}hasUserInteracted(){return this.userInteracted}update(e){this.spherical.theta+=(this.goalSpherical.theta-this.spherical.theta)*Math.min(gp*e,1),this.spherical.phi+=(this.goalSpherical.phi-this.spherical.phi)*Math.min(gp*e,1),this.spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this.spherical.phi)),this.spherical.makeSafe(),!0===this.enableDamping?this.target.addScaledVector(this.panOffset,this.dampingFactor):this.target.add(this.panOffset),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),vp.setFromSpherical(this.spherical),vp.applyQuaternion(this.quatInverse),this.camera.position.copy(this.target).add(vp),this.camera.lookAt(this.target),this.fov+=(this.goalFov-this.fov)*Math.min(gp*e,1),this.fov=bp(this.fov,this.minFov,this.maxFov),!0===this.enableDamping?this.panOffset.multiplyScalar(1-this.dampingFactor):this.panOffset.set(0,0,0),this.checkZoomLimits(),this.checkVerticalAngleLimits();let t=!1;const{aspect:n}=this.camera,i=this.element.clientWidth/this.element.clientHeight;i!==n&&(this.camera.aspect=i,t=!0);const r=Math.abs(this.lastFov-this.fov)>fp;return(t||r)&&(this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Zt)/this.camera.aspect)*$t:this.fov),this.camera.updateProjectionMatrix(),(this.lastPosition.distanceToSquared(this.camera.position)>fp||8*(1-this.lastQuaternion.dot(this.camera.quaternion))>fp||this.lastTargetPosition.distanceToSquared(this.target)>0||r)&&(this.dispatchEvent({type:"change"}),this.lastPosition.copy(this.camera.position),this.lastQuaternion.copy(this.camera.quaternion),this.lastTargetPosition.copy(this.target),this.lastFov=this.fov,t=!0),this.userInteracted=!1,t}getPose(e){return e.copy(this.camera.position),e.sub(this.target),e.normalize(),e}getTheta(){const e=this.camera.position;return vp.copy(e).sub(this.target),vp.applyQuaternion(this.quat),this.spherical.setFromVector3(vp),this.spherical.theta}adjustZoom(e){this.enableZoom_&&(this.goalFov=bp(this.goalFov*Math.pow(2,-e),this.minFov,this.maxFov),this.userInteracted=!0)}adjustOrbit(e,t){this.goalSpherical.theta+=e,this.goalSpherical.phi+=t,this.goalSpherical.makeSafe(),this.userInteracted=!0}set(e,t,n){return null!=e&&this.setTheta(e),null!=t&&this.setPhi(t),null!=n&&this.setFovRadians(n),null!=e||null!=t||null!=n}setTheta(e){const t=this.camera.position;vp.copy(t).sub(this.target),vp.applyQuaternion(this.quat),this.spherical.setFromVector3(vp),this.spherical.theta=e,this.spherical.makeSafe(),this.goalSpherical.copy(this.spherical),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),vp.setFromSpherical(this.spherical),vp.applyQuaternion(this.quatInverse),t.copy(this.target).add(vp),this.camera.lookAt(this.target),this.lastPosition.copy(t),this.lastQuaternion.copy(this.camera.quaternion),this.camera.updateProjectionMatrix()}setPhi(e){const t=this.camera.position;vp.copy(t).sub(this.target),vp.applyQuaternion(this.quat),this.spherical.setFromVector3(vp),this.spherical.phi=e,this.spherical.makeSafe(),this.goalSpherical.copy(this.spherical),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),vp.setFromSpherical(this.spherical),vp.applyQuaternion(this.quatInverse),t.copy(this.target).add(vp),this.camera.lookAt(this.target),this.lastPosition.copy(t),this.lastQuaternion.copy(this.camera.quaternion),this.camera.updateProjectionMatrix()}setFovRadians(e){this.fov=bp(e*this.fovMultiplier_*$t,this.minFov,this.maxFov),this.goalFov=this.fov,this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Zt)/this.camera.aspect)*$t:this.fov,this.lastFov=this.fov}setInteractionEnabled(e){e?this.enableInteraction():this.disableInteraction()}enableInteraction(){if(!1===this.interactionEnabled){const{element:e}=this;e.addEventListener("pointerdown",this.onPointerDown),e.addEventListener("pointercancel",this.onPointerUp),this.enableZoom_&&e.addEventListener("wheel",this.onWheel),this.enableKeyControls&&(e.tabIndex=1,e.addEventListener("keydown",this.onKeyDown)),e.addEventListener("touchmove",this.passiveTouchHandler,{passive:!1}),e.addEventListener("contextmenu",this.onContext),e.style.cursor="grab",this.interactionEnabled=!0,this.updateTouchActionStyle()}}disableInteraction(){if(!0===this.interactionEnabled){const{element:e}=this;e.removeEventListener("pointerdown",this.onPointerDown),e.removeEventListener("pointermove",this.onPointerMove),e.removeEventListener("pointerup",this.onPointerUp),e.removeEventListener("pointercancel",this.onPointerUp),e.removeEventListener("wheel",this.onWheel),e.tabIndex=-1,e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("touchmove",this.passiveTouchHandler),e.removeEventListener("touchmove",this.disableScroll),e.removeEventListener("contextmenu",this.onContext),e.style.cursor="",this.touchMode=null,this.interactionEnabled=!1,this.updateTouchActionStyle()}}dispose(){this.disableInteraction(),this.pointers.length=0}orbitZoomKeyCodeHandler(e){let t=!0;switch(e.key){case"PageUp":this.userAdjustOrbit(0,0,.2);break;case"PageDown":this.userAdjustOrbit(0,0,-.2);break;case"ArrowUp":this.userAdjustOrbit(0,-mp,0);break;case"ArrowDown":this.userAdjustOrbit(0,mp,0);break;case"ArrowLeft":this.userAdjustOrbit(-mp,0,0);break;case"ArrowRight":this.userAdjustOrbit(mp,0,0);break;default:t=!1}return t}panKeyCodeHandler(e){this.initializePan();let t=!0;switch(e.key){case"ArrowUp":this.pan(0,10);break;case"ArrowDown":this.pan(0,-10);break;case"ArrowLeft":this.pan(10,0);break;case"ArrowRight":this.pan(-10,0);break;default:t=!1}return t}initializePan(){this.panInProgress=!0}pan(e,t){const n=this.element,i=this.camera.position;vp.copy(i).sub(this.target);let r=vp.length();r*=Math.tan(this.camera.fov/2*Math.PI/180),this.panLeft(2*e*r/n.clientHeight,this.camera.matrix),this.panUp(2*t*r/n.clientHeight,this.camera.matrix)}panLeft(e,t){vp.setFromMatrixColumn(t,0),vp.multiplyScalar(-e),this.panOffset.add(vp)}panUp(e,t){!0===this.screenSpacePanning?vp.setFromMatrixColumn(t,1):(vp.setFromMatrixColumn(t,0),vp.crossVectors(this.camera.up,vp)),vp.multiplyScalar(e),this.panOffset.add(vp)}handleSinglePointerMove(e,t){const n=this.pixelLengthToSphericalAngle(e),i=this.pixelLengthToSphericalAngle(t);this.userAdjustOrbit(n,i,0)}userAdjustOrbit(e,t,n){this.goalSpherical.theta+=.5*e*this.fovMultiplier_,this.goalSpherical.phi+=.5*t*this.fovMultiplier_,this.goalSpherical.makeSafe();const i=bp(Math.pow(Math.sqrt(this.fov)+n,2),this.minFov,this.maxFov);this.fov=i,this.goalFov=i,this.userInteracted=!0}pixelLengthToSphericalAngle(e){return-2*Math.PI*e/Math.min(this.element.clientHeight,this.element.clientWidth)}checkZoomLimits(){var e,t,n,i;const r=this.goalFov<=this.minFov+fp,a=this.goalFov>=this.maxFov-fp;r!==this.atMaxZoom_&&(this.atMaxZoom_=r,r?null===(e=this.onMaxZoomEnter)||void 0===e||e.call(this):null===(t=this.onMaxZoomLeave)||void 0===t||t.call(this)),a!==this.atMinZoom_&&(this.atMinZoom_=a,a?null===(n=this.onMinZoomEnter)||void 0===n||n.call(this):null===(i=this.onMinZoomLeave)||void 0===i||i.call(this))}checkVerticalAngleLimits(){var e,t,n,i;const r=this.goalSpherical.phi<=this.minPolarAngle+fp,a=this.goalSpherical.phi>=this.maxPolarAngle-fp;r!==this.atMinVerticalAngle_&&(this.atMinVerticalAngle_=r,r?null===(e=this.onMinVerticalAngleEnter)||void 0===e||e.call(this):null===(t=this.onMinVerticalAngleLeave)||void 0===t||t.call(this)),a!==this.atMaxVerticalAngle_&&(this.atMaxVerticalAngle_=a,a?null===(n=this.onMaxVerticalAngleEnter)||void 0===n||n.call(this):null===(i=this.onMaxVerticalAngleLeave)||void 0===i||i.call(this))}updateTouchActionStyle(){const{style:e}=this.element;this.interactionEnabled?this.enableZoom_?e.touchAction=this.touchAction_:e.touchAction="manipulation":e.touchAction=""}}function bp(e,t,n){return Math.max(t,Math.min(n,e))}function Cp(e,t){const{clientX:n,clientY:i}=e,{clientX:r,clientY:a}=t,o=r-n,s=a-i;return Math.sqrt(o*o+s*s)}const _p=new Map;let Ip=null;function xp(){Xu().setAnimationLoop(yp)}function yp(e){!function(){for(const e of _p.values())e.prepareResize()}(),function(e){for(const t of _p.values())t.update(e)}(e);let t=function(){let e=null;for(const t of _p.values())if(t.needsRender){if(null!=e)return null;e=t}return e}();null!=Ip&&t!==Ip&&(Ip.ensureBlittedMode(),t=null),Ip=t,0!==function(){let e=0;for(const t of _p.values())t.needsRender&&e++;return e}()&&(null!=t?(t.ensureDirectMode(),Mp(),Zu(t.width,t.height),wp()):(function(){for(const e of _p.values())e.needsRender&&e.ensureBlittedMode()}(),Mp(),Zu(function(){let e=0;for(const t of _p.values())t.needsRender&&(e=Math.max(e,t.width));return e}(),function(){let e=0;for(const t of _p.values())t.needsRender&&(e=Math.max(e,t.height));return e}()),wp()))}function Mp(){for(const e of _p.values())e.commitResize()}function wp(){for(const e of _p.values())e.render()}function Sp(){let e=null,t=null;return{reset:()=>{e=Z([{time:0,value:0,interpolation:lp},{time:op,value:1,interpolation:lp},{time:2300,value:0,interpolation:lp},{time:4300,value:0,interpolation:lp}]),t=Z([{time:0,value:0,interpolation:lp},{time:op,value:0,interpolation:Ap},{time:800,value:-.05,interpolation:cp},{time:1800,value:.05,interpolation:hp},{time:2300,value:0,interpolation:lp},{time:4300,value:0,interpolation:lp}])},clear:()=>{e=null,t=null},update:n=>{null==e||e.update(n),null==t||t.update(n)},get visibility(){return null==e?void 0:e.get()},get position(){return null==t?void 0:t.get()}}}const Bp=2e3,Tp=2*Math.PI,Rp=Tp/12,Dp=Tp/60,Qp=Tp/60;function Lp(e){return Z([{time:0,value:0,interpolation:{type:"bezier",x1:.9,y1:0,x2:.6,y2:1}},{time:Bp,value:e,interpolation:{type:"hold"}}])}function Up(e,t,n){return-1*Rp*(e%12+t/60+n/3600)}function Pp(e,t){return-1*Dp*(e+t/60)}function Np(e,t){return-1*Qp*(e+t/1e3)}function Fp(e,t){let n,i,r,a,o,s,l,c,h,A,u,d,p,f=!1,g=null,m=new Tn(1,0,0),v=!1,E=!1,b=!1,C=!0,_=!1,I=!1,x=4,y=1,M=!0,w=!1,S=null,B=!1,T=!1,R=!1,D=0,Q=0,L=0,U=0,P=0;const N={get paused(){return C},get needsRender(){return!(!f||C)&&_},ensureDirectMode:()=>{e.isDirect()||(_=!0),e.ensureDirectMode()},ensureBlittedMode:()=>{e.isBlitted()||(_=!0),e.ensureBlittedMode()},update:t=>{if(w||!f||C||null==o||!function(e){const t=e.getBoundingClientRect();return t.bottom>0&&t.top<Math.max(document.documentElement.clientHeight,window.innerHeight)&&t.right>0&&t.left<Math.max(document.documentElement.clientWidth,window.innerWidth)}(e.element))return;let n=0!==P?t-P:0;P=t,0===U?_=!0:U<3&&(n=0),U++,B||(a.hasUserInteracted()?(B=!0,u.running=!1,d.clear(),I=!0):(u.update(n),d.update(n),u.running&&a.set(u.theta,u.phi,u.fov)&&(_=!0),null==d.visibility&&null==d.position||(I=!0))),a.update(n)&&(_=!0,T=!0),0!==n&&p.update()&&(_=!0)},render:()=>{if(!w&&f&&!C){if(_){if(Ju(n,e,!E&&!n.bloomEnabled||b?0:1,x,y),_=!1,!R&&null!=S&&T&&B){const e=performance.now();L>0&&(D++,Q+=e-L),L=e,Q>=2e3&&(R=!0,S({fps:D/Q*1e3}))}else L=0;T=!1,null==h||h()}I&&(t.visible=M&&!B,null!=d.visibility&&(t.opacity=`${d.visibility}`),null!=d.position&&(t.transform=`translateX(${d.position*Math.min(e.width,e.height)}px)`),I=!1)}},get width(){return e.element.clientWidth},get height(){return e.element.clientHeight},prepareResize:()=>{const{clientWidth:t,clientHeight:n}=e.element;e.clientWidth=t,e.clientHeight=n,e.dpr=Yu,e.sizeDirty&&(_=!0)},commitResize:()=>{e.commitResize()}},F=(e,t)=>{const n=l.min.clone().add(l.max).divideScalar(2),i=Math.sqrt(function(e,t){let n=0;const i=new Tn;return e.updateWorldMatrix(!0,!0),e.traverseVisible(e=>{const{geometry:r}=e;if(void 0!==r){const{position:a}=r.attributes;if(void 0!==a)for(let r=0,o=a.count;r<o;r++)e.isMesh?e.getVertexPosition(r,i):i.fromBufferAttribute(a,r),e.isSkinnedMesh||i.applyMatrix4(e.matrixWorld),n=t(n,i)}}),n}(e,(e,t)=>Math.max(e,n.distanceToSquared(t))));a.reset(n,i,t?a.getPose(new Tn):m,t,t),null!=u&&(u.reset(a.getTheta()),a.set(u.theta,u.phi,u.fov))},O={init:()=>{f||(function(e,t){_p.set(e,t),1===_p.size&&(Ku(),ap||(np=new Ms,np.userData.darkness={value:1},np.onBeforeCompile=e=>{e.uniforms.darkness=np.userData.darkness;const t=e.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );","gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );");e.fragmentShader=`uniform float darkness;\n${t}`},np.depthTest=!1,np.depthWrite=!1,ip=new kr(ep),ip.depthTest=!1,rp=new kr(tp),rp.depthTest=!1,ap=!0))}(e.element,N),i=new Xs,r=new Wr(25,1,.5),a=new Ep(r,e.element),a.setInteractionEnabled(M),n=new $d(i,r),c=function(e){let t,n,i,r,a,o,s,l,c=!1;function h(e){s.visible=!0,ip.uniforms.tDiffuse.value=t.texture,ip.uniforms.h.value=1*e/256,s.material=ip;const i=Xu();i.setRenderTarget(n),i.render(s,l),rp.uniforms.tDiffuse.value=n.texture,rp.uniforms.v.value=1*e/256,s.material=rp,i.setRenderTarget(t),i.render(s,l),s.visible=!1}return{init:()=>{c||(t=new Mn(512,512),t.texture.generateMipmaps=!1,n=new Mn(512,512),n.texture.generateMipmaps=!1,i=new Qs,i.position.y=-.7,r=new aa(45,45).rotateX(Math.PI/2),a=new $i({map:t.texture,opacity:.5,transparent:!0,depthWrite:!1,userData:{[Vd]:!0,[Wd]:!0}}),o=new Qr(r,a),o.renderOrder=1,o.scale.y=-1,i.add(o),s=new Qr(r),s.visible=!1,i.add(s),l=new va(-22.5,22.5,22.5,-22.5,0,3),l.rotation.x=Math.PI/2,i.add(l),c=!0)},destroy:()=>{c&&(l=null,s.clear(),s=null,o.clear(),o=null,rd(a),a=null,r.dispose(),r=null,i.clear(),i=null,n.dispose(),n=null,t.dispose(),t=null,c=!1)},get group(){return i},render:()=>{const n=e.background;e.background=null,e.overrideMaterial=np;const i=Xu(),r=i.getClearAlpha();i.setClearAlpha(0),i.setRenderTarget(t),i.render(e,l),e.overrideMaterial=null,h(1.5),h(.4*1.5),i.setRenderTarget(null),i.setClearAlpha(r),e.background=n}}}(i),c.init(),u=up(),d=Sp(),p=function(){let e,t,n,i,r=!1,a=null;return{clear:()=>{r=!1,e=void 0,t=void 0,n=void 0,a=null},reset:i=>{r=!0,e=i.getObjectByName("hours"),t=i.getObjectByName("minutes"),n=i.getObjectByName("seconds"),a=function(e,t,n){let i,r,a,o,s=!1,l=!1;return{update:c=>{if(!s){i=new Date(c),i.setMilliseconds(i.getMilliseconds()+Bp);const e=i.getHours(),t=i.getMinutes(),n=i.getSeconds(),l=i.getMilliseconds();r=Lp(Up(e,t,n)),a=Lp(Pp(t,n)),o=Lp(Np(n,l)),s=!0}if(l)return;const h=i.getTime()-c.getTime(),A=Bp-h;h<=0?l=!0:(null!=e&&(r.seek(A),e.rotation.y=r.get()),null!=t&&(a.seek(A),t.rotation.y=a.get()),null!=n&&(o.seek(A),n.rotation.y=o.get()))},get done(){return l}}}(e,t,n)},update:()=>{if(!r)return!1;const o=new Date;if(null==i&&(i=new Date),null!=a){if(a.update(o),!a.done)return i=o,!0;a=null}if(Math.abs(o.getTime()-i.getTime())<125)return!1;const s=o.getHours(),l=o.getMinutes(),c=o.getSeconds(),h=o.getMilliseconds();return null!=e&&(e.rotation.y=Up(s,l,c)),null!=t&&(t.rotation.y=Pp(l,c)),null!=n&&(n.rotation.y=Np(c,h)),i=o,!0}}}(),f=!0)},destroy:()=>{var t;f&&(null===(t=i.environment)||void 0===t||t.dispose(),i.environment=null,p=null,d=null,u=null,c.destroy(),c=null,n.dispose(),n=null,null!=A&&a.removeEventListener("change",A),A=null,a.dispose(),a=null,r=null,ld(i),i=null,function(e){_p.delete(e),0===_p.size&&(ap&&(rd(rp),rp=null,rd(ip),ip=null,rd(np),np=null,ap=!1),Ip=null,Wu&&(zu.dispose(),zu=null,Vu=null,qu=1,ju=1,Yu=1,Wu=!1))}(e.element),f=!1)},set gltfScene(e){o=e,ld(i),null!=o&&(i.add(o),this.isDiamondScene&&$u(o,s),l=(new Qn).setFromObject(o),c.group.position.y=l.min.y-0,i.add(c.group),c.render(),E=function(e){let t=!1;return e.traverse(e=>{if(!t&&e instanceof Qr){const n=e.material;Array.isArray(n)?n.forEach(e=>{e.transmission>0&&(t=!0)}):n.transmission>0&&(t=!0)}}),t}(i),F(o,v&&B),u.reset(a.getTheta()),d.reset(),p.clear(),"Watches"===g&&p.reset(o),C||xp()),U=0,_=!0},get isDiamondScene(){var e;return!!(null===(e=null==o?void 0:o.userData)||void 0===e?void 0:e.isDiamondScene)},set environment(e){var t;null===(t=i.environment)||void 0===t||t.dispose(),i.environment=e},set diamondEnvironment(e){s=e,this.isDiamondScene&&null!=o&&$u(o,e)},set environmentRotation(e){i.environmentRotation.y=e*Math.PI/180,_=!0},updateOnce:e=>{f&&!C&&(B||(u.update(e),u.running&&a.set(u.theta,u.phi,u.fov)&&(_=!0)),0!==e&&p.update()&&(_=!0))},renderOnce:()=>{N.prepareResize(),N.ensureBlittedMode(),N.commitResize(),Zu(N.width,N.height),B||a.set(u.theta,u.phi,u.fov),Ju(n,e,!E&&!n.bloomEnabled||b?0:1,x,y),null==h||h()},get category(){return g},set category(e){g=e},set initialPose(e){m=e},set toneMapping(e){const t={ACES:4,Linear:1,Neutral:7};null!=t[e]&&(x=t[e]),_=!0},set toneMappingExposure(e){y=e,_=!0},set paused(e){e?(C=!0,a.setInteractionEnabled(!1),function(){for(const{paused:e}of _p.values())if(!e)return!1;return!0}()&&Xu().setAnimationLoop(null),t.opacity="0",t.visible=!1):(C=!1,a.setInteractionEnabled(M),null!=o&&(F(o,!1),_=!0,xp()),P=0)},set interactive(e){M=e,a.setInteractionEnabled(e)},set touchAction(e){a.touchAction=e},set zoomEnabled(e){a.enableZoom=e},set minZoom(e){a.minZoom=e},set maxZoom(e){a.maxZoom=e},set preserveCameraOnReload(e){v=e},set forcedTransparency(e){b=e,_=!0},set defaultFov(e){a.defaultFov=e},set fovMultiplier(e){a.fovMultiplier=e,_=!0},set bloomEnabled(e){n.bloomEnabled=e,_=!0},set bloomStrength(e){n.bloomStrength=e,_=!0},set bloomRadius(e){n.bloomRadius=e,_=!0},set bloomThreshold(e){n.bloomThreshold=e,_=!0},set nonLiveRendering(e){w=e},set onRendered(e){h=e},set onInteracted(e){null!=A&&a.removeEventListener("change",A),A=e,null!=e&&a.addEventListener("change",e)},set onInteractionPerf(e){S=e},set onMaxZoomEnter(e){a.onMaxZoomEnter=e},set onMaxZoomLeave(e){a.onMaxZoomLeave=e},set onMinZoomEnter(e){a.onMinZoomEnter=e},set onMinZoomLeave(e){a.onMinZoomLeave=e},set onMinVerticalAngleEnter(e){a.onMinVerticalAngleEnter=e},set onMinVerticalAngleLeave(e){a.onMinVerticalAngleLeave=e},set onMaxVerticalAngleEnter(e){a.onMaxVerticalAngleEnter=e},set onMaxVerticalAngleLeave(e){a.onMaxVerticalAngleLeave=e},zoomBy:e=>{f&&!C&&(a.adjustZoom(e),_=!0)},rotateBy:(e,t)=>{f&&!C&&(a.adjustOrbit(-e*Math.PI/180,t*Math.PI/180),_=!0)},setAnimationConfig:e=>{u.set(e),null!=o&&F(o,!0),u.custom||(u.reset(a.getTheta()),d.reset()),_=!0}};return O}function Op(e){return t=>k(this,void 0,void 0,function*(){try{yield t()}catch(t){e(t)}})}const kp={initialized:!1,paused:!1,posterUrl:null,glbUrl:null,envUrl:null,diamondEnvUrl:null,envRotation:null,toneMapping:null,toneMappingExposure:null,bloomEnabled:null,bloomStrength:null,bloomRadius:null,bloomThreshold:null,category:null,glbLocal:!1,interactive:!1,touchAction:null,zoomEnabled:!1,minZoom:null,maxZoom:null,preserveCameraOnReload:!1,alwaysTransparentBackground:!1,defaultFov:null,fovMultiplier:null,defaultCameraPositions:null,interactionPromptUrl:null,interactionPromptSize:null,nonLiveRendering:null,baseUrl:null,downloadCacheEnabled:!1,onModelLoaded:null,onRendered:null,onInteracted:null,onInteractionPerf:null,onMaxZoomEnter:null,onMaxZoomLeave:null,onMinZoomEnter:null,onMinZoomLeave:null,onMinVerticalAngleEnter:null,onMinVerticalAngleLeave:null,onMaxVerticalAngleEnter:null,onMaxVerticalAngleLeave:null,animation:null,thetaAnimation:null,phiAnimation:null,fovAnimation:null};function Gp(e,t){const n=e,i=t,r=Fp(i.canvasWrapper,i.prompt),a=function(){const e=Object.assign({},Xc);return{set vectors(t){for(const i of Object.keys(e)){if(!Yc(i))continue;const r=null==t?void 0:t[i];e[i]=null!=r?new Tn((n=r)[0],n[1],n[2]):Xc[i]}var n},getVector:t=>{var n;return(null==t?e.Glasses:null!==(n=e[t])&&void 0!==n?n:e.Glasses).normalize()}}}();let o=()=>{};const s=[],l=new Mh;let c,h,A,u,d,p,f,g,m,v,E,b,C,_,I,x;l.setOnProgress(e=>{i.loading.progress=e,e>0&&(i.loading.visible=!0)});const y=function(){const e=Object.keys(kp).reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:0}),{});return t=>{const n=++e[t];return()=>n!==e[t]}}(),M=function(){const e=Object.keys(kp).reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:!1}),{});return{lock:t=>{e[t]=!0},unlock:t=>{e[t]=!1},anyLocked:()=>Object.values(e).some(e=>e),locks_:e}}(),w=function(e,t){return n=>{t.length>0?(t.forEach(e=>e.reject(n)),t.length=0):e.onError?e.onError(n):console.error(n)}}(n,s),S=function(e,t){return(n,i)=>k(this,void 0,void 0,function*(){const r=Op(t),a=function(e,t){const n=e(t);return e=>k(this,void 0,void 0,function*(){yield e(n)})}(e,n);yield r(()=>a(i))})}(y,w),B=function(e,t,n,i){return(r,a)=>k(this,void 0,void 0,function*(){const o=function(e,t){return n=>k(this,void 0,void 0,function*(){e.lock(t),yield n(),e.unlock(t)})}(e,r),s=Op(i),l=function(e,t,n,i){const r=t(i);return t=>k(this,void 0,void 0,function*(){yield Promise.resolve(),r()||(yield t(r))&&(e.unlock(i),e.anyLocked()||n())})}(e,t,n,r);yield o(()=>s(()=>l(a)))})}(M,y,()=>{void 0!==E&&(r.category=E,r.initialPose=a.getVector(null!=E?E:Kc)),void 0!==c&&(r.gltfScene=c),void 0!==h&&(r.environment=h),void 0!==A&&(r.diamondEnvironment=A),void 0!==u&&(r.environmentRotation=null!=u?u:0),void 0!==f&&(r.bloomEnabled=null!=f&&f),void 0!==g&&(r.bloomStrength=null!=g?g:.25),void 0!==m&&(r.bloomRadius=null!=m?m:0),void 0!==v&&(r.bloomThreshold=null!=v?v:2),null==o||o(),void 0!==x&&r.setAnimationConfig(x),void 0!==d&&(r.toneMapping=null!=d?d:"Neutral"),void 0!==p&&(r.toneMappingExposure=null!=p?p:1),void 0!==b&&(r.forcedTransparency=b),void 0!==C&&(r.onRendered=C),void 0!==_&&(r.onInteracted=_),void 0!==I&&(r.onInteractionPerf=I),r.renderOnce(),i.canvasVisible=!0,i.posterVisible=!1,i.loading.visible=!1,s.forEach(e=>e.resolve()),s.length=0,c=void 0,h=void 0,A=void 0,d=void 0,p=void 0,E=void 0,b=void 0,C=void 0,_=void 0,I=void 0},w);return n.onInitializedChange=e=>S("initialized",t=>k(this,void 0,void 0,function*(){e?(r.init(),r.paused=n.paused):r.destroy()})),n.onPausedChange=e=>S("paused",t=>k(this,void 0,void 0,function*(){r.paused=e})),n.onPosterUrlChange=e=>S("posterUrl",t=>k(this,void 0,void 0,function*(){i.loadPoster(e),i.posterVisible=M.anyLocked(),i.canvasVisible=!M.anyLocked()})),n.onGlbUrlChange=t=>B("glbUrl",r=>k(this,void 0,void 0,function*(){if(r()||!n.initialized)return!1;if(null!=t)if(id(),"string"==typeof t){null!=n.posterUrl&&(i.posterVisible=!0,i.canvasVisible=!1);const a=255,o=Hp(e.glbLocal)?new Uint8Array(yield Eh(t,l,n.downloadCacheEnabled)):yield bh(t,(new Date).getTime()+a,Math.random()*a,l,n.downloadCacheEnabled);if(r()||!n.initialized)return!1;const s=yield nd(o);if(r()||!n.initialized)return!1;c=s.scene}else{const i=255,a=Hp(e.glbLocal,"left")?Eh(t.left,l,n.downloadCacheEnabled).then(e=>new Uint8Array(e)):bh(t.left,(new Date).getTime()+i,Math.random()*i,l,n.downloadCacheEnabled),o=Hp(e.glbLocal,"right")?Eh(t.right,l,n.downloadCacheEnabled).then(e=>new Uint8Array(e)):bh(t.right,(new Date).getTime()+i,Math.random()*i,l,n.downloadCacheEnabled),s=yield a;if(r()||!n.initialized)return!1;const h=yield o;if(r()||!n.initialized)return!1;const A=(yield nd(s)).scene;if(r()||!n.initialized)return!1;const u=(yield nd(h)).scene;if(r()||!n.initialized)return!1;c=function(e,t){const n=new Qs,i=sd(e).getSize(new Tn),r=sd(t).getSize(new Tn),a=.075*Math.max(i.z,r.z),o=ad(e,a,!1,void 0,new Bn(0,0,0,1));e.position.set(o.x,o.y,o.z);const s=ad(t,a,!0,void 0,new Bn(0,0,0,1));return t.position.set(s.x,s.y,s.z),n.add(e,t),n}(A,u)}else c=null;return!0})),n.onEnvUrlChange=e=>B("envUrl",t=>k(this,void 0,void 0,function*(){if(t()||!n.initialized)return!1;if(null!=e){const i=yield Eh(e,l,n.downloadCacheEnabled);if(t()||!n.initialized)return!1;h=aA(i)}else h=null;return!0})),n.onDiamondEnvUrlChange=e=>B("diamondEnvUrl",t=>k(this,void 0,void 0,function*(){if(t()||!n.initialized)return!1;if(null!=e){const i=yield Eh(e,l,n.downloadCacheEnabled);if(t()||!n.initialized)return!1;A=aA(i)}else A=null;return!0})),n.onEnvRotationChange=e=>B("envRotation",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(u=e,0))})),n.onToneMappingChange=e=>B("toneMapping",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(d=e,0))})),n.onToneMappingExposureChange=e=>B("toneMappingExposure",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(p=e,0))})),n.onBloomEnabledChange=e=>B("bloomEnabled",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(f=e,0))})),n.onBloomStrengthChange=e=>B("bloomStrength",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(g=e,0))})),n.onBloomRadiusChange=e=>B("bloomRadius",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(m=e,0))})),n.onBloomThresholdChange=e=>B("bloomThreshold",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(v=e,0))})),n.onCategoryChange=e=>B("category",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(E=e,0))})),n.onInteractiveChange=e=>S("interactive",t=>k(this,void 0,void 0,function*(){r.interactive=e})),n.onTouchActionChange=e=>S("touchAction",t=>k(this,void 0,void 0,function*(){r.touchAction=e})),n.onZoomEnabledChange=e=>S("zoomEnabled",t=>k(this,void 0,void 0,function*(){r.zoomEnabled=e})),n.onMinZoomChange=e=>S("minZoom",t=>k(this,void 0,void 0,function*(){r.minZoom=e})),n.onMaxZoomChange=e=>S("maxZoom",t=>k(this,void 0,void 0,function*(){r.maxZoom=e})),n.onPreserveCameraOnReloadChange=e=>S("preserveCameraOnReload",t=>k(this,void 0,void 0,function*(){r.preserveCameraOnReload=e})),n.onAlwaysTransparentBackgroundChange=e=>B("alwaysTransparentBackground",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(b=e,0))})),n.onDefaultFovChange=e=>S("defaultFov",t=>k(this,void 0,void 0,function*(){r.defaultFov=null!=e?e:16})),n.onFovMultiplierChange=e=>S("fovMultiplier",t=>k(this,void 0,void 0,function*(){r.fovMultiplier=null!=e?e:1})),n.onDefaultCameraPositionsChange=e=>S("defaultCameraPositions",t=>k(this,void 0,void 0,function*(){var t;a.vectors=e,r.initialPose=a.getVector(null!==(t=r.category)&&void 0!==t?t:Kc)})),n.onInteractionPromptUrlChange=e=>S("interactionPromptUrl",t=>k(this,void 0,void 0,function*(){i.prompt.imageUrl=e})),n.onInteractionPromptSizeChange=e=>S("interactionPromptSize",t=>k(this,void 0,void 0,function*(){i.prompt.imageSize=e})),n.onNonLiveRenderingChange=e=>S("nonLiveRendering",t=>k(this,void 0,void 0,function*(){r.nonLiveRendering=!!e})),n.onBaseUrlChange=e=>S("baseUrl",t=>k(this,void 0,void 0,function*(){Ou(e)})),n.onOnModelLoadedChange=e=>S("onModelLoaded",t=>k(this,void 0,void 0,function*(){o=e})),n.onOnRenderedChange=e=>B("onRendered",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(C=e,0))})),n.onOnInteractedChange=e=>B("onInteracted",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(_=e,0))})),n.onOnInteractionPerfChange=e=>B("onInteractionPerf",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(I=e,0))})),n.onOnMaxZoomEnterChange=e=>S("onMaxZoomEnter",t=>k(this,void 0,void 0,function*(){r.onMaxZoomEnter=e})),n.onOnMaxZoomLeaveChange=e=>S("onMaxZoomLeave",t=>k(this,void 0,void 0,function*(){r.onMaxZoomLeave=e})),n.onOnMinZoomEnterChange=e=>S("onMinZoomEnter",t=>k(this,void 0,void 0,function*(){r.onMinZoomEnter=e})),n.onOnMinZoomLeaveChange=e=>S("onMinZoomLeave",t=>k(this,void 0,void 0,function*(){r.onMinZoomLeave=e})),n.onOnMinVerticalAngleEnterChange=e=>S("onMinVerticalAngleEnter",t=>k(this,void 0,void 0,function*(){r.onMinVerticalAngleEnter=e})),n.onOnMinVerticalAngleLeaveChange=e=>S("onMinVerticalAngleLeave",t=>k(this,void 0,void 0,function*(){r.onMinVerticalAngleLeave=e})),n.onOnMaxVerticalAngleEnterChange=e=>S("onMaxVerticalAngleEnter",t=>k(this,void 0,void 0,function*(){r.onMaxVerticalAngleEnter=e})),n.onOnMaxVerticalAngleLeaveChange=e=>S("onMaxVerticalAngleLeave",t=>k(this,void 0,void 0,function*(){r.onMaxVerticalAngleLeave=e})),n.onAnimationChange=e=>B("animation",t=>k(this,void 0,void 0,function*(){if(t()||!n.initialized)return!1;if(null==e)return x={theta:null,phi:null,fov:null},!0;const i=oe(e);return x={theta:null!=i.theta?Z(i.theta):null,phi:null!=i.phi?Z(i.phi):null,fov:null!=i.fov?Z(i.fov):null},!0})),{render:e=>{r.updateOnce(e),r.renderOnce()},flushChanges:()=>new Promise((e,t)=>{M.anyLocked()?s.push({resolve:e,reject:t}):e()}),zoomBy:e=>{r.zoomBy(e)},rotateBy:(e,t)=>{r.rotateBy(e,t)}}}function Hp(e,t){if(null==t){if("boolean"==typeof e)return e;const t=e.left||e.right;return console.warn(`Expected 'glbLocal' to be boolean, but got object (treating as ${t}).`),t}return"boolean"==typeof e?e:e[t]}var zp,Vp,Wp,qp,jp,Yp,Xp,Kp,Jp,Zp,$p,ef;!function(e){e[e.Empty=0]="Empty",e[e.Direct=1]="Direct",e[e.Blitted=2]="Blitted"}(ef||(ef={}));class tf{constructor(){zp.add(this),Vp.set(this,document.createElement("div")),Wp.set(this,ef.Empty),qp.set(this,null),jp.set(this,1),Yp.set(this,1),Xp.set(this,1),Kp.set(this,1),Jp.set(this,1),Zp.set(this,!1);const{style:e}=G(this,Vp,"f");e.position="absolute",e.top="0",e.left="0",e.width="100%",e.height="100%",e.pointerEvents="auto"}get element(){return G(this,Vp,"f")}isDirect(){return G(this,Wp,"f")===ef.Direct}ensureDirectMode(){if(G(this,Wp,"f")===ef.Direct)return;H(this,Wp,ef.Direct);const e=Xu().domElement;document.contains(e)&&console.warn("[ShopAR 3D] Direct rendering not working properly!"),G(this,Vp,"f").replaceChildren(e),H(this,qp,null),H(this,Zp,!0)}isBlitted(){return G(this,Wp,"f")===ef.Blitted}ensureBlittedMode(){G(this,Wp,"f")!==ef.Blitted&&(H(this,Wp,ef.Blitted),H(this,qp,function(){const e=document.createElement("canvas"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",e}()),G(this,Vp,"f").replaceChildren(G(this,qp,"f")),H(this,Zp,!0))}set visible(e){G(this,Vp,"f").style.visibility=e?"visible":"hidden"}get width(){return G(this,Xp,"f")}get height(){return G(this,Kp,"f")}set clientWidth(e){e!==G(this,jp,"f")&&H(this,Zp,!0),H(this,jp,e)}set clientHeight(e){e!==G(this,Yp,"f")&&H(this,Zp,!0),H(this,Yp,e)}get dpr(){return G(this,Jp,"f")}set dpr(e){e!==this.dpr&&H(this,Zp,!0),H(this,Jp,e)}get sizeDirty(){return G(this,Zp,"f")}commitResize(){if(!G(this,Zp,"f"))return;H(this,Zp,!1);const e=G(this,zp,"m",$p).call(this);null!=e&&(H(this,Xp,Math.ceil(G(this,jp,"f")*G(this,Jp,"f"))),H(this,Kp,Math.ceil(G(this,Yp,"f")*G(this,Jp,"f"))),e.width=G(this,Xp,"f"),e.height=G(this,Kp,"f"))}get context2d(){var e,t;return null!==(t=null===(e=G(this,qp,"f"))||void 0===e?void 0:e.getContext("2d"))&&void 0!==t?t:null}}function nf(e){return`var(${e.var}, ${e.default})`}Vp=new WeakMap,Wp=new WeakMap,qp=new WeakMap,jp=new WeakMap,Yp=new WeakMap,Xp=new WeakMap,Kp=new WeakMap,Jp=new WeakMap,Zp=new WeakMap,zp=new WeakSet,$p=function(){return G(this,Wp,"f")===ef.Direct?Xu().domElement:G(this,Wp,"f")===ef.Blitted?G(this,qp,"f"):null};const rf="--shopar-3d",af={display:{var:`${rf}-loading-display`,default:"block"},top:{var:`${rf}-loading-top`,default:"0"},bottom:{var:`${rf}-loading-bottom`,default:"auto"},height:{var:`${rf}-loading-height`,default:"0.375rem"},radius:{var:`${rf}-loading-radius`,default:"calc(infinity * 1px)"},fg:{var:`${rf}-loading-fg`,default:"linear-gradient(90deg, #773cd8, #5fb9ec)"},bg:{var:`${rf}-loading-bg`,default:"#e5e7eb"}},of="width 0.05s ease-out";const sf="data:image/svg+xml,%3csvg width='869' height='1251' viewBox='0 0 869 1251' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg clip-path='url(%23clip0_894_1533)'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M303.44 353.132C304.829 314.64 330.051 282.714 363.992 272.987C371.106 271.049 378.436 270.01 385.808 269.895C391.367 269.895 396.717 270.486 401.893 271.424C439.69 278.372 467.899 309.36 467.899 346.462V654.953H511.671C613.911 606.665 685.371 500.36 685.371 376.165C685.571 306.213 662.333 238.211 619.365 183.01L604.427 165.64C577.851 136.528 545.96 112.766 510.212 96.1603C473.492 79.1377 432.881 69.4105 390.012 69.4105C347.143 69.4105 306.636 79.0683 269.812 96.1603C234.029 112.766 202.173 136.528 175.666 165.64L160.728 183.01C117.761 238.211 94.5225 306.213 94.722 376.165C94.714 391.336 95.8054 406.487 97.9875 421.5C99.0297 428.796 101.045 435.744 102.504 442.935L107.228 464.613C110.112 474.548 114.037 484.067 117.824 493.516L122.132 505.085C127.341 516.473 133.246 527.53 139.814 538.192L142.073 542.43C171.755 590.029 214.112 628.416 264.392 653.286L302.954 671.941V353.097L303.44 353.132Z' fill='white' fill-opacity='0.5'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M797.001 876.074L701.118 1144.96C695.143 1161.81 677.634 1172.75 657.589 1172.75H425.283C369.49 1172.75 317.867 1149.13 287.018 1109.53C231.711 1038.38 160.321 976.75 74.7561 926.447C71.4558 924.536 69.5451 921.687 69.4757 918.456C69.3367 914.982 71.0737 911.647 76.1805 908.139C95.6349 894.486 119.05 887.295 143.09 887.295C151.152 887.279 159.195 888.083 167.095 889.692L338.085 924.223V346.427C338.085 323.395 359.45 304.635 385.679 304.635C411.908 304.635 433.377 323.395 433.377 346.427V689.728H535.964C545.448 689.728 554.481 692.264 562.263 697.024L779.631 831.606C780.569 832.197 781.194 833.065 782.063 833.691C796.306 843.974 802.42 860.441 796.862 876.074M142.499 542.431C141.665 541.041 141.04 539.547 140.241 538.192C133.666 527.534 127.76 516.477 122.558 505.085C120.891 501.368 119.779 497.338 118.251 493.517L107.655 464.613C105.64 457.595 104.528 450.161 102.93 442.935L98.4141 421.501C96.2308 406.488 95.1394 391.336 95.1485 376.165C95.1485 302.968 119.953 235.815 161.155 183.011L176.093 165.641C202.634 136.459 234.525 112.731 270.238 96.1605C306.993 79.1379 347.569 69.4107 390.439 69.4107C433.308 69.4107 473.884 79.1379 510.639 96.1605C546.421 112.731 578.278 136.459 604.854 165.641L619.723 183.011C662.719 238.184 685.972 306.182 685.763 376.13C685.763 500.395 614.338 606.665 512.063 654.953H468.291V346.393C468.291 309.325 439.735 278.302 402.285 271.354C397.074 270.382 391.724 269.826 386.2 269.826C378.557 269.826 371.366 271.111 364.384 272.952C330.443 282.68 305.221 314.571 303.832 353.063V671.907L265.27 653.251C214.758 628.725 172.376 590.58 142.499 542.431ZM798.043 802.147L580.71 667.564C577.166 665.375 573.136 664.16 569.245 662.562C662.453 600.03 720.503 493.899 720.503 376.2C720.503 359.316 719.218 342.71 716.89 326.521C709.659 275.243 691.021 226.238 662.348 183.115L652.1 168.941L649.807 165.745C639.725 152.491 628.708 139.976 616.839 128.295C604.958 116.692 592.243 105.957 578.834 96.2647C538.709 67.2916 492.261 47.2118 441.958 38.9437L416.528 35.8866L390.543 34.8444C373.298 34.8447 356.082 36.2272 339.058 38.9785C288.789 47.2466 242.272 67.3263 202.182 96.2995C192.322 103.7 182.893 111.657 173.939 120.131C163.518 129.655 153.713 139.831 144.584 150.598L131.209 165.779L118.702 183.149L108.697 199.408L94.1758 226.436L92.7862 229.562C72.1854 274.029 60.478 323.708 60.478 376.234C60.478 509.358 136.281 631.295 253.632 686.741L303.554 710.364V882.188L173.765 855.994C163.608 853.965 153.273 852.964 142.916 853.006C142.325 853.006 141.735 853.11 141.179 853.11C132.425 853.249 123.705 854.257 115.124 855.89C112.364 856.472 109.619 857.121 106.891 857.835C100.186 859.433 93.62 861.552 87.1583 864.088C84.5528 865.13 81.9473 866.068 79.3418 867.562C70.6568 871.523 62.1803 876.039 54.2248 881.632C47.9431 885.96 42.8502 891.798 39.4144 898.609C35.9785 905.42 34.3099 912.986 34.562 920.61C34.9201 928.091 37.1618 935.359 41.079 941.742C44.9961 948.125 50.4619 953.415 56.9693 957.122C139.025 1004.85 207.116 1063.53 259.677 1131.24C264.329 1137.24 269.365 1142.94 274.754 1148.3C312.482 1185.88 367.024 1207.81 425.04 1207.88H657.693C683.679 1207.84 707.372 1196.31 722.24 1177.58C727.173 1171.33 731.134 1164.38 733.913 1156.67L829.691 887.781C832.957 878.749 834.207 869.369 833.582 860.197C832.957 851.026 830.525 842.133 826.53 833.795C820.225 820.757 810.33 809.79 798.008 802.182' fill='black' fill-opacity='0.6'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M779.738 831.676L562.37 697.093C554.446 692.276 545.346 689.739 536.072 689.763H433.485V346.532C433.485 323.499 412.085 304.74 385.787 304.74C359.489 304.74 338.193 323.499 338.193 346.532V924.71L167.203 890.178C159.291 888.569 151.236 887.766 143.163 887.781C119.267 887.676 95.9182 894.929 76.2881 908.555C71.1813 912.099 69.4096 915.434 69.5485 918.908C69.6875 922.174 71.5635 925.022 74.8638 926.898C160.394 977.202 231.784 1038.76 287.125 1109.98C317.94 1149.58 369.563 1173.2 425.39 1173.2H657.662C677.707 1173.2 695.181 1161.88 701.191 1145.41L797.074 876.525C802.632 860.962 796.483 844.46 782.274 834.142C781.406 833.448 780.781 832.649 779.843 832.058L779.738 831.676Z' fill='white'/%3e%3cmask id='mask0_894_1533' style='mask-type:luminance' maskUnits='userSpaceOnUse' x='0' y='0' width='869' height='1243'%3e%3cpath d='M0.0664062 0.0349731H868.462V1242.62H0.0664062V0.0349731Z' fill='white'/%3e%3c/mask%3e%3cg mask='url(%23mask0_894_1533)'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M833.58 860.197C834.209 869.559 832.897 878.95 829.724 887.781L733.911 1156.67C731.132 1164.31 727.172 1171.36 722.239 1177.58C707.405 1196.34 683.677 1207.81 657.727 1207.88H425.038C367.022 1207.81 312.481 1185.88 274.753 1148.3C269.403 1142.95 264.331 1137.25 259.676 1131.27C207.114 1063.57 139.024 1004.89 57.2458 956.809C43.8709 948.993 35.4985 935.34 34.8385 920.332C34.5864 912.708 36.255 905.143 39.6909 898.332C43.1267 891.521 48.2196 885.682 54.5013 881.354C62.4292 875.912 70.8363 871.202 79.6183 867.284L87.4348 863.81C93.8598 861.272 100.453 859.183 107.167 857.557L115.401 855.612C124.016 854.014 132.771 853.006 141.456 852.833C142.081 852.833 142.637 852.728 143.193 852.728C153.719 852.694 163.932 853.666 174.111 855.716L303.413 881.84V710.399L253.527 686.775C136.21 631.33 60.3724 509.393 60.3724 376.269C60.3724 323.812 72.045 274.134 92.6806 229.597C93.2017 228.555 93.5491 227.513 94.0702 226.47C98.4821 217.195 103.38 208.232 108.591 199.443C111.822 193.884 115.053 188.465 118.597 183.184C120.785 179.884 123.217 176.723 125.545 173.561L131.138 165.675C135.237 160.291 140.17 155.601 144.513 150.494C153.753 140.072 163.411 129.511 173.868 120.027C182.822 111.552 192.251 103.596 202.112 96.1953C242.202 67.2569 288.753 47.2119 339.022 38.8743C356.034 36.1219 373.239 34.7394 390.472 34.7402C399.145 34.7313 407.815 35.0906 416.457 35.8172C425.038 36.512 433.48 37.5542 441.922 38.8743C492.225 47.1424 538.707 67.2221 578.797 96.1953C592.242 105.923 604.922 116.622 616.803 128.226C628.681 139.898 639.699 152.413 649.771 165.675L652.064 168.871C655.607 173.492 659.116 178.182 662.312 183.045C690.997 226.166 709.647 275.171 716.889 326.452C719.182 342.676 720.467 359.281 720.467 376.13C720.467 493.829 662.451 600.307 569.244 662.492C573.065 664.09 577.13 665.271 580.708 667.495L798.041 802.077C810.895 810.068 820.449 821.184 826.528 833.343C830.523 841.681 832.955 850.644 833.58 859.746M857.794 818.231C848.588 799.124 834.275 783.248 816.315 772.166L631.394 657.628C709.732 586.863 755.207 484.971 755.207 375.748C755.207 299.667 733.078 226.227 691.285 163.348C686.908 156.817 682.253 150.494 677.389 144.171C654.982 114.712 628.684 88.5872 599.155 67.6043C537.561 23.5887 465.337 0.0349731 390.472 0.0349731C315.457 0.0670918 242.383 23.8817 181.754 68.0559C152.294 89.3863 125.961 115.163 103.485 144.658C98.7601 150.911 94.0354 157.268 89.6582 163.765C47.7965 226.679 25.6671 300.119 25.6671 376.2C25.6671 522.733 109.286 656.899 238.728 718.111L268.708 732.354V839.77L180.99 822.053C168.622 819.621 156.081 818.37 143.609 818.37C104.55 818.376 66.4474 830.462 34.5258 852.971C11.8406 868.952 -0.978479 894.729 0.133201 921.861C0.732449 935.148 4.66826 948.071 11.5776 959.437C18.4869 970.803 28.1472 980.245 39.6673 986.894C117.485 1032.68 182.31 1088.44 232.231 1152.67C276.004 1208.95 348.02 1242.65 425.038 1242.72H657.727C707.057 1242.68 750.83 1212.84 766.602 1168.45L862.484 899.558C871.933 873.26 870.266 844.53 857.829 818.787' fill='black' fill-opacity='0.05'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath id='clip0_894_1533'%3e%3crect width='868.5' height='1250.64' fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",lf="2rem";function cf(e){const t=function(){const e=document.createElement("div"),{style:t}=e;return t.position="relative",t.width="100%",t.height="100%",t.pointerEvents="none",e}(),n=function(){const e=document.createElement("div");e.draggable=!1;const{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.objectFit="contain",t.visibility="hidden",t.backgroundSize="contain",t.backgroundRepeat="no-repeat",t.backgroundPosition="center",e}();t.appendChild(n);const i=new tf;t.appendChild(i.element);const r=function(){const e=function(){const e=document.createElement("div"),{style:t}=e;return t.display=nf(af.display),t.opacity="0",t.transition="opacity 0.2s ease-out",t.position="absolute",t.top=nf(af.top),t.bottom=nf(af.bottom),t.left="0",t.width="100%",t.height=nf(af.height),t.overflow="hidden",e}(),t=function(){const e=document.createElement("div"),{style:t}=e;return t.position="absolute",t.width="100%",t.height="100%",t.background=nf(af.bg),e}(),n=function(){const e=document.createElement("div"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="0%",t.height="100%",t.background=nf(af.fg),t.borderRadius=nf(af.radius),t.transition=of,e}();t.appendChild(n),e.appendChild(t);let i=0;return{get container(){return e},set progress(e){e<i?(n.style.transition="none",n.style.width=100*e+"%",n.offsetWidth,n.style.transition=of):n.style.width=100*e+"%",i=e},set visible(t){e.style.opacity=t?"1":"0"}}}();t.appendChild(r.container);const a=function(){const e=function(){const e=document.createElement("div"),{style:t}=e;return t.visibility="hidden",t.position="absolute",t.width="100%",t.height="100%",t.display="flex",t.justifyContent="center",t.alignItems="center",e}(),t=function(){const e=function(e){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width",e),t.setAttribute("height",e),t}(lf),{style:t}=e;return t.transition="opacity 0.3s",t.opacity="0",e}(),n=function(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t),n.setAttribute("width",e),n.setAttribute("height",e),n}(lf,sf);return t.appendChild(n),e.appendChild(t),{get container(){return e},get svg(){return t},set imageUrl(e){n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",null!=e?e:sf)},set imageSize(e){const i=null!=e?e:lf;t.setAttribute("width",i),t.setAttribute("height",i),n.setAttribute("width",i),n.setAttribute("height",i)},set visible(t){e.style.visibility=t?"visible":"hidden"},set opacity(e){t.style.opacity=e},set transform(e){t.style.transform=e}}}();return t.appendChild(a.container),{get root(){return t},get canvasWrapper(){return i},get loading(){return r},get prompt(){return a},set canvasVisible(e){i.visible=e},set posterVisible(e){n.style.visibility=e?"visible":"hidden"},loadPoster:e=>{n.style.backgroundImage=e?`url(${e})`:""}}}var hf,Af,uf,df;class pf extends HTMLElement{constructor(){super(),hf.add(this),Af.set(this,void 0),uf.set(this,void 0),H(this,Af,function(){let e,t,n,i,r,a,o,s,l,c,h,A,u,d,p,f,g,m,v,E,b,C,_,I,x,y,M,w,S,B,T,R,D,Q,L,U,P,N,F,O,k,G,H,z,V=()=>{},W=()=>{},q=()=>{},j=()=>{},Y=()=>{},X=()=>{},K=()=>{},J=()=>{},Z=()=>{},$=()=>{},ee=()=>{},te=()=>{},ne=()=>{},ie=()=>{},re=()=>{},ae=()=>{},oe=()=>{},se=()=>{},le=()=>{},ce=()=>{},he=()=>{},Ae=()=>{},ue=()=>{},de=()=>{},pe=()=>{},fe=()=>{},ge=()=>{},me=()=>{},ve=()=>{},Ee=()=>{},be=()=>{},Ce=()=>{},_e=()=>{},Ie=()=>{},xe=()=>{},ye=()=>{},Me=()=>{},we=()=>{},Se=()=>{},Be=()=>{},Te=()=>{},Re=()=>{},De=()=>{},Qe=()=>{};function Le(){e=!1,t=!1,n=null,i=null,r=null,a=null,o=null,s=null,l=null,c=null,h=null,A=null,u=null,d=null,p=!1,f=!0,g=null,m=null,v=null,E=null,b=null,C=null,_=null,I=null,x=null,y=null,M=null,w=null,S=null,B=null,T=!0,R=null,D=null,Q=!1,L=!1,U=null,P=null,N=null,F=null,O=null,k=null,G=null,H=null,z=!1}return Le(),{get initialized(){return e},set initialized(t){const n=t!==e;e=t,t||Le(),n&&(null==V||V(e))},set onInitializedChange(e){V=e},get paused(){return t},set paused(e){const n=e!==t;t=e,n&&(null==W||W(t))},set onPausedChange(e){W=e},get posterUrl(){return n},set posterUrl(e){const t=e!==n;n=e,t&&(null==q||q(e))},set onPosterUrlChange(e){q=e},set glbUrl(e){const t=e!==i;i=e,t&&(null==j||j(i))},set onGlbUrlChange(e){j=e},set envUrl(e){const t=e!==r;r=e,t&&(null==Y||Y(r))},set onEnvUrlChange(e){Y=e},set diamondEnvUrl(e){const t=e!==a;a=e,t&&(null==X||X(a))},set onDiamondEnvUrlChange(e){X=e},set envRotation(e){const t=e!==o;o=e,t&&(null==K||K(o))},set onEnvRotationChange(e){K=e},set toneMapping(e){const t=e!==s;s=e,t&&(null==J||J(s))},set onToneMappingChange(e){J=e},set toneMappingExposure(e){const t=e!==l;l=e,t&&(null==Z||Z(l))},set onToneMappingExposureChange(e){Z=e},set bloomEnabled(e){const t=e!==c;c=e,t&&(null==$||$(c))},set onBloomEnabledChange(e){$=e},set bloomStrength(e){const t=e!==h;h=e,t&&(null==ee||ee(h))},set onBloomStrengthChange(e){ee=e},set bloomRadius(e){const t=e!==A;A=e,t&&(null==te||te(A))},set onBloomRadiusChange(e){te=e},set bloomThreshold(e){const t=e!==u;u=e,t&&(null==ne||ne(u))},set onBloomThresholdChange(e){ne=e},set category(e){const t=e!==d;d=e,t&&(null==ie||ie(d))},set onCategoryChange(e){ie=e},get glbLocal(){return p},set glbLocal(e){const t=e!==p;p=e,t&&(null==re||re(p))},set onGlbLocalChange(e){re=e},set interactive(e){const t=e!==f;f=e,t&&(null==ae||ae(f))},set onInteractiveChange(e){ae=e},set onModelLoaded(e){const t=e!==g;g=e,t&&(null==oe||oe(g))},set onOnModelLoadedChange(e){oe=e},set onRendered(e){const t=e!==m;m=e,t&&(null==se||se(m))},set onOnRenderedChange(e){se=e},set onInteracted(e){const t=e!==v;v=e,t&&(null==le||le(v))},set onOnInteractedChange(e){le=e},set onInteractionPerf(e){const t=e!==E;E=e,t&&(null==ce||ce(E))},set onOnInteractionPerfChange(e){ce=e},set onMaxZoomEnter(e){const t=e!==b;b=e,t&&(null==he||he(b))},set onOnMaxZoomEnterChange(e){he=e},set onMaxZoomLeave(e){const t=e!==C;C=e,t&&(null==Ae||Ae(C))},set onOnMaxZoomLeaveChange(e){Ae=e},set onMinZoomEnter(e){const t=e!==_;_=e,t&&(null==ue||ue(_))},set onOnMinZoomEnterChange(e){ue=e},set onMinZoomLeave(e){const t=e!==I;I=e,t&&(null==de||de(I))},set onOnMinZoomLeaveChange(e){de=e},set onMinVerticalAngleEnter(e){const t=e!==x;x=e,t&&(null==pe||pe(x))},set onOnMinVerticalAngleEnterChange(e){pe=e},set onMinVerticalAngleLeave(e){const t=e!==y;y=e,t&&(null==fe||fe(y))},set onOnMinVerticalAngleLeaveChange(e){fe=e},set onMaxVerticalAngleEnter(e){const t=e!==M;M=e,t&&(null==ge||ge(M))},set onOnMaxVerticalAngleEnterChange(e){ge=e},set onMaxVerticalAngleLeave(e){const t=e!==w;w=e,t&&(null==me||me(w))},set onOnMaxVerticalAngleLeaveChange(e){me=e},get onError(){return S},set onError(e){const t=e!==S;S=e,t&&(null==ve||ve(S))},set onOnErrorChange(e){ve=e},set touchAction(e){const t=e!==B;B=e,t&&(null==Ee||Ee(B))},set onTouchActionChange(e){Ee=e},set zoomEnabled(e){const t=e!==T;T=e,t&&(null==be||be(T))},set onZoomEnabledChange(e){be=e},set minZoom(e){const t=e!==R;R=e,t&&(null==Ce||Ce(R))},set onMinZoomChange(e){Ce=e},set maxZoom(e){const t=e!==D;D=e,t&&(null==_e||_e(D))},set onMaxZoomChange(e){_e=e},set preserveCameraOnReload(e){const t=e!==Q;Q=e,t&&(null==Ie||Ie(Q))},set onPreserveCameraOnReloadChange(e){Ie=e},set alwaysTransparentBackground(e){const t=e!==L;L=e,t&&(null==xe||xe(L))},set onAlwaysTransparentBackgroundChange(e){xe=e},set defaultFov(e){const t=e!==U;U=e,t&&(null==ye||ye(U))},set onDefaultFovChange(e){ye=e},set fovMultiplier(e){const t=e!==P;P=e,t&&(null==Me||Me(P))},set onFovMultiplierChange(e){Me=e},set defaultCameraPositions(e){const t=e!==N;N=e,t&&(null==we||we(N))},set onDefaultCameraPositionsChange(e){we=e},set interactionPromptUrl(e){const t=e!==F;F=e,t&&(null==Se||Se(F))},set onInteractionPromptUrlChange(e){Se=e},set interactionPromptSize(e){const t=e!==O;O=e,t&&(null==Be||Be(O))},set onInteractionPromptSizeChange(e){Be=e},set animation(e){const t=e!==k;k=e,t&&(null==Te||Te(k))},set onAnimationChange(e){Te=e},set nonLiveRendering(e){const t=e!==G;G=e,t&&(null==Re||Re(G))},set onNonLiveRenderingChange(e){Re=e},set baseUrl(e){const t=e!==H;H=e,t&&(null==De||De(H))},set onBaseUrlChange(e){De=e},get downloadCacheEnabled(){return z},set downloadCacheEnabled(e){const t=e!==z;z=e,t&&(null==Qe||Qe(z))},set onDownloadCacheEnabledChange(e){Qe=e}}}());const e=cf(G(this,Af,"f"));H(this,uf,Gp(G(this,Af,"f"),e)),this.attachShadow({mode:"open"}).appendChild(e.root)}connectedCallback(){G(this,Af,"f").initialized=!0}disconnectedCallback(){G(this,Af,"f").paused=!0,G(this,Af,"f").initialized=!1}attributeChangedCallback(e,t,n){var i,r;if(G(this,Af,"f").initialized)if("paused"===e)G(this,Af,"f").paused=ff(n);else if("poster-url"===e)G(this,Af,"f").posterUrl=n;else if("glb-url"===e)G(this,Af,"f").glbUrl=function(e){if(null==e?void 0:e.includes("|")){const[t,n]=e.split("|",2);return{left:t,right:n}}return e}(n);else if("env-url"===e)G(this,Af,"f").envUrl=n;else if("diamond-env-url"===e)G(this,Af,"f").diamondEnvUrl=n;else if("env-rotation"===e)G(this,Af,"f").envRotation=gf(n);else if("tone-mapping"===e)G(this,Af,"f").toneMapping=(r=i=n,qc.includes(r)?i:null);else if("tone-mapping-exposure"===e)G(this,Af,"f").toneMappingExposure=gf(n);else if("bloom-enabled"===e)G(this,Af,"f").bloomEnabled=ff(n);else if("bloom-strength"===e)G(this,Af,"f").bloomStrength=gf(n);else if("bloom-radius"===e)G(this,Af,"f").bloomRadius=gf(n);else if("bloom-threshold"===e)G(this,Af,"f").bloomThreshold=gf(n);else if("category"===e)G(this,Af,"f").category=function(e){return Yc(e)?e:null}(n);else if("glb-local"===e)G(this,Af,"f").glbLocal=function(e){if(null==e?void 0:e.includes("|")){const[t,n]=e.split("|",2);return{left:"true"===t,right:"true"===n}}return ff(e)}(n);else if("interactivity-disabled"===e)G(this,Af,"f").interactive=!ff(n);else if("touch-action"===e)G(this,Af,"f").touchAction=function(e){return function(e){return jc.includes(e)}(e)?e:null}(n);else if("zoom-disabled"===e)G(this,Af,"f").zoomEnabled=!ff(n);else if("min-zoom"===e)G(this,Af,"f").minZoom=gf(n);else if("max-zoom"===e)G(this,Af,"f").maxZoom=gf(n);else if("preserve-camera-on-reload"===e)G(this,Af,"f").preserveCameraOnReload=ff(n);else if("always-transparent-background"===e)G(this,Af,"f").alwaysTransparentBackground=ff(n);else if("default-fov"===e)G(this,Af,"f").defaultFov=gf(n);else if("fov-multiplier"===e)G(this,Af,"f").fovMultiplier=gf(n);else if("interaction-prompt-url"===e)G(this,Af,"f").interactionPromptUrl=n;else if("interaction-prompt-size"===e)G(this,Af,"f").interactionPromptSize=n;else if("non-live-rendering"===e)G(this,Af,"f").nonLiveRendering=ff(n);else if("base-url"===e)G(this,Af,"f").baseUrl=n;else{if("download-cache-enabled"!==e)throw new Error(`Unknown attribute: ${e} (changed from '${t}' to '${n}')`);G(this,Af,"f").downloadCacheEnabled=ff(n)}}set paused(e){G(this,hf,"m",df).call(this,"paused",e?"":null)}set posterUrl(e){G(this,hf,"m",df).call(this,"poster-url",e)}set glbUrl(e){G(this,hf,"m",df).call(this,"glb-url","string"==typeof e||null==e?e:`${e.left}|${e.right}`)}set envUrl(e){G(this,hf,"m",df).call(this,"env-url",e)}set diamondEnvUrl(e){G(this,hf,"m",df).call(this,"diamond-env-url",e)}set envRotation(e){G(this,hf,"m",df).call(this,"env-rotation",null!=e?`${e}`:null)}set toneMapping(e){G(this,hf,"m",df).call(this,"tone-mapping",e)}set toneMappingExposure(e){G(this,hf,"m",df).call(this,"tone-mapping-exposure",`${e}`)}set bloomEnabled(e){G(this,hf,"m",df).call(this,"bloom-enabled",e?"":null)}set bloomStrength(e){G(this,hf,"m",df).call(this,"bloom-strength",null!=e?`${e}`:null)}set bloomRadius(e){G(this,hf,"m",df).call(this,"bloom-radius",null!=e?`${e}`:null)}set bloomThreshold(e){G(this,hf,"m",df).call(this,"bloom-threshold",null!=e?`${e}`:null)}set category(e){G(this,hf,"m",df).call(this,"category",e)}set animation(e){G(this,Af,"f").animation=e}set glbLocal(e){G(this,hf,"m",df).call(this,"glb-local","boolean"==typeof e||null==e?e?"":null:`${e.left}|${e.right}`)}set interactivityDisabled(e){G(this,hf,"m",df).call(this,"interactivity-disabled",e?"":null)}set touchAction(e){G(this,hf,"m",df).call(this,"touch-action",e)}set zoomDisabled(e){G(this,hf,"m",df).call(this,"zoom-disabled",e?"":null)}set minZoom(e){G(this,hf,"m",df).call(this,"min-zoom",null!=e?`${e}`:null)}set maxZoom(e){G(this,hf,"m",df).call(this,"max-zoom",null!=e?`${e}`:null)}set preserveCameraOnReload(e){G(this,hf,"m",df).call(this,"preserve-camera-on-reload",e?"":null)}set alwaysTransparentBackground(e){G(this,hf,"m",df).call(this,"always-transparent-background",e?"":null)}set defaultFov(e){G(this,hf,"m",df).call(this,"default-fov",`${e}`)}set fovMultiplier(e){G(this,hf,"m",df).call(this,"fov-multiplier",`${e}`)}set defaultCameraPositions(e){G(this,Af,"f").defaultCameraPositions=e}set interactionPromptUrl(e){G(this,hf,"m",df).call(this,"interaction-prompt-url",e)}set interactionPromptSize(e){G(this,hf,"m",df).call(this,"interaction-prompt-size",e)}set nonLiveRendering(e){G(this,hf,"m",df).call(this,"non-live-rendering",e?"":null)}set baseUrl(e){G(this,hf,"m",df).call(this,"base-url",e)}set downloadCacheEnabled(e){G(this,hf,"m",df).call(this,"download-cache-enabled",e?"":null)}set onModelLoaded(e){G(this,Af,"f").onModelLoaded=e}set onRendered(e){G(this,Af,"f").onRendered=e}set onInteracted(e){G(this,Af,"f").onInteracted=e}set onInteractionPerf(e){G(this,Af,"f").onInteractionPerf=e}set onMaxZoomEnter(e){G(this,Af,"f").onMaxZoomEnter=e}set onMaxZoomLeave(e){G(this,Af,"f").onMaxZoomLeave=e}set onMinZoomEnter(e){G(this,Af,"f").onMinZoomEnter=e}set onMinZoomLeave(e){G(this,Af,"f").onMinZoomLeave=e}set onMinVerticalAngleEnter(e){G(this,Af,"f").onMinVerticalAngleEnter=e}set onMinVerticalAngleLeave(e){G(this,Af,"f").onMinVerticalAngleLeave=e}set onMaxVerticalAngleEnter(e){G(this,Af,"f").onMaxVerticalAngleEnter=e}set onMaxVerticalAngleLeave(e){G(this,Af,"f").onMaxVerticalAngleLeave=e}set onError(e){G(this,Af,"f").onError=e}zoomBy(e){G(this,uf,"f").zoomBy(e)}rotateBy(e,t){G(this,uf,"f").rotateBy(e,t)}render(e){G(this,uf,"f").render(e)}flushChanges(){return G(this,uf,"f").flushChanges()}}function ff(e){return null!=e}function gf(e){return null==e?null:Number.parseFloat(e)}if(Af=new WeakMap,uf=new WeakMap,hf=new WeakSet,df=function(e,t){null==t?this.removeAttribute(e):this.setAttribute(e,t)},pf.observedAttributes=["paused","poster-url","glb-url","env-url","diamond-env-url","env-rotation","tone-mapping","tone-mapping-exposure","category","glb-local","interactivity-disabled","touch-action","zoom-disabled","min-zoom","max-zoom","preserve-camera-on-reload","always-transparent-background","default-fov","fov-multiplier","interaction-prompt-url","interaction-prompt-size","bloom-enabled","bloom-strength","bloom-radius","bloom-threshold","non-live-rendering","base-url","download-cache-enabled"],null==window)throw new Error("window is not defined. ShopAR 3D only works in a browser environment.");const{customElements:mf}=window;try{mf.define("shopar-3d",pf)}catch(Zd){console.error(Zd)}const vf={bg:{var:`${D}-3d-bg`,default:"#ffffff"}};function Ef(e){var t,n;const i=document.createElementNS("http://www.w3.org/2000/svg","svg");return i.setAttribute("width",null!==(t=e.getAttribute("width"))&&void 0!==t?t:"1rem"),i.setAttribute("height",null!==(n=e.getAttribute("height"))&&void 0!==n?n:"1rem"),i.appendChild(e),i}function bf(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href","data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22/%3E"),n.setAttribute("width",e),n.setAttribute("height",e),n}var Cf;function _f(){const e=function(){const e=document.createElement("div");e.id="shopar-main";const t=e.style;return t.position="absolute",t.top="0",t.bottom="0",t.left="0",t.right="0",t.pointerEvents="none",e}(),t=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),n=function(){const e=new Image;e.draggable=!1;const t=e.style;return t.maxWidth="100%",t.maxHeight="100%",e}(),i=function(e,t){const n=document.createElement("div"),i=n.style;i.position="absolute",i.top="0",i.left="0",i.width="100%",i.height="100%",i.display="none",i.pointerEvents="auto",i.userSelect="none";const r=document.createElement("div"),a=r.style;a.position="relative",a.top="0",a.left="0",a.width="100%",a.height="100%",a.display="flex",a.flexDirection="column",a.justifyContent="center",a.alignItems="center",a.background=Q(O.bg),n.appendChild(r),r.appendChild(e);const o=document.createElement("div");return o.appendChild(t),r.appendChild(o),n}(t,n);e.appendChild(i);const r=function(){const e=document.createElement("div"),t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.display="none",t.pointerEvents="auto",e}();e.appendChild(r);const a=document.createElement("div");a.dataset.placeholder="shopar-3d",e.appendChild(a);let o=null;const s=function(){const e=document.createElement("div");return e.style.textAlign="center",e.style.color=Q(N.textColor),e}(),l=function(){const e=new Image;e.alt="",e.setAttribute("role","presentation");const{style:t}=e;return t.maxWidth=Q(N.imgMaxWidth),t.maxHeight=Q(N.imgMaxHeight),t.objectFit="contain",e}(),c=function(e,t){const n=document.createElement("div"),{style:i}=n;return i.position="absolute",i.width="100%",i.height="100%",i.opacity="0",i.display="flex",i.flexDirection="column",i.justifyContent="center",i.alignItems="center",i.gap=Q(N.gap),i.backgroundColor=Q(N.bg),i.transition="0.3s ease-in-out opacity",n.setAttribute("aria-hidden","true"),n.appendChild(e),n.appendChild(t),n}(s,l);e.appendChild(c);const h=function(){const e=document.createElement("div"),t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.pointerEvents="auto",t.userSelect="none",t.display=Q(F.containerDisplay),t.flexDirection="column",t.justifyContent="center",t.alignItems="center",t.gap=Q(F.containerGap),t.backgroundColor=Q(F.containerBg),e}(),A=function(e){const t=document.createElement("div");return t.textContent=e,t.style.textAlign="center",t}(T["loading.ar"]);h.appendChild(A);const u=function(){const e=document.createElement("div"),t=e.style;return t.position="relative",t.overflow="hidden",t.width=Q(F.barWidth),t.height=Q(F.barHeight),t.backgroundColor=Q(F.barBg),t.borderRadius=Q(F.barRadius),e}(),d=function(){const e=document.createElement("div"),t=e.style;return t.height="100%",t.width="0%",t.background=Q(F.barFg),t.borderRadius=Q(F.barRadius),t.transition="width 0.05s ease-out",e}(),p=function(){const e=document.createElement("div");return e.textContent="0%",e.style.textAlign="center",e}();u.appendChild(d),h.appendChild(u),h.appendChild(p),e.appendChild(h);const f=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),g=function(e){const t=document.createElement("div"),n=t.style;n.position="absolute",n.width="100%",n.height="100%",n.display="none",n.pointerEvents="auto",n.userSelect="none";const i=document.createElement("div"),r=i.style;return r.position="absolute",r.width="100%",r.height="100%",r.backgroundColor="#ffffff",r.display="flex",r.flexDirection="column",r.justifyContent="center",r.alignItems="center",t.appendChild(i),i.appendChild(e),t}(f);e.appendChild(g);const m=function(){const e=document.createElement("div");e.role="group",e.ariaLabel="Preview type chooser";const{style:t}=e;return t.display="none",t.position="absolute",t.width="100%",t.bottom="0",t.paddingBottom=Q(P.paddingBottom),t.justifyContent="center",t.gap=Q(P.gap),e}();e.appendChild(m);const v=bf("1.75rem"),E=U("Try-on","Launch ShopAR virtual try-on",Ef(v));m.appendChild(E);const b=bf("1.75rem"),C=U("3D","Launch ShopAR 3D preview",Ef(b));m.appendChild(C);const _=bf("1.75rem"),I=U("Close","Close ShopAR view",Ef(_));m.append(I);let x,y,w=Cf.None,S=!1,B=!1,R=!1,D=!1;function L(){d.style.width="100%",p.textContent="100%",h.style.visibility="hidden",d.style.width="0%",p.textContent="0%"}return{setTargetElement:function(t){t.style.position="relative",t.appendChild(e)},getQRTarget:function(){return i},getQRImage:function(){return n},getDeepARTarget:function(){return r},getDeepARPrompt:function(){return c},getThreeTarget:function(){return null==o&&(o=function(){const e=document.createElement("shopar-3d"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.pointerEvents="auto",t.display="none",t.background=Q(vf.bg),e}(),a.replaceWith(o)),o},hasThreeTarget:function(){return null!=o},removeThreeTarget:function(){null!=o&&(o.replaceWith(a),o=null)},customizeDeepARPrompt:function(e,t){s.textContent=e,l.src=t},customizeCameraError:function(e){f.textContent=null!=e?e:"Please reload page and allow camera access to continue"},customizeQRPrompt:function(e){t.textContent=null!=e?e:"Scan on mobile or tablet to try on"},setVisibilityParameters:function(e,t,n,i,r,a){var o;S=e,B=t,R=n,D=i,x=r,y=a,xf(m,S),xf(E,S&&(R||B)&&w===Cf.None),xf(C,S&&D&&w===Cf.None),xf(I,S&&w!==Cf.None),L(),S||""===(o=g).style.display&&If(o,!1)},getUIState:function(){return w},setUIState:function(e){w=e,w===Cf.None?(L(),S&&(If(g,!1),xf(I,!1),(B||R)&&xf(E,!0),D&&xf(C,!0))):w===Cf.QR||w===Cf.AR?S&&(If(g,!1),xf(E,!1),xf(C,D&&"AR"===y),xf(I,"AR"!==y)):w===Cf.Preview&&S&&(If(g,!1),xf(E,(B||R)&&"3D"===y),xf(C,!1),xf(I,"3D"!==y))},setDefaultUIActions:function(e,t,n){S&&((B||R)&&(!function(e){const t={Glasses:"glasses.svg",Shoes:"shoe.svg",Watches:"watch.svg",Bracelets:"watch.svg",Scarves:"glasses.svg",Hats:"glasses.svg",Necklaces:"glasses.svg"},n=null!=e&&t[e]||t.Glasses,i=`${M()}/img/icons/${n}`;v.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i)}(x),E.onclick=e),D&&(b.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${M()}/img/icons/cube.svg`),C.onclick=t),_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${M()}/img/icons/close.svg`),I.onclick=n)},startDeepARLoading:function(){d.style.width="0%",h.style.visibility="visible"},stopDeepARLoading:L,updateDeepARLoadingProgress:function(e){d.style.width=`${e}%`,p.textContent=`${Math.floor(e)}%`},showCameraError:function(){S&&If(g,!0)}}}function If(e,t){e.style.display=t?"":"none"}function xf(e,t){e.style.display=t?"flex":"none"}!function(e){e[e.None=0]="None",e[e.QR=1]="QR",e[e.AR=2]="AR",e[e.Preview=3]="Preview"}(Cf||(Cf={}));const yf=new Map;function Mf(e){let t=yf.get(e);return null==t?(t=function(){let e=0,t=null,n=null,i=!0;const r=()=>(null==t&&(t=_f()),t);return{getSetupId:()=>e,incrementSetupId_:()=>e++,getUI_:()=>t,findUI:r,findQR:()=>{if(null==n){const{getQRTarget:e,getQRImage:t}=r();n=B(e(),t())}return n},isInteractive:()=>i,setInteractive:e=>{i=e,(null==t?void 0:t.hasThreeTarget())&&(t.getThreeTarget().interactivityDisabled=!e)}}}(),yf.set(e,t)):t.incrementSetupId_(),t}function wf(e){for(const t of yf.values()){if(t===e)continue;const n=t.getUI_();if(null==n)continue;const{getUIState:i,setUIState:r}=n;i()===Cf.AR&&r(Cf.None)}}const Sf=[];for(let e=0;e<256;++e)Sf.push((e+256).toString(16).slice(1));let Bf;const Tf=new Uint8Array(16);var Rf={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Df(e,t,n){const i=(e=e||{}).random??e.rng?.()??function(){if(!Bf){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Bf=crypto.getRandomValues.bind(crypto)}return Bf(Tf)}();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=15&i[6]|64,i[8]=63&i[8]|128,function(e,t=0){return(Sf[e[t+0]]+Sf[e[t+1]]+Sf[e[t+2]]+Sf[e[t+3]]+"-"+Sf[e[t+4]]+Sf[e[t+5]]+"-"+Sf[e[t+6]]+Sf[e[t+7]]+"-"+Sf[e[t+8]]+Sf[e[t+9]]+"-"+Sf[e[t+10]]+Sf[e[t+11]]+Sf[e[t+12]]+Sf[e[t+13]]+Sf[e[t+14]]+Sf[e[t+15]]).toLowerCase()}(i)}function Qf(e,t,n){return Rf.randomUUID&&!e?Rf.randomUUID():Df(e)}var Lf="undefined"!=typeof Float32Array?Float32Array:Array;function Uf(){var e=new Lf(16);return Lf!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function Pf(e,t){var n=t[0],i=t[1],r=t[2],a=t[3],o=t[4],s=t[5],l=t[6],c=t[7],h=t[8],A=t[9],u=t[10],d=t[11],p=t[12],f=t[13],g=t[14],m=t[15],v=n*s-i*o,E=n*l-r*o,b=n*c-a*o,C=i*l-r*s,_=i*c-a*s,I=r*c-a*l,x=h*f-A*p,y=h*g-u*p,M=h*m-d*p,w=A*g-u*f,S=A*m-d*f,B=u*m-d*g,T=v*B-E*S+b*w+C*M-_*y+I*x;return T?(T=1/T,e[0]=(s*B-l*S+c*w)*T,e[1]=(r*S-i*B-a*w)*T,e[2]=(f*I-g*_+m*C)*T,e[3]=(u*_-A*I-d*C)*T,e[4]=(l*M-o*B-c*y)*T,e[5]=(n*B-r*M+a*y)*T,e[6]=(g*b-p*I-m*E)*T,e[7]=(h*I-u*b+d*E)*T,e[8]=(o*S-s*M+c*x)*T,e[9]=(i*M-n*S-a*x)*T,e[10]=(p*_-f*b+m*v)*T,e[11]=(A*b-h*_-d*v)*T,e[12]=(s*y-o*w-l*x)*T,e[13]=(n*w-i*y+r*x)*T,e[14]=(f*E-p*C-g*v)*T,e[15]=(h*C-A*E+u*v)*T,e):null}function Nf(e,t,n){var i=t[0],r=t[1],a=t[2],o=t[3],s=t[4],l=t[5],c=t[6],h=t[7],A=t[8],u=t[9],d=t[10],p=t[11],f=t[12],g=t[13],m=t[14],v=t[15],E=n[0],b=n[1],C=n[2],_=n[3];return e[0]=E*i+b*s+C*A+_*f,e[1]=E*r+b*l+C*u+_*g,e[2]=E*a+b*c+C*d+_*m,e[3]=E*o+b*h+C*p+_*v,E=n[4],b=n[5],C=n[6],_=n[7],e[4]=E*i+b*s+C*A+_*f,e[5]=E*r+b*l+C*u+_*g,e[6]=E*a+b*c+C*d+_*m,e[7]=E*o+b*h+C*p+_*v,E=n[8],b=n[9],C=n[10],_=n[11],e[8]=E*i+b*s+C*A+_*f,e[9]=E*r+b*l+C*u+_*g,e[10]=E*a+b*c+C*d+_*m,e[11]=E*o+b*h+C*p+_*v,E=n[12],b=n[13],C=n[14],_=n[15],e[12]=E*i+b*s+C*A+_*f,e[13]=E*r+b*l+C*u+_*g,e[14]=E*a+b*c+C*d+_*m,e[15]=E*o+b*h+C*p+_*v,e}function Ff(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Of(e,t){var n=t[0],i=t[1],r=t[2],a=t[4],o=t[5],s=t[6],l=t[8],c=t[9],h=t[10];return e[0]=Math.hypot(n,i,r),e[1]=Math.hypot(a,o,s),e[2]=Math.hypot(l,c,h),e}function kf(e,t){var n=new Lf(3);Of(n,t);var i=1/n[0],r=1/n[1],a=1/n[2],o=t[0]*i,s=t[1]*r,l=t[2]*a,c=t[4]*i,h=t[5]*r,A=t[6]*a,u=t[8]*i,d=t[9]*r,p=t[10]*a,f=o+h+p,g=0;return f>0?(g=2*Math.sqrt(f+1),e[3]=.25*g,e[0]=(A-d)/g,e[1]=(u-l)/g,e[2]=(s-c)/g):o>h&&o>p?(g=2*Math.sqrt(1+o-h-p),e[3]=(A-d)/g,e[0]=.25*g,e[1]=(s+c)/g,e[2]=(u+l)/g):h>p?(g=2*Math.sqrt(1+h-o-p),e[3]=(u-l)/g,e[0]=(s+c)/g,e[1]=.25*g,e[2]=(A+d)/g):(g=2*Math.sqrt(1+p-o-h),e[3]=(s-c)/g,e[0]=(u+l)/g,e[1]=(A+d)/g,e[2]=.25*g),e}function Gf(){var e=new Lf(3);return Lf!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Hf(e,t,n){var i=new Lf(3);return i[0]=e,i[1]=t,i[2]=n,i}function zf(e,t){var n=t[0]-e[0],i=t[1]-e[1],r=t[2]-e[2];return Math.hypot(n,i,r)}function Vf(e,t,n){var i=t[0],r=t[1],a=t[2],o=n[3]*i+n[7]*r+n[11]*a+n[15];return o=o||1,e[0]=(n[0]*i+n[4]*r+n[8]*a+n[12])/o,e[1]=(n[1]*i+n[5]*r+n[9]*a+n[13])/o,e[2]=(n[2]*i+n[6]*r+n[10]*a+n[14])/o,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function Wf(){var e=new Lf(4);return Lf!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}Gf(),function(){var e,t=(e=new Lf(4),Lf!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var qf;Gf(),Hf(1,0,0),Hf(0,1,0),Wf(),Wf(),qf=new Lf(9),Lf!=Float32Array&&(qf[1]=0,qf[2]=0,qf[3]=0,qf[5]=0,qf[6]=0,qf[7]=0),qf[0]=1,qf[4]=1,qf[8]=1;async function jf(){const e=await async function(){const e=await fetch("data:application/octet-stream;base64,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");return await function(e={}){var t,n,i,r,a,o=e,s=new Promise((e,n)=>{t=e}),l={1076:e=>{const t=[e,Date.now()],n=t.length-2,r=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame","navigator","userAgent"],a=[2,12,7,1],o=window[r[r[a[a[a.length-1]]+2].length-a[t.length]+1]][r[Math.pow(a[n],r[a.length].length)]]||"no user agent",s=c(32);for(let e=0;e<32;++e)i[s+e]=o.charCodeAt(e%o.length);return s},1870:e=>{var t,n=function(){var e;try{e=Function('return (function() {}.constructor("return this")( ));')()}catch(t){e=window}return e}(),r=Date.now();for(var a in n)if(8==a.length&&110==a.charCodeAt(7)&&105==a.charCodeAt(5)&&97==a.charCodeAt(3)&&108==a.charCodeAt(0)){r=a,t=e;break}for(var o in n[r])if(8==o.length&&97==o.charCodeAt(5)&&104==o.charCodeAt(0)){t=o;break}const s=n[r][t]||"no hostname",l=c(32);for(let e=0;e<32;++e)i[l+e]=s.charCodeAt(e%s.length);return l}};o.noExitRuntime;var c,h=[],A=(e,t,o)=>{var s=((e,t)=>{var o;for(h.length=0;o=i[e++];){var s=105!=o;t+=(s&=112!=o)&&t%8?4:0,h.push(112==o?r[t>>2]:105==o?n[t>>2]:a[t>>3]),t+=s?8:4}return h})(t,o);return l[e](...s)},u={a:{a:(e,t,n)=>A(e,t,n),c:()=>Date.now(),b:e=>{i.length,function(){throw"OOM"}()}}};return WebAssembly.instantiate(o.wasm,u).then(e=>{var s,l=e.instance.exports;o._magic=l.f,o._free=l.g,o._malloc=c=l.i,s=l.d.buffer,o.HEAPU8=i=new Uint8Array(s),n=new Int32Array(s),r=new Uint32Array(s),a=new Float64Array(s),function(e){e.e()}(l),t(o)}),s}({wasm:await e.arrayBuffer()})}();return function(t){const n=e._malloc(32);for(let i=0;i<t.size()&&i<32;i++)e.HEAPU8[n+i]=t.get(i);const i=e._malloc(64);e._magic(n,i);const r=new Uint8Array(64);for(let t=0;t<64;++t)r[t]=e.HEAPU8[i+t];return e._free(n),e._free(i),r}}let Yf,Xf,Kf,Jf,Zf,$f,eg=!1,tg=null,ng=[],ig=[];function rg(e){return c(this,void 0,void 0,function*(){eg=!1;const{ShopAR__TrueScale:t}=window;yield t.initialize(`${M()}/wasm/mediapipe`,e),tg&&clearInterval(tg);const n=[],i=[];tg=setInterval(()=>c(this,void 0,void 0,function*(){if(eg)return;const{error:e,faceWidth:r,ipd:a,translation:o,rotation:s}=yield t.predict(performance.now());eg||(null!=o&&null!=s&&function(e){for(let t of ng)t(e)}({translation:o,rotation:s}),null==e&&(n.push(r),i.push(a),n.length<10||(n.shift(),i.shift(),function(e,t){for(let n of ig)n({faceWidth:e,IPD:t})}(og(n),og(i)))))}),200)})}function ag(){ig=[],ng=[],eg=!0}function og(e){let t=0;const n=e.length;for(let i=0;i<n;i++)t+=e[i];return t/n}let sg=null;const lg=new Set;let cg,hg,Ag,ug,dg,pg,fg=!1;function gg(){null==Yf&&(Yf=w(`${M()}/shopar-deepar.js`,"ShopAR__DeepAR"))}function mg(){null==Xf&&(Xf=w(`${M()}/shopar-true-scale.js`,"ShopAR__TrueScale"))}function vg(e){return c(this,void 0,void 0,function*(){const{licenseKey:t,truescaleUsecase:n,onProgress:i,effectUrl:r,effectOptions:a}=e;a&&null==a.envmap&&(a.envmap=`${M()}/deepar/default_envmap.webp`),dg=n;const o=null!=e.videoConfig;return null==cg&&(cg=(()=>c(this,void 0,void 0,function*(){fg=!1;const n=function(e){var t;const n={Glasses:"user",Shoes:"environment",Watches:"environment",Bracelets:"environment",Hats:"user",Scarves:"user",Necklaces:"user"};return null==e?"user":null!==(t=n[e])&&void 0!==t?t:"user"}(Zf);try{Kf=yield window.ShopAR__DeepAR.deepar.initialize({licenseKey:t||"your_license_key_goes_here",previewElement:$f,effect:r,effectOptions:a,rootPath:`${M()}/deepar`,additionalOptions:{hint:pg,cameraConfig:{disableDefaultCamera:o,facingMode:n},pixelRatio:Math.min(window.devicePixelRatio,2),onVerify:yield jf()},onProgress:i})}catch(e){throw cg=null,e}Kf.setWatchTicking("Watches"===Zf),o&&Kf.setVideoElement(e.videoConfig.video,null==e?void 0:e.videoConfig.mirror),"Glasses"===Zf&&null==e.customTrueScaleFaceWidth?(yield Xf,Jf=Kf.getVideoElement(),rg(Jf),"DetectionLoop"!==dg&&kg(e=>{ug=e.faceWidth})):"Glasses"===Zf&&null!=e.customTrueScaleFaceWidth&&(ug=e.customTrueScaleFaceWidth),fg=!0,Rg(),$f.style.display=""}))()),cg})}function Eg(e,t){t=null!=t?t:function(e){const t={Glasses:["rigidFaceTrackingInit","faceInit"],Shoes:["footInit"],Watches:["wristInit"],Bracelets:["wristInit"],Hats:["rigidFaceTrackingInit","faceInit"],Scarves:["rigidFaceTrackingInit","faceInit"],Necklaces:["rigidFaceTrackingInit","faceInit"]};return null==e?void 0:t[e]}(e),e===Zf&&function(e,t){return e===t||null!=e&&null!=t&&e.length===t.length&&e.every(e=>t.find(t=>e===t))&&t.every(t=>e.find(e=>e===t))}(t,pg)||(Zf=e,pg=t)}function bg(e){Dg(),e!==$f&&($f=e,null!=Kf&&Kf.changePreviewElement($f,Math.min(window.devicePixelRatio,2)))}function Cg(e){sg=e}function _g(e,t){Kf.callbacks.onFaceTracked=n=>{var i;if(n.some(e=>e.detected)){if(ug){const e=137/(ug+5);Kf.changeParameterVector("GLASSES","","scale",e,e,e,0),Kf.changeParameterVector("shopar_glasses","","scale",e,e,e,0),function(e){const t=[-8.362421,4.549,-9.275],n=[8.362421,4.549,-9.275];try{const i=Kf.getTransformationBetween("face_position","temples"),r=Fg(i,"temple_left","temple_left_outer","temple_tip_outer_left",n,e).map(Lg),a=Fg(i,"temple_right","temple_right_outer","temple_tip_outer_right",t,e).map(Lg);Kf.changeParameterVector("temple_left","","rotation",r[0],r[1],r[2],0),Kf.changeParameterVector("temple_right","","rotation",a[0],a[1],a[2],0)}catch(e){return}}(e),ag(),ug=null}e(),Qg("Glasses")}null===(i=null==t?void 0:t.onFaceTracked)||void 0===i||i.call(t,n)},Kf.callbacks.onFeetTracked=(n,i)=>{var r;(n.detected||i.detected)&&(e(),Qg("Shoes")),null===(r=null==t?void 0:t.onFeetTracked)||void 0===r||r.call(t,n,i)},Kf.callbacks.onWristTracked=n=>{var i;n.detected&&(e(),Qg("Watches")),null===(i=null==t?void 0:t.onWristTracked)||void 0===i||i.call(t,n)}}function Ig(e){ug=e}function xg(e){null==Kf||Kf.setStatsCapture(e)}function yg(e,t,n){return c(this,void 0,void 0,function*(){return null!=hg&&Ag===n||(yield hg,t.trackingInit={face:(null==pg?void 0:pg.includes("rigidFaceTrackingInit"))||(null==pg?void 0:pg.includes("faceInit")),foot:null==pg?void 0:pg.includes("footInit"),wrist:null==pg?void 0:pg.includes("wristInit")},null==t.envmap&&(t.envmap=`${M()}/deepar/default_envmap.webp`),hg=Kf.switchEffect(e,t),Kf.setWatchTicking("Watches"===Zf),Ag=n,Rg(),$f.style.display=""),hg})}function Mg(e,t){null!=e&&null!=t&&(Kf.setToneMapping(e),Kf.setExposure(t))}function wg(e,t,n,i){Kf.setBloomEnabled(!!e),null!=t&&Kf.setBloomStrength(t),null!=n&&Kf.setBloomRadius(n),null!=i&&Kf.setBloomThreshold(i)}function Sg(){null!=Kf&&(ag(),null!=Jf&&null!=Jf.srcObject&&Jf.srcObject instanceof MediaStream&&(Jf.srcObject.getTracks().forEach(e=>e.stop()),Jf=null),Kf.shutdown(),Dg(),fg=!1,Kf=null,cg=null,$f.style.display="none")}function Bg(){return fg}function Tg(e){Kf.setVideoElement(e.video,e.mirror)}function Rg(){null!=sg&&(null==Zf||lg.has(Zf)||(sg.removeAttribute("aria-hidden"),sg.style.visibility="visible",sg.style.opacity="1"))}function Dg(){null!=sg&&(sg.setAttribute("aria-hidden","true"),sg.style.visibility="hidden",sg.style.opacity="0")}function Qg(e){null!=sg&&(lg.has(e)||(lg.add(e),sg.setAttribute("aria-hidden","true"),sg.style.opacity="0"))}function Lg(e){return 180*e/Math.PI}function Ug(e,t){let n=t[0],i=t[1],r=t[2],a=t[3],o=n*n,s=i*i,l=r*r;return e[0]=Math.atan2(2*(a*n+i*r),1-2*(o+s)),e[1]=-Math.PI/2+2*Math.atan2(Math.sqrt(1+2*(a*i-n*r)),Math.sqrt(1-2*(a*i-n*r))),e[2]=Math.atan2(2*(a*r+n*i),1-2*(s+l)),e}function Pg(e,t,n){const i=Pf(Uf(),e),r=function(e,t){var n=Math.sin(t),i=Math.cos(t);return e[0]=i,e[1]=0,e[2]=-n,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=n,e[9]=0,e[10]=i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}(Uf(),-n),a=Nf(Uf(),i,r),o=Nf(Uf(),a,e),s=Nf(Uf(),o,t),l=kf(Wf(),s);return Ug(Gf(),l)}function Ng(e,t){let n=Kf.getTransformationBetween("face_position",t);const i=Ug(Gf(),kf(Wf(),n)).map(Lg);n=function(e,t,n,i){var r=t[0],a=t[1],o=t[2],s=t[3],l=r+r,c=a+a,h=o+o,A=r*l,u=r*c,d=r*h,p=a*c,f=a*h,g=o*h,m=s*l,v=s*c,E=s*h,b=i[0],C=i[1],_=i[2];return e[0]=(1-(p+g))*b,e[1]=(u+E)*b,e[2]=(d-v)*b,e[3]=0,e[4]=(u-E)*C,e[5]=(1-(A+g))*C,e[6]=(f+m)*C,e[7]=0,e[8]=(d+v)*_,e[9]=(f-m)*_,e[10]=(1-(A+p))*_,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}(Uf(),function(e,t,n,i){var r=.5*Math.PI/180;t*=r,n*=r,i*=r;var a=Math.sin(t),o=Math.cos(t),s=Math.sin(n),l=Math.cos(n),c=Math.sin(i),h=Math.cos(i);return e[0]=a*l*h-o*s*c,e[1]=o*s*h+a*l*c,e[2]=o*l*c-a*s*h,e[3]=o*l*h+a*s*c,e}(Wf(),i[0],0,i[2]),Ff(Gf(),n),Of(Gf(),n));const r=Pf(Uf(),e);return Nf(Uf(),r,n)}function Fg(e,t,n,i,r,a){let o=Ng(e,t);const s=Nf(Uf(),e,o),l=Vf(Gf(),Ff(Gf(),s),function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}(Uf(),[a,a,a])),c=Math.atan2(r[0]-l[0],Math.abs(r[2]-l[2]));let h;try{h=Kf.getTransformationBetween(t,n)}catch(t){return Pg(e,o,c)}const A=Nf(Uf(),s,h),u=Hf(l[0],r[1],r[2]),d=Vf(Gf(),u,Pf(Uf(),A));let p=Kf.getClosestPointOnMesh(n,d);try{const e=Kf.getClosestPointOnMesh(i,d);zf(d,e)<zf(d,p)&&(p=e)}catch(e){}const f=Vf(Gf(),p,A);return Pg(e,o,c-Math.atan2(f[0]-l[0],Math.abs(f[2]-l[2])))}function Og(e){!function(e){ng.push(e)}(e)}function kg(e){!function(e){ig.push(e)}(e)}function Gg(e){let t,n=!1,i=!1;return{onTracked(r,a){if(!n&&a)if(i){if(r-t>=2e3){const{Fps:t,"Engine update":r,"Face tracking":a,"Foot tracking time":o,"Wrist tracking time":s}=null==Kf?void 0:Kf.getStats();xg(!1),n=!0,i=!1,e({fps:t,tickDuration:r.avg,faceTrackDuration:a.avg,footTrackDuration:o.avg,wristTrackDuration:s.avg})}}else i=!0,t=r,xg(!0);i&&!a&&(i=!1,xg(!1))}}}function Hg(){let e=!1,t=0,n=0;return{get dirty(){return e},clearDirty(){e=!1},get engagementMs(){return Math.round(t)},interact(i){const r=i-n;n=i,r<200&&(t+=r,e=!0)}}}function zg(){let e,t,n=0,i=0,r=2e3;return{set debounceDurationMs(e){r=null!=e?e:2e3},set onDebouncedEngagement(e){t=e},interact(a){const o=a-i;i=a,o<200&&(n+=o),e&&clearTimeout(e),e=setTimeout(()=>{n>0&&t&&(t(Math.round(n)),n=0,i=0),e=void 0},r)},flush(){e&&(clearTimeout(e),e=void 0,n>0&&t&&(t(Math.round(n)),n=0,i=0))}}}const Vg="arRecord",Wg="previewPerf",qg=45e3;function jg(e){let t=0,n=0;const i=[],r=[],a=[];let o,s=1,l=1,c=1,h=-1,A=qg,u=!1;function d(){let e=0;for(let t=0;t<i.length;t++)e+=+i[t].detected,e+=+r[t].detected;const n=5*i.length+28*e,o=new ArrayBuffer(n),h=new DataView(o);let A=0;for(let e=0;e<i.length;e++){const t=i[e],n=r[e];h.setFloat32(A,a[e],!0),A+=4,h.setUint8(A++,+t.detected+(+n.detected<<1)),t.detected&&(h.setFloat32(A+0,t.position[0],!0),h.setFloat32(A+4,t.position[1],!0),h.setFloat32(A+8,t.position[2],!0),A+=12,h.setFloat32(A+0,t.rotation[0],!0),h.setFloat32(A+4,t.rotation[1],!0),h.setFloat32(A+8,t.rotation[2],!0),h.setFloat32(A+12,t.rotation[3],!0),A+=16),n.detected&&(h.setFloat32(A+0,n.position[0],!0),h.setFloat32(A+4,n.position[1],!0),h.setFloat32(A+8,n.position[2],!0),A+=12,h.setFloat32(A+0,n.rotation[0],!0),h.setFloat32(A+4,n.rotation[1],!0),h.setFloat32(A+8,n.rotation[2],!0),h.setFloat32(A+12,n.rotation[3],!0),A+=16)}if(0===t){const e=function(){var e,t,n,i;return{width:null!==(t=null===(e=null==Kf?void 0:Kf.getVideoElement())||void 0===e?void 0:e.videoWidth)&&void 0!==t?t:0,height:null!==(i=null===(n=null==Kf?void 0:Kf.getVideoElement())||void 0===n?void 0:n.videoHeight)&&void 0!==i?i:0}}(),t=function(){var e,t,n,i;return{width:null!==(t=null===(e=null==Kf?void 0:Kf.getCanvas())||void 0===e?void 0:e.width)&&void 0!==t?t:0,height:null!==(i=null===(n=null==Kf?void 0:Kf.getCanvas())||void 0===n?void 0:n.height)&&void 0!==i?i:0}}();s=e.width/e.height,l=t.width/t.height,c=function(){var e;return null!==(e=null==Kf?void 0:Kf.getFov())&&void 0!==e?e:85}()}return{recordType:"FOOT",idx:t++,arRecord:btoa(String.fromCharCode.apply(null,new Uint8Array(o))),cameraAspect:s,canvasAspect:l,fov:c}}function p(){if(i.length>0){const t=d();e(t),i.length=0,r.length=0,a.length=0}}return{start(e=45e3){u||(A=e>qg?qg:e,u=!0,o=window.setInterval(()=>{p()},1e3))},stop(){u&&(p(),clearInterval(o),t=0,n=0,i.length=0,r.length=0,a.length=0,u=!1)},onFeetTracked(e,o){if(!u)return;const s=performance.now();h<0&&(h=s),s-h>A?stop():(i.push(e),r.push(o),0===t&&0===a.length?a.push(0):a.push(s-n),n=s)}}}let Yg,Xg,Kg=!1;const Jg=window.navigator.userAgent||"no user agent",Zg=[];function $g(){null==Yg&&(Xg=Qf(),Yg=w(`${M()}/shopar-analytics.js`,"ShopAR__analytics"),Yg.then(()=>{Kg=!0,window.ShopAR__analytics.initializeImpl(),Zg.forEach(e=>e())}))}function em(e,t){const n=performance.now(),i=Qf(),r=Hg(),a=Hg(),o=zg(),s=zg();window.setInterval(()=>{if(r.dirty||a.dirty){const e=r.engagementMs,t=a.engagementMs,n=e+t;r.clearDirty(),a.clearDirty(),h("heartbeat",{engagementTotal:n,engagementAR:e,engagement3D:t})}},1e3);const l=(r,a={})=>({name:r,props:a=Object.assign(Object.assign({},a),{userAgent:Jg,hostname:window.location.hostname,href:window.location.href,pluginVersion:I,sessionId:Xg,setupId:i,timeSinceSetup:performance.now()-n,sku:e,apiKey:t})}),c=({name:e,props:t})=>{tm(()=>{window.ShopAR__analytics.trackEventImpl(e,t)})},h=(e,t={})=>{c(l(e,t))},A=function(e){const t=Gg(e),n=Gg(e),i=Gg(e);return{onFaceTracked(e){e.length>0&&t.onTracked(performance.now(),e[0].detected)},onFeetTracked(e,t){n.onTracked(performance.now(),e.detected&&t.detected)},onWristTracked(e){i.onTracked(performance.now(),e.detected)}}}(e=>{h("arPerf",e)}),{footRecorder:u,onFeetTracked:d}=function(e){const t=jg(e);return{footRecorder:t,onFeetTracked(e,n){t.onFeetTracked(e,n)}}}(e=>{0===e.idx?h(Vg,e):((e,t={})=>{c({name:e,props:Object.assign(Object.assign({},t),{sessionId:Xg,setupId:i})})})(Vg,{idx:e.idx,arRecord:e.arRecord})}),p=(f=[A,{onFeetTracked:d}],{onFaceTracked:e=>{var t;for(const n of f)null===(t=n.onFaceTracked)||void 0===t||t.call(n,e)},onFeetTracked:(e,t)=>{var n;for(const i of f)null===(n=i.onFeetTracked)||void 0===n||n.call(i,e,t)},onWristTracked:e=>{var t;for(const n of f)null===(t=n.onWristTracked)||void 0===t||t.call(n,e)}});var f;return{prepareEvent:l,submitEvent:c,trackEvent:h,arInteracted:()=>{const e=performance.now();r.interact(e),o.interact(e)},previewInteracted:()=>{const e=performance.now();a.interact(e),s.interact(e)},setDebounceAREngagementMs:e=>{o.debounceDurationMs=e},setOnDebouncedAREngagement:e=>{o.onDebouncedEngagement=e},setDebouncePreviewEngagementMs:e=>{s.debounceDurationMs=e},setOnDebouncedPreviewEngagement:e=>{s.onDebouncedEngagement=e},flushEngagementCallbacks:()=>{o.flush(),s.flush()},arTrackingEvents:p,footRecorder:u}}function tm(e){Kg?e():Zg.push(e)}function nm(e,t,n,i,r,a){let o,s,l=0,c=0;return{launched(){o=performance.now(),l=0,c=0,r(e)},loaded(){s=performance.now(),r(t,{duration:s-o})},failed(e){r(n,{errorName:h(e),errorMessage:A(e),errorStack:u(e),duration:performance.now()-o})},interacted(){if(null==a||a(),null==o)return;const e=performance.now(),t=e-c;c=e,t<200&&(l+=t)},closed(e){if(null==o)return;const t=null!=s;r(i,{duration:t?performance.now()-s:void 0,engagement:t?Math.round(l):void 0,trigger:e,loaded:t}),o=void 0,s=void 0,l=0,c=0}}}const im=.1,rm="function"==typeof Float32Array;function am(e,t,n,i){if(!(0<=e&&e<=1&&0<=n&&n<=1))throw new Error("bezier x values must be in [0, 1] range");if(e===t&&n===i)return Am;const r=rm?new Float32Array(11):new Array(11);for(let t=0;t<11;++t)r[t]=cm(t*im,e,n);function a(t){let i=0,a=1;for(;10!==a&&r[a]<=t;++a)i+=im;--a;const o=i+(t-r[a])/(r[a+1]-r[a])*im,s=hm(o,e,n);return s>=.001?function(e,t,n,i){for(let r=0;r<4;++r){const r=hm(t,n,i);if(0===r)return t;t-=(cm(t,n,i)-e)/r}return t}(t,o,e,n):0===s?o:function(e,t,n,i,r){let a,o,s=0;do{o=t+(n-t)/2,a=cm(o,i,r)-e,a>0?n=o:t=o}while(Math.abs(a)>1e-7&&++s<10);return o}(t,i,i+im,e,n)}return function(e){return 0===e||1===e?e:cm(a(e),t,i)}}function om(e,t){return 1-3*t+3*e}function sm(e,t){return 3*t-6*e}function lm(e){return 3*e}function cm(e,t,n){return((om(t,n)*e+sm(t,n))*e+lm(t))*e}function hm(e,t,n){return 3*om(t,n)*e*e+2*sm(t,n)*e+lm(t)}function Am(e){return e}function um(e){if("hold"===e.type)return()=>0;if("bezier"===e.type){const t=am(e.x1,e.y1,e.x2,e.y2);return e=>t(e)}throw new Error(`Unknown interpolation: ${e}`)}function dm(e){if(e.length<2)throw new Error("Expected at least two key frames.");const t=e[e.length-1].time,n=[...e].sort((e,t)=>e.time-t.time).map(({time:e,value:t,interpolation:n})=>({time:e,value:t,interpolate:um(n)}));let i=0,r=n[0].value;return{reset:()=>{i=0},update:e=>{for(i+=e;i>=t;)i-=t;for(let e=0;e<n.length-1;e++){const t=n[e],a=n[e+1];if(i>=t.time&&i<a.time){const e=t.interpolate((i-t.time)/(a.time-t.time));r=t.value+e*(a.value-t.value)}}},get:()=>r}}const pm="time",fm="interpolation",gm="pitch",mm=[pm,"yaw",gm,"fov",fm],vm="s",Em="ms",bm=Math.PI/180,Cm="ease-in-out",_m="cubic-bezier(";function Im(e){if("string"==typeof e)return function(e){const[t,...n]=function(e){return e.split(/\r?\n/).map(e=>function(e){const t=e.indexOf("#");return(-1!==t?e.substring(0,t):e).trim()}(e)).filter(e=>""!==e)}(e);if(null==t)throw new Error("Header missing.");const i=function(e){const t=[];for(let n=0;n<e.length;n++){const i=e[n];if(!mm.includes(i))throw new Error(`Invalid token in header: '${i}'.`);if(t.includes(i))throw new Error(`Duplicate token in header: '${i}'.`);t.push(i)}if(!t.includes(pm))throw new Error(`Missing required token: '${pm}'.`);return t}(t.split(/\s+/)),r={};if(n.length<2)throw new Error("Expected at least two key frames.");for(const e of n){const{theta:t,phi:n,fov:a}=xm(i,e);null!=t&&(null==r.theta&&(r.theta=[]),r.theta.push(t)),null!=n&&(null==r.phi&&(r.phi=[]),r.phi.push(n)),null!=a&&(null==r.fov&&(r.fov=[]),r.fov.push(a))}if(0===Object.values(r).length)throw new Error("At least one parameter should be animated.");return r}(e);if(Array.isArray(e))return function(e){var t;const n={};if(e.length<2)throw new Error("Expected at least two key frames.");for(const i of e){const{time:e,pitch:r,yaw:a,fov:o}=i;if(null==e)throw new Error("Time missing.");const s=Mm(null!==(t=i.interpolation)&&void 0!==t?t:Cm);null!=a&&(null==n.theta&&(n.theta=[]),n.theta.push({time:e,value:a*bm,interpolation:s})),null!=r&&(null==n.phi&&(n.phi=[]),n.phi.push({time:e,value:r*bm,interpolation:s})),null!=o&&(null==n.fov&&(n.fov=[]),n.fov.push({time:e,value:o*bm,interpolation:s}))}if(0===Object.values(n).length)throw new Error("At least one parameter should be animated.");if(Object.values(n).every(t=>t.length!==e.length))throw new Error("All parameters should have the same key frame count.");return n}(e);throw new Error("Expected string or key frame config array.")}function xm(e,t){const n=t.match(/[^()\s]+(\(.*?\))?/g);if(null==n||n.length<e.length)throw new Error(`Missing data for fields: '${e.filter(e=>!(null==n?void 0:n.includes(e))).join(", ")}'.`);if(n.length>e.length)throw new Error(`Excess data: '${n.filter(t=>!e.includes(t)).join(", ")}'.`);const i=e.indexOf(pm),r=function(e){if(e.endsWith(Em))return Sm(e.substring(0,e.length-2));if(e.endsWith(vm))return 1e3*Sm(e.substring(0,e.length-1));return Sm(e)}(n[i]),a=e.indexOf(fm),o=Mm(-1===a?Cm:n[a]),s={};for(let t=0;t<n.length;t++){if(t===i||t===a)continue;const l=e[t],c=n[t];switch(l){case"yaw":s.theta={time:r,value:ym(c),interpolation:o};break;case gm:s.phi={time:r,value:ym(c),interpolation:o};break;case"fov":s.fov={time:r,value:ym(c),interpolation:o};break;default:throw new Error(`Unhandled value for header '${l}'.`)}}return s}function ym(e){return e.endsWith("deg")?Sm(e.substring(0,e.length-3))*bm:e.endsWith("rad")?Sm(e.substring(0,e.length-3)):Sm(e)*bm}function Mm(e){if("hold"===e)return{type:"hold"};if("linear"===e)return wm(0,0,1,1);if("sine"===e)return wm(.37,0,.63,1);if("sine-in"===e)return wm(.12,0,.39,0);if("sine-out"===e)return wm(.61,1,.88,1);if("ease"===e)return wm(.25,.1,.25,1);if("ease-in"===e)return wm(.42,0,1,1);if("ease-out"===e)return wm(0,0,.58,1);if("ease-in-out"===e)return wm(.42,0,.58,1);if(e.startsWith(_m)&&e.endsWith(")")){const t=e.substring(13,e.length-1).split(/\s*,\s*/);if(4!==t.length)throw new Error(`Expected 4 parameters for the Bezier curve, but got '${t}'.`);return{type:"bezier",x1:Sm(t[0]),y1:Sm(t[1]),x2:Sm(t[2]),y2:Sm(t[3])}}throw new Error(`Expected an interpolation token, but found: ${e}`)}function wm(e,t,n,i){return{type:"bezier",x1:e,y1:t,x2:n,y2:i}}function Sm(e){const t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Expected a numeric value, but got: ${e}`);return t}var Bm;function Tm(){return[Bm.Android,Bm.iOS,Bm.Tablet].includes(function(){if("undefined"!=typeof window&&window.navigator){const e=window.navigator.userAgent,t=window.navigator.platform||"",n=["Macintosh","MacIntel","MacPPC","Mac68K"],i=["Win32","Win64","Windows","WinCE"],r=["iPhone","iPod","iPad"],a="ontouchstart"in window||navigator.maxTouchPoints>0;return-1!==r.indexOf(t)?Bm.iOS:-1!==n.indexOf(t)?a?Bm.Tablet:Bm.MacOS:-1!==i.indexOf(t)?Bm.Windows:/Android/.test(e)?Bm.Android:/Linux/.test(t)?Bm.Linux:a?Bm.Tablet:Bm.Unknown}return Bm.Unknown}())}!function(e){e[e.Unknown=0]="Unknown",e[e.Android=1]="Android",e[e.iOS=2]="iOS",e[e.Tablet=3]="Tablet",e[e.MacOS=4]="MacOS",e[e.Windows=5]="Windows",e[e.Linux=6]="Linux"}(Bm||(Bm={}));const Rm=["demo.deepar.ai","dbeochk72stb2.cloudfront.net","d1q93hnxt3ps3w.cloudfront.net","dj5e08oeu5ym4.cloudfront.net"];function Dm(e,{trustUrls:t=!1}={}){const n=Object.assign({},e);if(n.category&&!Wc.includes(n.category))throw new r(`Invalid response category: ${e.category}`);if(n.arToneMapping&&!qc.includes(n.arToneMapping))throw new r(`Invalid tone mapping: ${e.arToneMapping}`);if(n.previewToneMapping&&!qc.includes(n.previewToneMapping))throw new r(`Invalid tone mapping: ${e.previewToneMapping}`);const i=t?Qm:Lm;return n.arUrl=n.arUrl?i(n.arUrl):void 0,n.arEnvUrl=n.arEnvUrl?i(n.arEnvUrl):void 0,n.arDiamondEnvUrl=n.arDiamondEnvUrl?i(n.arDiamondEnvUrl):void 0,n.arPromptImage=n.arPromptImage?i(n.arPromptImage):void 0,n.previewUrl=n.previewUrl?i(n.previewUrl):void 0,n.previewEnvUrl=n.previewEnvUrl?i(n.previewEnvUrl):void 0,n.previewDiamondEnvUrl=n.previewDiamondEnvUrl?i(n.previewDiamondEnvUrl):void 0,n.previewPosterUrl=n.previewPosterUrl?i(n.previewPosterUrl):void 0,n}function Qm(e){if(null==e||"string"!=typeof e)throw new r(`Invalid url: ${e}.`);let t;try{t=new URL(e)}catch(t){throw new r(`Invalid url: ${e}. ${t.message}`)}if("https:"!==t.protocol)throw new r(`Invalid url: ${e}.`);return t.toString()}function Lm(e){const t=Qm(e);if(!function(e){return Rm.includes(e)}(new URL(t).hostname))throw new r(`Invalid url: ${e}.`);return t}const Um=[1e3,2e3,4e3],Pm=Um.length;function Nm(e){return c(this,arguments,void 0,function*(e,t=0){try{return yield e()}catch(n){if(t>=Pm)throw n;return yield new Promise(e=>setTimeout(e,Um[t])),Nm(e,t+1)}})}const Fm={};function Om(e){const t=function(e){const{apiKey:t,sku:n,yaw:i,pitch:r,fov:a,forcedTransparency:o}=e,s=[];s.push(`apiKey=${t}`),s.push(`sku=${n}`),null!=i&&s.push(`yaw=${i}`);null!=r&&s.push(`pitch=${r}`);null!=a&&s.push(`fov=${a}`);null!=o&&s.push(`forcedTransparency=${o}`);return s.join("&")}(e),n=null!=Fm[t];return n||(Fm[t]=function(e){return c(this,void 0,void 0,function*(){return Dm(yield Nm(()=>c(this,void 0,void 0,function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin?${new URLSearchParams(e)}`).catch(e=>{throw new i(`API unavailable: ${A(e)}`)});if(!t.ok)throw new i("API response not OK.",t.status);const n=t.headers.get("content-length");if(n&&parseInt(n)>1048576)throw new i("API response too large.");try{return yield t.json()}catch(e){throw new i(`API returned invalid body: ${A(e)}`)}})))})}(e).catch(e=>{throw delete Fm[t],e})),{promise:Fm[t],cacheHit:n}}function km(e,t){if(null==e)throw new n(`'${t}' not specified.`)}function Gm(e,t){if("boolean"!=typeof e)throw new n(`'${t}' must be a boolean.`)}function Hm(e,t){if("number"!=typeof e)throw new n(`'${t}' must be a number.`)}function zm(e,t,i,r){if("number"!=typeof e)throw new n(`'${t}' must be a number.`);if(e<i)throw new n(`'${t}' must be greater than ${i}.`);if(e>r)throw new n(`'${t}' must be less than ${r}.`)}function Vm(e,t){if("string"!=typeof e)throw new n(`'${t}' must be a string.`)}function Wm(e,t,i){if("string"!=typeof e)throw new n(`'${t}' must be a string.`);if(!i.includes(e))throw new n(`'${t}' must be ${i.join("' or '")}.`)}function qm(e,t){if(!(e instanceof HTMLElement))throw new n(`'${t}' must be an HTMLElement.`)}function jm(e,t){if("function"!=typeof e)throw new n(`'${t}' must be a function.`)}function Ym(t){const{apiKey:i,sku:r,skuData:a,targetElement:o,initialState:s,initialAnimation:l,baseUrl:c,defaultUI:h,interactive:A,touchAction:u,zoomEnabled:d,minZoom:p,maxZoom:f,alwaysTransparentBackground:g,strings:m,debounceAREngagementMs:v,onDebouncedAREngagement:E,debounce3DEngagementMs:b,onDebounced3DEngagement:C,onMaxZoomEnter:_,onMaxZoomLeave:I,onMinZoomEnter:x,onMinZoomLeave:y,onMinVerticalAngleEnter:M,onMinVerticalAngleLeave:w,onMaxVerticalAngleEnter:S,onMaxVerticalAngleLeave:B,customArVideo:T,customTrueScaleFaceWidth:D}=t;Xm(i),function(e){km(e,"sku"),Vm(e,"sku"),function(e){if(0===e.length||e.length>100||!/^[\p{L}0-9 ./_-]+$/u.test(e))throw new n("Invalid 'sku'.")}(e)}(r),null!=a&&function(e,t){if("object"!=typeof e)throw new n(`'${t}' must be an object.`)}(a,"skuData"),km(o,"targetElement"),qm(o,"targetElement"),null!=s&&Wm(s,"initialState",e),null!=l&&function(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new n(`'${t}' must be a string or array.`)}(l,"initialAnimation"),null!=c&&Vm(c,"baseUrl"),null!=h&&Gm(h,"defaultUI"),null!=A&&Gm(A,"interactive"),null!=u&&Wm(u,"touchAction",jc),null!=d&&Gm(d,"zoomEnabled"),null!=p&&zm(p,"minZoom",.1,1),null!=f&&zm(f,"maxZoom",1,1/0),null!=g&&Gm(g,"alwaysTransparentBackground"),null!=m&&function(e,t,i){for(const r of i){const i=e[r];if(null!=i&&"string"!=typeof i)throw new n(`Value for key '${r}' in '${t}' must be a string or undefined.`)}}(m,"strings",R),null!=v&&Hm(v,"debounceAREngagementMs"),null!=E&&jm(E,"onDebouncedAREngagement"),null!=b&&Hm(b,"debounce3DEngagementMs"),null!=C&&jm(C,"onDebounced3DEngagement"),null!=_&&jm(_,"onMaxZoomEnter"),null!=I&&jm(I,"onMaxZoomLeave"),null!=x&&jm(x,"onMinZoomEnter"),null!=y&&jm(y,"onMinZoomLeave"),null!=M&&jm(M,"onMinVerticalAngleEnter"),null!=w&&jm(w,"onMinVerticalAngleLeave"),null!=S&&jm(S,"onMaxVerticalAngleEnter"),null!=B&&jm(B,"onMaxVerticalAngleLeave"),null!=T&&(km(T.video,"customArVideo.video"),function(e,t){if(!(e instanceof HTMLVideoElement))throw new n(`'${t}' must be an HTMLVideoElement.`)}(T.video,"customArVideo.video"),km(T.mirror,"customArVideo.mirror"),Gm(T.mirror,"customArVideo.mirror")),null!=D&&Hm(D,"customTrueScaleFaceWidth")}function Xm(e){km(e,"apiKey"),Vm(e,"apiKey"),function(e){if(!function(e){return 24===e.length&&/^[0-9a-fA-F]{24}$/.test(e)}(e))throw new n("Invalid 'apiKey'.")}(e)}let Km=!1;function Jm(e){return c(this,void 0,void 0,function*(){!function(e){const{apiKey:t,targetElement:n}=e;Xm(t),km(n,"targetElement"),qm(n,"targetElement")}(e);const{targetElement:t}=e;y(e.baseUrl),$g();const{trackEvent:n}=function(e){const t=performance.now(),n=Qf();return{trackEvent:(i,r={})=>{r=Object.assign(Object.assign({},r),{userAgent:Jg,hostname:window.location.hostname,href:window.location.href,pluginVersion:I,sessionId:Xg,setupId:n,timeSinceSetup:performance.now()-t,apiKey:e}),tm(()=>{window.ShopAR__analytics.trackEventImpl(i,r)})}}}(e.apiKey);n("visionSetup");const r=yield function(e){return c(this,void 0,void 0,function*(){return yield Nm(()=>c(this,void 0,void 0,function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin/vision?${new URLSearchParams({apiKey:e,sid:v()})}`).catch(e=>{throw new i(`API unavailable: ${A(e)}`)});if(!t.ok)throw new i("API response not OK.",t.status);const n=t.headers.get("content-length");if(n&&parseInt(n)>1048576)throw new i("API response too large.");try{return yield t.json()}catch(e){throw new i(`API returned invalid body: ${A(e)}`)}}))})}(e.apiKey);n("visionApiResponse",r);const{arKey:a}=r,o=Mf(t),{getSetupId:s,findUI:l}=o,u=s();gg(),mg();const{setTargetElement:d,getDeepARTarget:p,setVisibilityParameters:f,getUIState:g,setUIState:m,startDeepARLoading:E,stopDeepARLoading:b,showCameraError:C}=l();if(g()!=Cf.None)throw Error("UI state is not None, this is weird..");m(Cf.AR),d(t),f(!1,!1,!0,!1,void 0,void 0),E(),yield Yf,Zm(s(),u);try{n("visionArLaunch"),Eg("Glasses",["faceInit"]),bg(p()),yield vg({licenseKey:a,truescaleUsecase:"DetectionLoop"}),Zm(s(),u),Zm(s(),u)}catch(e){const t=A(e);throw n("visionArLaunchFailure",{errorName:h(e),errorMessage:t}),C(),new Error(`AR failed: ${t}`)}finally{b()}return Km=!0,{registerFacePoseListener:e=>{Km&&(n("registerFacePoseListener"),Og(e))},registerFaceMeasurementListener:e=>{Km&&(n("registerFaceMeasurementListener"),kg(e))},switchEffect:e=>c(this,void 0,void 0,function*(){Km&&(n("switchEffect",{arUrl:e}),function(e){Kf.switchEffect(e)}(e))}),clearEffect:()=>{Km&&(n("clearEffect"),Kf.clearEffect())},close:()=>{if(Km){if(Km=!1,n("visionClose"),g()!==Cf.AR)throw new Error("AR not launched.");m(Cf.None)}}}})}function Zm(e,t){if(e!==t)throw new Error("Setup cancelled. Please ensure that setup is only called once.")}function $m(e){return c(this,void 0,void 0,function*(){var t,r,u,p,f,g,m,I,x,w,S,B;Ym(e);const{apiKey:R,sku:D,skuData:Q,targetElement:L,initialState:U,initialAnimation:P}=e,N=e.touchAction,F=null==e.zoomEnabled||e.zoomEnabled,O=e.minZoom,k=e.maxZoom,G=null!==(t=e.onMaxZoomEnter)&&void 0!==t?t:null,H=null!==(r=e.onMaxZoomLeave)&&void 0!==r?r:null,z=null!==(u=e.onMinZoomEnter)&&void 0!==u?u:null,V=null!==(p=e.onMinZoomLeave)&&void 0!==p?p:null,W=null!==(f=e.onMinVerticalAngleEnter)&&void 0!==f?f:null,q=null!==(g=e.onMinVerticalAngleLeave)&&void 0!==g?g:null,j=null!==(m=e.onMaxVerticalAngleEnter)&&void 0!==m?m:null,Y=null!==(I=e.onMaxVerticalAngleLeave)&&void 0!==I?I:null,X=!0===e.alwaysTransparentBackground;!function(e){const t=getComputedStyle(e);if(!["static","relative"].includes(t.position))throw new n(`Invalid targetElement's position. Expected 'static' or 'relative', but found '${t.position}'.`)}(L),y(e.baseUrl),function(e){if(null!=e)for(const t of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(T,t)){console.warn(`String for key '${t}' will be ignored.`);continue}const n=e[t];null!=n&&(T[t]=n)}}(e.strings);const K=null!=P?Im(P):null,J=null!=(null==K?void 0:K.theta)?dm(K.theta):null,Z=null!=(null==K?void 0:K.phi)?dm(K.phi):null,$=null!=(null==K?void 0:K.fov)?dm(K.fov):null,ee=function(e,t){if(null!=e)return{apiUsed:!1,skuData:Dm(e,{trustUrls:!0})};const n=performance.now(),{promise:i,cacheHit:r}=Om(t);return{apiUsed:!0,promise:i,startTimestamp:n,cacheHit:r}}(Q,function(e,t,n,i,r,a){return Object.assign(Object.assign(Object.assign(Object.assign({apiKey:e,sku:t,sid:v(),initialFov:"16"},null!=n&&{yaw:`${b(E(n))}`}),null!=i&&{pitch:`${b(E(i))}`}),null!=r&&{fov:`${b(E(r))}`}),a&&{forcedTransparency:`${a}`})}(R,D,null==J?void 0:J.get(),null==Z?void 0:Z.get(),null==$?void 0:$.get(),X)),te=Mf(L),{getSetupId:ne,findUI:ie,findQR:re,isInteractive:ae,setInteractive:oe}=te,se=ne();$g();const{prepareEvent:le,submitEvent:ce,trackEvent:he,arInteracted:Ae,previewInteracted:ue,setDebounceAREngagementMs:de,setOnDebouncedAREngagement:pe,setDebouncePreviewEngagementMs:fe,setOnDebouncedPreviewEngagement:ge,flushEngagementCallbacks:me,arTrackingEvents:ve,footRecorder:Ee}=em(D,R),be=le("setup");de(e.debounceAREngagementMs),pe(e.onDebouncedAREngagement),fe(e.debounce3DEngagementMs),ge(e.onDebounced3DEngagement);let Ce,_e=!1;if(ee.apiUsed){try{Ce=yield ee.promise}catch(e){const t=A(e),n=performance.now()-ee.startTimestamp;throw he("apiError",{errorName:h(e),errorMessage:t,errorStatusCode:e instanceof i?e.status:void 0,duration:n}),e instanceof i?e:new i(t)}ev(ne(),se)}else Ce=ee.skuData;const{category:Ie,arUrl:xe,arEnvUrl:ye,arDiamondEnvUrl:Me,arToneMapping:we,arToneMappingExposure:Se,arBloomEnabled:Be,arBloomStrength:Te,arBloomRadius:Re,arBloomThreshold:De,arKey:Qe,arPromptEnabled:Le,arPromptText:Ue,arPromptImage:Pe,previewUrl:Ne,previewEnvUrl:Fe,previewDiamondEnvUrl:Oe,previewToneMapping:ke,previewToneMappingExposure:Ge,previewBloomEnabled:He,previewBloomStrength:ze,previewBloomRadius:Ve,previewBloomThreshold:We,previewPosterUrl:qe,cameraErrorText:je,qrPromptText:Ye,arSessionRecording:Xe,arSessionRecordingMaxDurationMs:Ke}=Ce;if(ee.apiUsed){const e=performance.now()-ee.startTimestamp;null!=xe||null!=Ne?(ce(be),he("apiResponse",Object.assign(Object.assign({},Ce),{duration:e,cacheHit:ee.cacheHit}))):(he("apiResponseFailure",Object.assign(Object.assign({},Ce),{duration:e,cacheHit:ee.cacheHit})),Je="SKU not found (or both 3D and AR disabled).",console.error(`ShopAR Plugin: ${Je}`))}var Je;const Ze=null!=xe&&function(e){return null!=e&&C.includes(e)}(Ie),$e=null==(null===(x=e._internalOptions)||void 0===x?void 0:x.qrEnabled)||(null===(w=e._internalOptions)||void 0===w?void 0:w.qrEnabled),et=Ze&&function(e){return null!=e&&_.includes(e)}(Ie),tt=$e&&et&&!Tm(),nt=Ze&&!tt,it=null!=Ne;ev(ne(),se);const{setTargetElement:rt,getDeepARTarget:at,getDeepARPrompt:ot,getThreeTarget:st,hasThreeTarget:lt,removeThreeTarget:ct,customizeDeepARPrompt:ht,customizeCameraError:At,customizeQRPrompt:ut,setVisibilityParameters:dt,getUIState:pt,setUIState:ft,setDefaultUIActions:gt,startDeepARLoading:mt,stopDeepARLoading:vt,showCameraError:Et,updateDeepARLoadingProgress:bt}=ie();rt(L);dt(null==e.defaultUI||e.defaultUI,tt,nt,it,Ie,U),ht(null!==(B=null!==(S=function(e){switch(e){case"Glasses":return T["prompt.ar.glasses"];case"Shoes":return T["prompt.ar.shoes"];case"Watches":return T["prompt.ar.watches"];case"Bracelets":return T["prompt.ar.bracelets"];case"Scarves":return T["prompt.ar.scarves"];case"Hats":return T["prompt.ar.hats"];case"Necklaces":return T["prompt.ar.necklaces"];default:return}}(Ie))&&void 0!==S?S:Ue)&&void 0!==B?B:"",null!=Pe?Pe:ee.apiUsed?"":`${M()}/img/prompt/ar-foot.webp`),At(je),ut(Ye);const Ct=nm("qrLaunch","qrLaunchSuccess","qrLaunchFailure","qrClose",he),_t=nm("arLaunch","arLaunchSuccess","arLaunchFailure","arClose",he,Ae),It=nm("previewLaunch","previewLaunchSuccess","previewLaunchFailure","previewClose",he,ue);!function(e,t){const n=e.parentNode;if(null==n)throw new Error("Parent node missing.");new MutationObserver(n=>{for(const i of n)for(const n of i.removedNodes)if(n===e)return void t()}).observe(n,{childList:!0})}(L,()=>{me(),pt()===Cf.QR?(Ct.closed("detach"),xt()||Mt()):pt()===Cf.AR?(_t.closed("detach"),Bg()&&(Ee.stop(),Sg())):pt()===Cf.Preview&&(It.closed("detach"),ct()),ft(Cf.None),function(e){yf.delete(e)}(L)});const{qrPaused:xt,qrDraw:yt,qrPause:Mt}=re(),wt=null==e.interactive||e.interactive;let St=0;if(pt()===Cf.QR){if(!xt())if(tt){Ct.launched();try{yield yt(R,D)}catch(e){const t=A(e);throw new l(t)}Ct.loaded()}else Mt(),ft(Cf.None)}else if(pt()===Cf.AR){if(Bg())if(nt&&!Km){_t.launched(),Ee.stop(),mt(),gg(),"Glasses"===Ie&&mg(),wf(te),bg(at()),Eg(Ie),Cg(Le?ot():null);const t=e=>{bt(e.loaded/e.total*100)};null!=e.customArVideo&&Tg(e.customArVideo),yield yg(xe,{envmap:ye,diamondEnvMap:Me,onProgress:t},`${xe}${ye}${Me}`),Mg(we,Se),wg(Be,Te,Re,De),_g(_t.interacted,ve),Xe&&"Shoes"===Ie&&ee.apiUsed&&Ee.start(Ke),ev(ne(),se),vt(),null!=e.customTrueScaleFaceWidth&&Ig(e.customTrueScaleFaceWidth),_t.loaded()}else Ee.stop(),Sg(),ft(Cf.None)}else if(pt()===Cf.Preview)if(it){It.launched(),yield customElements.whenDefined("shopar-3d");const e=st();e.baseUrl=`${M()}/3d`,e.interactivityDisabled=!wt,e.posterUrl=null!=qe?qe:null,e.glbUrl=Ne,e.envUrl=null!=Fe?Fe:`${M()}/env/default.hdr`,e.diamondEnvUrl=null!=Oe?Oe:null,e.category=null!=Ie?Ie:null,e.touchAction=null!=N?N:null,e.zoomDisabled=!F,e.minZoom=null!=O?O:null,e.maxZoom=null!=k?k:null,e.alwaysTransparentBackground=X,e.toneMapping=null!=ke?ke:"ACES",e.toneMappingExposure=null!=Ge?Ge:1,e.bloomEnabled=null!=He?He:null,e.bloomStrength=null!=ze?ze:null,e.bloomRadius=null!=Ve?Ve:null,e.bloomThreshold=null!=We?We:null,e.onInteracted=It.interacted,e.onInteractionPerf=_e?null:t=>{_e=!0,e.onInteractionPerf=null,he(Wg,t)},e.onMaxZoomEnter=G,e.onMaxZoomLeave=H,e.onMinZoomEnter=z,e.onMinZoomLeave=V,e.onMinVerticalAngleEnter=W,e.onMinVerticalAngleLeave=q,e.onMaxVerticalAngleEnter=j,e.onMaxVerticalAngleLeave=Y,e.animation=null!=P?P:null,e.paused=!1,e.style.display="",yield e.flushChanges(),It.loaded()}else ct(),ft(Cf.None);const Bt=()=>c(this,void 0,void 0,function*(){if(tt){Ct.launched();try{const e=++St;if(pt()===Cf.Preview&&(It.closed("switch"),ct()),ft(Cf.QR),yield yt(R,D),St!==e)return;return ev(ne(),se),void Ct.loaded()}catch(e){throw Ct.failed(e),new l(A(e))}}if(!nt)throw new o("Model does not have AR enabled.");_t.launched();try{const t=++St;if(pt()===Cf.Preview&&(It.closed("switch"),ct()),wf(te),ft(Cf.AR),gg(),"Glasses"===Ie&&mg(),mt(),yield Yf,St!==t)return;ev(ne(),se),Eg(Ie),bg(at()),Cg(Le?ot():null);const n=e=>{bt(e.loaded/e.total*100)};if(Ee.stop(),Bg())null!=e.customArVideo&&Tg(e.customArVideo),yield yg(xe,{envmap:ye,diamondEnvMap:Me,onProgress:n},`${xe}${ye}${Me}`),null!=e.customTrueScaleFaceWidth&&Ig(e.customTrueScaleFaceWidth);else{if(yield vg({licenseKey:Qe,effectUrl:xe,effectOptions:{envmap:ye,diamondEnvMap:Me},onProgress:n,videoConfig:e.customArVideo,customTrueScaleFaceWidth:e.customTrueScaleFaceWidth}),St!==t)return;ev(ne(),se)}if(Mg(we,Se),wg(Be,Te,Re,De),_g(_t.interacted,ve),Xe&&"Shoes"===Ie&&ee.apiUsed&&Ee.start(Ke),St!==t)return;if(ev(ne(),se),St!==t)return;ev(ne(),se),_t.loaded()}catch(e){_t.failed(e),Et();const t=A(e);if("CameraPermissionDeniedError"===h(e))throw new s(t);throw new o(t)}finally{vt()}}),Tt=()=>c(this,void 0,void 0,function*(){if(!it)throw new a("Model does not have 3D enabled.");It.launched();try{pt()===Cf.AR&&(_t.closed("switch"),Ee.stop(),Sg(),Mt()),ft(Cf.Preview),yield customElements.whenDefined("shopar-3d");const e=st();e.baseUrl=`${M()}/3d`,e.interactivityDisabled=!wt,e.posterUrl=null!=qe?qe:null,e.glbUrl=Ne,e.envUrl=null!=Fe?Fe:`${M()}/env/default.hdr`,e.diamondEnvUrl=null!=Oe?Oe:null,e.category=null!=Ie?Ie:null,e.touchAction=null!=N?N:null,e.zoomDisabled=!F,e.minZoom=null!=O?O:null,e.maxZoom=null!=k?k:null,e.alwaysTransparentBackground=X,e.toneMapping=null!=ke?ke:"ACES",e.toneMappingExposure=null!=Ge?Ge:1,e.bloomEnabled=null!=He?He:null,e.bloomStrength=null!=ze?ze:null,e.bloomRadius=null!=Ve?Ve:null,e.bloomThreshold=null!=We?We:null,e.onInteracted=It.interacted,e.onInteractionPerf=_e?null:t=>{_e=!0,e.onInteractionPerf=null,he(Wg,t)},e.onMaxZoomEnter=G,e.onMaxZoomLeave=H,e.onMinZoomEnter=z,e.onMinZoomLeave=V,e.onMinVerticalAngleEnter=W,e.onMinVerticalAngleLeave=q,e.onMaxVerticalAngleEnter=j,e.onMaxVerticalAngleLeave=Y,e.animation=null!=P?P:null,e.paused=!1,e.style.display="",yield e.flushChanges(),It.loaded()}catch(e){throw It.failed(e),new a(A(e))}}),Rt=()=>c(this,void 0,void 0,function*(){pt()!==Cf.None&&("AR"!==U||pt()!==Cf.AR&&pt()!==Cf.QR)&&("3D"===U&&pt()===Cf.Preview||(++St,me(),pt()===Cf.QR||pt()===Cf.AR?(pt()===Cf.QR?Ct.closed("close"):_t.closed("close"),Ee.stop(),Sg(),Mt()):pt()===Cf.Preview&&(It.closed("close"),ct()),ft(Cf.None),"AR"!==U?"3D"!==U||(yield Tt()):yield Bt()))});return gt(d("launchAR",Bt),d("launch3D",Tt),d("close",Rt)),"AR"===U?(yield Bt(),ev(ne(),se)):"3D"===U&&(yield Tt(),ev(ne(),se)),Km=!1,{launchAR:Ze?d("launchAR",Bt):void 0,launch3D:it?d("launch3D",Tt):void 0,closeAR:Ze?d("closeAR",()=>c(this,void 0,void 0,function*(){pt()!==Cf.AR&&pt()!==Cf.QR||"AR"!==U&&(++St,me(),pt()===Cf.QR?Ct.closed("close"):_t.closed("close"),Ee.stop(),Sg(),Mt(),ft(Cf.None),"3D"!==U||(yield Tt()))})):void 0,close3D:it?d("close3D",()=>c(this,void 0,void 0,function*(){pt()===Cf.Preview&&"3D"!==U&&(++St,me(),It.closed("close"),ct(),ft(Cf.None),"AR"!==U||(yield Bt()))})):void 0,close:Ze||it?d("close",Rt):void 0,isInteractive:()=>ae(),setInteractive:e=>oe(e),zoomIn3D:it?e=>{pt()===Cf.Preview&&lt()&&st().zoomBy(e)}:void 0,zoomOut3D:it?e=>{pt()===Cf.Preview&&lt()&&st().zoomBy(-e)}:void 0,rotateHorizontally3D:it?e=>{pt()===Cf.Preview&&lt()&&st().rotateBy(e,0)}:void 0,rotateVertically3D:it?e=>{pt()===Cf.Preview&&lt()&&st().rotateBy(0,e)}:void 0}})}function ev(e,t){if(e!==t)throw new Error("Setup cancelled. Please ensure that setup is only called once.")}const tv={setup:function(e){return c(this,void 0,void 0,function*(){return d("visionSetup",()=>Jm(e))()})}},nv={setup:function(e){return c(this,void 0,void 0,function*(){return d("setup",()=>$m(e))()})},version:I};export{i as ApiError,s as CameraPermissionDeniedError,a as Launch3DError,o as LaunchARError,e as PREVIEW_STATES,t as PluginError,l as QRError,r as SanitizationError,n as ValidationError,nv as plugin,tv as vision};
12
+ */var Sh=Uint8Array,Bh=Uint16Array,Th=Int32Array,Rh=new Sh([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Dh=new Sh([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Qh=new Sh([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Lh=function(e,t){for(var n=new Bh(31),i=0;i<31;++i)n[i]=t+=1<<e[i-1];var r=new Th(n[30]);for(i=1;i<30;++i)for(var a=n[i];a<n[i+1];++a)r[a]=a-n[i]<<5|i;return{b:n,r:r}},Uh=Lh(Rh,2),Ph=Uh.b,Nh=Uh.r;Ph[28]=258,Nh[258]=28;for(var Fh=Lh(Dh,0).b,Oh=new Bh(32768),kh=0;kh<32768;++kh){var Gh=(43690&kh)>>1|(21845&kh)<<1;Gh=(61680&(Gh=(52428&Gh)>>2|(13107&Gh)<<2))>>4|(3855&Gh)<<4,Oh[kh]=((65280&Gh)>>8|(255&Gh)<<8)>>1}var Hh=function(e,t,n){for(var i=e.length,r=0,a=new Bh(t);r<i;++r)e[r]&&++a[e[r]-1];var o,s=new Bh(t);for(r=1;r<t;++r)s[r]=s[r-1]+a[r-1]<<1;o=new Bh(1<<t);var l=15-t;for(r=0;r<i;++r)if(e[r])for(var c=r<<4|e[r],h=t-e[r],A=s[e[r]-1]++<<h,u=A|(1<<h)-1;A<=u;++A)o[Oh[A]>>l]=c;return o},zh=new Sh(288);for(kh=0;kh<144;++kh)zh[kh]=8;for(kh=144;kh<256;++kh)zh[kh]=9;for(kh=256;kh<280;++kh)zh[kh]=7;for(kh=280;kh<288;++kh)zh[kh]=8;var Vh=new Sh(32);for(kh=0;kh<32;++kh)Vh[kh]=5;var Wh=Hh(zh,9),qh=Hh(Vh,5),jh=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Yh=function(e,t,n){var i=t/8|0;return(e[i]|e[i+1]<<8)>>(7&t)&n},Xh=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},Kh=function(e){return(e+7)/8|0},Jh=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Zh=function(e,t,n){var i=new Error(t||Jh[e]);if(i.code=e,Error.captureStackTrace&&Error.captureStackTrace(i,Zh),!n)throw i;return i},$h=new Sh(0);function eA(e,t){return function(e,t,n,i){var r=e.length;if(!r||t.f&&!t.l)return n||new Sh(0);var a=!n,o=a||2!=t.i,s=t.i;a&&(n=new Sh(3*r));var l=function(e){var t=n.length;if(e>t){var i=new Sh(Math.max(2*t,e));i.set(n),n=i}},c=t.f||0,h=t.p||0,A=t.b||0,u=t.l,d=t.d,p=t.m,f=t.n,g=8*r;do{if(!u){c=Yh(e,h,1);var m=Yh(e,h+1,3);if(h+=3,!m){var v=e[(B=Kh(h)+4)-4]|e[B-3]<<8,E=B+v;if(E>r){s&&Zh(0);break}o&&l(A+v),n.set(e.subarray(B,E),A),t.b=A+=v,t.p=h=8*E,t.f=c;continue}if(1==m)u=Wh,d=qh,p=9,f=5;else if(2==m){var b=Yh(e,h,31)+257,C=Yh(e,h+10,15)+4,_=b+Yh(e,h+5,31)+1;h+=14;for(var I=new Sh(_),x=new Sh(19),y=0;y<C;++y)x[Qh[y]]=Yh(e,h+3*y,7);h+=3*C;var M=jh(x),w=(1<<M)-1,S=Hh(x,M);for(y=0;y<_;){var B,T=S[Yh(e,h,w)];if(h+=15&T,(B=T>>4)<16)I[y++]=B;else{var R=0,D=0;for(16==B?(D=3+Yh(e,h,3),h+=2,R=I[y-1]):17==B?(D=3+Yh(e,h,7),h+=3):18==B&&(D=11+Yh(e,h,127),h+=7);D--;)I[y++]=R}}var Q=I.subarray(0,b),L=I.subarray(b);p=jh(Q),f=jh(L),u=Hh(Q,p),d=Hh(L,f)}else Zh(1);if(h>g){s&&Zh(0);break}}o&&l(A+131072);for(var U=(1<<p)-1,P=(1<<f)-1,N=h;;N=h){var F=(R=u[Xh(e,h)&U])>>4;if((h+=15&R)>g){s&&Zh(0);break}if(R||Zh(2),F<256)n[A++]=F;else{if(256==F){N=h,u=null;break}var O=F-254;if(F>264){var k=Rh[y=F-257];O=Yh(e,h,(1<<k)-1)+Ph[y],h+=k}var G=d[Xh(e,h)&P],H=G>>4;if(G||Zh(3),h+=15&G,L=Fh[H],H>3&&(k=Dh[H],L+=Xh(e,h)&(1<<k)-1,h+=k),h>g){s&&Zh(0);break}o&&l(A+131072);var z=A+O;if(A<L){var V=0-L,W=Math.min(L,z);for(V+A<0&&Zh(3);A<W;++A)n[A]=i[V+A]}for(;A<z;++A)n[A]=n[A-L]}}t.l=u,t.p=N,t.b=A,t.f=c,u&&(c=1,t.m=p,t.d=d,t.n=f)}while(!c);return A!=n.length&&a?function(e,t,n){return(null==n||n>e.length)&&(n=e.length),new Sh(e.subarray(0,n))}(n,0,A):n.subarray(0,A)}(e.subarray((i=t,(8!=(15&(n=e)[0])||n[0]>>4>7||(n[0]<<8|n[1])%31)&&Zh(6,"invalid zlib data"),(n[1]>>5&1)==+!i&&Zh(6,"invalid zlib data: "+(32&n[1]?"need":"unexpected")+" dictionary"),2+(n[1]>>3&4)),-4),{i:2},t,t);var n,i}var tA="undefined"!=typeof TextDecoder&&new TextDecoder;try{tA.decode($h,{stream:!0})}catch(Zd){}class nA extends mc{constructor(e){super(e),this.type=Ze}parse(e){const t=65536,n=14,i=65537,r=Math.pow(2.7182818,2.2),a={l:0,c:0,lc:0};function o(e,t,n,i,r){for(;n<e;)t=t<<8|k(i,r),n+=8;n-=e,a.l=t>>n&(1<<e)-1,a.c=t,a.lc=n}const s=new Array(59);function l(e,t,n,r,l,c){const h=t;let A=0,u=0;for(;r<=l;r++){if(h.value-t.value>n)return!1;o(6,A,u,e,h);const i=a.l;if(A=a.c,u=a.lc,c[r]=i,63==i){if(h.value-t.value>n)throw new Error("Something wrong with hufUnpackEncTable");o(8,A,u,e,h);let i=a.l+6;if(A=a.c,u=a.lc,r+i>l+1)throw new Error("Something wrong with hufUnpackEncTable");for(;i--;)c[r++]=0;r--}else if(i>=59){let e=i-59+2;if(r+e>l+1)throw new Error("Something wrong with hufUnpackEncTable");for(;e--;)c[r++]=0;r--}}!function(e){for(let e=0;e<=58;++e)s[e]=0;for(let t=0;t<i;++t)s[e[t]]+=1;let t=0;for(let e=58;e>0;--e){const n=t+s[e]>>1;s[e]=t,t=n}for(let t=0;t<i;++t){const n=e[t];n>0&&(e[t]=n|s[n]++<<6)}}(c)}function c(e){return 63&e}function h(e){return e>>6}const A={c:0,lc:0};function u(e,t,n,i){e=e<<8|k(n,i),t+=8,A.c=e,A.lc=t}const d={c:0,lc:0};function p(e,t,n,i,r,a,o,s,l){if(e==t){i<8&&(u(n,i,r,a),n=A.c,i=A.lc);let e=n>>(i-=8);if(e=new Uint8Array([e])[0],s.value+e>l)return!1;const t=o[s.value-1];for(;e-- >0;)o[s.value++]=t}else{if(!(s.value<l))return!1;o[s.value++]=e}d.c=n,d.lc=i}function f(e){return 65535&e}function g(e){const t=f(e);return t>32767?t-65536:t}const m={a:0,b:0};function v(e,t){const n=g(e),i=g(t),r=n+(1&i)+(i>>1),a=r,o=r-i;m.a=a,m.b=o}function E(e,t){const n=f(e),i=f(t),r=n-(i>>1)&65535,a=i+r-32768&65535;m.a=a,m.b=r}function b(e,t,n,i,r,a,o){const s=o<16384,l=n>r?r:n;let c,h,A=1;for(;A<=l;)A<<=1;for(A>>=1,c=A,A>>=1;A>=1;){h=0;const o=h+a*(r-c),l=a*A,u=a*c,d=i*A,p=i*c;let f,g,b,C;for(;h<=o;h+=u){let r=h;const a=h+i*(n-c);for(;r<=a;r+=p){const n=r+d,i=r+l,a=i+d;s?(v(e[r+t],e[i+t]),f=m.a,b=m.b,v(e[n+t],e[a+t]),g=m.a,C=m.b,v(f,g),e[r+t]=m.a,e[n+t]=m.b,v(b,C),e[i+t]=m.a,e[a+t]=m.b):(E(e[r+t],e[i+t]),f=m.a,b=m.b,E(e[n+t],e[a+t]),g=m.a,C=m.b,E(f,g),e[r+t]=m.a,e[n+t]=m.b,E(b,C),e[i+t]=m.a,e[a+t]=m.b)}if(n&A){const n=r+l;s?v(e[r+t],e[n+t]):E(e[r+t],e[n+t]),f=m.a,e[n+t]=m.b,e[r+t]=f}}if(r&A){let r=h;const a=h+i*(n-c);for(;r<=a;r+=p){const n=r+d;s?v(e[r+t],e[n+t]):E(e[r+t],e[n+t]),f=m.a,e[n+t]=m.b,e[r+t]=f}}c=A,A>>=1}return h}function C(e,t,r,a,o,s){const f=r.value,g=O(t,r),m=O(t,r);r.value+=4;const v=O(t,r);if(r.value+=4,g<0||g>=i||m<0||m>=i)throw new Error("Something wrong with HUF_ENCSIZE");const E=new Array(i),b=new Array(16384);if(function(e){for(let t=0;t<16384;t++)e[t]={},e[t].len=0,e[t].lit=0,e[t].p=null}(b),l(e,r,a-(r.value-f),g,m,E),v>8*(a-(r.value-f)))throw new Error("Something wrong with hufUncompress");!function(e,t,i,r){for(;t<=i;t++){const i=h(e[t]),a=c(e[t]);if(i>>a)throw new Error("Invalid table entry");if(a>n){const e=r[i>>a-n];if(e.len)throw new Error("Invalid table entry");if(e.lit++,e.p){const t=e.p;e.p=new Array(e.lit);for(let n=0;n<e.lit-1;++n)e.p[n]=t[n]}else e.p=new Array(1);e.p[e.lit-1]=t}else if(a){let e=0;for(let o=1<<n-a;o>0;o--){const o=r[(i<<n-a)+e];if(o.len||o.p)throw new Error("Invalid table entry");o.len=a,o.lit=t,e++}}}}(E,g,m,b),function(e,t,i,r,a,o,s,l,f){let g=0,m=0;const v=s,E=Math.trunc(r.value+(a+7)/8);for(;r.value<E;)for(u(g,m,i,r),g=A.c,m=A.lc;m>=n;){const a=t[g>>m-n&16383];if(a.len)m-=a.len,p(a.lit,o,g,m,i,r,l,f,v),g=d.c,m=d.lc;else{if(!a.p)throw new Error("hufDecode issues");let t;for(t=0;t<a.lit;t++){const n=c(e[a.p[t]]);for(;m<n&&r.value<E;)u(g,m,i,r),g=A.c,m=A.lc;if(m>=n&&h(e[a.p[t]])==(g>>m-n&(1<<n)-1)){m-=n,p(a.p[t],o,g,m,i,r,l,f,v),g=d.c,m=d.lc;break}}if(t==a.lit)throw new Error("hufDecode issues")}}const b=8-a&7;for(g>>=b,m-=b;m>0;){const e=t[g<<n-m&16383];if(!e.len)throw new Error("hufDecode issues");m-=e.len,p(e.lit,o,g,m,i,r,l,f,v),g=d.c,m=d.lc}}(E,b,e,r,v,m,s,o,{value:0})}function _(e){for(let t=1;t<e.length;t++){const n=e[t-1]+e[t]-128;e[t]=n}}function I(e,t){let n=0,i=Math.floor((e.length+1)/2),r=0;const a=e.length-1;for(;!(r>a||(t[r++]=e[n++],r>a));)t[r++]=e[i++]}function x(e){let t=e.byteLength;const n=new Array;let i=0;const r=new DataView(e);for(;t>0;){const e=r.getInt8(i++);if(e<0){const a=-e;t-=a+1;for(let e=0;e<a;e++)n.push(r.getUint8(i++))}else{const a=e;t-=2;const o=r.getUint8(i++);for(let e=0;e<a+1;e++)n.push(o)}}return n}function y(e,t,n){let i,r=1;for(;r<64;)i=t[e.value],65280==i?r=64:i>>8==255?r+=255&i:(n[r]=i,r++),e.value++}function M(e,t){t[0]=W(e[0]),t[1]=W(e[1]),t[2]=W(e[5]),t[3]=W(e[6]),t[4]=W(e[14]),t[5]=W(e[15]),t[6]=W(e[27]),t[7]=W(e[28]),t[8]=W(e[2]),t[9]=W(e[4]),t[10]=W(e[7]),t[11]=W(e[13]),t[12]=W(e[16]),t[13]=W(e[26]),t[14]=W(e[29]),t[15]=W(e[42]),t[16]=W(e[3]),t[17]=W(e[8]),t[18]=W(e[12]),t[19]=W(e[17]),t[20]=W(e[25]),t[21]=W(e[30]),t[22]=W(e[41]),t[23]=W(e[43]),t[24]=W(e[9]),t[25]=W(e[11]),t[26]=W(e[18]),t[27]=W(e[24]),t[28]=W(e[31]),t[29]=W(e[40]),t[30]=W(e[44]),t[31]=W(e[53]),t[32]=W(e[10]),t[33]=W(e[19]),t[34]=W(e[23]),t[35]=W(e[32]),t[36]=W(e[39]),t[37]=W(e[45]),t[38]=W(e[52]),t[39]=W(e[54]),t[40]=W(e[20]),t[41]=W(e[22]),t[42]=W(e[33]),t[43]=W(e[38]),t[44]=W(e[46]),t[45]=W(e[51]),t[46]=W(e[55]),t[47]=W(e[60]),t[48]=W(e[21]),t[49]=W(e[34]),t[50]=W(e[37]),t[51]=W(e[47]),t[52]=W(e[50]),t[53]=W(e[56]),t[54]=W(e[59]),t[55]=W(e[61]),t[56]=W(e[35]),t[57]=W(e[36]),t[58]=W(e[48]),t[59]=W(e[49]),t[60]=W(e[57]),t[61]=W(e[58]),t[62]=W(e[62]),t[63]=W(e[63])}function w(e){const t=.5*Math.cos(.7853975),n=.5*Math.cos(3.14159/16),i=.5*Math.cos(3.14159/8),r=.5*Math.cos(3*3.14159/16),a=.5*Math.cos(.981746875),o=.5*Math.cos(3*3.14159/8),s=.5*Math.cos(1.374445625),l=new Array(4),c=new Array(4),h=new Array(4),A=new Array(4);for(let u=0;u<8;++u){const d=8*u;l[0]=i*e[d+2],l[1]=o*e[d+2],l[2]=i*e[d+6],l[3]=o*e[d+6],c[0]=n*e[d+1]+r*e[d+3]+a*e[d+5]+s*e[d+7],c[1]=r*e[d+1]-s*e[d+3]-n*e[d+5]-a*e[d+7],c[2]=a*e[d+1]-n*e[d+3]+s*e[d+5]+r*e[d+7],c[3]=s*e[d+1]-a*e[d+3]+r*e[d+5]-n*e[d+7],h[0]=t*(e[d+0]+e[d+4]),h[3]=t*(e[d+0]-e[d+4]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],A[0]=h[0]+h[1],A[1]=h[3]+h[2],A[2]=h[3]-h[2],A[3]=h[0]-h[1],e[d+0]=A[0]+c[0],e[d+1]=A[1]+c[1],e[d+2]=A[2]+c[2],e[d+3]=A[3]+c[3],e[d+4]=A[3]-c[3],e[d+5]=A[2]-c[2],e[d+6]=A[1]-c[1],e[d+7]=A[0]-c[0]}for(let u=0;u<8;++u)l[0]=i*e[16+u],l[1]=o*e[16+u],l[2]=i*e[48+u],l[3]=o*e[48+u],c[0]=n*e[8+u]+r*e[24+u]+a*e[40+u]+s*e[56+u],c[1]=r*e[8+u]-s*e[24+u]-n*e[40+u]-a*e[56+u],c[2]=a*e[8+u]-n*e[24+u]+s*e[40+u]+r*e[56+u],c[3]=s*e[8+u]-a*e[24+u]+r*e[40+u]-n*e[56+u],h[0]=t*(e[u]+e[32+u]),h[3]=t*(e[u]-e[32+u]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],A[0]=h[0]+h[1],A[1]=h[3]+h[2],A[2]=h[3]-h[2],A[3]=h[0]-h[1],e[0+u]=A[0]+c[0],e[8+u]=A[1]+c[1],e[16+u]=A[2]+c[2],e[24+u]=A[3]+c[3],e[32+u]=A[3]-c[3],e[40+u]=A[2]-c[2],e[48+u]=A[1]-c[1],e[56+u]=A[0]-c[0]}function S(e){for(let t=0;t<64;++t){const n=e[0][t],i=e[1][t],r=e[2][t];e[0][t]=n+1.5747*r,e[1][t]=n-.1873*i-.4682*r,e[2][t]=n+1.8556*i}}function B(e,t,n){for(let i=0;i<64;++i)t[n+i]=tr(T(e[i]))}function T(e){return e<=1?Math.sign(e)*Math.pow(Math.abs(e),2.2):Math.sign(e)*Math.pow(r,Math.abs(e)-1)}function R(e){return new DataView(e.array.buffer,e.offset.value,e.size)}function D(e){const t=e.viewer.buffer.slice(e.offset.value,e.offset.value+e.size),n=new Uint8Array(x(t)),i=new Uint8Array(n.length);return _(n),I(n,i),new DataView(i.buffer)}function Q(e){const t=eA(e.array.slice(e.offset.value,e.offset.value+e.size)),n=new Uint8Array(t.length);return _(t),I(t,n),new DataView(n.buffer)}function L(e){const n=e.viewer,i={value:e.offset.value},r=new Uint16Array(e.columns*e.lines*(e.inputChannels.length*e.type)),a=new Uint8Array(8192);let o=0;const s=new Array(e.inputChannels.length);for(let t=0,n=e.inputChannels.length;t<n;t++)s[t]={},s[t].start=o,s[t].end=s[t].start,s[t].nx=e.columns,s[t].ny=e.lines,s[t].size=e.type,o+=s[t].nx*s[t].ny*s[t].size;const l=q(n,i),c=q(n,i);if(c>=8192)throw new Error("Something is wrong with PIZ_COMPRESSION BITMAP_SIZE");if(l<=c)for(let e=0;e<c-l+1;e++)a[e+l]=G(n,i);const h=new Uint16Array(t),A=function(e,n){let i=0;for(let r=0;r<t;++r)(0==r||e[r>>3]&1<<(7&r))&&(n[i++]=r);const r=i-1;for(;i<t;)n[i++]=0;return r}(a,h),u=O(n,i);C(e.array,n,i,u,r,o);for(let t=0;t<e.inputChannels.length;++t){const e=s[t];for(let n=0;n<s[t].size;++n)b(r,e.start+n,e.nx,e.size,e.ny,e.nx*e.size,A)}!function(e,t,n){for(let i=0;i<n;++i)t[i]=e[t[i]]}(h,r,o);let d=0;const p=new Uint8Array(r.buffer.byteLength);for(let t=0;t<e.lines;t++)for(let t=0;t<e.inputChannels.length;t++){const e=s[t],n=e.nx*e.size,i=new Uint8Array(r.buffer,2*e.end,2*n);p.set(i,d),d+=2*n,e.end+=n}return new DataView(p.buffer)}function U(e){const t=eA(e.array.slice(e.offset.value,e.offset.value+e.size)),n=e.inputChannels.length*e.lines*e.columns*e.totalBytes,i=new ArrayBuffer(n),r=new DataView(i);let a=0,o=0;const s=new Array(4);for(let n=0;n<e.lines;n++)for(let n=0;n<e.inputChannels.length;n++){let i=0;switch(e.inputChannels[n].pixelType){case 1:s[0]=a,s[1]=s[0]+e.columns,a=s[1]+e.columns;for(let n=0;n<e.columns;++n)i+=t[s[0]++]<<8|t[s[1]++],r.setUint16(o,i,!0),o+=2;break;case 2:s[0]=a,s[1]=s[0]+e.columns,s[2]=s[1]+e.columns,a=s[2]+e.columns;for(let n=0;n<e.columns;++n)i+=t[s[0]++]<<24|t[s[1]++]<<16|t[s[2]++]<<8,r.setUint32(o,i,!0),o+=4}}return r}function P(e){const t=e.viewer,n={value:e.offset.value},i=new Uint8Array(e.columns*e.lines*(e.inputChannels.length*e.type*2)),r={version:H(t,n),unknownUncompressedSize:H(t,n),unknownCompressedSize:H(t,n),acCompressedSize:H(t,n),dcCompressedSize:H(t,n),rleCompressedSize:H(t,n),rleUncompressedSize:H(t,n),rleRawSize:H(t,n),totalAcUncompressedCount:H(t,n),totalDcUncompressedCount:H(t,n),acCompression:H(t,n)};if(r.version<2)throw new Error("EXRLoader.parse: "+te.compression+" version "+r.version+" is unsupported");const a=new Array;let o=q(t,n)-2;for(;o>0;){const e=N(t.buffer,n),i=G(t,n),r=i>>2&3,s=new Int8Array([(i>>4)-1])[0],l=G(t,n);a.push({name:e,index:s,type:l,compression:r}),o-=e.length+3}const s=te.channels,l=new Array(e.inputChannels.length);for(let t=0;t<e.inputChannels.length;++t){const n=l[t]={},i=s[t];n.name=i.name,n.compression=0,n.decoded=!1,n.type=i.pixelType,n.pLinear=i.pLinear,n.width=e.columns,n.height=e.lines}const c={idx:new Array(3)};for(let t=0;t<e.inputChannels.length;++t){const e=l[t];for(let n=0;n<a.length;++n){const i=a[n];e.name==i.name&&(e.compression=i.compression,i.index>=0&&(c.idx[i.index]=t),e.offset=t)}}let h,A,u;if(r.acCompressedSize>0)switch(r.acCompression){case 0:h=new Uint16Array(r.totalAcUncompressedCount),C(e.array,t,n,r.acCompressedSize,h,r.totalAcUncompressedCount);break;case 1:const i=eA(e.array.slice(n.value,n.value+r.totalAcUncompressedCount));h=new Uint16Array(i.buffer),n.value+=r.totalAcUncompressedCount}if(r.dcCompressedSize>0){const t={array:e.array,offset:n,size:r.dcCompressedSize};A=new Uint16Array(Q(t).buffer),n.value+=r.dcCompressedSize}r.rleRawSize>0&&(u=x(eA(e.array.slice(n.value,n.value+r.rleCompressedSize)).buffer),n.value+=r.rleCompressedSize);let d=0;const p=new Array(l.length);for(let e=0;e<p.length;++e)p[e]=new Array;for(let t=0;t<e.lines;++t)for(let t=0;t<l.length;++t)p[t].push(d),d+=l[t].width*e.type*2;!function(e,t,n,i,r,a){let o=new DataView(a.buffer);const s=n[e.idx[0]].width,l=n[e.idx[0]].height,c=Math.floor(s/8),h=Math.ceil(s/8),A=Math.ceil(l/8),u=s-8*(h-1),d=l-8*(A-1),p={value:0},f=new Array(3),g=new Array(3),m=new Array(3),v=new Array(3),E=new Array(3);for(let n=0;n<3;++n)E[n]=t[e.idx[n]],f[n]=n<1?0:f[n-1]+h*A,g[n]=new Float32Array(64),m[n]=new Uint16Array(64),v[n]=new Uint16Array(64*h);for(let t=0;t<A;++t){let a=8;t==A-1&&(a=d);let s=8;for(let e=0;e<h;++e){e==h-1&&(s=u);for(let e=0;e<3;++e)m[e].fill(0),m[e][0]=r[f[e]++],y(p,i,m[e]),M(m[e],g[e]),w(g[e]);S(g);for(let t=0;t<3;++t)B(g[t],v[t],64*e)}let l=0;for(let i=0;i<3;++i){const r=n[e.idx[i]].type;for(let e=8*t;e<8*t+a;++e){l=E[i][e];for(let t=0;t<c;++t){const n=64*t+8*(7&e);o.setUint16(l+0*r,v[i][n+0],!0),o.setUint16(l+2*r,v[i][n+1],!0),o.setUint16(l+4*r,v[i][n+2],!0),o.setUint16(l+6*r,v[i][n+3],!0),o.setUint16(l+8*r,v[i][n+4],!0),o.setUint16(l+10*r,v[i][n+5],!0),o.setUint16(l+12*r,v[i][n+6],!0),o.setUint16(l+14*r,v[i][n+7],!0),l+=16*r}}if(c!=h)for(let e=8*t;e<8*t+a;++e){const t=E[i][e]+8*c*2*r,n=64*c+8*(7&e);for(let e=0;e<s;++e)o.setUint16(t+2*e*r,v[i][n+e],!0)}}}const b=new Uint16Array(s);o=new DataView(a.buffer);for(let t=0;t<3;++t){n[e.idx[t]].decoded=!0;const i=n[e.idx[t]].type;if(2==n[t].type)for(let e=0;e<l;++e){const n=E[t][e];for(let e=0;e<s;++e)b[e]=o.getUint16(n+2*e*i,!0);for(let e=0;e<s;++e)o.setFloat32(n+2*e*i,W(b[e]),!0)}}}(c,p,l,h,A,i);for(let t=0;t<l.length;++t){const n=l[t];if(!n.decoded){if(2!==n.compression)throw new Error("EXRLoader.parse: unsupported channel compression");{let r=0,a=0;for(let o=0;o<e.lines;++o){let e=p[t][r];for(let t=0;t<n.width;++t){for(let t=0;t<2*n.type;++t)i[e++]=u[a+t*n.width*n.height];a++}r++}}}}return new DataView(i.buffer)}function N(e,t){const n=new Uint8Array(e);let i=0;for(;0!=n[t.value+i];)i+=1;const r=(new TextDecoder).decode(n.slice(t.value,t.value+i));return t.value=t.value+i+1,r}function F(e,t){const n=e.getInt32(t.value,!0);return t.value=t.value+4,n}function O(e,t){const n=e.getUint32(t.value,!0);return t.value=t.value+4,n}function k(e,t){const n=e[t.value];return t.value=t.value+1,n}function G(e,t){const n=e.getUint8(t.value);return t.value=t.value+1,n}const H=function(e,t){let n;return n="getBigInt64"in DataView.prototype?Number(e.getBigInt64(t.value,!0)):e.getUint32(t.value+4,!0)+Number(e.getUint32(t.value,!0)<<32),t.value+=8,n};function z(e,t){const n=e.getFloat32(t.value,!0);return t.value+=4,n}function V(e,t){return tr(z(e,t))}function W(e){const t=(31744&e)>>10,n=1023&e;return(e>>15?-1:1)*(t?31===t?n?NaN:1/0:Math.pow(2,t-15)*(1+n/1024):n/1024*6103515625e-14)}function q(e,t){const n=e.getUint16(t.value,!0);return t.value+=2,n}function j(e,t){return W(q(e,t))}function Y(e,t,n,i,r){return"string"===i||"stringvector"===i||"iccProfile"===i?function(e,t,n){const i=(new TextDecoder).decode(new Uint8Array(e).slice(t.value,t.value+n));return t.value=t.value+n,i}(t,n,r):"chlist"===i?function(e,t,n,i){const r=n.value,a=[];for(;n.value<r+i-1;){const i=N(t,n),r=F(e,n),o=G(e,n);n.value+=3;const s=F(e,n),l=F(e,n);a.push({name:i,pixelType:r,pLinear:o,xSampling:s,ySampling:l})}return n.value+=1,a}(e,t,n,r):"chromaticities"===i?function(e,t){return{redX:z(e,t),redY:z(e,t),greenX:z(e,t),greenY:z(e,t),blueX:z(e,t),blueY:z(e,t),whiteX:z(e,t),whiteY:z(e,t)}}(e,n):"compression"===i?function(e,t){return["NO_COMPRESSION","RLE_COMPRESSION","ZIPS_COMPRESSION","ZIP_COMPRESSION","PIZ_COMPRESSION","PXR24_COMPRESSION","B44_COMPRESSION","B44A_COMPRESSION","DWAA_COMPRESSION","DWAB_COMPRESSION"][G(e,t)]}(e,n):"box2i"===i?function(e,t){return{xMin:F(e,t),yMin:F(e,t),xMax:F(e,t),yMax:F(e,t)}}(e,n):"envmap"===i?function(e,t){return["ENVMAP_LATLONG","ENVMAP_CUBE"][G(e,t)]}(e,n):"tiledesc"===i?function(e,t){const n=O(e,t),i=O(e,t),r=G(e,t);return{xSize:n,ySize:i,levelMode:["ONE_LEVEL","MIPMAP_LEVELS","RIPMAP_LEVELS"][15&r],roundingMode:["ROUND_DOWN","ROUND_UP"][r>>4]}}(e,n):"lineOrder"===i?function(e,t){return["INCREASING_Y","DECREASING_Y","RANDOM_Y"][G(e,t)]}(e,n):"float"===i?z(e,n):"v2f"===i?function(e,t){return[z(e,t),z(e,t)]}(e,n):"v3f"===i?function(e,t){return[z(e,t),z(e,t),z(e,t)]}(e,n):"int"===i?F(e,n):"rational"===i?function(e,t){return[F(e,t),O(e,t)]}(e,n):"timecode"===i?function(e,t){return[O(e,t),O(e,t)]}(e,n):"preview"===i?(n.value+=r,"skipped"):void(n.value+=r)}function X(e,t,n,i){const r=new Array(e);for(let a=0;a<e;a++){const e=1<<a;let o=t/e|0;"ROUND_UP"==i&&o*e<t&&(o+=1);const s=Math.max(o,1);r[a]=(s+n-1)/n|0}return r}function K(){const e=this,t=e.offset,n={value:0};for(let i=0;i<e.tileCount;i++){const i=F(e.viewer,t),r=F(e.viewer,t);t.value+=8,e.size=O(e.viewer,t);const a=i*e.blockWidth,o=r*e.blockHeight;e.columns=a+e.blockWidth>e.width?e.width-a:e.blockWidth,e.lines=o+e.blockHeight>e.height?e.height-o:e.blockHeight;const s=e.columns*e.totalBytes,l=e.size<e.lines*s?e.uncompress(e):R(e);t.value+=e.size;for(let t=0;t<e.lines;t++){const i=t*e.columns*e.totalBytes;for(let r=0;r<e.inputChannels.length;r++){const s=te.channels[r].name,c=e.channelByteOffsets[s]*e.columns,h=e.decodeChannels[s];if(void 0===h)continue;n.value=i+c;const A=(e.height-(1+o+t))*e.outLineWidth;for(let t=0;t<e.columns;t++){const i=A+(t+a)*e.outputChannels+h;e.byteArray[i]=e.getter(l,n)}}}}}function J(){const e=this,t=e.offset,n={value:0};for(let i=0;i<e.height/e.blockHeight;i++){const r=F(e.viewer,t)-te.dataWindow.yMin;e.size=O(e.viewer,t),e.lines=r+e.blockHeight>e.height?e.height-r:e.blockHeight;const a=e.columns*e.totalBytes,o=e.size<e.lines*a?e.uncompress(e):R(e);t.value+=e.size;for(let t=0;t<e.blockHeight;t++){const r=i*e.blockHeight,s=t+e.scanOrder(r);if(s>=e.height)continue;const l=t*a,c=(e.height-1-s)*e.outLineWidth;for(let t=0;t<e.inputChannels.length;t++){const i=te.channels[t].name,r=e.channelByteOffsets[i]*e.columns,a=e.decodeChannels[i];if(void 0!==a){n.value=l+r;for(let t=0;t<e.columns;t++){const i=c+t*e.outputChannels+a;e.byteArray[i]=e.getter(o,n)}}}}}}const Z={value:0},$=new DataView(e),ee=new Uint8Array(e),te=function(e,t,n){const i={};if(20000630!=e.getUint32(0,!0))throw new Error("THREE.EXRLoader: Provided file doesn't appear to be in OpenEXR format.");i.version=e.getUint8(4);const r=e.getUint8(5);i.spec={singleTile:!!(2&r),longName:!!(4&r),deepFormat:!!(8&r),multiPart:!!(16&r)},n.value=8;let a=!0;for(;a;){const r=N(t,n);if(0==r)a=!1;else{const a=N(t,n),o=Y(e,t,n,a,O(e,n));void 0===o?console.warn(`THREE.EXRLoader: Skipped unknown header attribute type '${a}'.`):i[r]=o}}if(-7&r)throw console.error("THREE.EXRHeader:",i),new Error("THREE.EXRLoader: Provided file is currently unsupported.");return i}($,e,Z),ne=function(e,t,n,i,r){const a={size:0,viewer:t,array:n,offset:i,width:e.dataWindow.xMax-e.dataWindow.xMin+1,height:e.dataWindow.yMax-e.dataWindow.yMin+1,inputChannels:e.channels,channelByteOffsets:{},scanOrder:null,totalBytes:null,columns:null,lines:null,type:null,uncompress:null,getter:null,format:null,colorSpace:_t};switch(e.compression){case"NO_COMPRESSION":a.blockHeight=1,a.uncompress=R;break;case"RLE_COMPRESSION":a.blockHeight=1,a.uncompress=D;break;case"ZIPS_COMPRESSION":a.blockHeight=1,a.uncompress=Q;break;case"ZIP_COMPRESSION":a.blockHeight=16,a.uncompress=Q;break;case"PIZ_COMPRESSION":a.blockHeight=32,a.uncompress=L;break;case"PXR24_COMPRESSION":a.blockHeight=16,a.uncompress=U;break;case"DWAA_COMPRESSION":a.blockHeight=32,a.uncompress=P;break;case"DWAB_COMPRESSION":a.blockHeight=256,a.uncompress=P;break;default:throw new Error("EXRLoader.parse: "+e.compression+" is unsupported")}const o={};for(const t of e.channels)switch(t.name){case"Y":case"R":case"G":case"B":case"A":o[t.name]=!0,a.type=t.pixelType}let s=!1;if(o.R&&o.G&&o.B)s=!o.A,a.outputChannels=4,a.decodeChannels={R:0,G:1,B:2,A:3};else{if(!o.Y)throw new Error("EXRLoader.parse: file contains unsupported data channels.");a.outputChannels=1,a.decodeChannels={Y:0}}if(1==a.type)switch(r){case Je:a.getter=j;break;case Ze:a.getter=q}else{if(2!=a.type)throw new Error("EXRLoader.parse: unsupported pixelType "+a.type+" for "+e.compression+".");switch(r){case Je:a.getter=z;break;case Ze:a.getter=V}}a.columns=a.width;const l=a.width*a.height*a.outputChannels;switch(r){case Je:a.byteArray=new Float32Array(l),s&&a.byteArray.fill(1,0,l);break;case Ze:a.byteArray=new Uint16Array(l),s&&a.byteArray.fill(15360,0,l);break;default:console.error("THREE.EXRLoader: unsupported type: ",r)}let c=0;for(const t of e.channels)void 0!==a.decodeChannels[t.name]&&(a.channelByteOffsets[t.name]=c),c+=2*t.pixelType;if(a.totalBytes=c,a.outLineWidth=a.width*a.outputChannels,"INCREASING_Y"===e.lineOrder?a.scanOrder=e=>e:a.scanOrder=e=>a.height-1-e,4==a.outputChannels?(a.format=et,a.colorSpace=_t):(a.format=it,a.colorSpace=bt),e.spec.singleTile){a.blockHeight=e.tiles.ySize,a.blockWidth=e.tiles.xSize;const n=function(e,t,n){let i=0;switch(e.levelMode){case"ONE_LEVEL":i=1;break;case"MIPMAP_LEVELS":i=function(e,t){const n=Math.log2(e);return"ROUND_DOWN"==t?Math.floor(n):Math.ceil(n)}(Math.max(t,n),e.roundingMode)+1;break;case"RIPMAP_LEVELS":throw new Error("THREE.EXRLoader: RIPMAP_LEVELS tiles currently unsupported.")}return i}(e.tiles,a.width,a.height),r=X(n,a.width,e.tiles.xSize,e.tiles.roundingMode),o=X(n,a.height,e.tiles.ySize,e.tiles.roundingMode);a.tileCount=r[0]*o[0];for(let e=0;e<n;e++)for(let n=0;n<o[e];n++)for(let n=0;n<r[e];n++)H(t,i);a.decode=K.bind(a)}else{a.blockWidth=a.width;const e=Math.ceil(a.height/a.blockHeight);for(let n=0;n<e;n++)H(t,i);a.decode=J.bind(a)}return a}(te,$,ee,Z,this.type);return ne.decode(),{header:te,width:ne.width,height:ne.height,data:ne.byteArray,format:ne.format,colorSpace:ne.colorSpace,type:this.type}}setDataType(e){return this.type=e,this}load(e,t,n,i){return super.load(e,function(e,n){e.colorSpace=n.colorSpace,e.minFilter=We,e.magFilter=We,e.generateMipmaps=!1,e.flipY=!1,t&&t(e,n)},n,i)}}let iA,rA=!1;function aA(e){rA||(iA=new wh,new nA,rA=!0);const t=function(e){const t=new Al(e.data,e.width,e.height,void 0,e.type,void 0,ke,ke,We,We,1,_t);return t.flipY=!0,t.generateMipmaps=!1,t.needsUpdate=!0,t}(iA.parse(e));return t.mapping=Ne,t.colorSpace=_t,t}var oA=function(){var e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if("object"!=typeof WebAssembly)return{supported:!1};var n,i=WebAssembly.validate(e)?"b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb":"b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",r=WebAssembly.instantiate(a(i),{}).then(function(e){(n=e.instance).exports.__wasm_call_ctors()});function a(e){for(var n=new Uint8Array(e.length),i=0;i<e.length;++i){var r=e.charCodeAt(i);n[i]=r>96?r-97:r>64?r-39:r+4}var a=0;for(i=0;i<e.length;++i)n[a++]=n[i]<60?t[n[i]]:64*(n[i]-60)+n[++i];return n.buffer.slice(0,a)}function o(e,t,i,r,a,o){var s=n.exports.sbrk,l=i+3&-4,c=s(l*r),h=s(a.length),A=new Uint8Array(n.exports.memory.buffer);A.set(a,h);var u=e(c,i,r,h,a.length);if(0==u&&o&&o(c,l,r),t.set(A.subarray(c,c+i*r)),s(c-s(0)),0!=u)throw new Error("Malformed buffer data: "+u)}var s={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},l={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},c=[],h=0;function A(e){var t={object:new Worker(e),pending:0,requests:{}};return t.object.onmessage=function(e){var n=e.data;t.pending-=n.count,t.requests[n.id][n.action](n.value),delete t.requests[n.id]},t}function u(e){r.then(function(){var t=e.data;try{var i=new Uint8Array(t.count*t.size);o(n.exports[t.mode],i,t.count,t.size,t.source,n.exports[t.filter]),self.postMessage({id:t.id,count:t.count,action:"resolve",value:i},[i.buffer])}catch(e){self.postMessage({id:t.id,count:t.count,action:"reject",value:e})}})}return{ready:r,supported:!0,useWorkers:function(e){!function(e){for(var t="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(a(i))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+o.toString()+u.toString(),n=new Blob([t],{type:"text/javascript"}),r=URL.createObjectURL(n),s=0;s<e;++s)c[s]=A(r);URL.revokeObjectURL(r)}(e)},decodeVertexBuffer:function(e,t,i,r,a){o(n.exports.meshopt_decodeVertexBuffer,e,t,i,r,n.exports[s[a]])},decodeIndexBuffer:function(e,t,i,r){o(n.exports.meshopt_decodeIndexBuffer,e,t,i,r)},decodeIndexSequence:function(e,t,i,r){o(n.exports.meshopt_decodeIndexSequence,e,t,i,r)},decodeGltfBuffer:function(e,t,i,r,a,c){o(n.exports[l[a]],e,t,i,r,n.exports[s[c]])},decodeGltfBufferAsync:function(e,t,i,a,A){return c.length>0?function(e,t,n,i,r){for(var a=c[0],o=1;o<c.length;++o)c[o].pending<a.pending&&(a=c[o]);return new Promise(function(o,s){var l=new Uint8Array(n),c=h++;a.pending+=e,a.requests[c]={resolve:o,reject:s},a.object.postMessage({id:c,count:e,size:t,source:l,mode:i,filter:r},[l.buffer])})}(e,t,i,l[a],s[A]):r.then(function(){var r=new Uint8Array(e*t);return o(n.exports[l[a]],r,e,t,i,n.exports[s[A]]),r})}}}();const sA=new WeakMap;class lA extends uc{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,n,i){const r=new fc(this.manager);r.setPath(this.path),r.setResponseType("arraybuffer"),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(e,e=>{this.parse(e,t,i)},n,i)}parse(e,t,n=()=>{}){this.decodeDracoFile(e,t,null,null,Ct,n).catch(n)}decodeDracoFile(e,t,n,i,r=_t,a=()=>{}){const o={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!n,vertexColorSpace:r};return this.decodeGeometry(e,o).then(t).catch(a)}decodeGeometry(e,t){const n=JSON.stringify(t);if(sA.has(e)){const t=sA.get(e);if(t.key===n)return t.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let i;const r=this.workerNextTaskID++,a=e.byteLength,o=this._getWorker(r,a).then(n=>(i=n,new Promise((n,a)=>{i._callbacks[r]={resolve:n,reject:a},i.postMessage({type:"decode",id:r,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return o.catch(()=>!0).then(()=>{i&&r&&this._releaseTask(i,r)}),sA.set(e,{key:n,promise:o}),o}_createGeometry(e){const t=new fr;e.index&&t.setIndex(new rr(e.index.array,1));for(let n=0;n<e.attributes.length;n++){const i=e.attributes[n],r=i.name,a=i.array,o=i.itemSize,s=new rr(a,o);"color"===r&&(this._assignVertexColorSpace(s,i.vertexColorSpace),s.normalized=a instanceof Float32Array==0),t.setAttribute(r,s)}return t}_assignVertexColorSpace(e,t){if(t!==Ct)return;const n=new Xi;for(let t=0,i=e.count;t<i;t++)n.fromBufferAttribute(e,t).convertSRGBToLinear(),e.setXYZ(t,n.r,n.g,n.b)}_loadLibrary(e,t){const n=new fc(this.manager);return n.setPath(this.decoderPath),n.setResponseType(t),n.setWithCredentials(this.withCredentials),new Promise((t,i)=>{n.load(e,t,void 0,i)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(t=>{const n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const i=cA.toString(),r=["/* draco decoder */",n,"","/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([r]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const e=new Worker(this.workerSourceURL);e._callbacks={},e._taskCosts={},e._taskLoad=0,e.postMessage({type:"init",decoderConfig:this.decoderConfig}),e.onmessage=function(t){const n=t.data;switch(n.type){case"decode":e._callbacks[n.id].resolve(n);break;case"error":e._callbacks[n.id].reject(n);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+n.type+'"')}},this.workerPool.push(e)}else this.workerPool.sort(function(e,t){return e._taskLoad>t._taskLoad?-1:1});const n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,""!==this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),this}}function cA(){let e,t;function n(e,t,n,i,r,a){const o=a.num_components(),s=n.num_points()*o,l=s*r.BYTES_PER_ELEMENT,c=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}(e,r),h=e._malloc(l);t.GetAttributeDataArrayForAllPoints(n,a,c,l,h);const A=new r(e.HEAPF32.buffer,h,s).slice();return e._free(h),{name:i,array:A,itemSize:o}}onmessage=function(i){const r=i.data;switch(r.type){case"init":e=r.decoderConfig,t=new Promise(function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)});break;case"decode":const i=r.buffer,a=r.taskConfig;t.then(e=>{const t=e.draco,o=new t.Decoder;try{const e=function(e,t,i,r){const a=r.attributeIDs,o=r.attributeTypes;let s,l;const c=t.GetEncodedGeometryType(i);if(c===e.TRIANGULAR_MESH)s=new e.Mesh,l=t.DecodeArrayToMesh(i,i.byteLength,s);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");s=new e.PointCloud,l=t.DecodeArrayToPointCloud(i,i.byteLength,s)}if(!l.ok()||0===s.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const h={index:null,attributes:[]};for(const i in a){const l=self[o[i]];let c,A;if(r.useUniqueIDs)A=a[i],c=t.GetAttributeByUniqueId(s,A);else{if(A=t.GetAttributeId(s,e[a[i]]),-1===A)continue;c=t.GetAttribute(s,A)}const u=n(e,t,s,i,l,c);"color"===i&&(u.vertexColorSpace=r.vertexColorSpace),h.attributes.push(u)}return c===e.TRIANGULAR_MESH&&(h.index=function(e,t,n){const i=3*n.num_faces(),r=4*i,a=e._malloc(r);t.GetTrianglesUInt32Array(n,r,a);const o=new Uint32Array(e.HEAPF32.buffer,a,i).slice();return e._free(a),{array:o,itemSize:1}}(e,t,s)),e.destroy(s),h}(t,o,new Int8Array(i),a),s=e.attributes.map(e=>e.array.buffer);e.index&&s.push(e.index.array.buffer),self.postMessage({type:"decode",id:r.id,geometry:e},s)}catch(e){console.error(e),self.postMessage({type:"error",id:r.id,error:e.message})}finally{t.destroy(o)}})}}}function hA(e,t){if(0===t)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(2===t||1===t){let n=e.getIndex();if(null===n){const t=[],i=e.getAttribute("position");if(void 0===i)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e<i.count;e++)t.push(e);e.setIndex(t),n=e.getIndex()}const i=n.count-2,r=[];if(2===t)for(let e=1;e<=i;e++)r.push(n.getX(0)),r.push(n.getX(e)),r.push(n.getX(e+1));else for(let e=0;e<i;e++)e%2==0?(r.push(n.getX(e)),r.push(n.getX(e+1)),r.push(n.getX(e+2))):(r.push(n.getX(e+2)),r.push(n.getX(e+1)),r.push(n.getX(e)));r.length/3!==i&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const a=e.clone();return a.setIndex(r),a.clearGroups(),a}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e}class AA extends uc{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new bA(e)}),this.register(function(e){return new mA(e)}),this.register(function(e){return new vA(e)}),this.register(function(e){return new SA(e)}),this.register(function(e){return new BA(e)}),this.register(function(e){return new TA(e)}),this.register(function(e){return new CA(e)}),this.register(function(e){return new _A(e)}),this.register(function(e){return new IA(e)}),this.register(function(e){return new xA(e)}),this.register(function(e){return new gA(e)}),this.register(function(e){return new yA(e)}),this.register(function(e){return new EA(e)}),this.register(function(e){return new wA(e)}),this.register(function(e){return new MA(e)}),this.register(function(e){return new pA(e)}),this.register(function(e){return new RA(e)}),this.register(function(e){return new DA(e)})}load(e,t,n,i){const r=this;let a;if(""!==this.resourcePath)a=this.resourcePath;else if(""!==this.path){const t=Qc.extractUrlBase(e);a=Qc.resolveURL(t,this.path)}else a=Qc.extractUrlBase(e);this.manager.itemStart(e);const o=function(t){i?i(t):console.error(t),r.manager.itemError(e),r.manager.itemEnd(e)},s=new fc(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(n){try{r.parse(n,a,function(n){t(n),r.manager.itemEnd(e)},o)}catch(e){o(e)}},n,o)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,n,i){let r;const a={},o={},s=new TextDecoder;if("string"==typeof e)r=JSON.parse(e);else if(e instanceof ArrayBuffer)if(s.decode(new Uint8Array(e,0,4))===QA){try{a[dA.KHR_BINARY_GLTF]=new LA(e)}catch(e){return void(i&&i(e))}r=JSON.parse(a[dA.KHR_BINARY_GLTF].content)}else r=JSON.parse(s.decode(e));else r=e;if(void 0===r.asset||r.asset.version[0]<2)return void(i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const l=new iu(r,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e<this.pluginCallbacks.length;e++){const t=this.pluginCallbacks[e](l);t.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),o[t.name]=t,a[t.name]=!0}if(r.extensionsUsed)for(let e=0;e<r.extensionsUsed.length;++e){const t=r.extensionsUsed[e],n=r.extensionsRequired||[];switch(t){case dA.KHR_MATERIALS_UNLIT:a[t]=new fA;break;case dA.KHR_DRACO_MESH_COMPRESSION:a[t]=new UA(r,this.dracoLoader);break;case dA.KHR_TEXTURE_TRANSFORM:a[t]=new PA;break;case dA.KHR_MESH_QUANTIZATION:a[t]=new NA;break;default:n.indexOf(t)>=0&&void 0===o[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}l.setExtensions(a),l.setPlugins(o),l.parse(n,i)}parseAsync(e,t){const n=this;return new Promise(function(i,r){n.parse(e,t,i,r)})}}function uA(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const dA={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing",DEEPAR_MATERIALS_DIAMOND:"DEEPAR_materials_diamond"};class pA{constructor(e){this.parser=e,this.name=dA.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let n=0,i=t.length;n<i;n++){const i=t[n];i.extensions&&i.extensions[this.name]&&void 0!==i.extensions[this.name].light&&e._addNodeRef(this.cache,i.extensions[this.name].light)}}_loadLight(e){const t=this.parser,n="light:"+e;let i=t.cache.get(n);if(i)return i;const r=t.json,a=((r.extensions&&r.extensions[this.name]||{}).lights||[])[e];let o;const s=new Xi(16777215);void 0!==a.color&&s.setRGB(a.color[0],a.color[1],a.color[2],_t);const l=void 0!==a.range?a.range:0;switch(a.type){case"directional":o=new Dc(s),o.target.position.set(0,0,-1),o.add(o.target);break;case"point":o=new Tc(s),o.distance=l;break;case"spot":o=new yc(s),o.distance=l,a.spot=a.spot||{},a.spot.innerConeAngle=void 0!==a.spot.innerConeAngle?a.spot.innerConeAngle:0,a.spot.outerConeAngle=void 0!==a.spot.outerConeAngle?a.spot.outerConeAngle:Math.PI/4,o.angle=a.spot.outerConeAngle,o.penumbra=1-a.spot.innerConeAngle/a.spot.outerConeAngle,o.target.position.set(0,0,-1),o.add(o.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+a.type)}return o.position.set(0,0,0),o.decay=2,JA(o,a),void 0!==a.intensity&&(o.intensity=a.intensity),o.name=t.createUniqueName(a.name||"light_"+e),i=Promise.resolve(o),t.cache.add(n,i),i}getDependency(e,t){if("light"===e)return this._loadLight(t)}createNodeAttachment(e){const t=this,n=this.parser,i=n.json.nodes[e],r=(i.extensions&&i.extensions[this.name]||{}).light;return void 0===r?null:this._loadLight(r).then(function(e){return n._getNodeRef(t.cache,r,e)})}}class fA{constructor(){this.name=dA.KHR_MATERIALS_UNLIT}getMaterialType(){return $i}extendParams(e,t,n){const i=[];e.color=new Xi(1,1,1),e.opacity=1;const r=t.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){const t=r.baseColorFactor;e.color.setRGB(t[0],t[1],t[2],_t),e.opacity=t[3]}void 0!==r.baseColorTexture&&i.push(n.assignTexture(e,"map",r.baseColorTexture,Ct))}return Promise.all(i)}}class gA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name].emissiveStrength;return void 0!==i&&(t.emissiveIntensity=i),Promise.resolve()}}class mA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];if(void 0!==a.clearcoatFactor&&(t.clearcoat=a.clearcoatFactor),void 0!==a.clearcoatTexture&&r.push(n.assignTexture(t,"clearcoatMap",a.clearcoatTexture)),void 0!==a.clearcoatRoughnessFactor&&(t.clearcoatRoughness=a.clearcoatRoughnessFactor),void 0!==a.clearcoatRoughnessTexture&&r.push(n.assignTexture(t,"clearcoatRoughnessMap",a.clearcoatRoughnessTexture)),void 0!==a.clearcoatNormalTexture&&(r.push(n.assignTexture(t,"clearcoatNormalMap",a.clearcoatNormalTexture)),void 0!==a.clearcoatNormalTexture.scale)){const e=a.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new tn(e,e)}return Promise.all(r)}}class vA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_DISPERSION}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return t.dispersion=void 0!==i.dispersion?i.dispersion:0,Promise.resolve()}}class EA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.iridescenceFactor&&(t.iridescence=a.iridescenceFactor),void 0!==a.iridescenceTexture&&r.push(n.assignTexture(t,"iridescenceMap",a.iridescenceTexture)),void 0!==a.iridescenceIor&&(t.iridescenceIOR=a.iridescenceIor),void 0===t.iridescenceThicknessRange&&(t.iridescenceThicknessRange=[100,400]),void 0!==a.iridescenceThicknessMinimum&&(t.iridescenceThicknessRange[0]=a.iridescenceThicknessMinimum),void 0!==a.iridescenceThicknessMaximum&&(t.iridescenceThicknessRange[1]=a.iridescenceThicknessMaximum),void 0!==a.iridescenceThicknessTexture&&r.push(n.assignTexture(t,"iridescenceThicknessMap",a.iridescenceThicknessTexture)),Promise.all(r)}}class bA{constructor(e){this.parser=e,this.name=dA.DEEPAR_MATERIALS_DIAMOND}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?js:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();t.envMapIntensity=1,t.envMapRotation=0,t.rIndexDelta=.012,t.squashFactor=.98,t.geometryFactor=.5,t.gammaFactor=1,t.absorptionFactor=1,t.reflectivity=.5,t.diamondOrientedEnvMap=0,t.boostFactors=new Tn(1,1,1),t.fixedEnvMapDirection=!1,t.rayBounces=5,t.defines={RAY_BOUNCES:5};const i=n.extensions[this.name];if(void 0!==i.envMapIntensity&&(t.envMapIntensity=i.envMapIntensity),void 0!==i.envMapRotationOffset&&(t.envMapRotation=i.envMapRotationOffset),void 0!==i.dispersion&&(t.rIndexDelta=i.dispersion),void 0!==i.squashFactor&&(t.squashFactor=i.squashFactor),void 0!==i.geometryFactor&&(t.geometryFactor=i.geometryFactor),void 0!==i.gammaFactor&&(t.gammaFactor=i.gammaFactor),void 0!==i.absorptionFactor&&(t.absorptionFactor=i.absorptionFactor),void 0!==i.reflectivity&&(t.reflectivity=i.reflectivity),void 0!==i.diamondOrientedEnvMap&&(t.diamondOrientedEnvMap=i.diamondOrientedEnvMap),void 0!==i.boostFactors){const e=i.boostFactors;t.boostFactors.set(e[0],e[1],e[2])}return void 0!==i.fixedEnvMapDirection&&(t.fixedEnvMapDirection=i.fixedEnvMapDirection),void 0!==i.rayBounces&&(t.rayBounces=i.rayBounces,t.defines={RAY_BOUNCES:i.rayBounces}),Promise.resolve()}}class CA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_SHEEN}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[];t.sheenColor=new Xi(0,0,0),t.sheenRoughness=0,t.sheen=1;const a=i.extensions[this.name];if(void 0!==a.sheenColorFactor){const e=a.sheenColorFactor;t.sheenColor.setRGB(e[0],e[1],e[2],_t)}return void 0!==a.sheenRoughnessFactor&&(t.sheenRoughness=a.sheenRoughnessFactor),void 0!==a.sheenColorTexture&&r.push(n.assignTexture(t,"sheenColorMap",a.sheenColorTexture,Ct)),void 0!==a.sheenRoughnessTexture&&r.push(n.assignTexture(t,"sheenRoughnessMap",a.sheenRoughnessTexture)),Promise.all(r)}}class _A{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.transmissionFactor&&(t.transmission=a.transmissionFactor),void 0!==a.transmissionTexture&&r.push(n.assignTexture(t,"transmissionMap",a.transmissionTexture)),Promise.all(r)}}class IA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_VOLUME}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];t.thickness=void 0!==a.thicknessFactor?a.thicknessFactor:0,void 0!==a.thicknessTexture&&r.push(n.assignTexture(t,"thicknessMap",a.thicknessTexture)),t.attenuationDistance=a.attenuationDistance||1/0;const o=a.attenuationColor||[1,1,1];return t.attenuationColor=(new Xi).setRGB(o[0],o[1],o[2],_t),Promise.all(r)}}class xA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_IOR}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return t.ior=void 0!==i.ior?i.ior:1.5,Promise.resolve()}}class yA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_SPECULAR}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];t.specularIntensity=void 0!==a.specularFactor?a.specularFactor:1,void 0!==a.specularTexture&&r.push(n.assignTexture(t,"specularIntensityMap",a.specularTexture));const o=a.specularColorFactor||[1,1,1];return t.specularColor=(new Xi).setRGB(o[0],o[1],o[2],_t),void 0!==a.specularColorTexture&&r.push(n.assignTexture(t,"specularColorMap",a.specularColorTexture,Ct)),Promise.all(r)}}class MA{constructor(e){this.parser=e,this.name=dA.EXT_MATERIALS_BUMP}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return t.bumpScale=void 0!==a.bumpFactor?a.bumpFactor:1,void 0!==a.bumpTexture&&r.push(n.assignTexture(t,"bumpMap",a.bumpTexture)),Promise.all(r)}}class wA{constructor(e){this.parser=e,this.name=dA.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?Ws:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.anisotropyStrength&&(t.anisotropy=a.anisotropyStrength),void 0!==a.anisotropyRotation&&(t.anisotropyRotation=a.anisotropyRotation),void 0!==a.anisotropyTexture&&r.push(n.assignTexture(t,"anisotropyMap",a.anisotropyTexture)),Promise.all(r)}}class SA{constructor(e){this.parser=e,this.name=dA.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,n=t.json,i=n.textures[e];if(!i.extensions||!i.extensions[this.name])return null;const r=i.extensions[this.name],a=t.options.ktx2Loader;if(!a){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,r.source,a)}}class BA{constructor(e){this.parser=e,this.name=dA.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,i=n.json,r=i.textures[e];if(!r.extensions||!r.extensions[t])return null;const a=r.extensions[t],o=i.images[a.source];let s=n.textureLoader;if(o.uri){const e=n.options.manager.getHandler(o.uri);null!==e&&(s=e)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(e,a.source,s);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return n.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class TA{constructor(e){this.parser=e,this.name=dA.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,i=n.json,r=i.textures[e];if(!r.extensions||!r.extensions[t])return null;const a=r.extensions[t],o=i.images[a.source];let s=n.textureLoader;if(o.uri){const e=n.options.manager.getHandler(o.uri);null!==e&&(s=e)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(e,a.source,s);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return n.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class RA{constructor(e){this.name=dA.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){const e=n.extensions[this.name],i=this.parser.getDependency("buffer",e.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then(function(t){const n=e.byteOffset||0,i=e.byteLength||0,a=e.count,o=e.byteStride,s=new Uint8Array(t,n,i);return r.decodeGltfBufferAsync?r.decodeGltfBufferAsync(a,o,s,e.mode,e.filter).then(function(e){return e.buffer}):r.ready.then(function(){const t=new ArrayBuffer(a*o);return r.decodeGltfBuffer(new Uint8Array(t),a,o,s,e.mode,e.filter),t})})}return null}}class DA{constructor(e){this.name=dA.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||void 0===n.mesh)return null;const i=t.meshes[n.mesh];for(const e of i.primitives)if(e.mode!==GA.TRIANGLES&&e.mode!==GA.TRIANGLE_STRIP&&e.mode!==GA.TRIANGLE_FAN&&void 0!==e.mode)return null;const r=n.extensions[this.name].attributes,a=[],o={};for(const e in r)a.push(this.parser.getDependency("accessor",r[e]).then(t=>(o[e]=t,o[e])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(e=>{const t=e.pop(),n=t.isGroup?t.children:[t],i=e[0].count,r=[];for(const e of n){const t=new oi,n=new Tn,a=new Bn,s=new Tn(1,1,1),l=new Il(e.geometry,e.material,i);for(let e=0;e<i;e++)o.TRANSLATION&&n.fromBufferAttribute(o.TRANSLATION,e),o.ROTATION&&a.fromBufferAttribute(o.ROTATION,e),o.SCALE&&s.fromBufferAttribute(o.SCALE,e),l.setMatrixAt(e,t.compose(n,a,s));for(const t in o)if("_COLOR_0"===t){const e=o[t];l.instanceColor=new fl(e.array,e.itemSize,e.normalized)}else"TRANSLATION"!==t&&"ROTATION"!==t&&"SCALE"!==t&&e.geometry.setAttribute(t,o[t]);Qi.prototype.copy.call(l,e),this.parser.assignFinalMaterial(l),r.push(l)}return t.isGroup?(t.clear(),t.add(...r),t):r[0]}))}}const QA="glTF";class LA{constructor(e){this.name=dA.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12),n=new TextDecoder;if(this.header={magic:n.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==QA)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const i=this.header.length-12,r=new DataView(e,12);let a=0;for(;a<i;){const t=r.getUint32(a,!0);a+=4;const i=r.getUint32(a,!0);if(a+=4,1313821514===i){const i=new Uint8Array(e,12+a,t);this.content=n.decode(i)}else if(5130562===i){const n=12+a;this.body=e.slice(n,n+t)}a+=t}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class UA{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=dA.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){const n=this.json,i=this.dracoLoader,r=e.extensions[this.name].bufferView,a=e.extensions[this.name].attributes,o={},s={},l={};for(const e in a){const t=qA[e]||e.toLowerCase();o[t]=a[e]}for(const t in e.attributes){const i=qA[t]||t.toLowerCase();if(void 0!==a[t]){const r=n.accessors[e.attributes[t]],a=HA[r.componentType];l[i]=a.name,s[i]=!0===r.normalized}}return t.getDependency("bufferView",r).then(function(e){return new Promise(function(t,n){i.decodeDracoFile(e,function(e){for(const t in e.attributes){const n=e.attributes[t],i=s[t];void 0!==i&&(n.normalized=i)}t(e)},o,l,_t,n)})})}}class PA{constructor(){this.name=dA.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return void 0!==t.texCoord&&t.texCoord!==e.channel||void 0!==t.offset||void 0!==t.rotation||void 0!==t.scale?(e=e.clone(),void 0!==t.texCoord&&(e.channel=t.texCoord),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0,e):e}}class NA{constructor(){this.name=dA.KHR_MESH_QUANTIZATION}}class FA extends Kl{constructor(e,t,n,i){super(e,t,n,i)}copySampleValue_(e){const t=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=e*i*3+i;for(let e=0;e!==i;e++)t[e]=n[r+e];return t}interpolate_(e,t,n,i){const r=this.resultBuffer,a=this.sampleValues,o=this.valueSize,s=2*o,l=3*o,c=i-t,h=(n-t)/c,A=h*h,u=A*h,d=e*l,p=d-l,f=-2*u+3*A,g=u-A,m=1-f,v=g-A+h;for(let e=0;e!==o;e++){const t=a[p+e+o],n=a[p+e+s]*c,i=a[d+e+o],l=a[d+e]*c;r[e]=m*t+v*n+f*i+g*l}return r}}const OA=new Bn;class kA extends FA{interpolate_(e,t,n,i){const r=super.interpolate_(e,t,n,i);return OA.fromArray(r).normalize().toArray(r),r}}const GA={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},HA={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},zA={9728:He,9729:We,9984:1004,9985:qe,9986:Ve,9987:je},VA={33071:ke,33648:Ge,10497:Oe},WA={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},qA={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},jA={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},YA={CUBICSPLINE:void 0,LINEAR:vt,STEP:mt};function XA(e){return void 0===e.DefaultMaterial&&(e.DefaultMaterial=new Vs({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),e.DefaultMaterial}function KA(e,t,n){for(const i in n.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=n.extensions[i])}function JA(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function ZA(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let n=0,i=t.weights.length;n<i;n++)e.morphTargetInfluences[n]=t.weights[n];if(t.extras&&Array.isArray(t.extras.targetNames)){const n=t.extras.targetNames;if(e.morphTargetInfluences.length===n.length){e.morphTargetDictionary={};for(let t=0,i=n.length;t<i;t++)e.morphTargetDictionary[n[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function $A(e){let t;const n=e.extensions&&e.extensions[dA.KHR_DRACO_MESH_COMPRESSION];if(t=n?"draco:"+n.bufferView+":"+n.indices+":"+eu(n.attributes):e.indices+":"+eu(e.attributes)+":"+e.mode,void 0!==e.targets)for(let n=0,i=e.targets.length;n<i;n++)t+=":"+eu(e.targets[n]);return t}function eu(e){let t="";const n=Object.keys(e).sort();for(let i=0,r=n.length;i<r;i++)t+=n[i]+":"+e[n[i]]+";";return t}function tu(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const nu=new oi;class iu{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new uA,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,i=!1,r=-1;"undefined"!=typeof navigator&&(n=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),i=navigator.userAgent.indexOf("Firefox")>-1,r=i?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||n||i&&r<98?this.textureLoader=new vc(this.options.manager):this.textureLoader=new Lc(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new fc(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const n=this,i=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([n.getDependencies("scene"),n.getDependencies("animation"),n.getDependencies("camera")])}).then(function(t){const a={scene:t[0][i.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:i.asset,parser:n,userData:{}};return KA(r,a,i),JA(a,i),Promise.all(n._invokeAll(function(e){return e.afterRoot&&e.afterRoot(a)})).then(function(){for(const e of a.scenes)e.updateMatrixWorld();e(a)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let n=0,i=t.length;n<i;n++){const i=t[n].joints;for(let t=0,n=i.length;t<n;t++)e[i[t]].isBone=!0}for(let t=0,i=e.length;t<i;t++){const i=e[t];void 0!==i.mesh&&(this._addNodeRef(this.meshCache,i.mesh),void 0!==i.skin&&(n[i.mesh].isSkinnedMesh=!0)),void 0!==i.camera&&this._addNodeRef(this.cameraCache,i.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,n){if(e.refs[t]<=1)return n;const i=n.clone(),r=(e,t)=>{const n=this.associations.get(e);null!=n&&this.associations.set(t,n);for(const[n,i]of e.children.entries())r(i,t.children[n])};return r(n,i),i.name+="_instance_"+e.uses[t]++,i}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let n=0;n<t.length;n++){const i=e(t[n]);if(i)return i}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const n=[];for(let i=0;i<t.length;i++){const r=e(t[i]);r&&n.push(r)}return n}getDependency(e,t){const n=e+":"+t;let i=this.cache.get(n);if(!i){switch(e){case"scene":i=this.loadScene(t);break;case"node":i=this._invokeOne(function(e){return e.loadNode&&e.loadNode(t)});break;case"mesh":i=this._invokeOne(function(e){return e.loadMesh&&e.loadMesh(t)});break;case"accessor":i=this.loadAccessor(t);break;case"bufferView":i=this._invokeOne(function(e){return e.loadBufferView&&e.loadBufferView(t)});break;case"buffer":i=this.loadBuffer(t);break;case"material":i=this._invokeOne(function(e){return e.loadMaterial&&e.loadMaterial(t)});break;case"texture":i=this._invokeOne(function(e){return e.loadTexture&&e.loadTexture(t)});break;case"skin":i=this.loadSkin(t);break;case"animation":i=this._invokeOne(function(e){return e.loadAnimation&&e.loadAnimation(t)});break;case"camera":i=this.loadCamera(t);break;default:if(i=this._invokeOne(function(n){return n!=this&&n.getDependency&&n.getDependency(e,t)}),!i)throw new Error("Unknown type: "+e)}this.cache.add(n,i)}return i}getDependencies(e){let t=this.cache.get(e);if(!t){const n=this,i=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(i.map(function(t,i){return n.getDependency(e,i)})),this.cache.add(e,t)}return t}loadBuffer(e){const t=this.json.buffers[e],n=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[dA.KHR_BINARY_GLTF].body);const i=this.options;return new Promise(function(e,r){n.load(Qc.resolveURL(t.uri,i.path),e,void 0,function(){r(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(e){const n=t.byteLength||0,i=t.byteOffset||0;return e.slice(i,i+n)})}loadAccessor(e){const t=this,n=this.json,i=this.json.accessors[e];if(void 0===i.bufferView&&void 0===i.sparse){const e=WA[i.type],t=HA[i.componentType],n=!0===i.normalized,r=new t(i.count*e);return Promise.resolve(new rr(r,e,n))}const r=[];return void 0!==i.bufferView?r.push(this.getDependency("bufferView",i.bufferView)):r.push(null),void 0!==i.sparse&&(r.push(this.getDependency("bufferView",i.sparse.indices.bufferView)),r.push(this.getDependency("bufferView",i.sparse.values.bufferView))),Promise.all(r).then(function(e){const r=e[0],a=WA[i.type],o=HA[i.componentType],s=o.BYTES_PER_ELEMENT,l=s*a,c=i.byteOffset||0,h=void 0!==i.bufferView?n.bufferViews[i.bufferView].byteStride:void 0,A=!0===i.normalized;let u,d;if(h&&h!==l){const e=Math.floor(c/h),n="InterleavedBuffer:"+i.bufferView+":"+i.componentType+":"+e+":"+i.count;let l=t.cache.get(n);l||(u=new o(r,e*h,i.count*h/s),l=new Js(u,h/s),t.cache.add(n,l)),d=new $s(l,a,c%h/s,A)}else u=null===r?new o(i.count*a):new o(r,c,i.count*a),d=new rr(u,a,A);if(void 0!==i.sparse){const t=WA.SCALAR,n=HA[i.sparse.indices.componentType],s=i.sparse.indices.byteOffset||0,l=i.sparse.values.byteOffset||0,c=new n(e[1],s,i.sparse.count*t),h=new o(e[2],l,i.sparse.count*a);null!==r&&(d=new rr(d.array.slice(),d.itemSize,d.normalized));for(let e=0,t=c.length;e<t;e++){const t=c[e];if(d.setX(t,h[e*a]),a>=2&&d.setY(t,h[e*a+1]),a>=3&&d.setZ(t,h[e*a+2]),a>=4&&d.setW(t,h[e*a+3]),a>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return d})}loadTexture(e){const t=this.json,n=this.options,i=t.textures[e].source,r=t.images[i];let a=this.textureLoader;if(r.uri){const e=n.manager.getHandler(r.uri);null!==e&&(a=e)}return this.loadTextureImage(e,i,a)}loadTextureImage(e,t,n){const i=this,r=this.json,a=r.textures[e],o=r.images[t],s=(o.uri||o.bufferView)+":"+a.sampler;if(this.textureCache[s])return this.textureCache[s];const l=this.loadImageSource(t,n).then(function(t){t.flipY=!1,t.name=a.name||o.name||"",""===t.name&&"string"==typeof o.uri&&!1===o.uri.startsWith("data:image/")&&(t.name=o.uri);const n=(r.samplers||{})[a.sampler]||{};return t.magFilter=zA[n.magFilter]||We,t.minFilter=zA[n.minFilter]||je,t.wrapS=VA[n.wrapS]||Oe,t.wrapT=VA[n.wrapT]||Oe,i.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[s]=l,l}loadImageSource(e,t){const n=this.json,i=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(e=>e.clone());const r=n.images[e],a=self.URL||self.webkitURL;let o=r.uri||"",s=!1;if(void 0!==r.bufferView)o=this.getDependency("bufferView",r.bufferView).then(function(e){s=!0;const t=new Blob([e],{type:r.mimeType});return o=a.createObjectURL(t),o});else if(void 0===r.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const l=Promise.resolve(o).then(function(e){return new Promise(function(n,r){let a=n;!0===t.isImageBitmapLoader&&(a=function(e){const t=new In(e);t.needsUpdate=!0,n(t)}),t.load(Qc.resolveURL(e,i.path),a,void 0,r)})}).then(function(e){var t;return!0===s&&a.revokeObjectURL(o),JA(e,r),e.userData.mimeType=r.mimeType||((t=r.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),e});return this.sourceCache[e]=l,l}assignTexture(e,t,n,i){const r=this;return this.getDependency("texture",n.index).then(function(a){if(!a)return null;if(void 0!==n.texCoord&&n.texCoord>0&&((a=a.clone()).channel=n.texCoord),r.extensions[dA.KHR_TEXTURE_TRANSFORM]){const e=void 0!==n.extensions?n.extensions[dA.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=r.associations.get(a);a=r.extensions[dA.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),r.associations.set(a,t)}}return void 0!==i&&(a.colorSpace=i),e[t]=a,a})}assignFinalMaterial(e){const t=e.geometry;let n=e.material;const i=void 0===t.attributes.tangent,r=void 0!==t.attributes.color,a=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new zs,Zi.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){const e="LineBasicMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new qs,Zi.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(i||r||a){let e="ClonedMaterial:"+n.uuid+":";i&&(e+="derivative-tangents:"),r&&(e+="vertex-colors:"),a&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=n.clone(),r&&(t.vertexColors=!0),a&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return Vs}loadMaterial(e){const t=this,n=this.json,i=this.extensions,r=n.materials[e];let a;const o={},s=[];if((r.extensions||{})[dA.KHR_MATERIALS_UNLIT]){const e=i[dA.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),s.push(e.extendParams(o,r,t))}else{const n=r.pbrMetallicRoughness||{};if(o.color=new Xi(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){const e=n.baseColorFactor;o.color.setRGB(e[0],e[1],e[2],_t),o.opacity=e[3]}void 0!==n.baseColorTexture&&s.push(t.assignTexture(o,"map",n.baseColorTexture,Ct)),o.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,o.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(s.push(t.assignTexture(o,"metalnessMap",n.metallicRoughnessTexture)),s.push(t.assignTexture(o,"roughnessMap",n.metallicRoughnessTexture))),a=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),s.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)})))}!0===r.doubleSided&&(o.side=2);const l=r.alphaMode||"OPAQUE";if("BLEND"===l?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,"MASK"===l&&(o.alphaTest=void 0!==r.alphaCutoff?r.alphaCutoff:.5)),void 0!==r.normalTexture&&a!==$i&&(s.push(t.assignTexture(o,"normalMap",r.normalTexture)),o.normalScale=new tn(1,1),void 0!==r.normalTexture.scale)){const e=r.normalTexture.scale;o.normalScale.set(e,e)}if(void 0!==r.occlusionTexture&&a!==$i&&(s.push(t.assignTexture(o,"aoMap",r.occlusionTexture)),void 0!==r.occlusionTexture.strength&&(o.aoMapIntensity=r.occlusionTexture.strength)),void 0!==r.emissiveFactor&&a!==$i){const e=r.emissiveFactor;o.emissive=(new Xi).setRGB(e[0],e[1],e[2],_t)}return void 0!==r.emissiveTexture&&a!==$i&&s.push(t.assignTexture(o,"emissiveMap",r.emissiveTexture,Ct)),Promise.all(s).then(function(){const n=new a(o);return r.name&&(n.name=r.name),JA(n,r),t.associations.set(n,{materials:e}),r.extensions&&KA(i,n,r),n})}createUniqueName(e){const t=zc.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,n=this.extensions,i=this.primitiveCache;function r(e){return n[dA.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(n){return ru(n,e,t)})}const a=[];for(let n=0,o=e.length;n<o;n++){const o=e[n],s=$A(o),l=i[s];if(l)a.push(l.promise);else{let e;e=o.extensions&&o.extensions[dA.KHR_DRACO_MESH_COMPRESSION]?r(o):ru(new fr,o,t),i[s]={primitive:o,promise:e},a.push(e)}}return Promise.all(a)}loadMesh(e){const t=this,n=this.json,i=this.extensions,r=n.meshes[e],a=r.primitives,o=[];for(let e=0,t=a.length;e<t;e++){const t=void 0===a[e].material?XA(this.cache):this.getDependency("material",a[e].material);o.push(t)}return o.push(t.loadGeometries(a)),Promise.all(o).then(function(n){const o=n.slice(0,n.length-1),s=n[n.length-1],l=[];for(let n=0,c=s.length;n<c;n++){const c=s[n],h=a[n];let A;const u=o[n];if(h.mode===GA.TRIANGLES||h.mode===GA.TRIANGLE_STRIP||h.mode===GA.TRIANGLE_FAN||void 0===h.mode)A=!0===r.isSkinnedMesh?new cl(c,u):new Qr(c,u),!0===A.isSkinnedMesh&&A.normalizeSkinWeights(),h.mode===GA.TRIANGLE_STRIP?A.geometry=hA(A.geometry,1):h.mode===GA.TRIANGLE_FAN&&(A.geometry=hA(A.geometry,2));else if(h.mode===GA.LINES)A=new Ul(c,u);else if(h.mode===GA.LINE_STRIP)A=new Rl(c,u);else if(h.mode===GA.LINE_LOOP)A=new Pl(c,u);else{if(h.mode!==GA.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+h.mode);A=new Gl(c,u)}Object.keys(A.geometry.morphAttributes).length>0&&ZA(A,r),A.name=t.createUniqueName(r.name||"mesh_"+e),JA(A,r),h.extensions&&KA(i,A,h),t.assignFinalMaterial(A),A.computeOffsets(),l.push(A)}for(let n=0,i=l.length;n<i;n++)t.associations.set(l[n],{meshes:e,primitives:n});if(1===l.length)return r.extensions&&KA(i,l[0],r),l[0];const c=new Qs;r.extensions&&KA(i,c,r),t.associations.set(c,{meshes:e});for(let e=0,t=l.length;e<t;e++)c.add(l[e]);return c})}loadCamera(e){let t;const n=this.json.cameras[e],i=n[n.type];if(i)return"perspective"===n.type?t=new Wr(en(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):"orthographic"===n.type&&(t=new va(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),n.name&&(t.name=this.createUniqueName(n.name)),JA(t,n),Promise.resolve(t);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){const t=this.json.skins[e],n=[];for(let e=0,i=t.joints.length;e<i;e++)n.push(this._loadNodeShallow(t.joints[e]));return void 0!==t.inverseBindMatrices?n.push(this.getDependency("accessor",t.inverseBindMatrices)):n.push(null),Promise.all(n).then(function(e){const n=e.pop(),i=e,r=[],a=[];for(let e=0,o=i.length;e<o;e++){const o=i[e];if(o){r.push(o);const t=new oi;null!==n&&t.fromArray(n.array,16*e),a.push(t)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[e])}return new pl(r,a)})}loadAnimation(e){const t=this.json,n=this,i=t.animations[e],r=i.name?i.name:"animation_"+e,a=[],o=[],s=[],l=[],c=[];for(let e=0,t=i.channels.length;e<t;e++){const t=i.channels[e],n=i.samplers[t.sampler],r=t.target,h=r.node,A=void 0!==i.parameters?i.parameters[n.input]:n.input,u=void 0!==i.parameters?i.parameters[n.output]:n.output;void 0!==r.node&&(a.push(this.getDependency("node",h)),o.push(this.getDependency("accessor",A)),s.push(this.getDependency("accessor",u)),l.push(n),c.push(r))}return Promise.all([Promise.all(a),Promise.all(o),Promise.all(s),Promise.all(l),Promise.all(c)]).then(function(e){const t=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=[];for(let e=0,r=t.length;e<r;e++){const r=t[e],c=i[e],h=a[e],A=o[e],u=s[e];if(void 0===r)continue;r.updateMatrix&&r.updateMatrix();const d=n._createAnimationTracks(r,c,h,A,u);if(d)for(let e=0;e<d.length;e++)l.push(d[e])}return new lc(r,void 0,l)})}createNodeMesh(e){const t=this.json,n=this,i=t.nodes[e];return void 0===i.mesh?null:n.getDependency("mesh",i.mesh).then(function(e){const t=n._getNodeRef(n.meshCache,i.mesh,e);return void 0!==i.weights&&t.traverse(function(e){if(e.isMesh)for(let t=0,n=i.weights.length;t<n;t++)e.morphTargetInfluences[t]=i.weights[t]}),t})}loadNode(e){const t=this,n=this.json.nodes[e],i=t._loadNodeShallow(e),r=[],a=n.children||[];for(let e=0,n=a.length;e<n;e++)r.push(t.getDependency("node",a[e]));const o=void 0===n.skin?Promise.resolve(null):t.getDependency("skin",n.skin);return Promise.all([i,Promise.all(r),o]).then(function(e){const t=e[0],n=e[1],i=e[2];null!==i&&t.traverse(function(e){e.isSkinnedMesh&&e.bind(i,nu)});for(let e=0,i=n.length;e<i;e++)t.add(n[e]);return t})}_loadNodeShallow(e){const t=this.json,n=this.extensions,i=this;if(void 0!==this.nodeCache[e])return this.nodeCache[e];const r=t.nodes[e],a=r.name?i.createUniqueName(r.name):"",o=[],s=i._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(e)});return s&&o.push(s),void 0!==r.camera&&o.push(i.getDependency("camera",r.camera).then(function(e){return i._getNodeRef(i.cameraCache,r.camera,e)})),i._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)}).forEach(function(e){o.push(e)}),this.nodeCache[e]=Promise.all(o).then(function(t){let o;if(o=!0===r.isBone?new hl:t.length>1?new Qs:1===t.length?t[0]:new Qi,o!==t[0])for(let e=0,n=t.length;e<n;e++)o.add(t[e]);if(r.name&&(o.userData.name=r.name,o.name=a),JA(o,r),r.extensions&&KA(n,o,r),void 0!==r.matrix){const e=new oi;e.fromArray(r.matrix),o.applyMatrix4(e)}else void 0!==r.translation&&o.position.fromArray(r.translation),void 0!==r.rotation&&o.quaternion.fromArray(r.rotation),void 0!==r.scale&&o.scale.fromArray(r.scale);return i.associations.has(o)||i.associations.set(o,{}),i.associations.get(o).nodes=e,o}),this.nodeCache[e]}loadScene(e){const t=this.extensions,n=this.json.scenes[e],i=this,r=new Qs;n.name&&(r.name=i.createUniqueName(n.name)),JA(r,n),n.extensions&&KA(t,r,n);const a=n.nodes||[],o=[];for(let e=0,t=a.length;e<t;e++)o.push(i.getDependency("node",a[e]));return Promise.all(o).then(function(e){for(let t=0,n=e.length;t<n;t++)r.add(e[t]);return i.associations=(e=>{const t=new Map;for(const[e,n]of i.associations)(e instanceof Zi||e instanceof In)&&t.set(e,n);return e.traverse(e=>{const n=i.associations.get(e);null!=n&&t.set(e,n)}),t})(r),r.userData.isDiamondScene=i._sceneContainsDiamondMaterial(r),r})}_sceneContainsDiamondMaterial(e){let t=!1;return e.traverse(e=>{e.material&&e.material.isMeshDiamondMaterial&&(t=!0)}),t}_createAnimationTracks(e,t,n,i,r){const a=[],o=e.name?e.name:e.uuid,s=[];let l;switch(jA[r.path]===jA.weights?e.traverse(function(e){e.morphTargetInfluences&&s.push(e.name?e.name:e.uuid)}):s.push(o),jA[r.path]){case jA.weights:l=ic;break;case jA.rotation:l=ac;break;case jA.position:case jA.scale:l=sc;break;default:l=1===n.itemSize?ic:sc}const c=void 0!==i.interpolation?YA[i.interpolation]:vt,h=this._getArrayFromAccessor(n);for(let e=0,n=s.length;e<n;e++){const n=new l(s[e]+"."+jA[r.path],t.array,h,c);"CUBICSPLINE"===i.interpolation&&this._createCubicSplineTrackInterpolant(n),a.push(n)}return a}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){const e=tu(t.constructor),n=new Float32Array(t.length);for(let i=0,r=t.length;i<r;i++)n[i]=t[i]*e;t=n}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(e){return new(this instanceof ac?kA:FA)(this.times,this.values,this.getValueSize()/3,e)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function ru(e,t,n){const i=t.attributes,r=[];function a(t,i){return n.getDependency("accessor",t).then(function(t){e.setAttribute(i,t)})}for(const t in i){const n=qA[t]||t.toLowerCase();n in e.attributes||r.push(a(i[t],n))}if(void 0!==t.indices&&!e.index){const i=n.getDependency("accessor",t.indices).then(function(t){e.setIndex(t)});r.push(i)}return pn.workingColorSpace!==_t&&"COLOR_0"in i&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${pn.workingColorSpace}" not supported.`),JA(e,t),function(e,t,n){const i=t.attributes,r=new Qn;if(void 0===i.POSITION)return;{const e=n.json.accessors[i.POSITION],t=e.min,a=e.max;if(void 0===t||void 0===a)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(r.set(new Tn(t[0],t[1],t[2]),new Tn(a[0],a[1],a[2])),e.normalized){const t=tu(HA[e.componentType]);r.min.multiplyScalar(t),r.max.multiplyScalar(t)}}const a=t.targets;if(void 0!==a){const e=new Tn,t=new Tn;for(let i=0,r=a.length;i<r;i++){const r=a[i];if(void 0!==r.POSITION){const i=n.json.accessors[r.POSITION],a=i.min,o=i.max;if(void 0!==a&&void 0!==o){if(t.setX(Math.max(Math.abs(a[0]),Math.abs(o[0]))),t.setY(Math.max(Math.abs(a[1]),Math.abs(o[1]))),t.setZ(Math.max(Math.abs(a[2]),Math.abs(o[2]))),i.normalized){const e=tu(HA[i.componentType]);t.multiplyScalar(e)}e.max(t)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}r.expandByVector(e)}e.boundingBox=r;const o=new Jn;r.getCenter(o.center),o.radius=r.min.distanceTo(r.max)/2,e.boundingSphere=o}(e,t,n),Promise.all(r).then(function(){return void 0!==t.targets?function(e,t,n){let i=!1,r=!1,a=!1;for(let e=0,n=t.length;e<n;e++){const n=t[e];if(void 0!==n.POSITION&&(i=!0),void 0!==n.NORMAL&&(r=!0),void 0!==n.COLOR_0&&(a=!0),i&&r&&a)break}if(!i&&!r&&!a)return Promise.resolve(e);const o=[],s=[],l=[];for(let c=0,h=t.length;c<h;c++){const h=t[c];if(i){const t=void 0!==h.POSITION?n.getDependency("accessor",h.POSITION):e.attributes.position;o.push(t)}if(r){const t=void 0!==h.NORMAL?n.getDependency("accessor",h.NORMAL):e.attributes.normal;s.push(t)}if(a){const t=void 0!==h.COLOR_0?n.getDependency("accessor",h.COLOR_0):e.attributes.color;l.push(t)}}return Promise.all([Promise.all(o),Promise.all(s),Promise.all(l)]).then(function(t){const n=t[0],o=t[1],s=t[2];return i&&(e.morphAttributes.position=n),r&&(e.morphAttributes.normal=o),a&&(e.morphAttributes.color=s),e.morphTargetsRelative=!0,e})}(e,t.targets,n):e})}class au{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e<this.pool;e++)if(!(this.workerStatus&1<<e))return e;return-1}_onMessage(e,t){const n=this.workersResolve[e];if(n&&n(t),this.queue.length){const{resolve:t,msg:n,transfer:i}=this.queue.shift();this.workersResolve[e]=t,this.workers[e].postMessage(n,i)}else this.workerStatus^=1<<e}setWorkerCreator(e){this.workerCreator=e}setWorkerLimit(e){this.pool=e}postMessage(e,t){return new Promise(n=>{const i=this._getIdleWorker();-1!==i?(this._initWorker(i),this.workerStatus|=1<<i,this.workersResolve[i]=n,this.workers[i].postMessage(e,t)):this.queue.push({resolve:n,msg:e,transfer:t})})}dispose(){this.workers.forEach(e=>e.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const ou=9,su=15,lu=16,cu=22,hu=37,Au=43,uu=76,du=83,pu=97,fu=100,gu=103,mu=109,vu=165,Eu=166;class bu{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class Cu{constructor(e,t,n,i){this._dataView=new DataView(e.buffer,e.byteOffset+t,n),this._littleEndian=i,this._offset=0}_nextUint8(){const e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){const e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){const e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){const e=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){const e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_skip(e){return this._offset+=e,this}_scan(e,t=0){const n=this._offset;let i=0;for(;this._dataView.getUint8(this._offset)!==t&&i<e;)i++,this._offset++;return i<e&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+n,i)}}const _u=[171,75,84,88,32,50,48,187,13,10,26,10];function Iu(e){return"undefined"!=typeof TextDecoder?(new TextDecoder).decode(e):Buffer.from(e).toString("utf8")}let xu,yu,Mu;const wu={env:{emscripten_notify_memory_growth:function(e){Mu=new Uint8Array(yu.exports.memory.buffer)}}};class Su{init(){return xu||(xu="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+Bu).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,wu)).then(this._init):WebAssembly.instantiate(Buffer.from(Bu,"base64"),wu).then(this._init),xu)}_init(e){yu=e.instance,wu.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!yu)throw new Error("ZSTDDecoder: Await .init() before decoding.");const n=e.byteLength,i=yu.exports.malloc(n);Mu.set(e,i),t=t||Number(yu.exports.ZSTD_findDecompressedSize(i,n));const r=yu.exports.malloc(t),a=yu.exports.ZSTD_decompress(r,t,i,n),o=Mu.slice(r,r+a);return yu.exports.free(i),yu.exports.free(r),o}}const Bu="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",Tu=new WeakMap;let Ru,Du=0;class Qu extends uc{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new au,this.workerSourceURL="",this.workerConfig=null,"undefined"!=typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}async detectSupportAsync(e){return this.workerConfig={astcSupported:await e.hasFeatureAsync("texture-compression-astc"),etc1Supported:await e.hasFeatureAsync("texture-compression-etc1"),etc2Supported:await e.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await e.hasFeatureAsync("texture-compression-bc"),bptcSupported:await e.hasFeatureAsync("texture-compression-bptc"),pvrtcSupported:await e.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(e){return!0===e.isWebGPURenderer?this.workerConfig={astcSupported:e.hasFeature("texture-compression-astc"),etc1Supported:e.hasFeature("texture-compression-etc1"),etc2Supported:e.hasFeature("texture-compression-etc2"),dxtSupported:e.hasFeature("texture-compression-bc"),bptcSupported:e.hasFeature("texture-compression-bptc"),pvrtcSupported:e.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const e=new fc(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),n=new fc(this.manager);n.setPath(this.transcoderPath),n.setResponseType("arraybuffer"),n.setWithCredentials(this.withCredentials);const i=n.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([t,i]).then(([e,t])=>{const n=Qu.BasisWorker.toString(),i=["/* constants */","let _EngineFormat = "+JSON.stringify(Qu.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(Qu.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(Qu.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([i])),this.transcoderBinary=t,this.workerPool.setWorkerCreator(()=>{const e=new Worker(this.workerSourceURL),t=this.transcoderBinary.slice(0);return e.postMessage({type:"init",config:this.workerConfig,transcoderBinary:t},[t]),e})}),Du>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),Du++}return this.transcoderPending}load(e,t,n,i){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const r=new fc(this.manager);r.setResponseType("arraybuffer"),r.setWithCredentials(this.withCredentials),r.load(e,e=>{if(Tu.has(e))return Tu.get(e).promise.then(t).catch(i);this._createTexture(e).then(e=>t?t(e):null).catch(i)},n,i)}_createTextureFrom(e,t){const{faces:n,width:i,height:r,format:a,type:o,error:s,dfdFlags:l}=e;if("error"===o)return Promise.reject(s);let c;if(6===t.faceCount)c=new Wl(n,a,Ye);else{const e=n[0].mipmaps;c=t.layerCount>1?new Vl(e,i,r,t.layerCount,a,Ye):new zl(e,i,r,a,Ye)}return c.minFilter=1===n[0].mipmaps.length?We:je,c.magFilter=We,c.generateMipmaps=!1,c.needsUpdate=!0,c.colorSpace=Nu(t),c.premultiplyAlpha=!!(1&l),c}async _createTexture(e,t={}){const n=function(e){const t=new Uint8Array(e.buffer,e.byteOffset,_u.length);if(t[0]!==_u[0]||t[1]!==_u[1]||t[2]!==_u[2]||t[3]!==_u[3]||t[4]!==_u[4]||t[5]!==_u[5]||t[6]!==_u[6]||t[7]!==_u[7]||t[8]!==_u[8]||t[9]!==_u[9]||t[10]!==_u[10]||t[11]!==_u[11])throw new Error("Missing KTX 2.0 identifier.");const n=new bu,i=17*Uint32Array.BYTES_PER_ELEMENT,r=new Cu(e,_u.length,i,!0);n.vkFormat=r._nextUint32(),n.typeSize=r._nextUint32(),n.pixelWidth=r._nextUint32(),n.pixelHeight=r._nextUint32(),n.pixelDepth=r._nextUint32(),n.layerCount=r._nextUint32(),n.faceCount=r._nextUint32();const a=r._nextUint32();n.supercompressionScheme=r._nextUint32();const o=r._nextUint32(),s=r._nextUint32(),l=r._nextUint32(),c=r._nextUint32(),h=r._nextUint64(),A=r._nextUint64(),u=new Cu(e,_u.length+i,3*a*8,!0);for(let t=0;t<a;t++)n.levels.push({levelData:new Uint8Array(e.buffer,e.byteOffset+u._nextUint64(),u._nextUint64()),uncompressedByteLength:u._nextUint64()});const d=new Cu(e,o,s,!0),p={vendorId:d._skip(4)._nextUint16(),descriptorType:d._nextUint16(),versionNumber:d._nextUint16(),descriptorBlockSize:d._nextUint16(),colorModel:d._nextUint8(),colorPrimaries:d._nextUint8(),transferFunction:d._nextUint8(),flags:d._nextUint8(),texelBlockDimension:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],bytesPlane:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],samples:[]},f=(p.descriptorBlockSize/4-6)/4;for(let e=0;e<f;e++){const t={bitOffset:d._nextUint16(),bitLength:d._nextUint8(),channelType:d._nextUint8(),samplePosition:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&t.channelType?(t.sampleLower=d._nextInt32(),t.sampleUpper=d._nextInt32()):(t.sampleLower=d._nextUint32(),t.sampleUpper=d._nextUint32()),p.samples[e]=t}n.dataFormatDescriptor.length=0,n.dataFormatDescriptor.push(p);const g=new Cu(e,l,c,!0);for(;g._offset<c;){const e=g._nextUint32(),t=g._scan(e),i=Iu(t),r=g._scan(e-t.byteLength);n.keyValue[i]=i.match(/^ktx/i)?Iu(r):r,g._offset%4&&g._skip(4-g._offset%4)}if(A<=0)return n;const m=new Cu(e,h,A,!0),v=m._nextUint16(),E=m._nextUint16(),b=m._nextUint32(),C=m._nextUint32(),_=m._nextUint32(),I=m._nextUint32(),x=[];for(let e=0;e<a;e++)x.push({imageFlags:m._nextUint32(),rgbSliceByteOffset:m._nextUint32(),rgbSliceByteLength:m._nextUint32(),alphaSliceByteOffset:m._nextUint32(),alphaSliceByteLength:m._nextUint32()});const y=h+m._offset,M=y+b,w=M+C,S=w+_,B=new Uint8Array(e.buffer,e.byteOffset+y,b),T=new Uint8Array(e.buffer,e.byteOffset+M,C),R=new Uint8Array(e.buffer,e.byteOffset+w,_),D=new Uint8Array(e.buffer,e.byteOffset+S,I);return n.globalData={endpointCount:v,selectorCount:E,imageDescs:x,endpointsData:B,selectorsData:T,tablesData:R,extendedData:D},n}(new Uint8Array(e));if(0!==n.vkFormat)return async function(e){const{vkFormat:t}=e;if(void 0===Uu[t])throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");let n;2===e.supercompressionScheme&&(Ru||(Ru=new Promise(async e=>{const t=new Su;await t.init(),e(t)})),n=await Ru);const i=[];for(let r=0;r<e.levels.length;r++){const a=Math.max(1,e.pixelWidth>>r),o=Math.max(1,e.pixelHeight>>r),s=e.pixelDepth?Math.max(1,e.pixelDepth>>r):0,l=e.levels[r];let c,h;if(0===e.supercompressionScheme)c=l.levelData;else{if(2!==e.supercompressionScheme)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");c=n.decode(l.levelData,l.uncompressedByteLength)}h=Pu[t]===Je?new Float32Array(c.buffer,c.byteOffset,c.byteLength/Float32Array.BYTES_PER_ELEMENT):Pu[t]===Ze?new Uint16Array(c.buffer,c.byteOffset,c.byteLength/Uint16Array.BYTES_PER_ELEMENT):c,i.push({data:h,width:a,height:o,depth:s})}let r;if(Lu.has(Uu[t]))r=0===e.pixelDepth?new Al(i[0].data,e.pixelWidth,e.pixelHeight):new Sn(i[0].data,e.pixelWidth,e.pixelHeight,e.pixelDepth);else{if(e.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");r=new zl(i,e.pixelWidth,e.pixelHeight)}return r.mipmaps=i,r.type=Pu[t],r.format=Uu[t],r.colorSpace=Nu(e),r.needsUpdate=!0,Promise.resolve(r)}(n);const i=t,r=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:e,taskConfig:i},[e])).then(e=>this._createTextureFrom(e.data,n));return Tu.set(e,{promise:r}),r}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),Du--,this}}Qu.BasisFormat={ETC1S:0,UASTC_4x4:1},Qu.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},Qu.EngineFormat={RGBAFormat:et,RGBA_ASTC_4x4_Format:pt,RGBA_BPTC_Format:gt,RGBA_ETC2_EAC_Format:dt,RGBA_PVRTC_4BPPV1_Format:ht,RGBA_S3TC_DXT5_Format:lt,RGB_ETC1_Format:At,RGB_ETC2_Format:ut,RGB_PVRTC_4BPPV1_Format:ct,RGBA_S3TC_DXT1_Format:ot},Qu.BasisWorker=function(){let e,t,n;const i=_EngineFormat,r=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",function(o){const A=o.data;switch(A.type){case"init":e=A.config,u=A.transcoderBinary,t=new Promise(e=>{n={wasmBinary:u,onRuntimeInitialized:e},BASIS(n)}).then(()=>{n.initializeBasis(),void 0===n.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":t.then(()=>{try{const{faces:t,buffers:o,width:u,height:d,hasAlpha:p,format:f,dfdFlags:g}=function(t){const o=new n.KTX2File(new Uint8Array(t));function A(){o.close(),o.delete()}if(!o.isValid())throw A(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");const u=o.isUASTC()?a.UASTC_4x4:a.ETC1S,d=o.getWidth(),p=o.getHeight(),f=o.getLayers()||1,g=o.getLevels(),m=o.getFaces(),v=o.getHasAlpha(),E=o.getDFDFlags(),{transcoderFormat:b,engineFormat:C}=function(t,n,o,h){let A,u;const d=t===a.ETC1S?s:l;for(let i=0;i<d.length;i++){const r=d[i];if(e[r.if]&&r.basisFormat.includes(t)&&!(h&&r.transcoderFormat.length<2)&&(!r.needsPowerOfTwo||c(n)&&c(o)))return A=r.transcoderFormat[h?1:0],u=r.engineFormat[h?1:0],{transcoderFormat:A,engineFormat:u}}return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."),A=r.RGBA32,u=i.RGBAFormat,{transcoderFormat:A,engineFormat:u}}(u,d,p,v);if(!d||!p||!g)throw A(),new Error("THREE.KTX2Loader:\tInvalid texture");if(!o.startTranscoding())throw A(),new Error("THREE.KTX2Loader: .startTranscoding failed");const _=[],I=[];for(let e=0;e<m;e++){const t=[];for(let n=0;n<g;n++){const i=[];let r,a;for(let t=0;t<f;t++){const s=o.getImageLevelInfo(n,t,e);0!==e||0!==n||0!==t||s.origWidth%4==0&&s.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),g>1?(r=s.origWidth,a=s.origHeight):(r=s.width,a=s.height);const l=new Uint8Array(o.getImageTranscodedSizeInBytes(n,t,0,b));if(!o.transcodeImage(l,n,t,e,b,0,-1,-1))throw A(),new Error("THREE.KTX2Loader: .transcodeImage failed.");i.push(l)}const s=h(i);t.push({data:s,width:r,height:a}),I.push(s.buffer)}_.push({mipmaps:t,width:d,height:p,format:C})}return A(),{faces:_,buffers:I,width:d,height:p,hasAlpha:v,format:C,dfdFlags:E}}(A.buffer);self.postMessage({type:"transcode",id:A.id,faces:t,width:u,height:d,hasAlpha:p,format:f,dfdFlags:g},o)}catch(e){console.error(e),self.postMessage({type:"error",id:A.id,error:e.message})}})}var u});const o=[{if:"astcSupported",basisFormat:[a.UASTC_4x4],transcoderFormat:[r.ASTC_4x4,r.ASTC_4x4],engineFormat:[i.RGBA_ASTC_4x4_Format,i.RGBA_ASTC_4x4_Format],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.BC7_M5,r.BC7_M5],engineFormat:[i.RGBA_BPTC_Format,i.RGBA_BPTC_Format],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.BC1,r.BC3],engineFormat:[i.RGBA_S3TC_DXT1_Format,i.RGBA_S3TC_DXT5_Format],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.ETC1,r.ETC2],engineFormat:[i.RGB_ETC2_Format,i.RGBA_ETC2_EAC_Format],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.ETC1],engineFormat:[i.RGB_ETC1_Format],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.PVRTC1_4_RGB,r.PVRTC1_4_RGBA],engineFormat:[i.RGB_PVRTC_4BPPV1_Format,i.RGBA_PVRTC_4BPPV1_Format],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0}],s=o.sort(function(e,t){return e.priorityETC1S-t.priorityETC1S}),l=o.sort(function(e,t){return e.priorityUASTC-t.priorityUASTC});function c(e){return e<=2||!(e&e-1)&&0!==e}function h(e){if(1===e.length)return e[0];let t=0;for(let n=0;n<e.length;n++)t+=e[n].byteLength;const n=new Uint8Array(t);let i=0;for(let t=0;t<e.length;t++){const r=e[t];n.set(r,i),i+=r.byteLength}return n}};const Lu=new Set([et,rt,it]),Uu={[mu]:et,[pu]:et,[hu]:et,[Au]:et,[gu]:rt,[du]:rt,[lu]:rt,[cu]:rt,[fu]:it,[uu]:it,[su]:it,[ou]:it,[Eu]:ft,[vu]:ft},Pu={[mu]:Je,[pu]:Ze,[hu]:Ye,[Au]:Ye,[gu]:Je,[du]:Ze,[lu]:Ye,[cu]:Ye,[fu]:Je,[uu]:Ze,[su]:Ye,[ou]:Ye,[Eu]:Ye,[vu]:Ye};function Nu(e){const t=e.dataFormatDescriptor[0];return 1===t.colorPrimaries?2===t.transferFunction?Ct:_t:10===t.colorPrimaries?2===t.transferFunction?It:xt:(0===t.colorPrimaries||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${t.colorPrimaries}"`),bt)}let Fu=null;const Ou=e=>{Fu=null==e?null:e.endsWith("/")?e.substring(0,e.length-1):e},ku=()=>null!=Fu?`${Fu}/libs`:"https://cdn.jsdelivr.net/npm/three@0.165.0/examples/jsm/libs",Gu=(()=>{const e=(()=>{var e;if(null===(e=document.documentElement.getAttribute("itemtype"))||void 0===e?void 0:e.includes("schema.org/SearchResultsPage"))return!0;const t=null!=document.head?Array.from(document.head.querySelectorAll("meta")):[];for(const e of t)if("viewport"===e.name)return!0;return!1})();return e||console.error('No <meta name="viewport"> detected. This might cause ShopAR to crash on iOS.\nPlease add the following line to your HTML:\n<meta name="viewport" content="width=device-width, initial-scale=1.0">'),()=>e?Math.min(window.devicePixelRatio||1,2):1})(),Hu=new Xi(16777215);let zu,Vu,Wu=!1,qu=1,ju=1,Yu=1;function Xu(){return Ku(),zu}function Ku(){if(Wu)return;Yu=Gu(),Vu=document.createElement("canvas");const e=Vu.style;e.position="absolute",e.top="0",e.left="0",e.width="100%",e.height="100%",zu=new Ks({powerPreference:"high-performance",canvas:Vu,antialias:!0,alpha:!0}),zu.outputColorSpace=Ct,zu.toneMapping=4,zu.setClearColor(new Xi(16777215),0),Wu=!0}function Ju(e,t,n,i,r){const{width:a,height:o}=t,s=zu.toneMapping,l=zu.toneMappingExposure;if(zu.toneMapping=i,zu.toneMappingExposure=r,zu.setViewport(0,0,a,o),zu.setClearColor(Hu,n),e.setSize(a,o),e.render(),zu.toneMapping=s,zu.toneMappingExposure=l,t.isBlitted()){const{context2d:e}=t;if(null==e)return;e.clearRect(0,0,a,o),Vu.width>0&&Vu.height>0&&e.drawImage(Vu,0,ju-o,a,o,0,0,a,o)}}function Zu(e,t){const n=Gu();e=Math.ceil(e*n),t=Math.ceil(t*n),e===qu&&t===ju&&n===Yu||(qu=e,ju=t,Yu=n,Xu().setSize(qu,ju,!1))}function $u(e,t){Xu().renderCubeMapNormals(e),e.traverse(e=>{e instanceof Qr&&e.material&&e.material.isMeshDiamondMaterial&&(e.material.envMap=t)})}let ed,td=!1;function nd(e){return td||id(),ed.parseAsync(e.buffer,"")}function id(){if(td)return;const e=(new lA).setDecoderPath(`${ku()}/draco/gltf/`);e.preload();const t=(new Qu).setTranscoderPath(`${ku()}/basis/`).detectSupport(Xu());ed=(new AA).setDRACOLoader(e).setKTX2Loader(t).setMeshoptDecoder(oA),td=!0}function rd(e){null!=e&&(Object.values(e).forEach(e=>{(null==e?void 0:e.dispose)instanceof Function&&e.dispose()}),e.dispose())}function ad(e,t,n,i,r,a){if(null==e)return new Tn;const o=od(e,i,r,new Tn),s=sd(e);od(e,o.scale,o.quaternion,o.position);const l=s.getSize(new Tn),c=s.getCenter(new Tn);let h=0;return h=l.x/2+t/2,n&&(h=-h),new Tn(-c.x+h,-c.y+l.y/2,-c.z)}function od(e,t,n,i){let r,a,o;return null!=t&&(r=e.scale.x,e.scale.set(t,t,t)),null!=n&&(a=e.quaternion.clone(),e.quaternion.copy(n)),null!=i&&(o=e.position.clone(),e.position.copy(i)),{scale:r,quaternion:a,position:o}}function sd(e){return(new Qn).setFromObject(e,!0)}function ld(e){e.traverse(e=>{var t;e instanceof Qr&&(null===(t=e.geometry)||void 0===t||t.dispose(),Array.isArray(e.material)?e.material.forEach(rd):rd(e.material))}),e.clear()}const cd={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class hd{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const Ad=new va(-1,1,1,-1,0,1),ud=new class extends fr{constructor(){super(),this.setAttribute("position",new sr([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new sr([0,2,0,0,2,0],2))}};class dd{constructor(e){this._mesh=new Qr(ud,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,Ad)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}class pd extends hd{constructor(e,t){super(),this.textureID=void 0!==t?t:"tDiffuse",e instanceof kr?(this.uniforms=e.uniforms,this.material=e):e&&(this.uniforms=Or.clone(e.uniforms),this.material=new kr({name:void 0!==e.name?e.name:"unspecified",defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this.fsQuad=new dd(this.material)}render(e,t,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class fd extends hd{constructor(e,t){super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,n){const i=e.getContext(),r=e.state;let a,o;r.buffers.color.setMask(!1),r.buffers.depth.setMask(!1),r.buffers.color.setLocked(!0),r.buffers.depth.setLocked(!0),this.inverse?(a=0,o=1):(a=1,o=0),r.buffers.stencil.setTest(!0),r.buffers.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),r.buffers.stencil.setFunc(i.ALWAYS,a,4294967295),r.buffers.stencil.setClear(o),r.buffers.stencil.setLocked(!0),e.setRenderTarget(n),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),r.buffers.color.setLocked(!1),r.buffers.depth.setLocked(!1),r.buffers.color.setMask(!0),r.buffers.depth.setMask(!0),r.buffers.stencil.setLocked(!1),r.buffers.stencil.setFunc(i.EQUAL,1,4294967295),r.buffers.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),r.buffers.stencil.setLocked(!0)}}class gd extends hd{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}class md{constructor(e,t){if(this.renderer=e,this._pixelRatio=e.getPixelRatio(),void 0===t){const n=e.getSize(new tn);this._width=n.width,this._height=n.height,(t=new Mn(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:Ze})).texture.name="EffectComposer.rt1"}else this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new pd(cd),this.copyPass.material.blending=0,this.clock=new Uc}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t<this.passes.length;t++)if(this.passes[t].enabled)return!1;return!0}render(e){void 0===e&&(e=this.clock.getDelta());const t=this.renderer.getRenderTarget();let n=!1;for(let t=0,i=this.passes.length;t<i;t++){const i=this.passes[t];if(!1!==i.enabled){if(i.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(t),i.render(this.renderer,this.writeBuffer,this.readBuffer,e,n),i.needsSwap){if(n){const t=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(t.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,e),n.setFunc(t.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==fd&&(i instanceof fd?n=!0:i instanceof gd&&(n=!1))}}this.renderer.setRenderTarget(t)}reset(e){if(void 0===e){const t=this.renderer.getSize(new tn);this._pixelRatio=this.renderer.getPixelRatio(),this._width=t.width,this._height=t.height,(e=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=e,this.renderTarget2=e.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(e,t){this._width=e,this._height=t;const n=this._width*this._pixelRatio,i=this._height*this._pixelRatio;this.renderTarget1.setSize(n,i),this.renderTarget2.setSize(n,i);for(let e=0;e<this.passes.length;e++)this.passes[e].setSize(n,i)}setPixelRatio(e){this._pixelRatio=e,this.setSize(this._width,this._height)}dispose(){this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.copyPass.dispose()}}const vd={name:"OutputShader",uniforms:{tDiffuse:{value:null},toneMappingExposure:{value:1}},vertexShader:"\n\t\tprecision highp float;\n\n\t\tuniform mat4 modelViewMatrix;\n\t\tuniform mat4 projectionMatrix;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\t\n\t\tprecision highp float;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\t#include <tonemapping_pars_fragment>\n\t\t#include <colorspace_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tgl_FragColor = texture2D( tDiffuse, vUv );\n\n\t\t\t// tone mapping\n\n\t\t\t#ifdef LINEAR_TONE_MAPPING\n\n\t\t\t\tgl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( REINHARD_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( CINEON_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = OptimizedCineonToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( ACES_FILMIC_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( AGX_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( NEUTRAL_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb );\n\n\t\t\t#endif\n\n\t\t\t// color space\n\n\t\t\t#ifdef SRGB_TRANSFER\n\n\t\t\t\tgl_FragColor = sRGBTransferOETF( gl_FragColor );\n\n\t\t\t#endif\n\n\t\t}"};class Ed extends hd{constructor(){super();const e=vd;this.uniforms=Or.clone(e.uniforms),this.material=new Hs({name:e.name,uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader}),this.fsQuad=new dd(this.material),this._outputColorSpace=null,this._toneMapping=null}render(e,t,n){this.uniforms.tDiffuse.value=n.texture,this.uniforms.toneMappingExposure.value=e.toneMappingExposure,this._outputColorSpace===e.outputColorSpace&&this._toneMapping===e.toneMapping||(this._outputColorSpace=e.outputColorSpace,this._toneMapping=e.toneMapping,this.material.defines={},pn.getTransfer(this._outputColorSpace)===Mt&&(this.material.defines.SRGB_TRANSFER=""),1===this._toneMapping?this.material.defines.LINEAR_TONE_MAPPING="":2===this._toneMapping?this.material.defines.REINHARD_TONE_MAPPING="":3===this._toneMapping?this.material.defines.CINEON_TONE_MAPPING="":4===this._toneMapping?this.material.defines.ACES_FILMIC_TONE_MAPPING="":6===this._toneMapping?this.material.defines.AGX_TONE_MAPPING="":7===this._toneMapping&&(this.material.defines.NEUTRAL_TONE_MAPPING=""),this.material.needsUpdate=!0),!0===this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class bd extends hd{constructor(e,t,n=null,i=null,r=null){super(),this.scene=e,this.camera=t,this.overrideMaterial=n,this.clearColor=i,this.clearAlpha=r,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new Xi}render(e,t,n){const i=e.autoClear;let r,a;e.autoClear=!1,null!==this.overrideMaterial&&(a=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(e.getClearColor(this._oldClearColor),e.setClearColor(this.clearColor,e.getClearAlpha())),null!==this.clearAlpha&&(r=e.getClearAlpha(),e.setClearAlpha(this.clearAlpha)),1==this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:n),!0===this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),null!==this.clearColor&&e.setClearColor(this._oldClearColor),null!==this.clearAlpha&&e.setClearAlpha(r),null!==this.overrideMaterial&&(this.scene.overrideMaterial=a),e.autoClear=i}}const Cd={uniforms:{tDiffuse:{value:null},luminosityThreshold:{value:1},smoothWidth:{value:1},defaultColor:{value:new Xi(0)},defaultOpacity:{value:0}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform vec3 defaultColor;\n\t\tuniform float defaultOpacity;\n\t\tuniform float luminosityThreshold;\n\t\tuniform float smoothWidth;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\n\t\t\tvec3 luma = vec3( 0.299, 0.587, 0.114 );\n\n\t\t\tfloat v = dot( texel.xyz, luma );\n\n\t\t\tvec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );\n\n\t\t\tfloat alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );\n\n\t\t\tgl_FragColor = mix( outputColor, texel, alpha );\n\t\t\tgl_FragColor.rgb = max( gl_FragColor.rgb, vec3( 0.0 ) );\n\n\t\t}"};class _d extends hd{constructor(e,t,n,i){super(),this.strength=void 0!==t?t:1,this.radius=n,this.threshold=i,this.resolution=void 0!==e?new tn(e.x,e.y):new tn(256,256),this.clearColor=new Xi(0,0,0),this.renderTargetsHorizontal=[],this.renderTargetsVertical=[],this.nMips=5;let r=Math.round(this.resolution.x/2),a=Math.round(this.resolution.y/2);this.renderTargetBright=new Mn(r,a,{type:Ze}),this.renderTargetBright.texture.name="UnrealBloomPass.bright",this.renderTargetBright.texture.generateMipmaps=!1;for(let e=0;e<this.nMips;e++){const t=new Mn(r,a,{type:Ze});t.texture.name="UnrealBloomPass.h"+e,t.texture.generateMipmaps=!1,this.renderTargetsHorizontal.push(t);const n=new Mn(r,a,{type:Ze});n.texture.name="UnrealBloomPass.v"+e,n.texture.generateMipmaps=!1,this.renderTargetsVertical.push(n),r=Math.round(r/2),a=Math.round(a/2)}const o=Cd;this.highPassUniforms=Or.clone(o.uniforms),this.highPassUniforms.luminosityThreshold.value=i,this.highPassUniforms.smoothWidth.value=.01,this.materialHighPassFilter=new kr({uniforms:this.highPassUniforms,vertexShader:o.vertexShader,fragmentShader:o.fragmentShader}),this.separableBlurMaterials=[];const s=[3,5,7,9,11];r=Math.round(this.resolution.x/2),a=Math.round(this.resolution.y/2);for(let e=0;e<this.nMips;e++)this.separableBlurMaterials.push(this.getSeperableBlurMaterial(s[e])),this.separableBlurMaterials[e].uniforms.invSize.value=new tn(1/r,1/a),r=Math.round(r/2),a=Math.round(a/2);this.compositeMaterial=this.getCompositeMaterial(this.nMips),this.compositeMaterial.uniforms.blurTexture1.value=this.renderTargetsVertical[0].texture,this.compositeMaterial.uniforms.blurTexture2.value=this.renderTargetsVertical[1].texture,this.compositeMaterial.uniforms.blurTexture3.value=this.renderTargetsVertical[2].texture,this.compositeMaterial.uniforms.blurTexture4.value=this.renderTargetsVertical[3].texture,this.compositeMaterial.uniforms.blurTexture5.value=this.renderTargetsVertical[4].texture,this.compositeMaterial.uniforms.bloomStrength.value=t,this.compositeMaterial.uniforms.bloomRadius.value=.1,this.compositeMaterial.uniforms.bloomFactors.value=[1,.8,.6,.4,.2],this.bloomTintColors=[new Tn(1,1,1),new Tn(1,1,1),new Tn(1,1,1),new Tn(1,1,1),new Tn(1,1,1)],this.compositeMaterial.uniforms.bloomTintColors.value=this.bloomTintColors;const l=cd;this.copyUniforms=Or.clone(l.uniforms),this.blendMaterial=new kr({uniforms:this.copyUniforms,vertexShader:l.vertexShader,fragmentShader:l.fragmentShader,blending:2,depthTest:!1,depthWrite:!1,transparent:!0}),this.enabled=!0,this.needsSwap=!1,this._oldClearColor=new Xi,this.oldClearAlpha=1,this.basic=new $i,this.fsQuad=new dd(null)}dispose(){for(let e=0;e<this.renderTargetsHorizontal.length;e++)this.renderTargetsHorizontal[e].dispose();for(let e=0;e<this.renderTargetsVertical.length;e++)this.renderTargetsVertical[e].dispose();this.renderTargetBright.dispose();for(let e=0;e<this.separableBlurMaterials.length;e++)this.separableBlurMaterials[e].dispose();this.compositeMaterial.dispose(),this.blendMaterial.dispose(),this.basic.dispose(),this.fsQuad.dispose()}setSize(e,t){let n=Math.round(e/2),i=Math.round(t/2);this.renderTargetBright.setSize(n,i);for(let e=0;e<this.nMips;e++)this.renderTargetsHorizontal[e].setSize(n,i),this.renderTargetsVertical[e].setSize(n,i),this.separableBlurMaterials[e].uniforms.invSize.value=new tn(1/n,1/i),n=Math.round(n/2),i=Math.round(i/2)}render(e,t,n,i,r){e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();const a=e.autoClear;e.autoClear=!1,e.setClearColor(this.clearColor,0),r&&e.state.buffers.stencil.setTest(!1),this.renderToScreen&&(this.fsQuad.material=this.basic,this.basic.map=n.texture,e.setRenderTarget(null),e.clear(),this.fsQuad.render(e)),this.highPassUniforms.tDiffuse.value=n.texture,this.highPassUniforms.luminosityThreshold.value=this.threshold,this.fsQuad.material=this.materialHighPassFilter,e.setRenderTarget(this.renderTargetBright),e.clear(),this.fsQuad.render(e);let o=this.renderTargetBright;for(let t=0;t<this.nMips;t++)this.fsQuad.material=this.separableBlurMaterials[t],this.separableBlurMaterials[t].uniforms.colorTexture.value=o.texture,this.separableBlurMaterials[t].uniforms.direction.value=_d.BlurDirectionX,e.setRenderTarget(this.renderTargetsHorizontal[t]),e.clear(),this.fsQuad.render(e),this.separableBlurMaterials[t].uniforms.colorTexture.value=this.renderTargetsHorizontal[t].texture,this.separableBlurMaterials[t].uniforms.direction.value=_d.BlurDirectionY,e.setRenderTarget(this.renderTargetsVertical[t]),e.clear(),this.fsQuad.render(e),o=this.renderTargetsVertical[t];this.fsQuad.material=this.compositeMaterial,this.compositeMaterial.uniforms.bloomStrength.value=this.strength,this.compositeMaterial.uniforms.bloomRadius.value=this.radius,this.compositeMaterial.uniforms.bloomTintColors.value=this.bloomTintColors,e.setRenderTarget(this.renderTargetsHorizontal[0]),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.blendMaterial,this.copyUniforms.tDiffuse.value=this.renderTargetsHorizontal[0].texture,r&&e.state.buffers.stencil.setTest(!0),this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(n),this.fsQuad.render(e)),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=a}getSeperableBlurMaterial(e){const t=[];for(let n=0;n<e;n++)t.push(.39894*Math.exp(-.5*n*n/(e*e))/e);return new kr({defines:{KERNEL_RADIUS:e},uniforms:{colorTexture:{value:null},invSize:{value:new tn(.5,.5)},direction:{value:new tn(.5,.5)},gaussianCoefficients:{value:t}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include <common>\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 invSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float gaussianCoefficients[KERNEL_RADIUS];\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tfloat weightSum = gaussianCoefficients[0];\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv ).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianCoefficients[i];\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset ).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset ).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}"})}getCompositeMaterial(e){return new kr({defines:{NUM_MIPS:e},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}"})}}_d.BlurDirectionX=new tn(1,0),_d.BlurDirectionY=new tn(0,1);const Id="backgroundTexture",xd=`\n uniform sampler2D ${Id};\n uniform sampler2D bloomTexture;\n uniform sampler2D objectMaskTexture;\n\n varying vec2 vUv;\n\n void main() {\n gl_FragColor = texture2D( ${Id}, vUv );\n gl_FragColor.rgb += texture2D( bloomTexture, vUv ).rgb * texture2D( objectMaskTexture, vUv ).a;\n }\n`;class yd extends pd{constructor(e,t){super(new kr({uniforms:{[Id]:{value:null},bloomTexture:{value:e},objectMaskTexture:{value:t}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n",fragmentShader:xd}),Id)}}var Md,wd,Sd,Bd,Td,Rd,Dd,Qd,Ld,Ud,Pd,Nd,Fd,Od,kd,Gd,Hd,zd;const Vd="neverDarken",Wd="shadowObject";class qd{constructor(e,t){Md.set(this,void 0),wd.set(this,void 0),Sd.set(this,!1),Bd.set(this,.25),Td.set(this,0),Rd.set(this,2),Dd.set(this,null),Qd.set(this,null),Ld.set(this,null),Ud.set(this,null),Pd.set(this,null),Nd.set(this,null),Fd.set(this,null),Od.set(this,null),kd.set(this,null),Gd.set(this,{}),Hd.set(this,null),zd.set(this,new Xi),H(this,Md,e),H(this,wd,t)}set strength(e){H(this,Bd,e),null!=G(this,Ld,"f")&&(G(this,Ld,"f").strength=G(this,Bd,"f"))}set radius(e){H(this,Td,e),null!=G(this,Ld,"f")&&(G(this,Ld,"f").radius=G(this,Td,"f"))}set threshold(e){H(this,Rd,e),null!=G(this,Ld,"f")&&(G(this,Ld,"f").threshold=G(this,Rd,"f"))}init(){G(this,Sd,"f")||(H(this,Dd,new md(Xu())),H(this,Qd,new bd(G(this,Md,"f"),G(this,wd,"f"))),G(this,Qd,"f").clearColor=new Xi(0),G(this,Qd,"f").clearAlpha=0,G(this,Dd,"f").addPass(G(this,Qd,"f")),H(this,Ld,new _d(new tn(256,256),G(this,Bd,"f"),G(this,Td,"f"),G(this,Rd,"f"))),G(this,Dd,"f").addPass(G(this,Ld,"f")),H(this,Ud,new Ed),G(this,Ud,"f").needsSwap=!1,G(this,Dd,"f").addPass(G(this,Ud,"f")),G(this,Dd,"f").renderToScreen=!1,H(this,Od,new md(Xu())),H(this,kd,new bd(G(this,Md,"f"),G(this,wd,"f"))),G(this,Od,"f").addPass(G(this,kd,"f")),G(this,Od,"f").renderToScreen=!1,H(this,Pd,new md(Xu())),H(this,Nd,new bd(G(this,Md,"f"),G(this,wd,"f"))),G(this,Pd,"f").addPass(G(this,Nd,"f")),H(this,Fd,new yd(G(this,Dd,"f").renderTarget1.texture,G(this,Od,"f").renderTarget2.texture)),G(this,Pd,"f").addPass(G(this,Fd,"f")),H(this,Hd,new $i({color:0})),H(this,Sd,!0))}destroy(){G(this,Sd,"f")&&(G(this,Hd,"f").dispose(),H(this,Hd,null),G(this,Fd,"f").dispose(),H(this,Fd,null),G(this,Nd,"f").dispose(),H(this,Nd,null),G(this,Pd,"f").dispose(),H(this,Pd,null),G(this,kd,"f").dispose(),H(this,kd,null),G(this,Od,"f").dispose(),H(this,Od,null),G(this,Ud,"f").dispose(),H(this,Ud,null),G(this,Ld,"f").dispose(),H(this,Ld,null),G(this,Qd,"f").dispose(),H(this,Qd,null),G(this,Dd,"f").dispose(),H(this,Dd,null),H(this,Sd,!1))}setSize(e,t){null!=G(this,Dd,"f")&&null!=G(this,Od,"f")&&null!=G(this,Pd,"f")&&(G(this,Dd,"f").setSize(e,t),G(this,Od,"f").setSize(e,t),G(this,Pd,"f").setSize(e,t))}render(){null!=G(this,Dd,"f")&&null!=G(this,Od,"f")&&null!=G(this,kd,"f")&&null!=G(this,Pd,"f")&&null!=G(this,Nd,"f")&&(G(this,Dd,"f").render(),this.darkenMaterials(),this.hideShadow(),G(this,kd,"f").clearColor=Xu().getClearColor(G(this,zd,"f")),G(this,kd,"f").clearAlpha=Xu().getClearAlpha(),G(this,Od,"f").render(),this.showShadow(),G(this,Nd,"f").clearColor=Xu().getClearColor(G(this,zd,"f")),G(this,Nd,"f").clearAlpha=Xu().getClearAlpha(),G(this,Pd,"f").render(),this.restoreDarkenedMaterials())}hideShadow(){G(this,Md,"f").traverse(e=>{e instanceof Qr&&e.material.userData[Wd]&&(e.visible=!1)})}showShadow(){G(this,Md,"f").traverse(e=>{e instanceof Qr&&e.material.userData[Wd]&&(e.visible=!0)})}onSceneUpdate(){Xu().renderCubeMapNormals(G(this,Md,"f"))}darkenMaterials(){G(this,Md,"f").traverse(e=>{if(e instanceof Qr){if(e.material.userData[Vd])return;G(this,Gd,"f")[e.uuid]=e.material,e.material=G(this,Hd,"f")}})}restoreDarkenedMaterials(){G(this,Md,"f").traverse(e=>{if(e instanceof Qr){if(e.material!==G(this,Hd,"f"))return;e.material=G(this,Gd,"f")[e.uuid],delete G(this,Gd,"f")[e.uuid]}})}}var jd,Yd,Xd,Kd,Jd,Zd;Md=new WeakMap,wd=new WeakMap,Sd=new WeakMap,Bd=new WeakMap,Td=new WeakMap,Rd=new WeakMap,Dd=new WeakMap,Qd=new WeakMap,Ld=new WeakMap,Ud=new WeakMap,Pd=new WeakMap,Nd=new WeakMap,Fd=new WeakMap,Od=new WeakMap,kd=new WeakMap,Gd=new WeakMap,Hd=new WeakMap,zd=new WeakMap,(Zd=Jd||(Jd={}))[Zd.Direct=0]="Direct",Zd[Zd.Postprocessed=1]="Postprocessed";class $d{constructor(e,t){jd.set(this,void 0),Yd.set(this,void 0),Xd.set(this,Jd.Direct),Kd.set(this,void 0),H(this,jd,e),H(this,Yd,t),H(this,Kd,new qd(G(this,jd,"f"),G(this,Yd,"f")))}get bloomEnabled(){return G(this,Xd,"f")===Jd.Postprocessed}set bloomEnabled(e){e?(G(this,Kd,"f").init(),H(this,Xd,Jd.Postprocessed)):(G(this,Kd,"f").destroy(),H(this,Xd,Jd.Direct))}set bloomStrength(e){G(this,Kd,"f").strength=e}set bloomRadius(e){G(this,Kd,"f").radius=e}set bloomThreshold(e){G(this,Kd,"f").threshold=e}dispose(){G(this,Kd,"f").destroy(),H(this,Xd,Jd.Direct)}setSize(e,t){G(this,Kd,"f").setSize(e,t)}render(){G(this,Xd,"f")===Jd.Direct?Xu().render(G(this,jd,"f"),G(this,Yd,"f")):G(this,Xd,"f")===Jd.Postprocessed&&G(this,Kd,"f").render()}}jd=new WeakMap,Yd=new WeakMap,Xd=new WeakMap,Kd=new WeakMap;const ep={name:"HorizontalBlurShader",uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float h;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 sum = vec4( 0.0 );\n\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}"},tp={name:"VerticalBlurShader",uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float v;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 sum = vec4( 0.0 );\n\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}"};let np,ip,rp,ap=!1;const op=300,sp=2*Math.PI/32,lp=ce("hold"),cp=ce("sine"),hp=ce("sine-in"),Ap=ce("sine-out");function up(){let e=!0,t=!1,n=null,i=null,r=null;return{get custom(){return t},set:e=>{const{theta:a,phi:o,fov:s}=e;n=a,i=o,r=s,t=null!=a||null!=o||null!=s},reset:e=>{var a;t?(null==n||n.reset(),null==i||i.reset(),null==r||r.reset()):(n=Z([{time:0,value:a=e,interpolation:lp},{time:op,value:a,interpolation:Ap},{time:800,value:a+sp,interpolation:cp},{time:1800,value:a-sp,interpolation:hp},{time:2300,value:a,interpolation:lp},{time:4300,value:a,interpolation:lp}]),i=null,r=null)},get running(){return e},set running(t){e=t},update:t=>{e&&(null==n||n.update(t),null==i||i.update(t),null==r||r.update(t))},get theta(){return null==n?void 0:n.get()},get phi(){return null==i?void 0:i.get()},get fov(){return null==r?void 0:r.get()}}}var dp;!function(e){e[e.NONE=0]="NONE",e[e.USER_INTERACTION=1]="USER_INTERACTION",e[e.AUTOMATIC=2]="AUTOMATIC"}(dp||(dp={}));const pp="pan-y",fp=1e-6,gp=.03,mp=Math.PI/8,vp=new Tn;class Ep extends Ht{constructor(e,t){super(),this.touchAction_=pp,this.enablePan=!0,this.screenSpacePanning=!0,this.enableZoom_=!0,this.enableKeyControls=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.defaultFov=16,this.minFovFactor=.2,this.maxFovFactor=1.6,this.minFov=this.defaultFov*this.minFovFactor,this.maxFov=this.defaultFov*this.maxFovFactor,this.fovMultiplier_=1,this.enableDamping=!0,this.dampingFactor=.3,this.interactionEnabled=!1,this.userInteracted=!1,this.target=new Tn,this.panSphereCenter=new Tn,this.panSphereRadius=1/0,this.spherical=new Vc,this.goalSpherical=new Vc,this.fov=this.defaultFov,this.goalFov=this.defaultFov,this.panOffset=new Tn,this.lastPosition=new Tn,this.lastQuaternion=new Bn,this.lastTargetPosition=new Tn,this.lastFov=this.fov,this.changeSource=dp.NONE,this.panInProgress=!1,this.touchMode=null,this.pointers=[],this.startPointerPosition={clientX:0,clientY:0},this.lastSeparation=0,this.touchDecided=!1,this.passiveTouchHandler=()=>{},this.atMaxZoom_=!1,this.atMinZoom_=!1,this.onMaxZoomEnter=null,this.onMaxZoomLeave=null,this.onMinZoomEnter=null,this.onMinZoomLeave=null,this.atMinVerticalAngle_=!1,this.atMaxVerticalAngle_=!1,this.onMinVerticalAngleEnter=null,this.onMinVerticalAngleLeave=null,this.onMaxVerticalAngleEnter=null,this.onMaxVerticalAngleLeave=null,this.onPointerDown=e=>{if(this.pointers.length>2)return;const{element:t}=this;0===this.pointers.length&&(t.addEventListener("pointermove",this.onPointerMove),t.addEventListener("pointerup",this.onPointerUp),this.touchMode=null,this.touchDecided=!1,this.startPointerPosition.clientX=e.clientX,this.startPointerPosition.clientY=e.clientY);try{t.setPointerCapture(e.pointerId)}catch(e){}this.pointers.push({clientX:e.clientX,clientY:e.clientY,id:e.pointerId}),"touch"===e.pointerType?(this.changeSource=e.altKey?dp.AUTOMATIC:dp.USER_INTERACTION,this.onTouchChange()):(this.changeSource=dp.USER_INTERACTION,this.onMouseDown(e))},this.onPointerMove=e=>{const t=this.pointers.find(t=>t.id===e.pointerId);if(null==t)return;if("mouse"===e.pointerType&&0===e.buttons)return void this.onPointerUp(e);const n=this.pointers.length,i=(e.clientX-t.clientX)/n,r=(e.clientY-t.clientY)/n;0===i&&0===r||(t.clientX=e.clientX,t.clientY=e.clientY,"touch"===e.pointerType?(this.changeSource=e.altKey?dp.AUTOMATIC:dp.USER_INTERACTION,null!==this.touchMode&&this.touchMode(i,r)):(this.changeSource=dp.USER_INTERACTION,this.panInProgress?this.pan(i,r):this.handleSinglePointerMove(i,r)))},this.onPointerUp=e=>{const t=this.pointers.findIndex(t=>t.id===e.pointerId);-1!==t&&this.pointers.splice(t,1);const{element:n}=this;0===this.pointers.length?(n.removeEventListener("pointermove",this.onPointerMove),n.removeEventListener("pointerup",this.onPointerUp),n.removeEventListener("touchmove",this.disableScroll)):null!==this.touchMode&&this.onTouchChange(),n.style.cursor="grab",this.panInProgress=!1},this.onWheel=e=>{this.changeSource=dp.USER_INTERACTION;const t=e.deltaY*(1==e.deltaMode?18:1)*.2/30;this.userAdjustOrbit(0,0,t),e.preventDefault()},this.onKeyDown=e=>{const{changeSource:t}=this;this.changeSource=dp.USER_INTERACTION,(e.shiftKey&&this.enablePan?this.panKeyCodeHandler(e):this.orbitZoomKeyCodeHandler(e))?e.preventDefault():this.changeSource=t},this.disableScroll=e=>{e.preventDefault()},this.onContext=e=>{if(this.enablePan)e.preventDefault();else for(const e of this.pointers)this.onPointerUp(new PointerEvent("pointercancel",Object.assign(Object.assign({},this.startPointerPosition),{pointerId:e.id})))},this.onTouchChange=()=>{if(1===this.pointers.length)this.touchMode=this.touchModeRotate;else{if(!this.enableZoom_)return this.touchMode=null,void this.element.removeEventListener("touchmove",this.disableScroll);this.touchMode=this.touchDecided&&null===this.touchMode?null:this.touchModeZoom,this.touchDecided=!0,this.element.addEventListener("touchmove",this.disableScroll,{passive:!1}),this.lastSeparation=Cp(this.pointers[0],this.pointers[1]),this.enablePan&&null!=this.touchMode&&this.initializePan()}},this.onMouseDown=e=>{this.panInProgress=!1,this.enablePan&&(2===e.button||e.ctrlKey||e.metaKey||e.shiftKey)&&this.initializePan(),this.element.style.cursor="grabbing"},this.touchModeZoom=(e,t)=>{if(this.enableZoom_){const e=Cp(this.pointers[0],this.pointers[1]),t=.2*(this.lastSeparation-e)*35/this.element.clientHeight;this.lastSeparation=e,this.userAdjustOrbit(0,0,t)}this.panInProgress&&this.pan(e,t)},this.touchModeRotate=(e,t)=>{if(!this.touchDecided){this.touchDecided=!0;const n=Math.abs(e),i=Math.abs(t),r="pan-x"===this.touchAction_&&n>i,a="pan-y"===this.touchAction_&&i>n;if(this.changeSource===dp.USER_INTERACTION&&(r||a))return void(this.touchMode=null);this.element.addEventListener("touchmove",this.disableScroll,{passive:!1})}this.handleSinglePointerMove(e,t)},this.camera=e,this.element=t,this.quat=(new Bn).setFromUnitVectors(e.up,new Tn(0,1,0)),this.quatInverse=this.quat.clone().invert(),this.update(0)}set touchAction(e){this.touchAction_=null!=e?e:pp,this.updateTouchActionStyle()}set enableZoom(e){this.enableZoom_!=e&&(this.enableZoom_=e,e?this.element.addEventListener("wheel",this.onWheel):this.element.removeEventListener("wheel",this.onWheel),this.updateTouchActionStyle())}set minZoom(e){this.maxFovFactor=null!=e?1/e:1.6,this.maxFov=this.defaultFov*this.fovMultiplier_*this.maxFovFactor,this.fov=bp(this.fov,this.minFov,this.maxFov),this.goalFov=bp(this.goalFov,this.minFov,this.maxFov)}set maxZoom(e){this.minFovFactor=null!=e?1/e:.2,this.minFov=this.defaultFov*this.fovMultiplier_*this.minFovFactor,this.fov=bp(this.fov,this.minFov,this.maxFov),this.goalFov=bp(this.goalFov,this.minFov,this.maxFov)}set fovMultiplier(e){this.fovMultiplier_=e,this.fov=this.defaultFov*this.fovMultiplier_,this.goalFov=this.fov,this.minFov=this.fov*this.minFovFactor,this.maxFov=this.fov*this.maxFovFactor}reset(e,t,n,i,r){i||(this.fov=this.defaultFov*this.fovMultiplier_,this.goalFov=this.fov,this.minFov=this.fov*this.minFovFactor,this.maxFov=this.fov*this.maxFovFactor,this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Zt)/this.camera.aspect)*$t:this.fov,this.camera.updateProjectionMatrix()),r?vp.copy(this.target).sub(this.panSphereCenter).divideScalar(this.panSphereRadius):vp.set(0,0,0),this.panSphereCenter.set(e.x,e.y,e.z);const a=t/Math.tan(this.defaultFov/2*Zt);this.panSphereRadius=Math.min(t,a-t),vp.multiplyScalar(this.panSphereRadius);const o=e.clone().addScaledVector(n,a).add(vp);this.camera.position.set(o.x,o.y,o.z),this.target.set(e.x,e.y,e.z).add(vp),this.camera.lookAt(this.target),vp.copy(this.camera.position).sub(this.target),vp.applyQuaternion(this.quat),this.spherical.setFromVector3(vp),this.goalSpherical.copy(this.spherical),this.lastPosition.copy(this.camera.position),this.lastQuaternion.copy(this.camera.quaternion),this.lastTargetPosition.copy(this.target),this.lastFov=this.fov,this.userInteracted=!1}hasUserInteracted(){return this.userInteracted}update(e){this.spherical.theta+=(this.goalSpherical.theta-this.spherical.theta)*Math.min(gp*e,1),this.spherical.phi+=(this.goalSpherical.phi-this.spherical.phi)*Math.min(gp*e,1),this.spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this.spherical.phi)),this.spherical.makeSafe(),!0===this.enableDamping?this.target.addScaledVector(this.panOffset,this.dampingFactor):this.target.add(this.panOffset),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),vp.setFromSpherical(this.spherical),vp.applyQuaternion(this.quatInverse),this.camera.position.copy(this.target).add(vp),this.camera.lookAt(this.target),this.fov+=(this.goalFov-this.fov)*Math.min(gp*e,1),this.fov=bp(this.fov,this.minFov,this.maxFov),!0===this.enableDamping?this.panOffset.multiplyScalar(1-this.dampingFactor):this.panOffset.set(0,0,0),this.checkZoomLimits(),this.checkVerticalAngleLimits();let t=!1;const{aspect:n}=this.camera,i=this.element.clientWidth/this.element.clientHeight;i!==n&&(this.camera.aspect=i,t=!0);const r=Math.abs(this.lastFov-this.fov)>fp;return(t||r)&&(this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Zt)/this.camera.aspect)*$t:this.fov),this.camera.updateProjectionMatrix(),(this.lastPosition.distanceToSquared(this.camera.position)>fp||8*(1-this.lastQuaternion.dot(this.camera.quaternion))>fp||this.lastTargetPosition.distanceToSquared(this.target)>0||r)&&(this.dispatchEvent({type:"change"}),this.lastPosition.copy(this.camera.position),this.lastQuaternion.copy(this.camera.quaternion),this.lastTargetPosition.copy(this.target),this.lastFov=this.fov,t=!0),this.userInteracted=!1,t}getPose(e){return e.copy(this.camera.position),e.sub(this.target),e.normalize(),e}getTheta(){const e=this.camera.position;return vp.copy(e).sub(this.target),vp.applyQuaternion(this.quat),this.spherical.setFromVector3(vp),this.spherical.theta}adjustZoom(e){this.enableZoom_&&(this.goalFov=bp(this.goalFov*Math.pow(2,-e),this.minFov,this.maxFov),this.userInteracted=!0)}adjustOrbit(e,t){this.goalSpherical.theta+=e,this.goalSpherical.phi+=t,this.goalSpherical.makeSafe(),this.userInteracted=!0}set(e,t,n){return null!=e&&this.setTheta(e),null!=t&&this.setPhi(t),null!=n&&this.setFovRadians(n),null!=e||null!=t||null!=n}setTheta(e){const t=this.camera.position;vp.copy(t).sub(this.target),vp.applyQuaternion(this.quat),this.spherical.setFromVector3(vp),this.spherical.theta=e,this.spherical.makeSafe(),this.goalSpherical.copy(this.spherical),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),vp.setFromSpherical(this.spherical),vp.applyQuaternion(this.quatInverse),t.copy(this.target).add(vp),this.camera.lookAt(this.target),this.lastPosition.copy(t),this.lastQuaternion.copy(this.camera.quaternion),this.camera.updateProjectionMatrix()}setPhi(e){const t=this.camera.position;vp.copy(t).sub(this.target),vp.applyQuaternion(this.quat),this.spherical.setFromVector3(vp),this.spherical.phi=e,this.spherical.makeSafe(),this.goalSpherical.copy(this.spherical),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),vp.setFromSpherical(this.spherical),vp.applyQuaternion(this.quatInverse),t.copy(this.target).add(vp),this.camera.lookAt(this.target),this.lastPosition.copy(t),this.lastQuaternion.copy(this.camera.quaternion),this.camera.updateProjectionMatrix()}setFovRadians(e){this.fov=bp(e*this.fovMultiplier_*$t,this.minFov,this.maxFov),this.goalFov=this.fov,this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Zt)/this.camera.aspect)*$t:this.fov,this.lastFov=this.fov}setInteractionEnabled(e){e?this.enableInteraction():this.disableInteraction()}enableInteraction(){if(!1===this.interactionEnabled){const{element:e}=this;e.addEventListener("pointerdown",this.onPointerDown),e.addEventListener("pointercancel",this.onPointerUp),this.enableZoom_&&e.addEventListener("wheel",this.onWheel),this.enableKeyControls&&(e.tabIndex=1,e.addEventListener("keydown",this.onKeyDown)),e.addEventListener("touchmove",this.passiveTouchHandler,{passive:!1}),e.addEventListener("contextmenu",this.onContext),e.style.cursor="grab",this.interactionEnabled=!0,this.updateTouchActionStyle()}}disableInteraction(){if(!0===this.interactionEnabled){const{element:e}=this;e.removeEventListener("pointerdown",this.onPointerDown),e.removeEventListener("pointermove",this.onPointerMove),e.removeEventListener("pointerup",this.onPointerUp),e.removeEventListener("pointercancel",this.onPointerUp),e.removeEventListener("wheel",this.onWheel),e.tabIndex=-1,e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("touchmove",this.passiveTouchHandler),e.removeEventListener("touchmove",this.disableScroll),e.removeEventListener("contextmenu",this.onContext),e.style.cursor="",this.touchMode=null,this.interactionEnabled=!1,this.updateTouchActionStyle()}}dispose(){this.disableInteraction(),this.pointers.length=0}orbitZoomKeyCodeHandler(e){let t=!0;switch(e.key){case"PageUp":this.userAdjustOrbit(0,0,.2);break;case"PageDown":this.userAdjustOrbit(0,0,-.2);break;case"ArrowUp":this.userAdjustOrbit(0,-mp,0);break;case"ArrowDown":this.userAdjustOrbit(0,mp,0);break;case"ArrowLeft":this.userAdjustOrbit(-mp,0,0);break;case"ArrowRight":this.userAdjustOrbit(mp,0,0);break;default:t=!1}return t}panKeyCodeHandler(e){this.initializePan();let t=!0;switch(e.key){case"ArrowUp":this.pan(0,10);break;case"ArrowDown":this.pan(0,-10);break;case"ArrowLeft":this.pan(10,0);break;case"ArrowRight":this.pan(-10,0);break;default:t=!1}return t}initializePan(){this.panInProgress=!0}pan(e,t){const n=this.element,i=this.camera.position;vp.copy(i).sub(this.target);let r=vp.length();r*=Math.tan(this.camera.fov/2*Math.PI/180),this.panLeft(2*e*r/n.clientHeight,this.camera.matrix),this.panUp(2*t*r/n.clientHeight,this.camera.matrix)}panLeft(e,t){vp.setFromMatrixColumn(t,0),vp.multiplyScalar(-e),this.panOffset.add(vp)}panUp(e,t){!0===this.screenSpacePanning?vp.setFromMatrixColumn(t,1):(vp.setFromMatrixColumn(t,0),vp.crossVectors(this.camera.up,vp)),vp.multiplyScalar(e),this.panOffset.add(vp)}handleSinglePointerMove(e,t){const n=this.pixelLengthToSphericalAngle(e),i=this.pixelLengthToSphericalAngle(t);this.userAdjustOrbit(n,i,0)}userAdjustOrbit(e,t,n){this.goalSpherical.theta+=.5*e*this.fovMultiplier_,this.goalSpherical.phi+=.5*t*this.fovMultiplier_,this.goalSpherical.makeSafe();const i=bp(Math.pow(Math.sqrt(this.fov)+n,2),this.minFov,this.maxFov);this.fov=i,this.goalFov=i,this.userInteracted=!0}pixelLengthToSphericalAngle(e){return-2*Math.PI*e/Math.min(this.element.clientHeight,this.element.clientWidth)}checkZoomLimits(){var e,t,n,i;const r=this.goalFov<=this.minFov+fp,a=this.goalFov>=this.maxFov-fp;r!==this.atMaxZoom_&&(this.atMaxZoom_=r,r?null===(e=this.onMaxZoomEnter)||void 0===e||e.call(this):null===(t=this.onMaxZoomLeave)||void 0===t||t.call(this)),a!==this.atMinZoom_&&(this.atMinZoom_=a,a?null===(n=this.onMinZoomEnter)||void 0===n||n.call(this):null===(i=this.onMinZoomLeave)||void 0===i||i.call(this))}checkVerticalAngleLimits(){var e,t,n,i;const r=this.goalSpherical.phi<=this.minPolarAngle+fp,a=this.goalSpherical.phi>=this.maxPolarAngle-fp;r!==this.atMinVerticalAngle_&&(this.atMinVerticalAngle_=r,r?null===(e=this.onMinVerticalAngleEnter)||void 0===e||e.call(this):null===(t=this.onMinVerticalAngleLeave)||void 0===t||t.call(this)),a!==this.atMaxVerticalAngle_&&(this.atMaxVerticalAngle_=a,a?null===(n=this.onMaxVerticalAngleEnter)||void 0===n||n.call(this):null===(i=this.onMaxVerticalAngleLeave)||void 0===i||i.call(this))}updateTouchActionStyle(){const{style:e}=this.element;this.interactionEnabled?this.enableZoom_?e.touchAction=this.touchAction_:e.touchAction="manipulation":e.touchAction=""}}function bp(e,t,n){return Math.max(t,Math.min(n,e))}function Cp(e,t){const{clientX:n,clientY:i}=e,{clientX:r,clientY:a}=t,o=r-n,s=a-i;return Math.sqrt(o*o+s*s)}const _p=new Map;let Ip=null;function xp(){Xu().setAnimationLoop(yp)}function yp(e){!function(){for(const e of _p.values())e.prepareResize()}(),function(e){for(const t of _p.values())t.update(e)}(e);let t=function(){let e=null;for(const t of _p.values())if(t.needsRender){if(null!=e)return null;e=t}return e}();null!=Ip&&t!==Ip&&(Ip.ensureBlittedMode(),t=null),Ip=t,0!==function(){let e=0;for(const t of _p.values())t.needsRender&&e++;return e}()&&(null!=t?(t.ensureDirectMode(),Mp(),Zu(t.width,t.height),wp()):(function(){for(const e of _p.values())e.needsRender&&e.ensureBlittedMode()}(),Mp(),Zu(function(){let e=0;for(const t of _p.values())t.needsRender&&(e=Math.max(e,t.width));return e}(),function(){let e=0;for(const t of _p.values())t.needsRender&&(e=Math.max(e,t.height));return e}()),wp()))}function Mp(){for(const e of _p.values())e.commitResize()}function wp(){for(const e of _p.values())e.render()}function Sp(){let e=null,t=null;return{reset:()=>{e=Z([{time:0,value:0,interpolation:lp},{time:op,value:1,interpolation:lp},{time:2300,value:0,interpolation:lp},{time:4300,value:0,interpolation:lp}]),t=Z([{time:0,value:0,interpolation:lp},{time:op,value:0,interpolation:Ap},{time:800,value:-.05,interpolation:cp},{time:1800,value:.05,interpolation:hp},{time:2300,value:0,interpolation:lp},{time:4300,value:0,interpolation:lp}])},clear:()=>{e=null,t=null},update:n=>{null==e||e.update(n),null==t||t.update(n)},get visibility(){return null==e?void 0:e.get()},get position(){return null==t?void 0:t.get()}}}const Bp=2e3,Tp=2*Math.PI,Rp=Tp/12,Dp=Tp/60,Qp=Tp/60;function Lp(e){return Z([{time:0,value:0,interpolation:{type:"bezier",x1:.9,y1:0,x2:.6,y2:1}},{time:Bp,value:e,interpolation:{type:"hold"}}])}function Up(e,t,n){return-1*Rp*(e%12+t/60+n/3600)}function Pp(e,t){return-1*Dp*(e+t/60)}function Np(e,t){return-1*Qp*(e+t/1e3)}function Fp(e,t){let n,i,r,a,o,s,l,c,h,A,u,d,p,f=!1,g=null,m=new Tn(1,0,0),v=!1,E=!1,b=!1,C=!0,_=!1,I=!1,x=4,y=1,M=!0,w=!1,S=null,B=!1,T=!1,R=!1,D=0,Q=0,L=0,U=0,P=0;const N={get paused(){return C},get needsRender(){return!(!f||C)&&_},ensureDirectMode:()=>{e.isDirect()||(_=!0),e.ensureDirectMode()},ensureBlittedMode:()=>{e.isBlitted()||(_=!0),e.ensureBlittedMode()},update:t=>{if(w||!f||C||null==o||!function(e){const t=e.getBoundingClientRect();return t.bottom>0&&t.top<Math.max(document.documentElement.clientHeight,window.innerHeight)&&t.right>0&&t.left<Math.max(document.documentElement.clientWidth,window.innerWidth)}(e.element))return;let n=0!==P?t-P:0;P=t,0===U?_=!0:U<3&&(n=0),U++,B||(a.hasUserInteracted()?(B=!0,u.running=!1,d.clear(),I=!0):(u.update(n),d.update(n),u.running&&a.set(u.theta,u.phi,u.fov)&&(_=!0),null==d.visibility&&null==d.position||(I=!0))),a.update(n)&&(_=!0,T=!0),0!==n&&p.update()&&(_=!0)},render:()=>{if(!w&&f&&!C){if(_){if(Ju(n,e,!E&&!n.bloomEnabled||b?0:1,x,y),_=!1,!R&&null!=S&&T&&B){const e=performance.now();L>0&&(D++,Q+=e-L),L=e,Q>=2e3&&(R=!0,S({fps:D/Q*1e3}))}else L=0;T=!1,null==h||h()}I&&(t.visible=M&&!B,null!=d.visibility&&(t.opacity=`${d.visibility}`),null!=d.position&&(t.transform=`translateX(${d.position*Math.min(e.width,e.height)}px)`),I=!1)}},get width(){return e.element.clientWidth},get height(){return e.element.clientHeight},prepareResize:()=>{const{clientWidth:t,clientHeight:n}=e.element;e.clientWidth=t,e.clientHeight=n,e.dpr=Yu,e.sizeDirty&&(_=!0)},commitResize:()=>{e.commitResize()}},F=(e,t)=>{const n=l.min.clone().add(l.max).divideScalar(2),i=Math.sqrt(function(e,t){let n=0;const i=new Tn;return e.updateWorldMatrix(!0,!0),e.traverseVisible(e=>{const{geometry:r}=e;if(void 0!==r){const{position:a}=r.attributes;if(void 0!==a)for(let r=0,o=a.count;r<o;r++)e.isMesh?e.getVertexPosition(r,i):i.fromBufferAttribute(a,r),e.isSkinnedMesh||i.applyMatrix4(e.matrixWorld),n=t(n,i)}}),n}(e,(e,t)=>Math.max(e,n.distanceToSquared(t))));a.reset(n,i,t?a.getPose(new Tn):m,t,t),null!=u&&(u.reset(a.getTheta()),a.set(u.theta,u.phi,u.fov))},O={init:()=>{f||(function(e,t){_p.set(e,t),1===_p.size&&(Ku(),ap||(np=new Ms,np.userData.darkness={value:1},np.onBeforeCompile=e=>{e.uniforms.darkness=np.userData.darkness;const t=e.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );","gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );");e.fragmentShader=`uniform float darkness;\n${t}`},np.depthTest=!1,np.depthWrite=!1,ip=new kr(ep),ip.depthTest=!1,rp=new kr(tp),rp.depthTest=!1,ap=!0))}(e.element,N),i=new Xs,r=new Wr(25,1,.5),a=new Ep(r,e.element),a.setInteractionEnabled(M),n=new $d(i,r),c=function(e){let t,n,i,r,a,o,s,l,c=!1;function h(e){s.visible=!0,ip.uniforms.tDiffuse.value=t.texture,ip.uniforms.h.value=1*e/256,s.material=ip;const i=Xu();i.setRenderTarget(n),i.render(s,l),rp.uniforms.tDiffuse.value=n.texture,rp.uniforms.v.value=1*e/256,s.material=rp,i.setRenderTarget(t),i.render(s,l),s.visible=!1}return{init:()=>{c||(t=new Mn(512,512),t.texture.generateMipmaps=!1,n=new Mn(512,512),n.texture.generateMipmaps=!1,i=new Qs,i.position.y=-.7,r=new aa(45,45).rotateX(Math.PI/2),a=new $i({map:t.texture,opacity:.5,transparent:!0,depthWrite:!1,userData:{[Vd]:!0,[Wd]:!0}}),o=new Qr(r,a),o.renderOrder=1,o.scale.y=-1,i.add(o),s=new Qr(r),s.visible=!1,i.add(s),l=new va(-22.5,22.5,22.5,-22.5,0,3),l.rotation.x=Math.PI/2,i.add(l),c=!0)},destroy:()=>{c&&(l=null,s.clear(),s=null,o.clear(),o=null,rd(a),a=null,r.dispose(),r=null,i.clear(),i=null,n.dispose(),n=null,t.dispose(),t=null,c=!1)},get group(){return i},render:()=>{const n=e.background;e.background=null,e.overrideMaterial=np;const i=Xu(),r=i.getClearAlpha();i.setClearAlpha(0),i.setRenderTarget(t),i.render(e,l),e.overrideMaterial=null,h(1.5),h(.4*1.5),i.setRenderTarget(null),i.setClearAlpha(r),e.background=n}}}(i),c.init(),u=up(),d=Sp(),p=function(){let e,t,n,i,r=!1,a=null;return{clear:()=>{r=!1,e=void 0,t=void 0,n=void 0,a=null},reset:i=>{r=!0,e=i.getObjectByName("hours"),t=i.getObjectByName("minutes"),n=i.getObjectByName("seconds"),a=function(e,t,n){let i,r,a,o,s=!1,l=!1;return{update:c=>{if(!s){i=new Date(c),i.setMilliseconds(i.getMilliseconds()+Bp);const e=i.getHours(),t=i.getMinutes(),n=i.getSeconds(),l=i.getMilliseconds();r=Lp(Up(e,t,n)),a=Lp(Pp(t,n)),o=Lp(Np(n,l)),s=!0}if(l)return;const h=i.getTime()-c.getTime(),A=Bp-h;h<=0?l=!0:(null!=e&&(r.seek(A),e.rotation.y=r.get()),null!=t&&(a.seek(A),t.rotation.y=a.get()),null!=n&&(o.seek(A),n.rotation.y=o.get()))},get done(){return l}}}(e,t,n)},update:()=>{if(!r)return!1;const o=new Date;if(null==i&&(i=new Date),null!=a){if(a.update(o),!a.done)return i=o,!0;a=null}if(Math.abs(o.getTime()-i.getTime())<125)return!1;const s=o.getHours(),l=o.getMinutes(),c=o.getSeconds(),h=o.getMilliseconds();return null!=e&&(e.rotation.y=Up(s,l,c)),null!=t&&(t.rotation.y=Pp(l,c)),null!=n&&(n.rotation.y=Np(c,h)),i=o,!0}}}(),f=!0)},destroy:()=>{var t;f&&(null===(t=i.environment)||void 0===t||t.dispose(),i.environment=null,p=null,d=null,u=null,c.destroy(),c=null,n.dispose(),n=null,null!=A&&a.removeEventListener("change",A),A=null,a.dispose(),a=null,r=null,ld(i),i=null,function(e){_p.delete(e),0===_p.size&&(ap&&(rd(rp),rp=null,rd(ip),ip=null,rd(np),np=null,ap=!1),Ip=null,Wu&&(zu.dispose(),zu=null,Vu=null,qu=1,ju=1,Yu=1,Wu=!1))}(e.element),f=!1)},set gltfScene(e){o=e,ld(i),null!=o&&(i.add(o),this.isDiamondScene&&$u(o,s),l=(new Qn).setFromObject(o),c.group.position.y=l.min.y-0,i.add(c.group),c.render(),E=function(e){let t=!1;return e.traverse(e=>{if(!t&&e instanceof Qr){const n=e.material;Array.isArray(n)?n.forEach(e=>{e.transmission>0&&(t=!0)}):n.transmission>0&&(t=!0)}}),t}(i),F(o,v&&B),u.reset(a.getTheta()),d.reset(),p.clear(),"Watches"===g&&p.reset(o),C||xp()),U=0,_=!0},get isDiamondScene(){var e;return!!(null===(e=null==o?void 0:o.userData)||void 0===e?void 0:e.isDiamondScene)},set environment(e){var t;null===(t=i.environment)||void 0===t||t.dispose(),i.environment=e},set diamondEnvironment(e){s=e,this.isDiamondScene&&null!=o&&$u(o,e)},set environmentRotation(e){i.environmentRotation.y=e*Math.PI/180,_=!0},updateOnce:e=>{f&&!C&&(B||(u.update(e),u.running&&a.set(u.theta,u.phi,u.fov)&&(_=!0)),0!==e&&p.update()&&(_=!0))},renderOnce:()=>{N.prepareResize(),N.ensureBlittedMode(),N.commitResize(),Zu(N.width,N.height),B||a.set(u.theta,u.phi,u.fov),Ju(n,e,!E&&!n.bloomEnabled||b?0:1,x,y),null==h||h()},get category(){return g},set category(e){g=e},set initialPose(e){m=e},set toneMapping(e){const t={ACES:4,Linear:1,Neutral:7};null!=t[e]&&(x=t[e]),_=!0},set toneMappingExposure(e){y=e,_=!0},set paused(e){e?(C=!0,a.setInteractionEnabled(!1),function(){for(const{paused:e}of _p.values())if(!e)return!1;return!0}()&&Xu().setAnimationLoop(null),t.opacity="0",t.visible=!1):(C=!1,a.setInteractionEnabled(M),null!=o&&(F(o,!1),_=!0,xp()),P=0)},set interactive(e){M=e,a.setInteractionEnabled(e)},set touchAction(e){a.touchAction=e},set zoomEnabled(e){a.enableZoom=e},set minZoom(e){a.minZoom=e},set maxZoom(e){a.maxZoom=e},set preserveCameraOnReload(e){v=e},set forcedTransparency(e){b=e,_=!0},set defaultFov(e){a.defaultFov=e},set fovMultiplier(e){a.fovMultiplier=e,_=!0},set bloomEnabled(e){n.bloomEnabled=e,_=!0},set bloomStrength(e){n.bloomStrength=e,_=!0},set bloomRadius(e){n.bloomRadius=e,_=!0},set bloomThreshold(e){n.bloomThreshold=e,_=!0},set nonLiveRendering(e){w=e},set onRendered(e){h=e},set onInteracted(e){null!=A&&a.removeEventListener("change",A),A=e,null!=e&&a.addEventListener("change",e)},set onInteractionPerf(e){S=e},set onMaxZoomEnter(e){a.onMaxZoomEnter=e},set onMaxZoomLeave(e){a.onMaxZoomLeave=e},set onMinZoomEnter(e){a.onMinZoomEnter=e},set onMinZoomLeave(e){a.onMinZoomLeave=e},set onMinVerticalAngleEnter(e){a.onMinVerticalAngleEnter=e},set onMinVerticalAngleLeave(e){a.onMinVerticalAngleLeave=e},set onMaxVerticalAngleEnter(e){a.onMaxVerticalAngleEnter=e},set onMaxVerticalAngleLeave(e){a.onMaxVerticalAngleLeave=e},zoomBy:e=>{f&&!C&&(a.adjustZoom(e),_=!0)},rotateBy:(e,t)=>{f&&!C&&(a.adjustOrbit(-e*Math.PI/180,t*Math.PI/180),_=!0)},setAnimationConfig:e=>{u.set(e),null!=o&&F(o,!0),u.custom||(u.reset(a.getTheta()),d.reset()),_=!0}};return O}function Op(e){return t=>k(this,void 0,void 0,function*(){try{yield t()}catch(t){e(t)}})}const kp={initialized:!1,paused:!1,posterUrl:null,glbUrl:null,envUrl:null,diamondEnvUrl:null,envRotation:null,toneMapping:null,toneMappingExposure:null,bloomEnabled:null,bloomStrength:null,bloomRadius:null,bloomThreshold:null,category:null,glbLocal:!1,interactive:!1,touchAction:null,zoomEnabled:!1,minZoom:null,maxZoom:null,preserveCameraOnReload:!1,alwaysTransparentBackground:!1,defaultFov:null,fovMultiplier:null,defaultCameraPositions:null,interactionPromptUrl:null,interactionPromptSize:null,nonLiveRendering:null,baseUrl:null,downloadCacheEnabled:!1,onModelLoaded:null,onRendered:null,onInteracted:null,onInteractionPerf:null,onMaxZoomEnter:null,onMaxZoomLeave:null,onMinZoomEnter:null,onMinZoomLeave:null,onMinVerticalAngleEnter:null,onMinVerticalAngleLeave:null,onMaxVerticalAngleEnter:null,onMaxVerticalAngleLeave:null,animation:null,thetaAnimation:null,phiAnimation:null,fovAnimation:null};function Gp(e,t){const n=e,i=t,r=Fp(i.canvasWrapper,i.prompt),a=function(){const e=Object.assign({},Xc);return{set vectors(t){for(const i of Object.keys(e)){if(!Yc(i))continue;const r=null==t?void 0:t[i];e[i]=null!=r?new Tn((n=r)[0],n[1],n[2]):Xc[i]}var n},getVector:t=>{var n;return(null==t?e.Glasses:null!==(n=e[t])&&void 0!==n?n:e.Glasses).normalize()}}}();let o=()=>{};const s=[],l=new Mh;let c,h,A,u,d,p,f,g,m,v,E,b,C,_,I,x;l.setOnProgress(e=>{i.loading.progress=e,e>0&&(i.loading.visible=!0)});const y=function(){const e=Object.keys(kp).reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:0}),{});return t=>{const n=++e[t];return()=>n!==e[t]}}(),M=function(){const e=Object.keys(kp).reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:!1}),{});return{lock:t=>{e[t]=!0},unlock:t=>{e[t]=!1},anyLocked:()=>Object.values(e).some(e=>e),locks_:e}}(),w=function(e,t){return n=>{t.length>0?(t.forEach(e=>e.reject(n)),t.length=0):e.onError?e.onError(n):console.error(n)}}(n,s),S=function(e,t){return(n,i)=>k(this,void 0,void 0,function*(){const r=Op(t),a=function(e,t){const n=e(t);return e=>k(this,void 0,void 0,function*(){yield e(n)})}(e,n);yield r(()=>a(i))})}(y,w),B=function(e,t,n,i){return(r,a)=>k(this,void 0,void 0,function*(){const o=function(e,t){return n=>k(this,void 0,void 0,function*(){e.lock(t),yield n(),e.unlock(t)})}(e,r),s=Op(i),l=function(e,t,n,i){const r=t(i);return t=>k(this,void 0,void 0,function*(){yield Promise.resolve(),r()||(yield t(r))&&(e.unlock(i),e.anyLocked()||n())})}(e,t,n,r);yield o(()=>s(()=>l(a)))})}(M,y,()=>{void 0!==E&&(r.category=E,r.initialPose=a.getVector(null!=E?E:Kc)),void 0!==c&&(r.gltfScene=c),void 0!==h&&(r.environment=h),void 0!==A&&(r.diamondEnvironment=A),void 0!==u&&(r.environmentRotation=null!=u?u:0),void 0!==f&&(r.bloomEnabled=null!=f&&f),void 0!==g&&(r.bloomStrength=null!=g?g:.25),void 0!==m&&(r.bloomRadius=null!=m?m:0),void 0!==v&&(r.bloomThreshold=null!=v?v:2),null==o||o(),void 0!==x&&r.setAnimationConfig(x),void 0!==d&&(r.toneMapping=null!=d?d:"Neutral"),void 0!==p&&(r.toneMappingExposure=null!=p?p:1),void 0!==b&&(r.forcedTransparency=b),void 0!==C&&(r.onRendered=C),void 0!==_&&(r.onInteracted=_),void 0!==I&&(r.onInteractionPerf=I),r.renderOnce(),i.canvasVisible=!0,i.posterVisible=!1,i.loading.visible=!1,s.forEach(e=>e.resolve()),s.length=0,c=void 0,h=void 0,A=void 0,d=void 0,p=void 0,E=void 0,b=void 0,C=void 0,_=void 0,I=void 0},w);return n.onInitializedChange=e=>S("initialized",t=>k(this,void 0,void 0,function*(){e?(r.init(),r.paused=n.paused):r.destroy()})),n.onPausedChange=e=>S("paused",t=>k(this,void 0,void 0,function*(){r.paused=e})),n.onPosterUrlChange=e=>S("posterUrl",t=>k(this,void 0,void 0,function*(){i.loadPoster(e),i.posterVisible=M.anyLocked(),i.canvasVisible=!M.anyLocked()})),n.onGlbUrlChange=t=>B("glbUrl",r=>k(this,void 0,void 0,function*(){if(r()||!n.initialized)return!1;if(null!=t)if(id(),"string"==typeof t){null!=n.posterUrl&&(i.posterVisible=!0,i.canvasVisible=!1);const a=255,o=Hp(e.glbLocal)?new Uint8Array(yield Eh(t,l,n.downloadCacheEnabled)):yield bh(t,(new Date).getTime()+a,Math.random()*a,l,n.downloadCacheEnabled);if(r()||!n.initialized)return!1;const s=yield nd(o);if(r()||!n.initialized)return!1;c=s.scene}else{const i=255,a=Hp(e.glbLocal,"left")?Eh(t.left,l,n.downloadCacheEnabled).then(e=>new Uint8Array(e)):bh(t.left,(new Date).getTime()+i,Math.random()*i,l,n.downloadCacheEnabled),o=Hp(e.glbLocal,"right")?Eh(t.right,l,n.downloadCacheEnabled).then(e=>new Uint8Array(e)):bh(t.right,(new Date).getTime()+i,Math.random()*i,l,n.downloadCacheEnabled),s=yield a;if(r()||!n.initialized)return!1;const h=yield o;if(r()||!n.initialized)return!1;const A=(yield nd(s)).scene;if(r()||!n.initialized)return!1;const u=(yield nd(h)).scene;if(r()||!n.initialized)return!1;c=function(e,t){const n=new Qs,i=sd(e).getSize(new Tn),r=sd(t).getSize(new Tn),a=.075*Math.max(i.z,r.z),o=ad(e,a,!1,void 0,new Bn(0,0,0,1));e.position.set(o.x,o.y,o.z);const s=ad(t,a,!0,void 0,new Bn(0,0,0,1));return t.position.set(s.x,s.y,s.z),n.add(e,t),n}(A,u)}else c=null;return!0})),n.onEnvUrlChange=e=>B("envUrl",t=>k(this,void 0,void 0,function*(){if(t()||!n.initialized)return!1;if(null!=e){const i=yield Eh(e,l,n.downloadCacheEnabled);if(t()||!n.initialized)return!1;h=aA(i)}else h=null;return!0})),n.onDiamondEnvUrlChange=e=>B("diamondEnvUrl",t=>k(this,void 0,void 0,function*(){if(t()||!n.initialized)return!1;if(null!=e){const i=yield Eh(e,l,n.downloadCacheEnabled);if(t()||!n.initialized)return!1;A=aA(i)}else A=null;return!0})),n.onEnvRotationChange=e=>B("envRotation",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(u=e,0))})),n.onToneMappingChange=e=>B("toneMapping",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(d=e,0))})),n.onToneMappingExposureChange=e=>B("toneMappingExposure",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(p=e,0))})),n.onBloomEnabledChange=e=>B("bloomEnabled",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(f=e,0))})),n.onBloomStrengthChange=e=>B("bloomStrength",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(g=e,0))})),n.onBloomRadiusChange=e=>B("bloomRadius",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(m=e,0))})),n.onBloomThresholdChange=e=>B("bloomThreshold",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(v=e,0))})),n.onCategoryChange=e=>B("category",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(E=e,0))})),n.onInteractiveChange=e=>S("interactive",t=>k(this,void 0,void 0,function*(){r.interactive=e})),n.onTouchActionChange=e=>S("touchAction",t=>k(this,void 0,void 0,function*(){r.touchAction=e})),n.onZoomEnabledChange=e=>S("zoomEnabled",t=>k(this,void 0,void 0,function*(){r.zoomEnabled=e})),n.onMinZoomChange=e=>S("minZoom",t=>k(this,void 0,void 0,function*(){r.minZoom=e})),n.onMaxZoomChange=e=>S("maxZoom",t=>k(this,void 0,void 0,function*(){r.maxZoom=e})),n.onPreserveCameraOnReloadChange=e=>S("preserveCameraOnReload",t=>k(this,void 0,void 0,function*(){r.preserveCameraOnReload=e})),n.onAlwaysTransparentBackgroundChange=e=>B("alwaysTransparentBackground",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(b=e,0))})),n.onDefaultFovChange=e=>S("defaultFov",t=>k(this,void 0,void 0,function*(){r.defaultFov=null!=e?e:16})),n.onFovMultiplierChange=e=>S("fovMultiplier",t=>k(this,void 0,void 0,function*(){r.fovMultiplier=null!=e?e:1})),n.onDefaultCameraPositionsChange=e=>S("defaultCameraPositions",t=>k(this,void 0,void 0,function*(){var t;a.vectors=e,r.initialPose=a.getVector(null!==(t=r.category)&&void 0!==t?t:Kc)})),n.onInteractionPromptUrlChange=e=>S("interactionPromptUrl",t=>k(this,void 0,void 0,function*(){i.prompt.imageUrl=e})),n.onInteractionPromptSizeChange=e=>S("interactionPromptSize",t=>k(this,void 0,void 0,function*(){i.prompt.imageSize=e})),n.onNonLiveRenderingChange=e=>S("nonLiveRendering",t=>k(this,void 0,void 0,function*(){r.nonLiveRendering=!!e})),n.onBaseUrlChange=e=>S("baseUrl",t=>k(this,void 0,void 0,function*(){Ou(e)})),n.onOnModelLoadedChange=e=>S("onModelLoaded",t=>k(this,void 0,void 0,function*(){o=e})),n.onOnRenderedChange=e=>B("onRendered",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(C=e,0))})),n.onOnInteractedChange=e=>B("onInteracted",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(_=e,0))})),n.onOnInteractionPerfChange=e=>B("onInteractionPerf",t=>k(this,void 0,void 0,function*(){return!(t()||!n.initialized||(I=e,0))})),n.onOnMaxZoomEnterChange=e=>S("onMaxZoomEnter",t=>k(this,void 0,void 0,function*(){r.onMaxZoomEnter=e})),n.onOnMaxZoomLeaveChange=e=>S("onMaxZoomLeave",t=>k(this,void 0,void 0,function*(){r.onMaxZoomLeave=e})),n.onOnMinZoomEnterChange=e=>S("onMinZoomEnter",t=>k(this,void 0,void 0,function*(){r.onMinZoomEnter=e})),n.onOnMinZoomLeaveChange=e=>S("onMinZoomLeave",t=>k(this,void 0,void 0,function*(){r.onMinZoomLeave=e})),n.onOnMinVerticalAngleEnterChange=e=>S("onMinVerticalAngleEnter",t=>k(this,void 0,void 0,function*(){r.onMinVerticalAngleEnter=e})),n.onOnMinVerticalAngleLeaveChange=e=>S("onMinVerticalAngleLeave",t=>k(this,void 0,void 0,function*(){r.onMinVerticalAngleLeave=e})),n.onOnMaxVerticalAngleEnterChange=e=>S("onMaxVerticalAngleEnter",t=>k(this,void 0,void 0,function*(){r.onMaxVerticalAngleEnter=e})),n.onOnMaxVerticalAngleLeaveChange=e=>S("onMaxVerticalAngleLeave",t=>k(this,void 0,void 0,function*(){r.onMaxVerticalAngleLeave=e})),n.onAnimationChange=e=>B("animation",t=>k(this,void 0,void 0,function*(){if(t()||!n.initialized)return!1;if(null==e)return x={theta:null,phi:null,fov:null},!0;const i=oe(e);return x={theta:null!=i.theta?Z(i.theta):null,phi:null!=i.phi?Z(i.phi):null,fov:null!=i.fov?Z(i.fov):null},!0})),{render:e=>{r.updateOnce(e),r.renderOnce()},flushChanges:()=>new Promise((e,t)=>{M.anyLocked()?s.push({resolve:e,reject:t}):e()}),zoomBy:e=>{r.zoomBy(e)},rotateBy:(e,t)=>{r.rotateBy(e,t)}}}function Hp(e,t){if(null==t){if("boolean"==typeof e)return e;const t=e.left||e.right;return console.warn(`Expected 'glbLocal' to be boolean, but got object (treating as ${t}).`),t}return"boolean"==typeof e?e:e[t]}var zp,Vp,Wp,qp,jp,Yp,Xp,Kp,Jp,Zp,$p,ef;!function(e){e[e.Empty=0]="Empty",e[e.Direct=1]="Direct",e[e.Blitted=2]="Blitted"}(ef||(ef={}));class tf{constructor(){zp.add(this),Vp.set(this,document.createElement("div")),Wp.set(this,ef.Empty),qp.set(this,null),jp.set(this,1),Yp.set(this,1),Xp.set(this,1),Kp.set(this,1),Jp.set(this,1),Zp.set(this,!1);const{style:e}=G(this,Vp,"f");e.position="absolute",e.top="0",e.left="0",e.width="100%",e.height="100%",e.pointerEvents="auto"}get element(){return G(this,Vp,"f")}isDirect(){return G(this,Wp,"f")===ef.Direct}ensureDirectMode(){if(G(this,Wp,"f")===ef.Direct)return;H(this,Wp,ef.Direct);const e=Xu().domElement;document.contains(e)&&console.warn("[ShopAR 3D] Direct rendering not working properly!"),G(this,Vp,"f").replaceChildren(e),H(this,qp,null),H(this,Zp,!0)}isBlitted(){return G(this,Wp,"f")===ef.Blitted}ensureBlittedMode(){G(this,Wp,"f")!==ef.Blitted&&(H(this,Wp,ef.Blitted),H(this,qp,function(){const e=document.createElement("canvas"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",e}()),G(this,Vp,"f").replaceChildren(G(this,qp,"f")),H(this,Zp,!0))}set visible(e){G(this,Vp,"f").style.visibility=e?"visible":"hidden"}get width(){return G(this,Xp,"f")}get height(){return G(this,Kp,"f")}set clientWidth(e){e!==G(this,jp,"f")&&H(this,Zp,!0),H(this,jp,e)}set clientHeight(e){e!==G(this,Yp,"f")&&H(this,Zp,!0),H(this,Yp,e)}get dpr(){return G(this,Jp,"f")}set dpr(e){e!==this.dpr&&H(this,Zp,!0),H(this,Jp,e)}get sizeDirty(){return G(this,Zp,"f")}commitResize(){if(!G(this,Zp,"f"))return;H(this,Zp,!1);const e=G(this,zp,"m",$p).call(this);null!=e&&(H(this,Xp,Math.ceil(G(this,jp,"f")*G(this,Jp,"f"))),H(this,Kp,Math.ceil(G(this,Yp,"f")*G(this,Jp,"f"))),e.width=G(this,Xp,"f"),e.height=G(this,Kp,"f"))}get context2d(){var e,t;return null!==(t=null===(e=G(this,qp,"f"))||void 0===e?void 0:e.getContext("2d"))&&void 0!==t?t:null}}function nf(e){return`var(${e.var}, ${e.default})`}Vp=new WeakMap,Wp=new WeakMap,qp=new WeakMap,jp=new WeakMap,Yp=new WeakMap,Xp=new WeakMap,Kp=new WeakMap,Jp=new WeakMap,Zp=new WeakMap,zp=new WeakSet,$p=function(){return G(this,Wp,"f")===ef.Direct?Xu().domElement:G(this,Wp,"f")===ef.Blitted?G(this,qp,"f"):null};const rf="--shopar-3d",af={display:{var:`${rf}-loading-display`,default:"block"},top:{var:`${rf}-loading-top`,default:"0"},bottom:{var:`${rf}-loading-bottom`,default:"auto"},height:{var:`${rf}-loading-height`,default:"0.375rem"},radius:{var:`${rf}-loading-radius`,default:"calc(infinity * 1px)"},fg:{var:`${rf}-loading-fg`,default:"linear-gradient(90deg, #773cd8, #5fb9ec)"},bg:{var:`${rf}-loading-bg`,default:"#e5e7eb"}},of="width 0.05s ease-out";const sf="data:image/svg+xml,%3csvg width='869' height='1251' viewBox='0 0 869 1251' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg clip-path='url(%23clip0_894_1533)'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M303.44 353.132C304.829 314.64 330.051 282.714 363.992 272.987C371.106 271.049 378.436 270.01 385.808 269.895C391.367 269.895 396.717 270.486 401.893 271.424C439.69 278.372 467.899 309.36 467.899 346.462V654.953H511.671C613.911 606.665 685.371 500.36 685.371 376.165C685.571 306.213 662.333 238.211 619.365 183.01L604.427 165.64C577.851 136.528 545.96 112.766 510.212 96.1603C473.492 79.1377 432.881 69.4105 390.012 69.4105C347.143 69.4105 306.636 79.0683 269.812 96.1603C234.029 112.766 202.173 136.528 175.666 165.64L160.728 183.01C117.761 238.211 94.5225 306.213 94.722 376.165C94.714 391.336 95.8054 406.487 97.9875 421.5C99.0297 428.796 101.045 435.744 102.504 442.935L107.228 464.613C110.112 474.548 114.037 484.067 117.824 493.516L122.132 505.085C127.341 516.473 133.246 527.53 139.814 538.192L142.073 542.43C171.755 590.029 214.112 628.416 264.392 653.286L302.954 671.941V353.097L303.44 353.132Z' fill='white' fill-opacity='0.5'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M797.001 876.074L701.118 1144.96C695.143 1161.81 677.634 1172.75 657.589 1172.75H425.283C369.49 1172.75 317.867 1149.13 287.018 1109.53C231.711 1038.38 160.321 976.75 74.7561 926.447C71.4558 924.536 69.5451 921.687 69.4757 918.456C69.3367 914.982 71.0737 911.647 76.1805 908.139C95.6349 894.486 119.05 887.295 143.09 887.295C151.152 887.279 159.195 888.083 167.095 889.692L338.085 924.223V346.427C338.085 323.395 359.45 304.635 385.679 304.635C411.908 304.635 433.377 323.395 433.377 346.427V689.728H535.964C545.448 689.728 554.481 692.264 562.263 697.024L779.631 831.606C780.569 832.197 781.194 833.065 782.063 833.691C796.306 843.974 802.42 860.441 796.862 876.074M142.499 542.431C141.665 541.041 141.04 539.547 140.241 538.192C133.666 527.534 127.76 516.477 122.558 505.085C120.891 501.368 119.779 497.338 118.251 493.517L107.655 464.613C105.64 457.595 104.528 450.161 102.93 442.935L98.4141 421.501C96.2308 406.488 95.1394 391.336 95.1485 376.165C95.1485 302.968 119.953 235.815 161.155 183.011L176.093 165.641C202.634 136.459 234.525 112.731 270.238 96.1605C306.993 79.1379 347.569 69.4107 390.439 69.4107C433.308 69.4107 473.884 79.1379 510.639 96.1605C546.421 112.731 578.278 136.459 604.854 165.641L619.723 183.011C662.719 238.184 685.972 306.182 685.763 376.13C685.763 500.395 614.338 606.665 512.063 654.953H468.291V346.393C468.291 309.325 439.735 278.302 402.285 271.354C397.074 270.382 391.724 269.826 386.2 269.826C378.557 269.826 371.366 271.111 364.384 272.952C330.443 282.68 305.221 314.571 303.832 353.063V671.907L265.27 653.251C214.758 628.725 172.376 590.58 142.499 542.431ZM798.043 802.147L580.71 667.564C577.166 665.375 573.136 664.16 569.245 662.562C662.453 600.03 720.503 493.899 720.503 376.2C720.503 359.316 719.218 342.71 716.89 326.521C709.659 275.243 691.021 226.238 662.348 183.115L652.1 168.941L649.807 165.745C639.725 152.491 628.708 139.976 616.839 128.295C604.958 116.692 592.243 105.957 578.834 96.2647C538.709 67.2916 492.261 47.2118 441.958 38.9437L416.528 35.8866L390.543 34.8444C373.298 34.8447 356.082 36.2272 339.058 38.9785C288.789 47.2466 242.272 67.3263 202.182 96.2995C192.322 103.7 182.893 111.657 173.939 120.131C163.518 129.655 153.713 139.831 144.584 150.598L131.209 165.779L118.702 183.149L108.697 199.408L94.1758 226.436L92.7862 229.562C72.1854 274.029 60.478 323.708 60.478 376.234C60.478 509.358 136.281 631.295 253.632 686.741L303.554 710.364V882.188L173.765 855.994C163.608 853.965 153.273 852.964 142.916 853.006C142.325 853.006 141.735 853.11 141.179 853.11C132.425 853.249 123.705 854.257 115.124 855.89C112.364 856.472 109.619 857.121 106.891 857.835C100.186 859.433 93.62 861.552 87.1583 864.088C84.5528 865.13 81.9473 866.068 79.3418 867.562C70.6568 871.523 62.1803 876.039 54.2248 881.632C47.9431 885.96 42.8502 891.798 39.4144 898.609C35.9785 905.42 34.3099 912.986 34.562 920.61C34.9201 928.091 37.1618 935.359 41.079 941.742C44.9961 948.125 50.4619 953.415 56.9693 957.122C139.025 1004.85 207.116 1063.53 259.677 1131.24C264.329 1137.24 269.365 1142.94 274.754 1148.3C312.482 1185.88 367.024 1207.81 425.04 1207.88H657.693C683.679 1207.84 707.372 1196.31 722.24 1177.58C727.173 1171.33 731.134 1164.38 733.913 1156.67L829.691 887.781C832.957 878.749 834.207 869.369 833.582 860.197C832.957 851.026 830.525 842.133 826.53 833.795C820.225 820.757 810.33 809.79 798.008 802.182' fill='black' fill-opacity='0.6'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M779.738 831.676L562.37 697.093C554.446 692.276 545.346 689.739 536.072 689.763H433.485V346.532C433.485 323.499 412.085 304.74 385.787 304.74C359.489 304.74 338.193 323.499 338.193 346.532V924.71L167.203 890.178C159.291 888.569 151.236 887.766 143.163 887.781C119.267 887.676 95.9182 894.929 76.2881 908.555C71.1813 912.099 69.4096 915.434 69.5485 918.908C69.6875 922.174 71.5635 925.022 74.8638 926.898C160.394 977.202 231.784 1038.76 287.125 1109.98C317.94 1149.58 369.563 1173.2 425.39 1173.2H657.662C677.707 1173.2 695.181 1161.88 701.191 1145.41L797.074 876.525C802.632 860.962 796.483 844.46 782.274 834.142C781.406 833.448 780.781 832.649 779.843 832.058L779.738 831.676Z' fill='white'/%3e%3cmask id='mask0_894_1533' style='mask-type:luminance' maskUnits='userSpaceOnUse' x='0' y='0' width='869' height='1243'%3e%3cpath d='M0.0664062 0.0349731H868.462V1242.62H0.0664062V0.0349731Z' fill='white'/%3e%3c/mask%3e%3cg mask='url(%23mask0_894_1533)'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M833.58 860.197C834.209 869.559 832.897 878.95 829.724 887.781L733.911 1156.67C731.132 1164.31 727.172 1171.36 722.239 1177.58C707.405 1196.34 683.677 1207.81 657.727 1207.88H425.038C367.022 1207.81 312.481 1185.88 274.753 1148.3C269.403 1142.95 264.331 1137.25 259.676 1131.27C207.114 1063.57 139.024 1004.89 57.2458 956.809C43.8709 948.993 35.4985 935.34 34.8385 920.332C34.5864 912.708 36.255 905.143 39.6909 898.332C43.1267 891.521 48.2196 885.682 54.5013 881.354C62.4292 875.912 70.8363 871.202 79.6183 867.284L87.4348 863.81C93.8598 861.272 100.453 859.183 107.167 857.557L115.401 855.612C124.016 854.014 132.771 853.006 141.456 852.833C142.081 852.833 142.637 852.728 143.193 852.728C153.719 852.694 163.932 853.666 174.111 855.716L303.413 881.84V710.399L253.527 686.775C136.21 631.33 60.3724 509.393 60.3724 376.269C60.3724 323.812 72.045 274.134 92.6806 229.597C93.2017 228.555 93.5491 227.513 94.0702 226.47C98.4821 217.195 103.38 208.232 108.591 199.443C111.822 193.884 115.053 188.465 118.597 183.184C120.785 179.884 123.217 176.723 125.545 173.561L131.138 165.675C135.237 160.291 140.17 155.601 144.513 150.494C153.753 140.072 163.411 129.511 173.868 120.027C182.822 111.552 192.251 103.596 202.112 96.1953C242.202 67.2569 288.753 47.2119 339.022 38.8743C356.034 36.1219 373.239 34.7394 390.472 34.7402C399.145 34.7313 407.815 35.0906 416.457 35.8172C425.038 36.512 433.48 37.5542 441.922 38.8743C492.225 47.1424 538.707 67.2221 578.797 96.1953C592.242 105.923 604.922 116.622 616.803 128.226C628.681 139.898 639.699 152.413 649.771 165.675L652.064 168.871C655.607 173.492 659.116 178.182 662.312 183.045C690.997 226.166 709.647 275.171 716.889 326.452C719.182 342.676 720.467 359.281 720.467 376.13C720.467 493.829 662.451 600.307 569.244 662.492C573.065 664.09 577.13 665.271 580.708 667.495L798.041 802.077C810.895 810.068 820.449 821.184 826.528 833.343C830.523 841.681 832.955 850.644 833.58 859.746M857.794 818.231C848.588 799.124 834.275 783.248 816.315 772.166L631.394 657.628C709.732 586.863 755.207 484.971 755.207 375.748C755.207 299.667 733.078 226.227 691.285 163.348C686.908 156.817 682.253 150.494 677.389 144.171C654.982 114.712 628.684 88.5872 599.155 67.6043C537.561 23.5887 465.337 0.0349731 390.472 0.0349731C315.457 0.0670918 242.383 23.8817 181.754 68.0559C152.294 89.3863 125.961 115.163 103.485 144.658C98.7601 150.911 94.0354 157.268 89.6582 163.765C47.7965 226.679 25.6671 300.119 25.6671 376.2C25.6671 522.733 109.286 656.899 238.728 718.111L268.708 732.354V839.77L180.99 822.053C168.622 819.621 156.081 818.37 143.609 818.37C104.55 818.376 66.4474 830.462 34.5258 852.971C11.8406 868.952 -0.978479 894.729 0.133201 921.861C0.732449 935.148 4.66826 948.071 11.5776 959.437C18.4869 970.803 28.1472 980.245 39.6673 986.894C117.485 1032.68 182.31 1088.44 232.231 1152.67C276.004 1208.95 348.02 1242.65 425.038 1242.72H657.727C707.057 1242.68 750.83 1212.84 766.602 1168.45L862.484 899.558C871.933 873.26 870.266 844.53 857.829 818.787' fill='black' fill-opacity='0.05'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath id='clip0_894_1533'%3e%3crect width='868.5' height='1250.64' fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",lf="2rem";function cf(e){const t=function(){const e=document.createElement("div"),{style:t}=e;return t.position="relative",t.width="100%",t.height="100%",t.pointerEvents="none",e}(),n=function(){const e=document.createElement("div");e.draggable=!1;const{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.objectFit="contain",t.visibility="hidden",t.backgroundSize="contain",t.backgroundRepeat="no-repeat",t.backgroundPosition="center",e}();t.appendChild(n);const i=new tf;t.appendChild(i.element);const r=function(){const e=function(){const e=document.createElement("div"),{style:t}=e;return t.display=nf(af.display),t.opacity="0",t.transition="opacity 0.2s ease-out",t.position="absolute",t.top=nf(af.top),t.bottom=nf(af.bottom),t.left="0",t.width="100%",t.height=nf(af.height),t.overflow="hidden",e}(),t=function(){const e=document.createElement("div"),{style:t}=e;return t.position="absolute",t.width="100%",t.height="100%",t.background=nf(af.bg),e}(),n=function(){const e=document.createElement("div"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="0%",t.height="100%",t.background=nf(af.fg),t.borderRadius=nf(af.radius),t.transition=of,e}();t.appendChild(n),e.appendChild(t);let i=0;return{get container(){return e},set progress(e){e<i?(n.style.transition="none",n.style.width=100*e+"%",n.offsetWidth,n.style.transition=of):n.style.width=100*e+"%",i=e},set visible(t){e.style.opacity=t?"1":"0"}}}();t.appendChild(r.container);const a=function(){const e=function(){const e=document.createElement("div"),{style:t}=e;return t.visibility="hidden",t.position="absolute",t.width="100%",t.height="100%",t.display="flex",t.justifyContent="center",t.alignItems="center",e}(),t=function(){const e=function(e){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width",e),t.setAttribute("height",e),t}(lf),{style:t}=e;return t.transition="opacity 0.3s",t.opacity="0",e}(),n=function(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t),n.setAttribute("width",e),n.setAttribute("height",e),n}(lf,sf);return t.appendChild(n),e.appendChild(t),{get container(){return e},get svg(){return t},set imageUrl(e){n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",null!=e?e:sf)},set imageSize(e){const i=null!=e?e:lf;t.setAttribute("width",i),t.setAttribute("height",i),n.setAttribute("width",i),n.setAttribute("height",i)},set visible(t){e.style.visibility=t?"visible":"hidden"},set opacity(e){t.style.opacity=e},set transform(e){t.style.transform=e}}}();return t.appendChild(a.container),{get root(){return t},get canvasWrapper(){return i},get loading(){return r},get prompt(){return a},set canvasVisible(e){i.visible=e},set posterVisible(e){n.style.visibility=e?"visible":"hidden"},loadPoster:e=>{n.style.backgroundImage=e?`url(${e})`:""}}}var hf,Af,uf,df;class pf extends HTMLElement{constructor(){super(),hf.add(this),Af.set(this,void 0),uf.set(this,void 0),H(this,Af,function(){let e,t,n,i,r,a,o,s,l,c,h,A,u,d,p,f,g,m,v,E,b,C,_,I,x,y,M,w,S,B,T,R,D,Q,L,U,P,N,F,O,k,G,H,z,V=()=>{},W=()=>{},q=()=>{},j=()=>{},Y=()=>{},X=()=>{},K=()=>{},J=()=>{},Z=()=>{},$=()=>{},ee=()=>{},te=()=>{},ne=()=>{},ie=()=>{},re=()=>{},ae=()=>{},oe=()=>{},se=()=>{},le=()=>{},ce=()=>{},he=()=>{},Ae=()=>{},ue=()=>{},de=()=>{},pe=()=>{},fe=()=>{},ge=()=>{},me=()=>{},ve=()=>{},Ee=()=>{},be=()=>{},Ce=()=>{},_e=()=>{},Ie=()=>{},xe=()=>{},ye=()=>{},Me=()=>{},we=()=>{},Se=()=>{},Be=()=>{},Te=()=>{},Re=()=>{},De=()=>{},Qe=()=>{};function Le(){e=!1,t=!1,n=null,i=null,r=null,a=null,o=null,s=null,l=null,c=null,h=null,A=null,u=null,d=null,p=!1,f=!0,g=null,m=null,v=null,E=null,b=null,C=null,_=null,I=null,x=null,y=null,M=null,w=null,S=null,B=null,T=!0,R=null,D=null,Q=!1,L=!1,U=null,P=null,N=null,F=null,O=null,k=null,G=null,H=null,z=!1}return Le(),{get initialized(){return e},set initialized(t){const n=t!==e;e=t,t||Le(),n&&(null==V||V(e))},set onInitializedChange(e){V=e},get paused(){return t},set paused(e){const n=e!==t;t=e,n&&(null==W||W(t))},set onPausedChange(e){W=e},get posterUrl(){return n},set posterUrl(e){const t=e!==n;n=e,t&&(null==q||q(e))},set onPosterUrlChange(e){q=e},set glbUrl(e){const t=e!==i;i=e,t&&(null==j||j(i))},set onGlbUrlChange(e){j=e},set envUrl(e){const t=e!==r;r=e,t&&(null==Y||Y(r))},set onEnvUrlChange(e){Y=e},set diamondEnvUrl(e){const t=e!==a;a=e,t&&(null==X||X(a))},set onDiamondEnvUrlChange(e){X=e},set envRotation(e){const t=e!==o;o=e,t&&(null==K||K(o))},set onEnvRotationChange(e){K=e},set toneMapping(e){const t=e!==s;s=e,t&&(null==J||J(s))},set onToneMappingChange(e){J=e},set toneMappingExposure(e){const t=e!==l;l=e,t&&(null==Z||Z(l))},set onToneMappingExposureChange(e){Z=e},set bloomEnabled(e){const t=e!==c;c=e,t&&(null==$||$(c))},set onBloomEnabledChange(e){$=e},set bloomStrength(e){const t=e!==h;h=e,t&&(null==ee||ee(h))},set onBloomStrengthChange(e){ee=e},set bloomRadius(e){const t=e!==A;A=e,t&&(null==te||te(A))},set onBloomRadiusChange(e){te=e},set bloomThreshold(e){const t=e!==u;u=e,t&&(null==ne||ne(u))},set onBloomThresholdChange(e){ne=e},set category(e){const t=e!==d;d=e,t&&(null==ie||ie(d))},set onCategoryChange(e){ie=e},get glbLocal(){return p},set glbLocal(e){const t=e!==p;p=e,t&&(null==re||re(p))},set onGlbLocalChange(e){re=e},set interactive(e){const t=e!==f;f=e,t&&(null==ae||ae(f))},set onInteractiveChange(e){ae=e},set onModelLoaded(e){const t=e!==g;g=e,t&&(null==oe||oe(g))},set onOnModelLoadedChange(e){oe=e},set onRendered(e){const t=e!==m;m=e,t&&(null==se||se(m))},set onOnRenderedChange(e){se=e},set onInteracted(e){const t=e!==v;v=e,t&&(null==le||le(v))},set onOnInteractedChange(e){le=e},set onInteractionPerf(e){const t=e!==E;E=e,t&&(null==ce||ce(E))},set onOnInteractionPerfChange(e){ce=e},set onMaxZoomEnter(e){const t=e!==b;b=e,t&&(null==he||he(b))},set onOnMaxZoomEnterChange(e){he=e},set onMaxZoomLeave(e){const t=e!==C;C=e,t&&(null==Ae||Ae(C))},set onOnMaxZoomLeaveChange(e){Ae=e},set onMinZoomEnter(e){const t=e!==_;_=e,t&&(null==ue||ue(_))},set onOnMinZoomEnterChange(e){ue=e},set onMinZoomLeave(e){const t=e!==I;I=e,t&&(null==de||de(I))},set onOnMinZoomLeaveChange(e){de=e},set onMinVerticalAngleEnter(e){const t=e!==x;x=e,t&&(null==pe||pe(x))},set onOnMinVerticalAngleEnterChange(e){pe=e},set onMinVerticalAngleLeave(e){const t=e!==y;y=e,t&&(null==fe||fe(y))},set onOnMinVerticalAngleLeaveChange(e){fe=e},set onMaxVerticalAngleEnter(e){const t=e!==M;M=e,t&&(null==ge||ge(M))},set onOnMaxVerticalAngleEnterChange(e){ge=e},set onMaxVerticalAngleLeave(e){const t=e!==w;w=e,t&&(null==me||me(w))},set onOnMaxVerticalAngleLeaveChange(e){me=e},get onError(){return S},set onError(e){const t=e!==S;S=e,t&&(null==ve||ve(S))},set onOnErrorChange(e){ve=e},set touchAction(e){const t=e!==B;B=e,t&&(null==Ee||Ee(B))},set onTouchActionChange(e){Ee=e},set zoomEnabled(e){const t=e!==T;T=e,t&&(null==be||be(T))},set onZoomEnabledChange(e){be=e},set minZoom(e){const t=e!==R;R=e,t&&(null==Ce||Ce(R))},set onMinZoomChange(e){Ce=e},set maxZoom(e){const t=e!==D;D=e,t&&(null==_e||_e(D))},set onMaxZoomChange(e){_e=e},set preserveCameraOnReload(e){const t=e!==Q;Q=e,t&&(null==Ie||Ie(Q))},set onPreserveCameraOnReloadChange(e){Ie=e},set alwaysTransparentBackground(e){const t=e!==L;L=e,t&&(null==xe||xe(L))},set onAlwaysTransparentBackgroundChange(e){xe=e},set defaultFov(e){const t=e!==U;U=e,t&&(null==ye||ye(U))},set onDefaultFovChange(e){ye=e},set fovMultiplier(e){const t=e!==P;P=e,t&&(null==Me||Me(P))},set onFovMultiplierChange(e){Me=e},set defaultCameraPositions(e){const t=e!==N;N=e,t&&(null==we||we(N))},set onDefaultCameraPositionsChange(e){we=e},set interactionPromptUrl(e){const t=e!==F;F=e,t&&(null==Se||Se(F))},set onInteractionPromptUrlChange(e){Se=e},set interactionPromptSize(e){const t=e!==O;O=e,t&&(null==Be||Be(O))},set onInteractionPromptSizeChange(e){Be=e},set animation(e){const t=e!==k;k=e,t&&(null==Te||Te(k))},set onAnimationChange(e){Te=e},set nonLiveRendering(e){const t=e!==G;G=e,t&&(null==Re||Re(G))},set onNonLiveRenderingChange(e){Re=e},set baseUrl(e){const t=e!==H;H=e,t&&(null==De||De(H))},set onBaseUrlChange(e){De=e},get downloadCacheEnabled(){return z},set downloadCacheEnabled(e){const t=e!==z;z=e,t&&(null==Qe||Qe(z))},set onDownloadCacheEnabledChange(e){Qe=e}}}());const e=cf(G(this,Af,"f"));H(this,uf,Gp(G(this,Af,"f"),e)),this.attachShadow({mode:"open"}).appendChild(e.root)}connectedCallback(){G(this,Af,"f").initialized=!0}disconnectedCallback(){G(this,Af,"f").paused=!0,G(this,Af,"f").initialized=!1}attributeChangedCallback(e,t,n){var i,r;if(G(this,Af,"f").initialized)if("paused"===e)G(this,Af,"f").paused=ff(n);else if("poster-url"===e)G(this,Af,"f").posterUrl=n;else if("glb-url"===e)G(this,Af,"f").glbUrl=function(e){if(null==e?void 0:e.includes("|")){const[t,n]=e.split("|",2);return{left:t,right:n}}return e}(n);else if("env-url"===e)G(this,Af,"f").envUrl=n;else if("diamond-env-url"===e)G(this,Af,"f").diamondEnvUrl=n;else if("env-rotation"===e)G(this,Af,"f").envRotation=gf(n);else if("tone-mapping"===e)G(this,Af,"f").toneMapping=(r=i=n,qc.includes(r)?i:null);else if("tone-mapping-exposure"===e)G(this,Af,"f").toneMappingExposure=gf(n);else if("bloom-enabled"===e)G(this,Af,"f").bloomEnabled=ff(n);else if("bloom-strength"===e)G(this,Af,"f").bloomStrength=gf(n);else if("bloom-radius"===e)G(this,Af,"f").bloomRadius=gf(n);else if("bloom-threshold"===e)G(this,Af,"f").bloomThreshold=gf(n);else if("category"===e)G(this,Af,"f").category=function(e){return Yc(e)?e:null}(n);else if("glb-local"===e)G(this,Af,"f").glbLocal=function(e){if(null==e?void 0:e.includes("|")){const[t,n]=e.split("|",2);return{left:"true"===t,right:"true"===n}}return ff(e)}(n);else if("interactivity-disabled"===e)G(this,Af,"f").interactive=!ff(n);else if("touch-action"===e)G(this,Af,"f").touchAction=function(e){return function(e){return jc.includes(e)}(e)?e:null}(n);else if("zoom-disabled"===e)G(this,Af,"f").zoomEnabled=!ff(n);else if("min-zoom"===e)G(this,Af,"f").minZoom=gf(n);else if("max-zoom"===e)G(this,Af,"f").maxZoom=gf(n);else if("preserve-camera-on-reload"===e)G(this,Af,"f").preserveCameraOnReload=ff(n);else if("always-transparent-background"===e)G(this,Af,"f").alwaysTransparentBackground=ff(n);else if("default-fov"===e)G(this,Af,"f").defaultFov=gf(n);else if("fov-multiplier"===e)G(this,Af,"f").fovMultiplier=gf(n);else if("interaction-prompt-url"===e)G(this,Af,"f").interactionPromptUrl=n;else if("interaction-prompt-size"===e)G(this,Af,"f").interactionPromptSize=n;else if("non-live-rendering"===e)G(this,Af,"f").nonLiveRendering=ff(n);else if("base-url"===e)G(this,Af,"f").baseUrl=n;else{if("download-cache-enabled"!==e)throw new Error(`Unknown attribute: ${e} (changed from '${t}' to '${n}')`);G(this,Af,"f").downloadCacheEnabled=ff(n)}}set paused(e){G(this,hf,"m",df).call(this,"paused",e?"":null)}set posterUrl(e){G(this,hf,"m",df).call(this,"poster-url",e)}set glbUrl(e){G(this,hf,"m",df).call(this,"glb-url","string"==typeof e||null==e?e:`${e.left}|${e.right}`)}set envUrl(e){G(this,hf,"m",df).call(this,"env-url",e)}set diamondEnvUrl(e){G(this,hf,"m",df).call(this,"diamond-env-url",e)}set envRotation(e){G(this,hf,"m",df).call(this,"env-rotation",null!=e?`${e}`:null)}set toneMapping(e){G(this,hf,"m",df).call(this,"tone-mapping",e)}set toneMappingExposure(e){G(this,hf,"m",df).call(this,"tone-mapping-exposure",`${e}`)}set bloomEnabled(e){G(this,hf,"m",df).call(this,"bloom-enabled",e?"":null)}set bloomStrength(e){G(this,hf,"m",df).call(this,"bloom-strength",null!=e?`${e}`:null)}set bloomRadius(e){G(this,hf,"m",df).call(this,"bloom-radius",null!=e?`${e}`:null)}set bloomThreshold(e){G(this,hf,"m",df).call(this,"bloom-threshold",null!=e?`${e}`:null)}set category(e){G(this,hf,"m",df).call(this,"category",e)}set animation(e){G(this,Af,"f").animation=e}set glbLocal(e){G(this,hf,"m",df).call(this,"glb-local","boolean"==typeof e||null==e?e?"":null:`${e.left}|${e.right}`)}set interactivityDisabled(e){G(this,hf,"m",df).call(this,"interactivity-disabled",e?"":null)}set touchAction(e){G(this,hf,"m",df).call(this,"touch-action",e)}set zoomDisabled(e){G(this,hf,"m",df).call(this,"zoom-disabled",e?"":null)}set minZoom(e){G(this,hf,"m",df).call(this,"min-zoom",null!=e?`${e}`:null)}set maxZoom(e){G(this,hf,"m",df).call(this,"max-zoom",null!=e?`${e}`:null)}set preserveCameraOnReload(e){G(this,hf,"m",df).call(this,"preserve-camera-on-reload",e?"":null)}set alwaysTransparentBackground(e){G(this,hf,"m",df).call(this,"always-transparent-background",e?"":null)}set defaultFov(e){G(this,hf,"m",df).call(this,"default-fov",`${e}`)}set fovMultiplier(e){G(this,hf,"m",df).call(this,"fov-multiplier",`${e}`)}set defaultCameraPositions(e){G(this,Af,"f").defaultCameraPositions=e}set interactionPromptUrl(e){G(this,hf,"m",df).call(this,"interaction-prompt-url",e)}set interactionPromptSize(e){G(this,hf,"m",df).call(this,"interaction-prompt-size",e)}set nonLiveRendering(e){G(this,hf,"m",df).call(this,"non-live-rendering",e?"":null)}set baseUrl(e){G(this,hf,"m",df).call(this,"base-url",e)}set downloadCacheEnabled(e){G(this,hf,"m",df).call(this,"download-cache-enabled",e?"":null)}set onModelLoaded(e){G(this,Af,"f").onModelLoaded=e}set onRendered(e){G(this,Af,"f").onRendered=e}set onInteracted(e){G(this,Af,"f").onInteracted=e}set onInteractionPerf(e){G(this,Af,"f").onInteractionPerf=e}set onMaxZoomEnter(e){G(this,Af,"f").onMaxZoomEnter=e}set onMaxZoomLeave(e){G(this,Af,"f").onMaxZoomLeave=e}set onMinZoomEnter(e){G(this,Af,"f").onMinZoomEnter=e}set onMinZoomLeave(e){G(this,Af,"f").onMinZoomLeave=e}set onMinVerticalAngleEnter(e){G(this,Af,"f").onMinVerticalAngleEnter=e}set onMinVerticalAngleLeave(e){G(this,Af,"f").onMinVerticalAngleLeave=e}set onMaxVerticalAngleEnter(e){G(this,Af,"f").onMaxVerticalAngleEnter=e}set onMaxVerticalAngleLeave(e){G(this,Af,"f").onMaxVerticalAngleLeave=e}set onError(e){G(this,Af,"f").onError=e}zoomBy(e){G(this,uf,"f").zoomBy(e)}rotateBy(e,t){G(this,uf,"f").rotateBy(e,t)}render(e){G(this,uf,"f").render(e)}flushChanges(){return G(this,uf,"f").flushChanges()}}function ff(e){return null!=e}function gf(e){return null==e?null:Number.parseFloat(e)}if(Af=new WeakMap,uf=new WeakMap,hf=new WeakSet,df=function(e,t){null==t?this.removeAttribute(e):this.setAttribute(e,t)},pf.observedAttributes=["paused","poster-url","glb-url","env-url","diamond-env-url","env-rotation","tone-mapping","tone-mapping-exposure","category","glb-local","interactivity-disabled","touch-action","zoom-disabled","min-zoom","max-zoom","preserve-camera-on-reload","always-transparent-background","default-fov","fov-multiplier","interaction-prompt-url","interaction-prompt-size","bloom-enabled","bloom-strength","bloom-radius","bloom-threshold","non-live-rendering","base-url","download-cache-enabled"],null==window)throw new Error("window is not defined. ShopAR 3D only works in a browser environment.");const{customElements:mf}=window;try{mf.define("shopar-3d",pf)}catch(Zd){console.error(Zd)}const vf={bg:{var:`${D}-3d-bg`,default:"#ffffff"}};function Ef(e){var t,n;const i=document.createElementNS("http://www.w3.org/2000/svg","svg");return i.setAttribute("width",null!==(t=e.getAttribute("width"))&&void 0!==t?t:"1rem"),i.setAttribute("height",null!==(n=e.getAttribute("height"))&&void 0!==n?n:"1rem"),i.appendChild(e),i}function bf(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href","data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22/%3E"),n.setAttribute("width",e),n.setAttribute("height",e),n}var Cf;function _f(){const e=function(){const e=document.createElement("div");e.id="shopar-main";const t=e.style;return t.position="absolute",t.top="0",t.bottom="0",t.left="0",t.right="0",t.pointerEvents="none",e}(),t=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),n=function(){const e=new Image;e.draggable=!1;const t=e.style;return t.maxWidth="100%",t.maxHeight="100%",e}(),i=function(e,t){const n=document.createElement("div"),i=n.style;i.position="absolute",i.top="0",i.left="0",i.width="100%",i.height="100%",i.display="none",i.pointerEvents="auto",i.userSelect="none";const r=document.createElement("div"),a=r.style;a.position="relative",a.top="0",a.left="0",a.width="100%",a.height="100%",a.display="flex",a.flexDirection="column",a.justifyContent="center",a.alignItems="center",a.background=Q(O.bg),n.appendChild(r),r.appendChild(e);const o=document.createElement("div");return o.appendChild(t),r.appendChild(o),n}(t,n);e.appendChild(i);const r=function(){const e=document.createElement("div"),t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.display="none",t.pointerEvents="auto",e}();e.appendChild(r);const a=document.createElement("div");a.dataset.placeholder="shopar-3d",e.appendChild(a);let o=null;const s=function(){const e=document.createElement("div");return e.style.textAlign="center",e.style.color=Q(N.textColor),e}(),l=function(){const e=new Image;e.alt="",e.setAttribute("role","presentation");const{style:t}=e;return t.maxWidth=Q(N.imgMaxWidth),t.maxHeight=Q(N.imgMaxHeight),t.objectFit="contain",e}(),c=function(e,t){const n=document.createElement("div"),{style:i}=n;return i.position="absolute",i.width="100%",i.height="100%",i.opacity="0",i.display="flex",i.flexDirection="column",i.justifyContent="center",i.alignItems="center",i.gap=Q(N.gap),i.backgroundColor=Q(N.bg),i.transition="0.3s ease-in-out opacity",n.setAttribute("aria-hidden","true"),n.appendChild(e),n.appendChild(t),n}(s,l);e.appendChild(c);const h=function(){const e=document.createElement("div"),t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.pointerEvents="auto",t.userSelect="none",t.display=Q(F.containerDisplay),t.flexDirection="column",t.justifyContent="center",t.alignItems="center",t.gap=Q(F.containerGap),t.backgroundColor=Q(F.containerBg),e}(),A=function(e){const t=document.createElement("div");return t.textContent=e,t.style.textAlign="center",t}(T["loading.ar"]);h.appendChild(A);const u=function(){const e=document.createElement("div"),t=e.style;return t.position="relative",t.overflow="hidden",t.width=Q(F.barWidth),t.height=Q(F.barHeight),t.backgroundColor=Q(F.barBg),t.borderRadius=Q(F.barRadius),e}(),d=function(){const e=document.createElement("div"),t=e.style;return t.height="100%",t.width="0%",t.background=Q(F.barFg),t.borderRadius=Q(F.barRadius),t.transition="width 0.05s ease-out",e}(),p=function(){const e=document.createElement("div");return e.textContent="0%",e.style.textAlign="center",e}();u.appendChild(d),h.appendChild(u),h.appendChild(p),e.appendChild(h);const f=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),g=function(e){const t=document.createElement("div"),n=t.style;n.position="absolute",n.width="100%",n.height="100%",n.display="none",n.pointerEvents="auto",n.userSelect="none";const i=document.createElement("div"),r=i.style;return r.position="absolute",r.width="100%",r.height="100%",r.backgroundColor="#ffffff",r.display="flex",r.flexDirection="column",r.justifyContent="center",r.alignItems="center",t.appendChild(i),i.appendChild(e),t}(f);e.appendChild(g);const m=function(){const e=document.createElement("div");e.role="group",e.ariaLabel="Preview type chooser";const{style:t}=e;return t.display="none",t.position="absolute",t.width="100%",t.bottom="0",t.paddingBottom=Q(P.paddingBottom),t.justifyContent="center",t.gap=Q(P.gap),e}();e.appendChild(m);const v=bf("1.75rem"),E=U("Try-on","Launch ShopAR virtual try-on",Ef(v));m.appendChild(E);const b=bf("1.75rem"),C=U("3D","Launch ShopAR 3D preview",Ef(b));m.appendChild(C);const _=bf("1.75rem"),I=U("Close","Close ShopAR view",Ef(_));m.append(I);let x,y,w=Cf.None,S=!1,B=!1,R=!1,D=!1;function L(){d.style.width="100%",p.textContent="100%",h.style.visibility="hidden",d.style.width="0%",p.textContent="0%"}return{setTargetElement:function(t){t.style.position="relative",t.appendChild(e)},getQRTarget:function(){return i},getQRImage:function(){return n},getDeepARTarget:function(){return r},getDeepARPrompt:function(){return c},getThreeTarget:function(){return null==o&&(o=function(){const e=document.createElement("shopar-3d"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.pointerEvents="auto",t.display="none",t.background=Q(vf.bg),e}(),a.replaceWith(o)),o},hasThreeTarget:function(){return null!=o},removeThreeTarget:function(){null!=o&&(o.replaceWith(a),o=null)},customizeDeepARPrompt:function(e,t){s.textContent=e,l.src=t},customizeCameraError:function(e){f.textContent=null!=e?e:"Please reload page and allow camera access to continue"},customizeQRPrompt:function(e){t.textContent=null!=e?e:"Scan on mobile or tablet to try on"},setVisibilityParameters:function(e,t,n,i,r,a){var o;S=e,B=t,R=n,D=i,x=r,y=a,xf(m,S),xf(E,S&&(R||B)&&w===Cf.None),xf(C,S&&D&&w===Cf.None),xf(I,S&&w!==Cf.None),L(),S||""===(o=g).style.display&&If(o,!1)},getUIState:function(){return w},setUIState:function(e){w=e,w===Cf.None?(L(),S&&(If(g,!1),xf(I,!1),(B||R)&&xf(E,!0),D&&xf(C,!0))):w===Cf.QR||w===Cf.AR?S&&(If(g,!1),xf(E,!1),xf(C,D&&"AR"===y),xf(I,"AR"!==y)):w===Cf.Preview&&S&&(If(g,!1),xf(E,(B||R)&&"3D"===y),xf(C,!1),xf(I,"3D"!==y))},setDefaultUIActions:function(e,t,n){S&&((B||R)&&(!function(e){const t={Glasses:"glasses.svg",Shoes:"shoe.svg",Watches:"watch.svg",Bracelets:"watch.svg",Scarves:"glasses.svg",Hats:"glasses.svg",Necklaces:"glasses.svg"},n=null!=e&&t[e]||t.Glasses,i=`${M()}/img/icons/${n}`;v.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i)}(x),E.onclick=e),D&&(b.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${M()}/img/icons/cube.svg`),C.onclick=t),_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${M()}/img/icons/close.svg`),I.onclick=n)},startDeepARLoading:function(){d.style.width="0%",h.style.visibility="visible"},stopDeepARLoading:L,updateDeepARLoadingProgress:function(e){d.style.width=`${e}%`,p.textContent=`${Math.floor(e)}%`},showCameraError:function(){S&&If(g,!0)}}}function If(e,t){e.style.display=t?"":"none"}function xf(e,t){e.style.display=t?"flex":"none"}!function(e){e[e.None=0]="None",e[e.QR=1]="QR",e[e.AR=2]="AR",e[e.Preview=3]="Preview"}(Cf||(Cf={}));const yf=new Map;function Mf(e){let t=yf.get(e);return null==t?(t=function(){let e=0,t=null,n=null,i=!0;const r=()=>(null==t&&(t=_f()),t);return{getSetupId:()=>e,incrementSetupId_:()=>e++,getUI_:()=>t,findUI:r,findQR:()=>{if(null==n){const{getQRTarget:e,getQRImage:t}=r();n=B(e(),t())}return n},isInteractive:()=>i,setInteractive:e=>{i=e,(null==t?void 0:t.hasThreeTarget())&&(t.getThreeTarget().interactivityDisabled=!e)}}}(),yf.set(e,t)):t.incrementSetupId_(),t}function wf(e){for(const t of yf.values()){if(t===e)continue;const n=t.getUI_();if(null==n)continue;const{getUIState:i,setUIState:r}=n;i()===Cf.AR&&r(Cf.None)}}const Sf=[];for(let e=0;e<256;++e)Sf.push((e+256).toString(16).slice(1));let Bf;const Tf=new Uint8Array(16);var Rf={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Df(e,t,n){const i=(e=e||{}).random??e.rng?.()??function(){if(!Bf){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Bf=crypto.getRandomValues.bind(crypto)}return Bf(Tf)}();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=15&i[6]|64,i[8]=63&i[8]|128,function(e,t=0){return(Sf[e[t+0]]+Sf[e[t+1]]+Sf[e[t+2]]+Sf[e[t+3]]+"-"+Sf[e[t+4]]+Sf[e[t+5]]+"-"+Sf[e[t+6]]+Sf[e[t+7]]+"-"+Sf[e[t+8]]+Sf[e[t+9]]+"-"+Sf[e[t+10]]+Sf[e[t+11]]+Sf[e[t+12]]+Sf[e[t+13]]+Sf[e[t+14]]+Sf[e[t+15]]).toLowerCase()}(i)}function Qf(e,t,n){return Rf.randomUUID&&!e?Rf.randomUUID():Df(e)}var Lf="undefined"!=typeof Float32Array?Float32Array:Array;function Uf(){var e=new Lf(16);return Lf!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function Pf(e,t){var n=t[0],i=t[1],r=t[2],a=t[3],o=t[4],s=t[5],l=t[6],c=t[7],h=t[8],A=t[9],u=t[10],d=t[11],p=t[12],f=t[13],g=t[14],m=t[15],v=n*s-i*o,E=n*l-r*o,b=n*c-a*o,C=i*l-r*s,_=i*c-a*s,I=r*c-a*l,x=h*f-A*p,y=h*g-u*p,M=h*m-d*p,w=A*g-u*f,S=A*m-d*f,B=u*m-d*g,T=v*B-E*S+b*w+C*M-_*y+I*x;return T?(T=1/T,e[0]=(s*B-l*S+c*w)*T,e[1]=(r*S-i*B-a*w)*T,e[2]=(f*I-g*_+m*C)*T,e[3]=(u*_-A*I-d*C)*T,e[4]=(l*M-o*B-c*y)*T,e[5]=(n*B-r*M+a*y)*T,e[6]=(g*b-p*I-m*E)*T,e[7]=(h*I-u*b+d*E)*T,e[8]=(o*S-s*M+c*x)*T,e[9]=(i*M-n*S-a*x)*T,e[10]=(p*_-f*b+m*v)*T,e[11]=(A*b-h*_-d*v)*T,e[12]=(s*y-o*w-l*x)*T,e[13]=(n*w-i*y+r*x)*T,e[14]=(f*E-p*C-g*v)*T,e[15]=(h*C-A*E+u*v)*T,e):null}function Nf(e,t,n){var i=t[0],r=t[1],a=t[2],o=t[3],s=t[4],l=t[5],c=t[6],h=t[7],A=t[8],u=t[9],d=t[10],p=t[11],f=t[12],g=t[13],m=t[14],v=t[15],E=n[0],b=n[1],C=n[2],_=n[3];return e[0]=E*i+b*s+C*A+_*f,e[1]=E*r+b*l+C*u+_*g,e[2]=E*a+b*c+C*d+_*m,e[3]=E*o+b*h+C*p+_*v,E=n[4],b=n[5],C=n[6],_=n[7],e[4]=E*i+b*s+C*A+_*f,e[5]=E*r+b*l+C*u+_*g,e[6]=E*a+b*c+C*d+_*m,e[7]=E*o+b*h+C*p+_*v,E=n[8],b=n[9],C=n[10],_=n[11],e[8]=E*i+b*s+C*A+_*f,e[9]=E*r+b*l+C*u+_*g,e[10]=E*a+b*c+C*d+_*m,e[11]=E*o+b*h+C*p+_*v,E=n[12],b=n[13],C=n[14],_=n[15],e[12]=E*i+b*s+C*A+_*f,e[13]=E*r+b*l+C*u+_*g,e[14]=E*a+b*c+C*d+_*m,e[15]=E*o+b*h+C*p+_*v,e}function Ff(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Of(e,t){var n=t[0],i=t[1],r=t[2],a=t[4],o=t[5],s=t[6],l=t[8],c=t[9],h=t[10];return e[0]=Math.hypot(n,i,r),e[1]=Math.hypot(a,o,s),e[2]=Math.hypot(l,c,h),e}function kf(e,t){var n=new Lf(3);Of(n,t);var i=1/n[0],r=1/n[1],a=1/n[2],o=t[0]*i,s=t[1]*r,l=t[2]*a,c=t[4]*i,h=t[5]*r,A=t[6]*a,u=t[8]*i,d=t[9]*r,p=t[10]*a,f=o+h+p,g=0;return f>0?(g=2*Math.sqrt(f+1),e[3]=.25*g,e[0]=(A-d)/g,e[1]=(u-l)/g,e[2]=(s-c)/g):o>h&&o>p?(g=2*Math.sqrt(1+o-h-p),e[3]=(A-d)/g,e[0]=.25*g,e[1]=(s+c)/g,e[2]=(u+l)/g):h>p?(g=2*Math.sqrt(1+h-o-p),e[3]=(u-l)/g,e[0]=(s+c)/g,e[1]=.25*g,e[2]=(A+d)/g):(g=2*Math.sqrt(1+p-o-h),e[3]=(s-c)/g,e[0]=(u+l)/g,e[1]=(A+d)/g,e[2]=.25*g),e}function Gf(){var e=new Lf(3);return Lf!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Hf(e,t,n){var i=new Lf(3);return i[0]=e,i[1]=t,i[2]=n,i}function zf(e,t){var n=t[0]-e[0],i=t[1]-e[1],r=t[2]-e[2];return Math.hypot(n,i,r)}function Vf(e,t,n){var i=t[0],r=t[1],a=t[2],o=n[3]*i+n[7]*r+n[11]*a+n[15];return o=o||1,e[0]=(n[0]*i+n[4]*r+n[8]*a+n[12])/o,e[1]=(n[1]*i+n[5]*r+n[9]*a+n[13])/o,e[2]=(n[2]*i+n[6]*r+n[10]*a+n[14])/o,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function Wf(){var e=new Lf(4);return Lf!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}Gf(),function(){var e,t=(e=new Lf(4),Lf!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var qf;Gf(),Hf(1,0,0),Hf(0,1,0),Wf(),Wf(),qf=new Lf(9),Lf!=Float32Array&&(qf[1]=0,qf[2]=0,qf[3]=0,qf[5]=0,qf[6]=0,qf[7]=0),qf[0]=1,qf[4]=1,qf[8]=1;async function jf(){const e=await async function(){const e=await fetch("data:application/octet-stream;base64,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");return await function(e={}){var t,n,i,r,a,o=e,s=new Promise((e,n)=>{t=e}),l={1076:e=>{const t=[e,Date.now()],n=t.length-2,r=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame","navigator","userAgent"],a=[2,12,7,1],o=window[r[r[a[a[a.length-1]]+2].length-a[t.length]+1]][r[Math.pow(a[n],r[a.length].length)]]||"no user agent",s=c(32);for(let e=0;e<32;++e)i[s+e]=o.charCodeAt(e%o.length);return s},1870:e=>{var t,n=function(){var e;try{e=Function('return (function() {}.constructor("return this")( ));')()}catch(t){e=window}return e}(),r=Date.now();for(var a in n)if(8==a.length&&110==a.charCodeAt(7)&&105==a.charCodeAt(5)&&97==a.charCodeAt(3)&&108==a.charCodeAt(0)){r=a,t=e;break}for(var o in n[r])if(8==o.length&&97==o.charCodeAt(5)&&104==o.charCodeAt(0)){t=o;break}const s=n[r][t]||"no hostname",l=c(32);for(let e=0;e<32;++e)i[l+e]=s.charCodeAt(e%s.length);return l}};o.noExitRuntime;var c,h=[],A=(e,t,o)=>{var s=((e,t)=>{var o;for(h.length=0;o=i[e++];){var s=105!=o;t+=(s&=112!=o)&&t%8?4:0,h.push(112==o?r[t>>2]:105==o?n[t>>2]:a[t>>3]),t+=s?8:4}return h})(t,o);return l[e](...s)},u={a:{a:(e,t,n)=>A(e,t,n),c:()=>Date.now(),b:e=>{i.length,function(){throw"OOM"}()}}};return WebAssembly.instantiate(o.wasm,u).then(e=>{var s,l=e.instance.exports;o._magic=l.f,o._free=l.g,o._malloc=c=l.i,s=l.d.buffer,o.HEAPU8=i=new Uint8Array(s),n=new Int32Array(s),r=new Uint32Array(s),a=new Float64Array(s),function(e){e.e()}(l),t(o)}),s}({wasm:await e.arrayBuffer()})}();return function(t){const n=e._malloc(32);for(let i=0;i<t.size()&&i<32;i++)e.HEAPU8[n+i]=t.get(i);const i=e._malloc(64);e._magic(n,i);const r=new Uint8Array(64);for(let t=0;t<64;++t)r[t]=e.HEAPU8[i+t];return e._free(n),e._free(i),r}}let Yf,Xf,Kf,Jf,Zf,$f,eg=!1,tg=null,ng=[],ig=[];function rg(e){return c(this,void 0,void 0,function*(){eg=!1;const{ShopAR__TrueScale:t}=window;yield t.initialize(`${M()}/wasm/mediapipe`,e),tg&&clearInterval(tg);const n=[],i=[];tg=setInterval(()=>c(this,void 0,void 0,function*(){if(eg)return;const{error:e,faceWidth:r,ipd:a,translation:o,rotation:s}=yield t.predict(performance.now());eg||(null!=o&&null!=s&&function(e){for(let t of ng)t(e)}({translation:o,rotation:s}),null==e&&(n.push(r),i.push(a),n.length<10||(n.shift(),i.shift(),function(e,t){for(let n of ig)n({faceWidth:e,IPD:t})}(og(n),og(i)))))}),200)})}function ag(){ig=[],ng=[],eg=!0}function og(e){let t=0;const n=e.length;for(let i=0;i<n;i++)t+=e[i];return t/n}let sg=null;const lg=new Set;let cg,hg,Ag,ug,dg,pg,fg=!1;function gg(){null==Yf&&(Yf=w(`${M()}/shopar-deepar.js`,"ShopAR__DeepAR"))}function mg(){null==Xf&&(Xf=w(`${M()}/shopar-true-scale.js`,"ShopAR__TrueScale"))}function vg(e){return c(this,void 0,void 0,function*(){const{licenseKey:t,truescaleUsecase:n,onProgress:i,effectUrl:r,effectOptions:a}=e;a&&null==a.envmap&&(a.envmap=`${M()}/deepar/default_envmap.webp`),dg=n;const o=null!=e.videoConfig;return null==cg&&(cg=(()=>c(this,void 0,void 0,function*(){fg=!1;const n=function(e){var t;const n={Glasses:"user",Shoes:"environment",Watches:"environment",Bracelets:"environment",Hats:"user",Scarves:"user",Necklaces:"user"};return null==e?"user":null!==(t=n[e])&&void 0!==t?t:"user"}(Zf);try{Kf=yield window.ShopAR__DeepAR.deepar.initialize({licenseKey:t||"your_license_key_goes_here",previewElement:$f,effect:r,effectOptions:a,rootPath:`${M()}/deepar`,additionalOptions:{hint:pg,cameraConfig:{disableDefaultCamera:o,facingMode:n},pixelRatio:Math.min(window.devicePixelRatio,2),onVerify:yield jf()},onProgress:i})}catch(e){throw cg=null,e}Kf.setWatchTicking("Watches"===Zf),o&&Kf.setVideoElement(e.videoConfig.video,null==e?void 0:e.videoConfig.mirror),"Glasses"===Zf&&null==e.customTrueScaleFaceWidth?(yield Xf,Jf=Kf.getVideoElement(),rg(Jf),"DetectionLoop"!==dg&&kg(e=>{ug=e.faceWidth})):"Glasses"===Zf&&null!=e.customTrueScaleFaceWidth&&(ug=e.customTrueScaleFaceWidth),fg=!0,Rg(),$f.style.display=""}))()),cg})}function Eg(e,t){t=null!=t?t:function(e){const t={Glasses:["rigidFaceTrackingInit","faceInit"],Shoes:["footInit"],Watches:["wristInit"],Bracelets:["wristInit"],Hats:["rigidFaceTrackingInit","faceInit"],Scarves:["rigidFaceTrackingInit","faceInit"],Necklaces:["rigidFaceTrackingInit","faceInit"]};return null==e?void 0:t[e]}(e),e===Zf&&function(e,t){return e===t||null!=e&&null!=t&&e.length===t.length&&e.every(e=>t.find(t=>e===t))&&t.every(t=>e.find(e=>e===t))}(t,pg)||(Zf=e,pg=t)}function bg(e){Dg(),e!==$f&&($f=e,null!=Kf&&Kf.changePreviewElement($f,Math.min(window.devicePixelRatio,2)))}function Cg(e){sg=e}function _g(e,t){Kf.callbacks.onFaceTracked=n=>{var i;if(n.some(e=>e.detected)){if(ug){const e=137/(ug+5);Kf.changeParameterVector("GLASSES","","scale",e,e,e,0),Kf.changeParameterVector("shopar_glasses","","scale",e,e,e,0),function(e){const t=[-8.362421,4.549,-9.275],n=[8.362421,4.549,-9.275];try{const i=Kf.getTransformationBetween("face_position","temples"),r=Fg(i,"temple_left","temple_left_outer","temple_tip_outer_left",n,e).map(Lg),a=Fg(i,"temple_right","temple_right_outer","temple_tip_outer_right",t,e).map(Lg);Kf.changeParameterVector("temple_left","","rotation",r[0],r[1],r[2],0),Kf.changeParameterVector("temple_right","","rotation",a[0],a[1],a[2],0)}catch(e){return}}(e),ag(),ug=null}e(),Qg("Glasses")}null===(i=null==t?void 0:t.onFaceTracked)||void 0===i||i.call(t,n)},Kf.callbacks.onFeetTracked=(n,i)=>{var r;(n.detected||i.detected)&&(e(),Qg("Shoes")),null===(r=null==t?void 0:t.onFeetTracked)||void 0===r||r.call(t,n,i)},Kf.callbacks.onWristTracked=n=>{var i;n.detected&&(e(),Qg("Watches")),null===(i=null==t?void 0:t.onWristTracked)||void 0===i||i.call(t,n)}}function Ig(e){ug=e}function xg(e){null==Kf||Kf.setStatsCapture(e)}function yg(e,t,n){return c(this,void 0,void 0,function*(){return null!=hg&&Ag===n||(yield hg,t.trackingInit={face:(null==pg?void 0:pg.includes("rigidFaceTrackingInit"))||(null==pg?void 0:pg.includes("faceInit")),foot:null==pg?void 0:pg.includes("footInit"),wrist:null==pg?void 0:pg.includes("wristInit")},null==t.envmap&&(t.envmap=`${M()}/deepar/default_envmap.webp`),hg=Kf.switchEffect(e,t),Kf.setWatchTicking("Watches"===Zf),Ag=n,Rg(),$f.style.display=""),hg})}function Mg(e,t){null!=e&&null!=t&&(Kf.setToneMapping(e),Kf.setExposure(t))}function wg(e,t,n,i){Kf.setBloomEnabled(!!e),null!=t&&Kf.setBloomStrength(t),null!=n&&Kf.setBloomRadius(n),null!=i&&Kf.setBloomThreshold(i)}function Sg(){null!=Kf&&(ag(),null!=Jf&&null!=Jf.srcObject&&Jf.srcObject instanceof MediaStream&&(Jf.srcObject.getTracks().forEach(e=>e.stop()),Jf=null),Kf.shutdown(),Dg(),fg=!1,Kf=null,cg=null,$f.style.display="none")}function Bg(){return fg}function Tg(e){Kf.setVideoElement(e.video,e.mirror)}function Rg(){null!=sg&&(null==Zf||lg.has(Zf)||(sg.removeAttribute("aria-hidden"),sg.style.visibility="visible",sg.style.opacity="1"))}function Dg(){null!=sg&&(sg.setAttribute("aria-hidden","true"),sg.style.visibility="hidden",sg.style.opacity="0")}function Qg(e){null!=sg&&(lg.has(e)||(lg.add(e),sg.setAttribute("aria-hidden","true"),sg.style.opacity="0"))}function Lg(e){return 180*e/Math.PI}function Ug(e,t){let n=t[0],i=t[1],r=t[2],a=t[3],o=n*n,s=i*i,l=r*r;return e[0]=Math.atan2(2*(a*n+i*r),1-2*(o+s)),e[1]=-Math.PI/2+2*Math.atan2(Math.sqrt(1+2*(a*i-n*r)),Math.sqrt(1-2*(a*i-n*r))),e[2]=Math.atan2(2*(a*r+n*i),1-2*(s+l)),e}function Pg(e,t,n){const i=Pf(Uf(),e),r=function(e,t){var n=Math.sin(t),i=Math.cos(t);return e[0]=i,e[1]=0,e[2]=-n,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=n,e[9]=0,e[10]=i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}(Uf(),-n),a=Nf(Uf(),i,r),o=Nf(Uf(),a,e),s=Nf(Uf(),o,t),l=kf(Wf(),s);return Ug(Gf(),l)}function Ng(e,t){let n=Kf.getTransformationBetween("face_position",t);const i=Ug(Gf(),kf(Wf(),n)).map(Lg);n=function(e,t,n,i){var r=t[0],a=t[1],o=t[2],s=t[3],l=r+r,c=a+a,h=o+o,A=r*l,u=r*c,d=r*h,p=a*c,f=a*h,g=o*h,m=s*l,v=s*c,E=s*h,b=i[0],C=i[1],_=i[2];return e[0]=(1-(p+g))*b,e[1]=(u+E)*b,e[2]=(d-v)*b,e[3]=0,e[4]=(u-E)*C,e[5]=(1-(A+g))*C,e[6]=(f+m)*C,e[7]=0,e[8]=(d+v)*_,e[9]=(f-m)*_,e[10]=(1-(A+p))*_,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}(Uf(),function(e,t,n,i){var r=.5*Math.PI/180;t*=r,n*=r,i*=r;var a=Math.sin(t),o=Math.cos(t),s=Math.sin(n),l=Math.cos(n),c=Math.sin(i),h=Math.cos(i);return e[0]=a*l*h-o*s*c,e[1]=o*s*h+a*l*c,e[2]=o*l*c-a*s*h,e[3]=o*l*h+a*s*c,e}(Wf(),i[0],0,i[2]),Ff(Gf(),n),Of(Gf(),n));const r=Pf(Uf(),e);return Nf(Uf(),r,n)}function Fg(e,t,n,i,r,a){let o=Ng(e,t);const s=Nf(Uf(),e,o),l=Vf(Gf(),Ff(Gf(),s),function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}(Uf(),[a,a,a])),c=Math.atan2(r[0]-l[0],Math.abs(r[2]-l[2]));let h;try{h=Kf.getTransformationBetween(t,n)}catch(t){return Pg(e,o,c)}const A=Nf(Uf(),s,h),u=Hf(l[0],r[1],r[2]),d=Vf(Gf(),u,Pf(Uf(),A));let p=Kf.getClosestPointOnMesh(n,d);try{const e=Kf.getClosestPointOnMesh(i,d);zf(d,e)<zf(d,p)&&(p=e)}catch(e){}const f=Vf(Gf(),p,A);return Pg(e,o,c-Math.atan2(f[0]-l[0],Math.abs(f[2]-l[2])))}function Og(e){!function(e){ng.push(e)}(e)}function kg(e){!function(e){ig.push(e)}(e)}function Gg(e){let t,n=!1,i=!1;return{onTracked(r,a){if(!n&&a)if(i){if(r-t>=2e3){const{Fps:t,"Engine update":r,"Face tracking":a,"Foot tracking time":o,"Wrist tracking time":s}=null==Kf?void 0:Kf.getStats();xg(!1),n=!0,i=!1,e({fps:t,tickDuration:r.avg,faceTrackDuration:a.avg,footTrackDuration:o.avg,wristTrackDuration:s.avg})}}else i=!0,t=r,xg(!0);i&&!a&&(i=!1,xg(!1))}}}function Hg(){let e=!1,t=0,n=0;return{get dirty(){return e},clearDirty(){e=!1},get engagementMs(){return Math.round(t)},interact(i){const r=i-n;n=i,r<200&&(t+=r,e=!0)}}}function zg(){let e,t,n=0,i=0,r=2e3;return{set debounceDurationMs(e){r=null!=e?e:2e3},set onDebouncedEngagement(e){t=e},interact(a){const o=a-i;i=a,o<200&&(n+=o),e&&clearTimeout(e),e=setTimeout(()=>{n>0&&t&&(t(Math.round(n)),n=0,i=0),e=void 0},r)},flush(){e&&(clearTimeout(e),e=void 0,n>0&&t&&(t(Math.round(n)),n=0,i=0))}}}const Vg="arRecord",Wg="previewPerf",qg=45e3;function jg(e){let t=0,n=0;const i=[],r=[],a=[];let o,s=1,l=1,c=1,h=-1,A=qg,u=!1;function d(){let e=0;for(let t=0;t<i.length;t++)e+=+i[t].detected,e+=+r[t].detected;const n=5*i.length+28*e,o=new ArrayBuffer(n),h=new DataView(o);let A=0;for(let e=0;e<i.length;e++){const t=i[e],n=r[e];h.setFloat32(A,a[e],!0),A+=4,h.setUint8(A++,+t.detected+(+n.detected<<1)),t.detected&&(h.setFloat32(A+0,t.position[0],!0),h.setFloat32(A+4,t.position[1],!0),h.setFloat32(A+8,t.position[2],!0),A+=12,h.setFloat32(A+0,t.rotation[0],!0),h.setFloat32(A+4,t.rotation[1],!0),h.setFloat32(A+8,t.rotation[2],!0),h.setFloat32(A+12,t.rotation[3],!0),A+=16),n.detected&&(h.setFloat32(A+0,n.position[0],!0),h.setFloat32(A+4,n.position[1],!0),h.setFloat32(A+8,n.position[2],!0),A+=12,h.setFloat32(A+0,n.rotation[0],!0),h.setFloat32(A+4,n.rotation[1],!0),h.setFloat32(A+8,n.rotation[2],!0),h.setFloat32(A+12,n.rotation[3],!0),A+=16)}if(0===t){const e=function(){var e,t,n,i;return{width:null!==(t=null===(e=null==Kf?void 0:Kf.getVideoElement())||void 0===e?void 0:e.videoWidth)&&void 0!==t?t:0,height:null!==(i=null===(n=null==Kf?void 0:Kf.getVideoElement())||void 0===n?void 0:n.videoHeight)&&void 0!==i?i:0}}(),t=function(){var e,t,n,i;return{width:null!==(t=null===(e=null==Kf?void 0:Kf.getCanvas())||void 0===e?void 0:e.width)&&void 0!==t?t:0,height:null!==(i=null===(n=null==Kf?void 0:Kf.getCanvas())||void 0===n?void 0:n.height)&&void 0!==i?i:0}}();s=e.width/e.height,l=t.width/t.height,c=function(){var e;return null!==(e=null==Kf?void 0:Kf.getFov())&&void 0!==e?e:85}()}return{recordType:"FOOT",idx:t++,arRecord:btoa(String.fromCharCode.apply(null,new Uint8Array(o))),cameraAspect:s,canvasAspect:l,fov:c}}function p(){if(i.length>0){const t=d();e(t),i.length=0,r.length=0,a.length=0}}return{start(e=45e3){u||(A=e>qg?qg:e,u=!0,o=window.setInterval(()=>{p()},1e3))},stop(){u&&(p(),clearInterval(o),t=0,n=0,i.length=0,r.length=0,a.length=0,u=!1)},onFeetTracked(e,o){if(!u)return;const s=performance.now();h<0&&(h=s),s-h>A?stop():(i.push(e),r.push(o),0===t&&0===a.length?a.push(0):a.push(s-n),n=s)}}}let Yg,Xg,Kg=!1;const Jg=window.navigator.userAgent||"no user agent",Zg=[];function $g(){null==Yg&&(Xg=Qf(),Yg=w(`${M()}/shopar-analytics.js`,"ShopAR__analytics"),Yg.then(()=>{Kg=!0,window.ShopAR__analytics.initializeImpl(),Zg.forEach(e=>e())}))}function em(e,t){const n=performance.now(),i=Qf(),r=Hg(),a=Hg(),o=zg(),s=zg();window.setInterval(()=>{if(r.dirty||a.dirty){const e=r.engagementMs,t=a.engagementMs,n=e+t;r.clearDirty(),a.clearDirty(),h("heartbeat",{engagementTotal:n,engagementAR:e,engagement3D:t})}},1e3);const l=(r,a={})=>({name:r,props:a=Object.assign(Object.assign({},a),{userAgent:Jg,hostname:window.location.hostname,href:window.location.href,pluginVersion:I,sessionId:Xg,setupId:i,timeSinceSetup:performance.now()-n,sku:e,apiKey:t})}),c=({name:e,props:t})=>{tm(()=>{window.ShopAR__analytics.trackEventImpl(e,t)})},h=(e,t={})=>{c(l(e,t))},A=function(e){const t=Gg(e),n=Gg(e),i=Gg(e);return{onFaceTracked(e){e.length>0&&t.onTracked(performance.now(),e[0].detected)},onFeetTracked(e,t){n.onTracked(performance.now(),e.detected&&t.detected)},onWristTracked(e){i.onTracked(performance.now(),e.detected)}}}(e=>{h("arPerf",e)}),{footRecorder:u,onFeetTracked:d}=function(e){const t=jg(e);return{footRecorder:t,onFeetTracked(e,n){t.onFeetTracked(e,n)}}}(e=>{0===e.idx?h(Vg,e):((e,t={})=>{c({name:e,props:Object.assign(Object.assign({},t),{sessionId:Xg,setupId:i})})})(Vg,{idx:e.idx,arRecord:e.arRecord})}),p=(f=[A,{onFeetTracked:d}],{onFaceTracked:e=>{var t;for(const n of f)null===(t=n.onFaceTracked)||void 0===t||t.call(n,e)},onFeetTracked:(e,t)=>{var n;for(const i of f)null===(n=i.onFeetTracked)||void 0===n||n.call(i,e,t)},onWristTracked:e=>{var t;for(const n of f)null===(t=n.onWristTracked)||void 0===t||t.call(n,e)}});var f;return{prepareEvent:l,submitEvent:c,trackEvent:h,arInteracted:()=>{const e=performance.now();r.interact(e),o.interact(e)},previewInteracted:()=>{const e=performance.now();a.interact(e),s.interact(e)},setDebounceAREngagementMs:e=>{o.debounceDurationMs=e},setOnDebouncedAREngagement:e=>{o.onDebouncedEngagement=e},setDebouncePreviewEngagementMs:e=>{s.debounceDurationMs=e},setOnDebouncedPreviewEngagement:e=>{s.onDebouncedEngagement=e},flushEngagementCallbacks:()=>{o.flush(),s.flush()},arTrackingEvents:p,footRecorder:u}}function tm(e){Kg?e():Zg.push(e)}function nm(e,t,n,i,r,a){let o,s,l=0,c=0;return{launched(){o=performance.now(),l=0,c=0,r(e)},loaded(){s=performance.now(),r(t,{duration:s-o})},failed(e){r(n,{errorName:h(e),errorMessage:A(e),errorStack:u(e),duration:performance.now()-o})},interacted(){if(null==a||a(),null==o)return;const e=performance.now(),t=e-c;c=e,t<200&&(l+=t)},closed(e){if(null==o)return;const t=null!=s;r(i,{duration:t?performance.now()-s:void 0,engagement:t?Math.round(l):void 0,trigger:e,loaded:t}),o=void 0,s=void 0,l=0,c=0}}}const im=.1,rm="function"==typeof Float32Array;function am(e,t,n,i){if(!(0<=e&&e<=1&&0<=n&&n<=1))throw new Error("bezier x values must be in [0, 1] range");if(e===t&&n===i)return Am;const r=rm?new Float32Array(11):new Array(11);for(let t=0;t<11;++t)r[t]=cm(t*im,e,n);function a(t){let i=0,a=1;for(;10!==a&&r[a]<=t;++a)i+=im;--a;const o=i+(t-r[a])/(r[a+1]-r[a])*im,s=hm(o,e,n);return s>=.001?function(e,t,n,i){for(let r=0;r<4;++r){const r=hm(t,n,i);if(0===r)return t;t-=(cm(t,n,i)-e)/r}return t}(t,o,e,n):0===s?o:function(e,t,n,i,r){let a,o,s=0;do{o=t+(n-t)/2,a=cm(o,i,r)-e,a>0?n=o:t=o}while(Math.abs(a)>1e-7&&++s<10);return o}(t,i,i+im,e,n)}return function(e){return 0===e||1===e?e:cm(a(e),t,i)}}function om(e,t){return 1-3*t+3*e}function sm(e,t){return 3*t-6*e}function lm(e){return 3*e}function cm(e,t,n){return((om(t,n)*e+sm(t,n))*e+lm(t))*e}function hm(e,t,n){return 3*om(t,n)*e*e+2*sm(t,n)*e+lm(t)}function Am(e){return e}function um(e){if("hold"===e.type)return()=>0;if("bezier"===e.type){const t=am(e.x1,e.y1,e.x2,e.y2);return e=>t(e)}throw new Error(`Unknown interpolation: ${e}`)}function dm(e){if(e.length<2)throw new Error("Expected at least two key frames.");const t=e[e.length-1].time,n=[...e].sort((e,t)=>e.time-t.time).map(({time:e,value:t,interpolation:n})=>({time:e,value:t,interpolate:um(n)}));let i=0,r=n[0].value;return{reset:()=>{i=0},update:e=>{for(i+=e;i>=t;)i-=t;for(let e=0;e<n.length-1;e++){const t=n[e],a=n[e+1];if(i>=t.time&&i<a.time){const e=t.interpolate((i-t.time)/(a.time-t.time));r=t.value+e*(a.value-t.value)}}},get:()=>r}}const pm="time",fm="interpolation",gm="pitch",mm=[pm,"yaw",gm,"fov",fm],vm="s",Em="ms",bm=Math.PI/180,Cm="ease-in-out",_m="cubic-bezier(";function Im(e){if("string"==typeof e)return function(e){const[t,...n]=function(e){return e.split(/\r?\n/).map(e=>function(e){const t=e.indexOf("#");return(-1!==t?e.substring(0,t):e).trim()}(e)).filter(e=>""!==e)}(e);if(null==t)throw new Error("Header missing.");const i=function(e){const t=[];for(let n=0;n<e.length;n++){const i=e[n];if(!mm.includes(i))throw new Error(`Invalid token in header: '${i}'.`);if(t.includes(i))throw new Error(`Duplicate token in header: '${i}'.`);t.push(i)}if(!t.includes(pm))throw new Error(`Missing required token: '${pm}'.`);return t}(t.split(/\s+/)),r={};if(n.length<2)throw new Error("Expected at least two key frames.");for(const e of n){const{theta:t,phi:n,fov:a}=xm(i,e);null!=t&&(null==r.theta&&(r.theta=[]),r.theta.push(t)),null!=n&&(null==r.phi&&(r.phi=[]),r.phi.push(n)),null!=a&&(null==r.fov&&(r.fov=[]),r.fov.push(a))}if(0===Object.values(r).length)throw new Error("At least one parameter should be animated.");return r}(e);if(Array.isArray(e))return function(e){var t;const n={};if(e.length<2)throw new Error("Expected at least two key frames.");for(const i of e){const{time:e,pitch:r,yaw:a,fov:o}=i;if(null==e)throw new Error("Time missing.");const s=Mm(null!==(t=i.interpolation)&&void 0!==t?t:Cm);null!=a&&(null==n.theta&&(n.theta=[]),n.theta.push({time:e,value:a*bm,interpolation:s})),null!=r&&(null==n.phi&&(n.phi=[]),n.phi.push({time:e,value:r*bm,interpolation:s})),null!=o&&(null==n.fov&&(n.fov=[]),n.fov.push({time:e,value:o*bm,interpolation:s}))}if(0===Object.values(n).length)throw new Error("At least one parameter should be animated.");if(Object.values(n).every(t=>t.length!==e.length))throw new Error("All parameters should have the same key frame count.");return n}(e);throw new Error("Expected string or key frame config array.")}function xm(e,t){const n=t.match(/[^()\s]+(\(.*?\))?/g);if(null==n||n.length<e.length)throw new Error(`Missing data for fields: '${e.filter(e=>!(null==n?void 0:n.includes(e))).join(", ")}'.`);if(n.length>e.length)throw new Error(`Excess data: '${n.filter(t=>!e.includes(t)).join(", ")}'.`);const i=e.indexOf(pm),r=function(e){if(e.endsWith(Em))return Sm(e.substring(0,e.length-2));if(e.endsWith(vm))return 1e3*Sm(e.substring(0,e.length-1));return Sm(e)}(n[i]),a=e.indexOf(fm),o=Mm(-1===a?Cm:n[a]),s={};for(let t=0;t<n.length;t++){if(t===i||t===a)continue;const l=e[t],c=n[t];switch(l){case"yaw":s.theta={time:r,value:ym(c),interpolation:o};break;case gm:s.phi={time:r,value:ym(c),interpolation:o};break;case"fov":s.fov={time:r,value:ym(c),interpolation:o};break;default:throw new Error(`Unhandled value for header '${l}'.`)}}return s}function ym(e){return e.endsWith("deg")?Sm(e.substring(0,e.length-3))*bm:e.endsWith("rad")?Sm(e.substring(0,e.length-3)):Sm(e)*bm}function Mm(e){if("hold"===e)return{type:"hold"};if("linear"===e)return wm(0,0,1,1);if("sine"===e)return wm(.37,0,.63,1);if("sine-in"===e)return wm(.12,0,.39,0);if("sine-out"===e)return wm(.61,1,.88,1);if("ease"===e)return wm(.25,.1,.25,1);if("ease-in"===e)return wm(.42,0,1,1);if("ease-out"===e)return wm(0,0,.58,1);if("ease-in-out"===e)return wm(.42,0,.58,1);if(e.startsWith(_m)&&e.endsWith(")")){const t=e.substring(13,e.length-1).split(/\s*,\s*/);if(4!==t.length)throw new Error(`Expected 4 parameters for the Bezier curve, but got '${t}'.`);return{type:"bezier",x1:Sm(t[0]),y1:Sm(t[1]),x2:Sm(t[2]),y2:Sm(t[3])}}throw new Error(`Expected an interpolation token, but found: ${e}`)}function wm(e,t,n,i){return{type:"bezier",x1:e,y1:t,x2:n,y2:i}}function Sm(e){const t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Expected a numeric value, but got: ${e}`);return t}var Bm;function Tm(){return[Bm.Android,Bm.iOS,Bm.Tablet].includes(function(){if("undefined"!=typeof window&&window.navigator){const e=window.navigator.userAgent,t=window.navigator.platform||"",n=["Macintosh","MacIntel","MacPPC","Mac68K"],i=["Win32","Win64","Windows","WinCE"],r=["iPhone","iPod","iPad"],a="ontouchstart"in window||navigator.maxTouchPoints>0;return-1!==r.indexOf(t)?Bm.iOS:-1!==n.indexOf(t)?a?Bm.Tablet:Bm.MacOS:-1!==i.indexOf(t)?Bm.Windows:/Android/.test(e)?Bm.Android:/Linux/.test(t)?Bm.Linux:a?Bm.Tablet:Bm.Unknown}return Bm.Unknown}())}!function(e){e[e.Unknown=0]="Unknown",e[e.Android=1]="Android",e[e.iOS=2]="iOS",e[e.Tablet=3]="Tablet",e[e.MacOS=4]="MacOS",e[e.Windows=5]="Windows",e[e.Linux=6]="Linux"}(Bm||(Bm={}));const Rm=["demo.deepar.ai","dbeochk72stb2.cloudfront.net","d1q93hnxt3ps3w.cloudfront.net","dj5e08oeu5ym4.cloudfront.net"];function Dm(e,{trustUrls:t=!1}={}){const n=Object.assign({},e);if(n.category&&!Wc.includes(n.category))throw new r(`Invalid response category: ${e.category}`);if(n.arToneMapping&&!qc.includes(n.arToneMapping))throw new r(`Invalid tone mapping: ${e.arToneMapping}`);if(n.previewToneMapping&&!qc.includes(n.previewToneMapping))throw new r(`Invalid tone mapping: ${e.previewToneMapping}`);const i=t?Qm:Lm;return n.arUrl=n.arUrl?i(n.arUrl):void 0,n.arEnvUrl=n.arEnvUrl?i(n.arEnvUrl):void 0,n.arDiamondEnvUrl=n.arDiamondEnvUrl?i(n.arDiamondEnvUrl):void 0,n.arPromptImage=n.arPromptImage?i(n.arPromptImage):void 0,n.previewUrl=n.previewUrl?i(n.previewUrl):void 0,n.previewEnvUrl=n.previewEnvUrl?i(n.previewEnvUrl):void 0,n.previewDiamondEnvUrl=n.previewDiamondEnvUrl?i(n.previewDiamondEnvUrl):void 0,n.previewPosterUrl=n.previewPosterUrl?i(n.previewPosterUrl):void 0,n}function Qm(e){if(null==e||"string"!=typeof e)throw new r(`Invalid url: ${e}.`);let t;try{t=new URL(e)}catch(t){throw new r(`Invalid url: ${e}. ${t.message}`)}if("https:"!==t.protocol)throw new r(`Invalid url: ${e}.`);return t.toString()}function Lm(e){const t=Qm(e);if(!function(e){return Rm.includes(e)}(new URL(t).hostname))throw new r(`Invalid url: ${e}.`);return t}const Um=[1e3,2e3,4e3],Pm=Um.length;function Nm(e){return c(this,arguments,void 0,function*(e,t=0){try{return yield e()}catch(n){if(t>=Pm)throw n;return yield new Promise(e=>setTimeout(e,Um[t])),Nm(e,t+1)}})}const Fm={};function Om(e){const t=function(e){const{apiKey:t,sku:n,yaw:i,pitch:r,fov:a,forcedTransparency:o}=e,s=[];s.push(`apiKey=${t}`),s.push(`sku=${n}`),null!=i&&s.push(`yaw=${i}`);null!=r&&s.push(`pitch=${r}`);null!=a&&s.push(`fov=${a}`);null!=o&&s.push(`forcedTransparency=${o}`);return s.join("&")}(e),n=null!=Fm[t];return n||(Fm[t]=function(e){return c(this,void 0,void 0,function*(){return Dm(yield Nm(()=>c(this,void 0,void 0,function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin?${new URLSearchParams(e)}`).catch(e=>{throw new i(`API unavailable: ${A(e)}`)});if(!t.ok)throw new i("API response not OK.",t.status);const n=t.headers.get("content-length");if(n&&parseInt(n)>1048576)throw new i("API response too large.");try{return yield t.json()}catch(e){throw new i(`API returned invalid body: ${A(e)}`)}})))})}(e).catch(e=>{throw delete Fm[t],e})),{promise:Fm[t],cacheHit:n}}function km(e,t){if(null==e)throw new n(`'${t}' not specified.`)}function Gm(e,t){if("boolean"!=typeof e)throw new n(`'${t}' must be a boolean.`)}function Hm(e,t){if("number"!=typeof e)throw new n(`'${t}' must be a number.`)}function zm(e,t,i,r){if("number"!=typeof e)throw new n(`'${t}' must be a number.`);if(e<i)throw new n(`'${t}' must be greater than ${i}.`);if(e>r)throw new n(`'${t}' must be less than ${r}.`)}function Vm(e,t){if("string"!=typeof e)throw new n(`'${t}' must be a string.`)}function Wm(e,t,i){if("string"!=typeof e)throw new n(`'${t}' must be a string.`);if(!i.includes(e))throw new n(`'${t}' must be ${i.join("' or '")}.`)}function qm(e,t){if(!(e instanceof HTMLElement))throw new n(`'${t}' must be an HTMLElement.`)}function jm(e,t){if("function"!=typeof e)throw new n(`'${t}' must be a function.`)}function Ym(t){const{apiKey:i,sku:r,skuData:a,targetElement:o,initialState:s,initialAnimation:l,baseUrl:c,defaultUI:h,interactive:A,touchAction:u,zoomEnabled:d,minZoom:p,maxZoom:f,alwaysTransparentBackground:g,strings:m,onFirstAREngagement:v,onFirst3DEngagement:E,debounceAREngagementMs:b,onDebouncedAREngagement:C,debounce3DEngagementMs:_,onDebounced3DEngagement:I,onMaxZoomEnter:x,onMaxZoomLeave:y,onMinZoomEnter:M,onMinZoomLeave:w,onMinVerticalAngleEnter:S,onMinVerticalAngleLeave:B,onMaxVerticalAngleEnter:T,onMaxVerticalAngleLeave:D,customArVideo:Q,customTrueScaleFaceWidth:L}=t;Xm(i),function(e){km(e,"sku"),Vm(e,"sku"),function(e){if(0===e.length||e.length>100||!/^[\p{L}0-9 ./_-]+$/u.test(e))throw new n("Invalid 'sku'.")}(e)}(r),null!=a&&function(e,t){if("object"!=typeof e)throw new n(`'${t}' must be an object.`)}(a,"skuData"),km(o,"targetElement"),qm(o,"targetElement"),null!=s&&Wm(s,"initialState",e),null!=l&&function(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new n(`'${t}' must be a string or array.`)}(l,"initialAnimation"),null!=c&&Vm(c,"baseUrl"),null!=h&&Gm(h,"defaultUI"),null!=A&&Gm(A,"interactive"),null!=u&&Wm(u,"touchAction",jc),null!=d&&Gm(d,"zoomEnabled"),null!=p&&zm(p,"minZoom",.1,1),null!=f&&zm(f,"maxZoom",1,1/0),null!=g&&Gm(g,"alwaysTransparentBackground"),null!=m&&function(e,t,i){for(const r of i){const i=e[r];if(null!=i&&"string"!=typeof i)throw new n(`Value for key '${r}' in '${t}' must be a string or undefined.`)}}(m,"strings",R),null!=v&&jm(v,"onFirstAREngagement"),null!=E&&jm(E,"onFirst3DEngagement"),null!=b&&Hm(b,"debounceAREngagementMs"),null!=C&&jm(C,"onDebouncedAREngagement"),null!=_&&Hm(_,"debounce3DEngagementMs"),null!=I&&jm(I,"onDebounced3DEngagement"),null!=x&&jm(x,"onMaxZoomEnter"),null!=y&&jm(y,"onMaxZoomLeave"),null!=M&&jm(M,"onMinZoomEnter"),null!=w&&jm(w,"onMinZoomLeave"),null!=S&&jm(S,"onMinVerticalAngleEnter"),null!=B&&jm(B,"onMinVerticalAngleLeave"),null!=T&&jm(T,"onMaxVerticalAngleEnter"),null!=D&&jm(D,"onMaxVerticalAngleLeave"),null!=Q&&(km(Q.video,"customArVideo.video"),function(e,t){if(!(e instanceof HTMLVideoElement))throw new n(`'${t}' must be an HTMLVideoElement.`)}(Q.video,"customArVideo.video"),km(Q.mirror,"customArVideo.mirror"),Gm(Q.mirror,"customArVideo.mirror")),null!=L&&Hm(L,"customTrueScaleFaceWidth")}function Xm(e){km(e,"apiKey"),Vm(e,"apiKey"),function(e){if(!function(e){return 24===e.length&&/^[0-9a-fA-F]{24}$/.test(e)}(e))throw new n("Invalid 'apiKey'.")}(e)}let Km=!1;function Jm(e){return c(this,void 0,void 0,function*(){!function(e){const{apiKey:t,targetElement:n}=e;Xm(t),km(n,"targetElement"),qm(n,"targetElement")}(e);const{targetElement:t}=e;y(e.baseUrl),$g();const{trackEvent:n}=function(e){const t=performance.now(),n=Qf();return{trackEvent:(i,r={})=>{r=Object.assign(Object.assign({},r),{userAgent:Jg,hostname:window.location.hostname,href:window.location.href,pluginVersion:I,sessionId:Xg,setupId:n,timeSinceSetup:performance.now()-t,apiKey:e}),tm(()=>{window.ShopAR__analytics.trackEventImpl(i,r)})}}}(e.apiKey);n("visionSetup");const r=yield function(e){return c(this,void 0,void 0,function*(){return yield Nm(()=>c(this,void 0,void 0,function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin/vision?${new URLSearchParams({apiKey:e,sid:v()})}`).catch(e=>{throw new i(`API unavailable: ${A(e)}`)});if(!t.ok)throw new i("API response not OK.",t.status);const n=t.headers.get("content-length");if(n&&parseInt(n)>1048576)throw new i("API response too large.");try{return yield t.json()}catch(e){throw new i(`API returned invalid body: ${A(e)}`)}}))})}(e.apiKey);n("visionApiResponse",r);const{arKey:a}=r,o=Mf(t),{getSetupId:s,findUI:l}=o,u=s();gg(),mg();const{setTargetElement:d,getDeepARTarget:p,setVisibilityParameters:f,getUIState:g,setUIState:m,startDeepARLoading:E,stopDeepARLoading:b,showCameraError:C}=l();if(g()!=Cf.None)throw Error("UI state is not None, this is weird..");m(Cf.AR),d(t),f(!1,!1,!0,!1,void 0,void 0),E(),yield Yf,Zm(s(),u);try{n("visionArLaunch"),Eg("Glasses",["faceInit"]),bg(p()),yield vg({licenseKey:a,truescaleUsecase:"DetectionLoop"}),Zm(s(),u),Zm(s(),u)}catch(e){const t=A(e);throw n("visionArLaunchFailure",{errorName:h(e),errorMessage:t}),C(),new Error(`AR failed: ${t}`)}finally{b()}return Km=!0,{registerFacePoseListener:e=>{Km&&(n("registerFacePoseListener"),Og(e))},registerFaceMeasurementListener:e=>{Km&&(n("registerFaceMeasurementListener"),kg(e))},switchEffect:e=>c(this,void 0,void 0,function*(){Km&&(n("switchEffect",{arUrl:e}),function(e){Kf.switchEffect(e)}(e))}),clearEffect:()=>{Km&&(n("clearEffect"),Kf.clearEffect())},close:()=>{if(Km){if(Km=!1,n("visionClose"),g()!==Cf.AR)throw new Error("AR not launched.");m(Cf.None)}}}})}function Zm(e,t){if(e!==t)throw new Error("Setup cancelled. Please ensure that setup is only called once.")}function $m(e){return c(this,void 0,void 0,function*(){var t,r,u,p,f,g,m,I,x,w,S,B;Ym(e);const{apiKey:R,sku:D,skuData:Q,targetElement:L,initialState:U,initialAnimation:P}=e,N=e.touchAction,F=null==e.zoomEnabled||e.zoomEnabled,O=e.minZoom,k=e.maxZoom,G=null!==(t=e.onMaxZoomEnter)&&void 0!==t?t:null,H=null!==(r=e.onMaxZoomLeave)&&void 0!==r?r:null,z=null!==(u=e.onMinZoomEnter)&&void 0!==u?u:null,V=null!==(p=e.onMinZoomLeave)&&void 0!==p?p:null,W=null!==(f=e.onMinVerticalAngleEnter)&&void 0!==f?f:null,q=null!==(g=e.onMinVerticalAngleLeave)&&void 0!==g?g:null,j=null!==(m=e.onMaxVerticalAngleEnter)&&void 0!==m?m:null,Y=null!==(I=e.onMaxVerticalAngleLeave)&&void 0!==I?I:null,X=!0===e.alwaysTransparentBackground;!function(e){const t=getComputedStyle(e);if(!["static","relative"].includes(t.position))throw new n(`Invalid targetElement's position. Expected 'static' or 'relative', but found '${t.position}'.`)}(L),y(e.baseUrl),function(e){if(null!=e)for(const t of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(T,t)){console.warn(`String for key '${t}' will be ignored.`);continue}const n=e[t];null!=n&&(T[t]=n)}}(e.strings);const K=null!=P?Im(P):null,J=null!=(null==K?void 0:K.theta)?dm(K.theta):null,Z=null!=(null==K?void 0:K.phi)?dm(K.phi):null,$=null!=(null==K?void 0:K.fov)?dm(K.fov):null,ee=function(e,t){if(null!=e)return{apiUsed:!1,skuData:Dm(e,{trustUrls:!0})};const n=performance.now(),{promise:i,cacheHit:r}=Om(t);return{apiUsed:!0,promise:i,startTimestamp:n,cacheHit:r}}(Q,function(e,t,n,i,r,a){return Object.assign(Object.assign(Object.assign(Object.assign({apiKey:e,sku:t,sid:v(),initialFov:"16"},null!=n&&{yaw:`${b(E(n))}`}),null!=i&&{pitch:`${b(E(i))}`}),null!=r&&{fov:`${b(E(r))}`}),a&&{forcedTransparency:`${a}`})}(R,D,null==J?void 0:J.get(),null==Z?void 0:Z.get(),null==$?void 0:$.get(),X)),te=Mf(L),{getSetupId:ne,findUI:ie,findQR:re,isInteractive:ae,setInteractive:oe}=te,se=ne();$g();const{prepareEvent:le,submitEvent:ce,trackEvent:he,arInteracted:Ae,previewInteracted:ue,setDebounceAREngagementMs:de,setOnDebouncedAREngagement:pe,setDebouncePreviewEngagementMs:fe,setOnDebouncedPreviewEngagement:ge,flushEngagementCallbacks:me,arTrackingEvents:ve,footRecorder:Ee}=em(D,R),be=le("setup");de(e.debounceAREngagementMs),pe(e.onDebouncedAREngagement),fe(e.debounce3DEngagementMs),ge(e.onDebounced3DEngagement);let Ce,_e=!1;if(ee.apiUsed){try{Ce=yield ee.promise}catch(e){const t=A(e),n=performance.now()-ee.startTimestamp;throw he("apiError",{errorName:h(e),errorMessage:t,errorStatusCode:e instanceof i?e.status:void 0,duration:n}),e instanceof i?e:new i(t)}ev(ne(),se)}else Ce=ee.skuData;const{category:Ie,arUrl:xe,arEnvUrl:ye,arDiamondEnvUrl:Me,arToneMapping:we,arToneMappingExposure:Se,arBloomEnabled:Be,arBloomStrength:Te,arBloomRadius:Re,arBloomThreshold:De,arKey:Qe,arPromptEnabled:Le,arPromptText:Ue,arPromptImage:Pe,previewUrl:Ne,previewEnvUrl:Fe,previewDiamondEnvUrl:Oe,previewToneMapping:ke,previewToneMappingExposure:Ge,previewBloomEnabled:He,previewBloomStrength:ze,previewBloomRadius:Ve,previewBloomThreshold:We,previewPosterUrl:qe,cameraErrorText:je,qrPromptText:Ye,arSessionRecording:Xe,arSessionRecordingMaxDurationMs:Ke}=Ce;if(ee.apiUsed){const e=performance.now()-ee.startTimestamp;null!=xe||null!=Ne?(ce(be),he("apiResponse",Object.assign(Object.assign({},Ce),{duration:e,cacheHit:ee.cacheHit}))):(he("apiResponseFailure",Object.assign(Object.assign({},Ce),{duration:e,cacheHit:ee.cacheHit})),Je="SKU not found (or both 3D and AR disabled).",console.error(`ShopAR Plugin: ${Je}`))}var Je;const Ze=null!=xe&&function(e){return null!=e&&C.includes(e)}(Ie),$e=null==(null===(x=e._internalOptions)||void 0===x?void 0:x.qrEnabled)||(null===(w=e._internalOptions)||void 0===w?void 0:w.qrEnabled),et=Ze&&function(e){return null!=e&&_.includes(e)}(Ie),tt=$e&&et&&!Tm(),nt=Ze&&!tt,it=null!=Ne;ev(ne(),se);const{setTargetElement:rt,getDeepARTarget:at,getDeepARPrompt:ot,getThreeTarget:st,hasThreeTarget:lt,removeThreeTarget:ct,customizeDeepARPrompt:ht,customizeCameraError:At,customizeQRPrompt:ut,setVisibilityParameters:dt,getUIState:pt,setUIState:ft,setDefaultUIActions:gt,startDeepARLoading:mt,stopDeepARLoading:vt,showCameraError:Et,updateDeepARLoadingProgress:bt}=ie();rt(L);dt(null==e.defaultUI||e.defaultUI,tt,nt,it,Ie,U),ht(null!==(B=null!==(S=function(e){switch(e){case"Glasses":return T["prompt.ar.glasses"];case"Shoes":return T["prompt.ar.shoes"];case"Watches":return T["prompt.ar.watches"];case"Bracelets":return T["prompt.ar.bracelets"];case"Scarves":return T["prompt.ar.scarves"];case"Hats":return T["prompt.ar.hats"];case"Necklaces":return T["prompt.ar.necklaces"];default:return}}(Ie))&&void 0!==S?S:Ue)&&void 0!==B?B:"",null!=Pe?Pe:ee.apiUsed?"":`${M()}/img/prompt/ar-foot.webp`),At(je),ut(Ye);const Ct=nm("qrLaunch","qrLaunchSuccess","qrLaunchFailure","qrClose",he),_t=nm("arLaunch","arLaunchSuccess","arLaunchFailure","arClose",he,Ae),It=nm("previewLaunch","previewLaunchSuccess","previewLaunchFailure","previewClose",he,ue);let xt=!1;const yt=()=>{var t;_t.interacted(),xt||(xt=!0,null===(t=e.onFirstAREngagement)||void 0===t||t.call(e))};let Mt=!1;const wt=()=>{var t;It.interacted(),Mt||(Mt=!0,null===(t=e.onFirst3DEngagement)||void 0===t||t.call(e))};!function(e,t){const n=e.parentNode;if(null==n)throw new Error("Parent node missing.");new MutationObserver(n=>{for(const i of n)for(const n of i.removedNodes)if(n===e)return void t()}).observe(n,{childList:!0})}(L,()=>{me(),pt()===Cf.QR?(Ct.closed("detach"),St()||Tt()):pt()===Cf.AR?(_t.closed("detach"),Bg()&&(Ee.stop(),Sg())):pt()===Cf.Preview&&(It.closed("detach"),ct()),ft(Cf.None),function(e){yf.delete(e)}(L)});const{qrPaused:St,qrDraw:Bt,qrPause:Tt}=re(),Rt=null==e.interactive||e.interactive;let Dt=0;if(pt()===Cf.QR){if(!St())if(tt){Ct.launched();try{yield Bt(R,D)}catch(e){const t=A(e);throw new l(t)}Ct.loaded()}else Tt(),ft(Cf.None)}else if(pt()===Cf.AR){if(Bg())if(nt&&!Km){_t.launched(),Ee.stop(),mt(),gg(),"Glasses"===Ie&&mg(),wf(te),bg(at()),Eg(Ie),Cg(Le?ot():null);const t=e=>{bt(e.loaded/e.total*100)};null!=e.customArVideo&&Tg(e.customArVideo),yield yg(xe,{envmap:ye,diamondEnvMap:Me,onProgress:t},`${xe}${ye}${Me}`),Mg(we,Se),wg(Be,Te,Re,De),_g(yt,ve),Xe&&"Shoes"===Ie&&ee.apiUsed&&Ee.start(Ke),ev(ne(),se),vt(),null!=e.customTrueScaleFaceWidth&&Ig(e.customTrueScaleFaceWidth),_t.loaded()}else Ee.stop(),Sg(),ft(Cf.None)}else if(pt()===Cf.Preview)if(it){It.launched(),yield customElements.whenDefined("shopar-3d");const e=st();e.baseUrl=`${M()}/3d`,e.interactivityDisabled=!Rt,e.posterUrl=null!=qe?qe:null,e.glbUrl=Ne,e.envUrl=null!=Fe?Fe:`${M()}/env/default.hdr`,e.diamondEnvUrl=null!=Oe?Oe:null,e.category=null!=Ie?Ie:null,e.touchAction=null!=N?N:null,e.zoomDisabled=!F,e.minZoom=null!=O?O:null,e.maxZoom=null!=k?k:null,e.alwaysTransparentBackground=X,e.toneMapping=null!=ke?ke:"ACES",e.toneMappingExposure=null!=Ge?Ge:1,e.bloomEnabled=null!=He?He:null,e.bloomStrength=null!=ze?ze:null,e.bloomRadius=null!=Ve?Ve:null,e.bloomThreshold=null!=We?We:null,e.onInteracted=wt,e.onInteractionPerf=_e?null:t=>{_e=!0,e.onInteractionPerf=null,he(Wg,t)},e.onMaxZoomEnter=G,e.onMaxZoomLeave=H,e.onMinZoomEnter=z,e.onMinZoomLeave=V,e.onMinVerticalAngleEnter=W,e.onMinVerticalAngleLeave=q,e.onMaxVerticalAngleEnter=j,e.onMaxVerticalAngleLeave=Y,e.animation=null!=P?P:null,e.paused=!1,e.style.display="",yield e.flushChanges(),It.loaded()}else ct(),ft(Cf.None);const Qt=()=>c(this,void 0,void 0,function*(){if(tt){Ct.launched();try{const e=++Dt;if(pt()===Cf.Preview&&(It.closed("switch"),ct()),ft(Cf.QR),yield Bt(R,D),Dt!==e)return;return ev(ne(),se),void Ct.loaded()}catch(e){throw Ct.failed(e),new l(A(e))}}if(!nt)throw new o("Model does not have AR enabled.");_t.launched();try{const t=++Dt;if(pt()===Cf.Preview&&(It.closed("switch"),ct()),wf(te),ft(Cf.AR),gg(),"Glasses"===Ie&&mg(),mt(),yield Yf,Dt!==t)return;ev(ne(),se),Eg(Ie),bg(at()),Cg(Le?ot():null);const n=e=>{bt(e.loaded/e.total*100)};if(Ee.stop(),Bg())null!=e.customArVideo&&Tg(e.customArVideo),yield yg(xe,{envmap:ye,diamondEnvMap:Me,onProgress:n},`${xe}${ye}${Me}`),null!=e.customTrueScaleFaceWidth&&Ig(e.customTrueScaleFaceWidth);else{if(yield vg({licenseKey:Qe,effectUrl:xe,effectOptions:{envmap:ye,diamondEnvMap:Me},onProgress:n,videoConfig:e.customArVideo,customTrueScaleFaceWidth:e.customTrueScaleFaceWidth}),Dt!==t)return;ev(ne(),se)}if(Mg(we,Se),wg(Be,Te,Re,De),_g(yt,ve),Xe&&"Shoes"===Ie&&ee.apiUsed&&Ee.start(Ke),Dt!==t)return;if(ev(ne(),se),Dt!==t)return;ev(ne(),se),_t.loaded()}catch(e){_t.failed(e),Et();const t=A(e);if("CameraPermissionDeniedError"===h(e))throw new s(t);throw new o(t)}finally{vt()}}),Lt=()=>c(this,void 0,void 0,function*(){if(!it)throw new a("Model does not have 3D enabled.");It.launched();try{pt()===Cf.AR&&(_t.closed("switch"),Ee.stop(),Sg(),Tt()),ft(Cf.Preview),yield customElements.whenDefined("shopar-3d");const e=st();e.baseUrl=`${M()}/3d`,e.interactivityDisabled=!Rt,e.posterUrl=null!=qe?qe:null,e.glbUrl=Ne,e.envUrl=null!=Fe?Fe:`${M()}/env/default.hdr`,e.diamondEnvUrl=null!=Oe?Oe:null,e.category=null!=Ie?Ie:null,e.touchAction=null!=N?N:null,e.zoomDisabled=!F,e.minZoom=null!=O?O:null,e.maxZoom=null!=k?k:null,e.alwaysTransparentBackground=X,e.toneMapping=null!=ke?ke:"ACES",e.toneMappingExposure=null!=Ge?Ge:1,e.bloomEnabled=null!=He?He:null,e.bloomStrength=null!=ze?ze:null,e.bloomRadius=null!=Ve?Ve:null,e.bloomThreshold=null!=We?We:null,e.onInteracted=wt,e.onInteractionPerf=_e?null:t=>{_e=!0,e.onInteractionPerf=null,he(Wg,t)},e.onMaxZoomEnter=G,e.onMaxZoomLeave=H,e.onMinZoomEnter=z,e.onMinZoomLeave=V,e.onMinVerticalAngleEnter=W,e.onMinVerticalAngleLeave=q,e.onMaxVerticalAngleEnter=j,e.onMaxVerticalAngleLeave=Y,e.animation=null!=P?P:null,e.paused=!1,e.style.display="",yield e.flushChanges(),It.loaded()}catch(e){throw It.failed(e),new a(A(e))}}),Ut=()=>c(this,void 0,void 0,function*(){pt()!==Cf.None&&("AR"!==U||pt()!==Cf.AR&&pt()!==Cf.QR)&&("3D"===U&&pt()===Cf.Preview||(++Dt,me(),pt()===Cf.QR||pt()===Cf.AR?(pt()===Cf.QR?Ct.closed("close"):_t.closed("close"),Ee.stop(),Sg(),Tt()):pt()===Cf.Preview&&(It.closed("close"),ct()),ft(Cf.None),"AR"!==U?"3D"!==U||(yield Lt()):yield Qt()))});return gt(d("launchAR",Qt),d("launch3D",Lt),d("close",Ut)),"AR"===U?(yield Qt(),ev(ne(),se)):"3D"===U&&(yield Lt(),ev(ne(),se)),Km=!1,{launchAR:Ze?d("launchAR",Qt):void 0,launch3D:it?d("launch3D",Lt):void 0,closeAR:Ze?d("closeAR",()=>c(this,void 0,void 0,function*(){pt()!==Cf.AR&&pt()!==Cf.QR||"AR"!==U&&(++Dt,me(),pt()===Cf.QR?Ct.closed("close"):_t.closed("close"),Ee.stop(),Sg(),Tt(),ft(Cf.None),"3D"!==U||(yield Lt()))})):void 0,close3D:it?d("close3D",()=>c(this,void 0,void 0,function*(){pt()===Cf.Preview&&"3D"!==U&&(++Dt,me(),It.closed("close"),ct(),ft(Cf.None),"AR"!==U||(yield Qt()))})):void 0,close:Ze||it?d("close",Ut):void 0,isInteractive:()=>ae(),setInteractive:e=>oe(e),zoomIn3D:it?e=>{pt()===Cf.Preview&&lt()&&st().zoomBy(e)}:void 0,zoomOut3D:it?e=>{pt()===Cf.Preview&&lt()&&st().zoomBy(-e)}:void 0,rotateHorizontally3D:it?e=>{pt()===Cf.Preview&&lt()&&st().rotateBy(e,0)}:void 0,rotateVertically3D:it?e=>{pt()===Cf.Preview&&lt()&&st().rotateBy(0,e)}:void 0}})}function ev(e,t){if(e!==t)throw new Error("Setup cancelled. Please ensure that setup is only called once.")}const tv={setup:function(e){return c(this,void 0,void 0,function*(){return d("visionSetup",()=>Jm(e))()})}},nv={setup:function(e){return c(this,void 0,void 0,function*(){return d("setup",()=>$m(e))()})},version:I};export{i as ApiError,s as CameraPermissionDeniedError,a as Launch3DError,o as LaunchARError,e as PREVIEW_STATES,t as PluginError,l as QRError,r as SanitizationError,n as ValidationError,nv as plugin,tv as vision};